2014-02-08 4 views
3

Я пытаюсь предоставить свои экземпляры EC2 в Elastic Beanstalk с некоторыми ключами ssh из частного ведра S3. Вот отрывок из моей .ebextensions/.config:Предоставление доступа S3 к экземплярам эластичных фасонов

files: 
    "/root/.ssh/id_rsa" : 
    mode: "000400" 
    ownder: root 
    group: root 
    source: https://s3-us-west-2.amazonaws.com/<bucket>/<app>_id_rsa 

К сожалению, я получаю 403 ответа от S3. Есть ли способ предоставить доступ к экземплярам EC2 с помощью группы безопасности? Я не могу предоставить каждому экземпляру доступ индивидуально, поскольку я не буду знать их IP-адреса до их масштабирования. Есть ли другой способ предоставить только этот доступ к Elastic Beanstalk? У меня возникли проблемы с хорошей вещественной политикой S3 ...

+0

Вы пытались добавить 'ss-elasticbeanstalk-ec2-role' в S3? – kukido

+0

Это сработало для меня: http://stackoverflow.com/questions/26394673/permission-denied-while-elastic-beanstalk-is-retrieving-s3-file –

ответ

4

Вы можете настроить роль IAM для доступа S3 и назначить роль IAM для EC2.

IAM Roles for Amazon EC2

+1

Просто чтобы добавить дополнительную ясность: должна быть роль IAM уже для 'aws-elasticbeanstalk-ec2-role', к которому вы можете присоединить новую политику для вашего доступа к вебе s3 в своей веб-консоли роли IAM. При этом я считаю более разумным создавать новые роли для разных сред. – chaseadamsio

+1

Я был введен в заблуждение несколькими другими вкладами для этой проблемы, а именно, пытаясь обмануть «Ведомую политику». Оказывается, вы должны добавить политику 'AmazonS3FullAccess' в' aws-elasticbeanstalk-ec2-role' – tom

0

Согласно Amazon документации, вам нужно использовать ключ ресурса с добавить аутентификации для загрузки файла личное от s3 ведра. Вот пример с их сайта:

Resources: 
     AWSEBAutoScalingGroup: 
     Metadata: 
      AWS::CloudFormation::Authentication: 
      **S3Auth:** 
       type: "s3" 
       buckets: ["**elasticbeanstalk-us-west-2-123456789012**"] 
       roleName: 
       "Fn::GetOptionSetting": 
        Namespace: "aws:autoscaling:launchconfiguration" 
        OptionName: "IamInstanceProfile" 
        DefaultValue: "***aws-elasticbeanstalk-ec2-role***" 

files: 
    "**/tmp/data.json**" : 
    mode: "000755" 
    owner: root 
    group: root 
    authentication: "**S3Auth**" 
    source: **https://s3-us-west-2.amazonaws.com/elasticbeanstalk-us-west-2-123456789012/data.json** 

всего текст выделены жирным шрифтом, необходимо заменить с пользовательским контентом, уникальным для вашей среды, за исключением AWS-elasticbeanstalk-ec2-роль которая является IAM ролью среда, созданная по умолчанию, вы можете заменить ее другой ролью IAM. Как только ресурс будет идентифицирован, вы можете повторно использовать как можно больше файлов. Вы можете получить более подробную информацию здесь. http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html#linux-files

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