如何在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
エキスパート
質問済み 6ヶ月前26ビュー
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
エキスパート
回答済み 6ヶ月前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン