我应该如何将秘密环境变量传递给 Elastic Beanstalk 上的 Docker 应用程序?
How should I pass secret environment variables to Docker application on Elastic Beanstalk?
我目前 运行 一个部署在 AWS Elastic Beanstalk 上 Docker 应用程序上的节点服务器,我有几个应该隐藏的环境变量,比如数据库 URL 和 JWT 秘密。通过 Elastic Beanstalk 应用程序配置传递它们是最佳的,但它不起作用,因为我试图在 Docker 容器中访问它们,该容器不接收那些环境变量。
我已经看到了很多关于这个的答案,但在我看来,它们都涉及将实际变量值放在 Dockerrun.aws.json
或 Dockerfile
之类的地方,它们都会添加存储库的秘密值,将它们暴露给我通过 CodePipeline 部署的 public GitHub 存储库。那么,我应该如何将这些秘密环境变量传递给 Docker 容器呢?有没有办法引用我的 Dockerfile
或 docker-compose.yml
文件中的变量并将它们传递下去?我可以使用其他一些 Elastic Beanstalk 配置吗?任何建议将不胜感激。
Is there some other Elastic Beanstalk config I can use?
是的。通常,您会在 AWS Secret Manager 或 SSM Parameter Store 中设置您的密钥。然后,您的应用程序,无论是 docker、EB 还是其他任何应用程序,都将使用 AWS SDK 直接从这些秘密保险库中获取 秘密。
这不仅是一个很好的做法,而且您也不必在真正需要之前公开您的秘密。您只能在真正使用它们之前访问它们,这样可以减少泄漏的可能性。
我目前 运行 一个部署在 AWS Elastic Beanstalk 上 Docker 应用程序上的节点服务器,我有几个应该隐藏的环境变量,比如数据库 URL 和 JWT 秘密。通过 Elastic Beanstalk 应用程序配置传递它们是最佳的,但它不起作用,因为我试图在 Docker 容器中访问它们,该容器不接收那些环境变量。
我已经看到了很多关于这个的答案,但在我看来,它们都涉及将实际变量值放在 Dockerrun.aws.json
或 Dockerfile
之类的地方,它们都会添加存储库的秘密值,将它们暴露给我通过 CodePipeline 部署的 public GitHub 存储库。那么,我应该如何将这些秘密环境变量传递给 Docker 容器呢?有没有办法引用我的 Dockerfile
或 docker-compose.yml
文件中的变量并将它们传递下去?我可以使用其他一些 Elastic Beanstalk 配置吗?任何建议将不胜感激。
Is there some other Elastic Beanstalk config I can use?
是的。通常,您会在 AWS Secret Manager 或 SSM Parameter Store 中设置您的密钥。然后,您的应用程序,无论是 docker、EB 还是其他任何应用程序,都将使用 AWS SDK 直接从这些秘密保险库中获取 秘密。
这不仅是一个很好的做法,而且您也不必在真正需要之前公开您的秘密。您只能在真正使用它们之前访问它们,这样可以减少泄漏的可能性。