如何在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
EXPERTE
gefragt vor 6 Monaten39 Aufrufe
1 Antwort
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
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen