2015-08-27 7 views
2

Документы очень запутывают меня. Я прочитал документы доступа к SQS. Но что действительно бросает меня эта страница: http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-sqs.htmlКак предоставить доступ EC2 к SQS

Вы можете предоставить удостоверение профиль, как и в предыдущем примере, указать ключи доступа непосредственно (через ключ и секретный), или вы можете выбрать пропустить любого учетную информацию, если вы используете AWS Роли идентичности и управления доступом (IAM) для экземпляров EC2 или учетные данные, полученные из переменных AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

1) Что касается того, что я выделил, как это возможно? Я не могу найти шаги, тогда как вы можете предоставить экземплярам EC2 доступ к SQS с использованием ролей IAM. Это очень запутанно.

2) Где бы были размещены вышеупомянутые переменные среды? И откуда вы получите ключ и секрет?

Может кто-то помочь уточнить?

ответ

2

Существует несколько способов, которыми приложения могут открывать учетные данные 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) может выглядеть учетные данные в разных местах. для получения более подробной информации, обратитесь к соответствующая документация, например:

+0

Как вы связать IAM с экземпляром EC2 после того, как уже работает? Это возможно? – vcardillo

+0

Кроме того, приложение просит меня предоставить ключ и секрет. Если он меняется каждые 6 часов, как можно предоставить их в приложение? – vcardillo

+0

Вы не предоставляете их. Приложение автоматически просматривает этот URL-адрес и захватывает текущие учетные данные. Просто назначьте роль экземпляру EC2 во время запуска, и все просто работает! (Например, попробуйте использовать AWS CLI: 'aws s3 ls' перечислит ковши. Посмотрите, работает ли это для вас!) –

Смежные вопросы