Я размышлял. Скажем, у меня есть файл в частной корзине S3, а затем я развертываю экземпляр EC2, который имеет что-то подобное в его rc.local:
ПОЛУЧИТЬ http://privateamazons3url.com
Как мне сделать так, чтобы мой экземпляр EC2, который я развертываю автоматически имеет доступ к моей частной корзине S3, и мне не нужно явно добавлять ее вручную через панель управления AWS.
Причина, по которой я спрашиваю, заключается в том, что я планирую развернуть свой экземпляр EC2 удаленно, используя скрипт python boto с другого сервера, используя образ моментального снимка, и образ моментального снимка будет включать загрузку файла из моей частной корзины S3.
Опция 1
Если ваш новый экземпляр собирается загрузить файл довольно скоро после запуска, вы можете создать общедоступный файл с ограниченным сроком действия:
Таким образом, на вашем экземпляре 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 для использования в строке запроса.