跨各种环境管理 API 密钥、令牌和凭证等敏感数据可能非常棘手,尤其是在开发和部署应用程序时。确保秘密在需要时安全地存储和获取,而不是将它们硬编码到版本控制中,对于维护安全性至关重要。
这就是为什么我创建了 Secrets Loader,这是一个 Bash 脚本,可以动态地将 AWS SSM 和 CloudFormation 中的密钥直接提取到您的 .env 文件中,从而使本地开发和部署更轻松、更安全、更高效。
Secrets Loader 是一个简单的工具,旨在根据 .env 文件中的自定义语法自动从 AWS SSM Parameter Store 和 AWS CloudFormation 输出中获取密钥。它用实际秘密替换占位符,而不会在版本控制中暴露敏感信息。
例如,您可以在 .env 文件中定义它们,如下所示:
THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_ACCESS_KEY_ID="cf:my-stack:AccessKeyId"
只需一个命令,Secrets Loader 即可从 AWS 获取实际值并更新您的 .env 文件,从而保证敏感信息的安全且易于管理。
在本地开发和部署期间,我发现自己正在处理敏感凭据,我不想将这些凭据硬编码到项目文件中。广泛使用 AWS 服务后,我想要一种将秘密管理集成到现有开发工作流程中的方法,而不需要太多麻烦。
以下是 Secrets Loader 解决的主要挑战:
Secrets Loader 具有一些关键功能,使其成为本地开发和生产环境的便捷工具:
Secrets Loader的神奇之处在于它能够根据特定前缀(ssm: 和 cf:)从 AWS 获取机密。这是一个示例工作流程:
THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_SECRET_ACCESS_KEY="cf:my-stack:SecretAccessKey"
THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_SECRET_ACCESS_KEY="cf:my-stack:SecretAccessKey"
THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_SECRET_ACCESS_KEY="cf:my-stack:SecretAccessKey"不再需要硬编码秘密,也不再需要手动查找!
Secrets Loader 的方法:
THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_SECRET_ACCESS_KEY="cf:my-stack:SecretAccessKey"
THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_SECRET_ACCESS_KEY="cf:my-stack:SecretAccessKey"
THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_SECRET_ACCESS_KEY="cf:my-stack:SecretAccessKey"
THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_ACCESS_KEY_ID="cf:my-stack:AccessKeyId"
.env.example 文件:
THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_SECRET_ACCESS_KEY="cf:my-stack:SecretAccessKey"运行秘密加载器:
THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_SECRET_ACCESS_KEY="cf:my-stack:SecretAccessKey"更新的 .env 文件:
THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_ACCESS_KEY_ID="cf:my-stack:AccessKeyId"
Secrets Loader时遇到任何问题,请检查以下事项:
AWS 权限:确保 AWS CLI 配置正确,并且您的 IAM 角色或用户有足够的权限来访问 AWS SSM 和 CloudFormation 密钥。
语法错误:仔细检查 .env 文件中的语法,确保 ssm: 和 cf: 前缀正确。
脚本错误:如果脚本无法获取某些机密,它将记录警告,但会继续获取其他机密。查看日志中是否有任何错误消息,并确保 AWS 资源存在且可访问。
例如,您可以添加 azkv: 前缀以从 Azure Key Vault 获取机密并使用 Azure CLI 处理检索。
Secrets Loader 是开源的,欢迎贡献!如果您想添加功能、修复错误或提出改进建议,请随时:
Secrets Loader 是一个简单、有效的工具,可以简化流程。通过从 AWS SSM 和 CloudFormation 动态获取机密,您可以安全地管理您的凭证,而不会面临在版本控制中暴露的风险。
在 GitHub 上查看该项目,尝试一下,如果您觉得有用,在 GitHub 上给我们一个 ⭐! 您的支持有助于项目成长,我们很乐意听到您的意见反馈或查看您对其持续开发的贡献。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3