有没有办法避免将 AWS_SECRET_KEY 存储在 .ebextensions 上?

Is there a way to avoid storing the AWS_SECRET_KEY on the .ebextensions?

我正在 AWS Elastic Beanstalk 上部署一个基于 Django 的项目。我一直在关注 Amazon 示例,我将我的凭据 (ACCESS_KEY/SECRET) 添加到 .ebextentions 目录下的 app.config。

相同的配置文件有:

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 cli:

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

其中 foobar 是 ~/.aws/credentials 下的配置文件名称,也是我想保存我的秘密凭据的地方

使用 EB 的 AWS 凭证的最佳安全实践是什么?

提前致谢。

一种解决方案是保留 AWS 凭据,但创建一个策略,只允许它们 POST 用于 /static 的一个存储桶上的对象。

我最终从配置文件中删除了 collecstatic 步骤,只负责在构建端上传静态数据。

之后,可以删除所有凭据,所有其他 boto 命令将从 EC2 实例上的安全角色获取凭据。