目标

https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html

Amazon ECS 使您能够通过将敏感数据存储在 AWS Secrets Manager 密钥或 AWS Systems Manager Parameter Store 参数中,然后在容器定义中引用它们来将敏感数据注入容器。使用 EC2 和 Fargate 启动类型的任务都支持此功能。

将参数注入 ECS 上的容器很有用。

我也想将此方法用于本地机器上的容器。

因为我调试的时候经常在本地机器上运行容器。

如何

示例

将名为 ServiceSettings 的参数从 Secret Manager 或 SSM Parameter Store 注入到本地计算机上的容器中。

前提条件

AWS CLI 已安装。

外壳

使用 Secret Manager 时。

setting=`aws secretsmanager get-secret-value --secret-id ServiceSetting --output text --query 'SecretString'`

docker run -it \
    -e  SERVICE_SETTING=$setting \
  ...

进入全屏模式 退出全屏模式

关键是使用“--output text”选项。

使用 SSM 参数存储时

setting=`aws ssm get-parameter --name ServiceSetting --with-decryption --output text --query Parameter.Value | tr -d ' \n'`

docker run -it \
    -e  SERVICE_SETTING=$setting \
  ...

进入全屏模式 退出全屏模式

关键是使用“tr”删除空格和换行符。

并在加密参数时使用“--with-decryption”选项。

结果

ECS 和本地机器不再需要更改在应用程序代码中捕获环境变量的方式。

Logo

云原生社区为您提供最前沿的新闻资讯和知识内容

更多推荐