开源项目 aws-env 使用教程
项目介绍
aws-env
是一个小型的实用工具,旨在解决在 Docker 容器中以安全方式传递环境变量的问题。它利用 AWS Parameter Store 来安全地存储应用程序的配置,非常适合存储各种秘密信息。aws-env
可以通过两种方式使用:
- 在 Docker 容器内启动应用程序时填充环境变量(默认)。
- 生成 env 文件(--format=dotenv)。
项目快速启动
安装 aws-env
首先,下载适用于您系统的预构建二进制文件:
wget https://github.com/Droplr/aws-env/raw/master/bin/aws-env-linux-amd64 -O aws-env
配置 AWS Parameter Store
将参数添加到 Parameter Store 中,使用层次结构命名:
aws ssm put-parameter --name /prod/my-app/DB_USERNAME --value "Username" --type SecureString --key-id "alias/aws/ssm" --region us-west-2
aws ssm put-parameter --name /prod/my-app/DB_PASSWORD --value "SecretPassword" --type SecureString --key-id "alias/aws/ssm" --region us-west-2
启动应用程序
使用 aws-env
启动您的应用程序:
eval $(./aws-env) && rails s Puma
应用案例和最佳实践
应用案例
假设您有一个 Rails 应用程序,需要从 AWS Parameter Store 中获取数据库的用户名和密码。您可以使用 aws-env
来安全地获取这些环境变量,并启动您的应用程序。
最佳实践
- 使用 IAM Roles:不要在容器内传递 AWS 凭证,而是使用 IAM Roles。
- 使用 KMS 加密:始终使用 KMS 对参数进行加密,并将它们存储为 "SecureString"。
典型生态项目
aws-env
与以下生态项目配合使用效果良好:
- Docker:用于容器化应用程序。
- AWS Parameter Store:用于安全地存储和管理配置参数。
- IAM Roles:用于安全地管理 AWS 访问权限。
通过这些工具的结合使用,您可以确保应用程序的配置信息安全,并且易于管理。