我应该如何将敏感环境variables传递给Amazon ECS任务?
将敏感环境variables(如密码)传递给Amazon ECS任务的build议方法是什么? 使用Docker Compose,我可以使用仅键环境variables ,这会导致从OS环境中读取值。 但是我看不到任何相应的ECS任务定义方法。
在你发布的任务定义链接中有一个“环境”部分,可以让你做到这一点。 他们成为容器内的环境variables。
如果你的意思是你想保持任务定义之外的信息,并且该任务可以引用它,那么你不能。 在这种情况下,最好的办法是让你的容器从外部源获取这些信息,而不是ECS任务configuration尝试引用它。
您可以使用Parameter Store来存储variables。 它也支持encryption,如果你把它们作为SecureString
存储的话。
您可以在任务定义中将它们作为环境variables引用。
您需要在容器启动脚本中检索它们
value_from_parameter_store =`aws ssm get-parameters --names parameter_store_key --with-decryption --region $REGION --output text 2>& 1| awk '{print $4}'`
你也可以提到parameter_store_key
作为环境variables。 这样你可以使用$parameter_store_key
Marc Young提到的从S3中抽取环境variables的实现:
https://www.promptworks.com/blog/handling-environment-secrets-in-docker-on-the-aws-container-service
如果您使用环境variables,则可以在loginAWS控制台时看到它们。 AWS已经编写了一个使用适当的“秘密”来保持敏感数据隐藏的指南。 这些容器在启动时加载到基于内存的环境variables中。 这是一个指南: https : //aws.amazon.com/blogs/security/how-to-manage-secrets-for-amazon-ec2-container-service-based-applications-by-using-amazon-s3-and-泊坞窗/