Указанный вами идентификатор ключа доступа AWS не существует в наших записях, но учетные данные уже установлены - PullRequest
0 голосов
/ 29 августа 2018

Через библиотеку boto3 я загрузил и скачал файл с AWS s3 успешно . Но через несколько часов он неожиданно показывает InvalidAccessKeyId для того же кода.

Что я сделал:

  • set ~/.aws/credentials
  • Set environment variables AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY

Я попробовал следующие решения, но ошибка все еще возникает.

добавление кавычек в значениях конфигурации

ref2

Я что-то пропустил? Спасибо за вашу помощь.

Ответы [ 3 ]

0 голосов
/ 29 августа 2018

Вам не нужно настраивать обе переменные среды .aws/credentials И .

С Учетные данные - документация Boto 3 :

Порядок, в котором Boto3 ищет учетные данные:

  • Передача учетных данных в качестве параметров в методе boto.client()
  • Передача учетных данных в качестве параметров при создании объекта Session
  • Переменные среды
  • Общий файл учетных данных (~/.aws/credentials)
  • Файл конфигурации AWS (~/.aws/config)
  • Предположим, роль поставщика
  • Файл конфигурации Boto2 (/etc/boto.cfg и ~/.boto)
  • Служба метаданных экземпляра в экземпляре Amazon EC2, для которого настроена роль IAM.

Тот факт, что ваши учетные данные перестали работать через некоторое время, свидетельствует о том, что они были временными , созданными с помощью AWS Security Token Service , со сроком действия.

0 голосов
/ 29 августа 2018

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

0 голосов
/ 29 августа 2018

Если у вас есть учетные данные в ~/.aws/credentials, вам не нужно устанавливать переменные окружения AWS_ACCESS_KEY_ID & AWS_SECRET_ACCESS_KEY.

Переменные среды действительны только для сеанса.

Если вы используете boto3, вы можете указать учетные данные при создании самого клиента.

Лучший способ настроить учетные данные AWS - установить Интерфейс командной строки AWS (CLI) и запустить aws configure из консоли bash:

~/.aws/credentials format

[default]
aws_access_key_id = ***********
aws_secret_access_key = ************
...