2015-01-18 2 views
0

Я развертываю проект на основе Django на AWAS Elastic Beanstalk. Я следую примеру Amazon, где я добавляю свои учетные данные (ACCESS_KEY/SECRET) в свой app.config в каталоге .ebextentions.Есть ли способ избежать хранения AWS_SECRET_KEY на .ebextensions?

В тот же конфигурационный файл имеет:

container_commands: 
    01_syncdb: 
    command: "django-admin.py migrate --noinput" 
    leader_only: true 
    02_collectstatic: 
    command: "django-admin.py collectstatic --noinput" 
    leader_only: true 

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

Я попытался удалить учетные данные, а затем добавить их с помощью «eb setenv», но проблема в том, что две команды django требуют установки этих параметров в среде.

Я использую v3 консоли:

eb create -db -c foo bar --profile foobar 

где foobar это имя профиля под ~/.aws/полномочия, и где я хочу, чтобы мои секретные полномочия

Что такое лучшие методы безопасности для учетных данных AWS с использованием EB?

Заранее спасибо.

+2

Я не знаком с '.ebextensions', но лучше создаю конкретную роль IAM для своей цели и использую ее. Это более безопасно, чем привилегии администратора для любой конкретной задачи. Таким образом, вы также можете аннулировать эти учетные данные, если он взломан, и вы не подвергаете свою учетную запись AWS в целом. – alfasin

+0

Да, по доверенности, я имею в виду роль IAM, но IAM, который мне нужен для Elastic Beanstalk, по-прежнему очень мощный, и мне нужно защитить. – dkarchmer

+0

Что такое проблема с 'eb setenv'? это способ сделать это. – Tal

ответ

0

Я закончил удаление коллекционного шага из файла конфигурации и просто позабочусь о загрузке статики на стороне сборки.

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

0

Одним из решений является сохранение учетных данных AWS, но создание политики, которая ТОЛЬКО позволяет им POST-объекты в одном ведре, используемом для/static.