Существует несколько способов, которыми приложения могут открывать учетные данные AWS. Любое программное обеспечение, использующее AWS SDK, автоматически просматривается в этих местах. Это включает в себя AWS Command-Line Interface (CLI), который является приложением python, использующим AWS SDK.
Ваши смелые слова относятся к # 3, ниже:
1. Переменные среды
В SDK будет искать переменные окружения AWS_ACCESS_KEY_ID
и AWS_SECRET_ACCESS_KEY
. Это отличный способ предоставить учетные данные, потому что нет никакой опасности случайно включить файл учетных данных в github или другие репозитории. В Windows используйте панель управления System, чтобы установить переменные. В Mac/Linux только EXPORT
переменные из оболочки.
Учетные данные предоставлены, если Созданы пользователи IAM. Вы несете ответственность за включение этих учетных данных в переменные среды.
2. Локальные учетные данные Файл
В SDK будет выглядеть в локальных файлах конфигурации, такие как:
~/.aws/credentials
C:\users\awsuser\.aws\credentials
Эти файлы являются большими для хранения пользовательские учетные данные и могут фактически хранить нескольких профилей, каждый со своими учетными данными. Это полезно для переключения между различными средами, такими как Dev и Test.
Учетные данные предоставлены, если Созданы пользователи IAM. Вы несете ответственность за включение этих учетных данных в файл конфигурации.
3. IAM Роли на экземпляре Amazon EC2
СИА роль может быть связан с экземпляром Amazon EC2 в момент запуска. Временные учетные данные будут автоматически предоставляться посредством сервиса метаданных экземпляра через URL:
http://instance-data/latest/meta-data/iam/security-credentials/<role-name>/
Это будет возвращать метаданные, содержащие учетные данные AWS, например:
{
"Code" : "Success",
"LastUpdated" : "2015-08-27T05:09:23Z",
"Type" : "AWS-HMAC",
"AccessKeyId" : "ASIAI5OXLTT3D5NCV5MS",
"SecretAccessKey" : "sGoHyFaVLIsjm4WszUXJfyS1TVN6bAIWIrcFrRlt",
"Token" : "AQoDYXdzED4a4AP79/SbIPdV5N8k....lZwERog07b6rgU=",
"Expiration" : "2015-08-27T11:11:50Z"
}
Эти полномочия имеют наследовать разрешения роли IAM, которая была назначена при запуске экземпляра. Они автоматически вращаются каждые 6 часов (обратите внимание на Expiration
в этом примере, примерно 6 часов после LastUpdated
времени.
приложений, которые используют AWS SDK будет автоматически смотреть на этот URL, чтобы получить учетные данные безопасности. Конечно, они будут только доступны при работе на экземпляре Amazon EC2.
Полномочия Provider цепи
Каждый конкретный AWS SDK (например, Java, .Net, PHP) может выглядеть учетные данные в разных местах. для получения более подробной информации, обратитесь к соответствующая документация, например:
Как вы связать IAM с экземпляром EC2 после того, как уже работает? Это возможно? – vcardillo
Кроме того, приложение просит меня предоставить ключ и секрет. Если он меняется каждые 6 часов, как можно предоставить их в приложение? – vcardillo
Вы не предоставляете их. Приложение автоматически просматривает этот URL-адрес и захватывает текущие учетные данные. Просто назначьте роль экземпляру EC2 во время запуска, и все просто работает! (Например, попробуйте использовать AWS CLI: 'aws s3 ls' перечислит ковши. Посмотрите, работает ли это для вас!) –