Не удается прочитать учетные данные из /.aws/credentials - PullRequest
0 голосов
/ 19 сентября 2018

Я пытаюсь интегрировать AWS PHP SDK для codeigniter

Но отображается сообщение об ошибке следующим образом:

An uncaught Exception was encountered
Type: Aws\Exception\CredentialsException

Message: Cannot read credentials from /.aws/credentials

Filename: /var/www/html/aws/Aws/Credentials/CredentialProvider.php

И при получении ошибки в виде -bash: /root/.aws/Учетные данные: В доступе отказано

Так что после этого я разрешил разрешение ... ошибка cli исчезла, но ошибка php. Невозможно прочитать учетные данные из /.aws/credentials.

Пожалуйста, помогите решить эту проблемувыпуск.

Спасибо!

Ответы [ 3 ]

0 голосов
/ 20 сентября 2018

При запуске кода в другом сервисе AWS вы не работаете с ключом и секретом, как на своей локальной машине.Взгляните на ответ , который я дал на другой вопрос.

По сути, вашему экземпляру EC2 назначена роль службы.Затем вы бы прикрепили одну или несколько политик IAM к этой роли.Политики IAM будут определять, к каким ресурсам и действиям AWS может обращаться ваш экземпляр EC2.

В своем коде PHP вы можете создать экземпляр своего клиента с помощью CredentialProvider::defaultProvider().Если бы вы работали с S3, например, это выглядело бы так:

$s3 = new S3Client([
    'region' =>'us-east-1',
    'credentials' => CredentialProvider::defaultProvider()
]);
0 голосов
/ 22 сентября 2018

Если вы используете IAM Role to EC2 Instance, тогда нет необходимости использовать следующие

'profile'=>'default',

, я просто убираю вышеприведенную строку, что решило ошибку "Невозможно прочитать учетные данные из /.aws/credentials"

Ошибка при использовании роли IAM с PHP SDK

0 голосов
/ 19 сентября 2018

Когда PHP работает под службой, «пользователь» отсутствует.Поэтому PHP не будет пытаться получить доступ к /root/.aws/credentials.Если вы просматриваете ошибку, путь к файлу /.aws/credentails.

Чтобы решить эту проблему, создайте новый каталог /.aws и скопируйте каталог /root/.aws в /.aws

Улучшение:

Вы установили PHP SDK в корневую папку вашего сайта, что делает эти файлы доступными извне.SDK должны быть установлены вне папок вашего сайта.

...