BoxLang发布AWS、Azure和Google秘密管理模块

每个生产应用都带有秘密:数据库密码、API 令牌、加密密钥。问题从来不是是否需要管理它们,而是当前的方式会给你带来多大的痛苦。
配置文件中的硬编码凭据会被提交到代码仓库。环境变量在部署管道中随意分布,没有任何审计追踪。为每个云提供商编写自定义集成代码意味着需要维护、测试和轮换三种不同的模式。而当某个密钥需要在凌晨两点轮换时?总有人要起床。
今天,我们发布了三个新的 BoxLang+ 模块,从语言层面解决这个问题:
bx-aws-secrets—— AWS Secrets Managerbx-azure-secrets—— Azure Key Vaultbx-google-secrets—— Google Secret Manager
一套一致的 API。三大主流云提供商。应用代码中无需任何自定义管道。它们还拥有完整的文档:
- https://boxlang.ortusbooks.com/boxlang-+-++/modules/bx-aws-secrets
- https://boxlang.ortusbooks.com/boxlang-+-++/modules/bx-azure-secrets
- https://boxlang.ortusbooks.com/boxlang-+-++/modules/bx-google-secrets
统一模式,统治一切
无论你使用哪个云提供商,接口都一样:
cooooooooooooooooooooooooooooooooooooooooooooode1
就这样。BoxLang 的 getSystemSetting() BIF 能识别云提供商的命名空间。你的应用代码永远不知道秘密存在哪里——这正是关键所在。切换提供商、轮换凭据、在不同环境间迁移:你的代码无需改变。
需要本地开发的回退方案?
cooooooooooooooooooooooooooooooooooooooooooooooooode2
如果秘密无法解析(没有凭据、环境错误、网络问题),BoxLang 会优雅地回退到你的默认值。无需处理异常,无需编写条件逻辑。
安装
通过 CommandBox
coooooooooooooooooooooooooooooooooooooooooooooooooooooode3
通过 BoxLang OS 二进制文件
cooooooooooooooooooooooooooooooooooooooooooooooooooooooode4
三个模块都需要激活的 BoxLang+ 许可证。请参见 boxlang.io/plans 上的套餐。
配置解析方式
每个模块通过清晰的 3 层层级结构解析其设置——每项设置独立解析,因此你可以自由混合来源:
这意味着一个多租户服务器可以运行多个应用,每个应用都有自己的凭据和区域,互不污染。每个应用都会获得专用的客户端实例,在首次使用时创建,并在应用关闭时清理。
每个应用的配置(Application.bx)
coooooooooooooooooooooooooooooooooooooooooooooooooooode5
全局服务器配置(boxlang.json)
cooooooooooooooooooooooooooooooooooooooooooooooooooooode6
实际应用:数据源配置
这才是让人满意的地方。数据源配置中不再有凭据,不再需要环境变量杂耍:
coooooooooooooooooooooooooooooooooooooooooooooooooooooode7
在 AWS Secrets Manager 中轮换秘密后,下一个缓存过期周期会自动获取更新。无需重新部署,无需更改配置,无需凌晨两点的电话。
内置缓存:性能无需妥协
每个秘密调用都会在内存中缓存,并带有可配置的 TTL(默认:300 秒)。缓存键按提供商身份范围划分(AWS 为 region:secretName,Azure 为 vaultUrl:secretName,Google 为 projectId:secretName),因此应用和提供商之间不会泄漏。
计算很简单:一个每分钟处理数千个请求的 BoxLang 应用,如果没有缓存,会产生数千次 Secrets Manager API 调用。有了缓存,每个 TTL 窗口只需一次调用。你的云账单会明显感受到变化。
将 cacheTTL 设置为 0,可在需要每次解析都获取最新值的情况下使用——适用于某些合规场景。
本地开发支持
所有三个模块都提供一流的本地开发支持。
AWS 配合 LocalStack:
coooooooooooooooooooooooooooooooooooooooooooooooooooooooooooode8
cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooode9
Azure 配合 Azure CLI:
cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooode10
Google 配合 gcloud:
coooooooooooooooooooooooooooooooooooooooooooooooooooooooooooode11
在每种情况下,生产环境中运行的同一段应用代码,在本地也能无需任何修改地工作。这就是契约。
环境变量支持
当没有明确设置配置时,所有三个模块都会回退到标准的云提供商环境变量。这使得它们可以即插即用地适配现有的容器和 CI/CD 设置:
Azure 和 Google 还分别支持其托管身份和默认凭据链(DefaultAzureCredential、应用程序默认凭据),因此在 Azure 或 GCP 内运行的工作负载根本不需要显式凭据。
这是一项 BoxLang+ 功能
这些模块仅供 BoxLang+ 和 BoxLang++ 订阅者使用。如果你已经是订阅者,直接安装即可。如果不是,那么这正是看看该层级有哪些内容的好时机。
开始使用
coooooooooooooooooooooooooooooooooooooooooooooooooooooooooooode12
完整文档:
有疑问?加入 Ortus Community —— 我们就在那里。🚀
BoxLang+ 模块是 Ortus Solutions 商业产品的一部分。需要有效的 bx-plus 许可证。查看套餐。
本文 BoxLang AWS, Azure, and Google Secrets Manager Module Released 最初发布于 foojay。