Symfony 4 & Amazon S3 - AWS учетные данные не работают - PullRequest
0 голосов
/ 28 февраля 2020

У меня есть проект Symfony 4, который развернут на сервере Digital Ocean Ubuntu. Для хранения файлов я использую ведро Amazon S3. Я использовал библиотеку aws/aws-sdk-php для взаимодействия с корзиной Amazon S3. Я создал файл глобальных учетных данных в ~ / .aws / credentials и сумел заставить его работать.

Проблема в том, что он не работает на сервере. Я скопировал файл учетных данных в каталог ~ / .aws / сервера, но получаю эту ошибку.

Error retrieving credentials from the instance profile metadata server. (Client error: `GET http://169.254.169.254/latest/meta-data/iam/security-credentials/` resulted in a `404 Not Found` response: not found)

Я провел некоторое исследование этой ошибки - похоже, сервер php не найти файл учетных данных. Как мне это исправить?

1 Ответ

1 голос
/ 29 февраля 2020

Все AWS SDK ищут учетные данные из различных источников в указанном c порядке приоритета. Вы можете увидеть этот порядок в документации boto3 .

Обычно, если SDK не может найти какие-либо учетные данные из любого из источников, в которых он ищет, тогда он сообщает об ошибке при получении учетных данных от последнего поставщика учетных данных в своем списке поиска, и это обычно (и, возможно, всегда) учетные данные STS из службы метаданных экземпляра.

В вашем случае вы даже не работаете на AWS поэтому служба метаданных экземпляра неактуальна, и вы видите сообщение об ошибке: красная сельдь .

Вот что, я подозреваю, происходит: вы пытаетесь предоставить учетные данные через ~/.aws/credentials файл, но AWS PHP SDK не находит там учетные данные. Таким образом, может происходить одно из следующих действий:

  1. ваше PHP приложение работает от имени другого пользователя Linux и, следовательно, его домашний каталог не совпадает с тем, который вы поместили .aws/credentials файл в
  2. ваш ~/.aws/credentials файл каким-то образом недействителен или имеет нулевые учетные данные (вряд ли, я бы сказал)

Мой голос за # 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...