Назад | Перейти на главную страницу

Создайте инстанс Amazon EC2 с автоматическим доступом к приватному S3

Я размышлял. Скажем, у меня есть файл в частной корзине S3, а затем я развертываю экземпляр EC2, который имеет что-то подобное в его rc.local:

ПОЛУЧИТЬ http://privateamazons3url.com

Как мне сделать так, чтобы мой экземпляр EC2, который я развертываю автоматически имеет доступ к моей частной корзине S3, и мне не нужно явно добавлять ее вручную через панель управления AWS.

Причина, по которой я спрашиваю, заключается в том, что я планирую развернуть свой экземпляр EC2 удаленно, используя скрипт python boto с другого сервера, используя образ моментального снимка, и образ моментального снимка будет включать загрузку файла из моей частной корзины S3.

Опция 1

Если ваш новый экземпляр собирается загрузить файл довольно скоро после запуска, вы можете создать общедоступный файл с ограниченным сроком действия:

  1. Создайте ограниченный по времени URL-адрес файла, который вы хотите загрузить. Видеть http://docs.aws.amazon.com/AmazonS3/latest/dev/S3_QSAuth.html
  2. Запустите новый экземпляр, передав сгенерированный URL-адрес в пользовательских данных.
  3. Внутри вашего нового экземпляра прочтите данные пользователя и загрузите файл.

Таким образом, на вашем экземпляре EC2 учетные данные не требуются. Однако ваш общедоступный URL-адрес будет публичным в течение короткого времени.

Вариант 2

Запустите свой новый экземпляр в «роли» EC2. Видеть http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UsingIAM.html#UsingIAMrolesWithAmazonEC2Instances

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

Таким образом, вы можете предоставить своей роли EC2 политику IAM, которая разрешает S3 доступ к вашим файлам.

Если вы хотите предоставить информацию о своем s3 api в строке запроса на снимке, вы можете использовать следующее

http://docs.aws.amazon.com/AmazonS3/latest/dev/S3_QSAuth.html

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