如何在EC2中,获取 Secret Manager存储的Secret?

0

【以下的问题经过翻译处理】 你好,我正在执行一个POC,把我的docker-compose .env secrets保存在AWS secret manager中,并将密钥检索到在autoscaling组中运行的EC2实例中的应用程序和在Elastic Beanstalk中运行的另一个应用程序中。 我已经创建了一个实例配置文件和IAM策略,使用secret arn从secret manager中获取密钥。但是每次我部署这个应用程序时,docker-compose无法访问密钥。当我检查容器时,我看到它无法获取密钥。我应该怎么做?

profile picture
专家
已提问 5 个月前21 查看次数
1 回答
0

【以下的回答经过翻译处理】 请查看以下链接。要从运行在EC2实例上的应用程序中访问存储在AWS Secrets Manager中的秘密,您可以使用AWS SDK或CLI命令。

https://boto3.amazonaws.com/v1/documentation/api/latest/guide/secrets-manager.html

更新您的docker-compose.yml文件以使用.env文件:

services:
  your-service:
    image: your-image
    env_file:
      - .env

运行python fetch_secrets.py并生成.env文件,然后运行docker-compose up。

对于运行在Elastic Beanstalk上的应用程序: 在应用程序的根目录中创建一个.ebextensions目录。 在.ebextensions目录中创建一个配置文件,例如01_fetch_secrets.config,其中包含以下内容:

container_commands:
  01_fetch_secrets:
    command: "python fetch_secrets.py"

将fetch_secrets.py脚本包含在应用程序的源代码中。 将应用程序部署到Elastic Beanstalk。在部署期间,Elastic Beanstalk将执行fetch_secrets.py脚本并创建.env文件。您的应用程序现在应该能够访问存储在.env文件中的秘密。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则