Ohhnews

分类导航

$ cd ..
foojay原文

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

#boxlang#秘密管理#云服务#api统一#凭证安全

![](https://foojay.io/wp-content/uploads/2026/07/boxlang-secrets-700x467.jpg)

每个生产应用都带有秘密:数据库密码、API 令牌、加密密钥。问题从来不是是否需要管理它们,而是当前的方式会给你带来多大的痛苦。

配置文件中的硬编码凭据会被提交到代码仓库。环境变量在部署管道中随意分布,没有任何审计追踪。为每个云提供商编写自定义集成代码意味着需要维护、测试和轮换三种不同的模式。而当某个密钥需要在凌晨两点轮换时?总有人要起床。

今天,我们发布了三个新的 BoxLang+ 模块,从语言层面解决这个问题:

  • bx-aws-secrets —— AWS Secrets Manager
  • bx-azure-secrets —— Azure Key Vault
  • bx-google-secrets —— Google Secret Manager

一套一致的 API。三大主流云提供商。应用代码中无需任何自定义管道。它们还拥有完整的文档:

统一模式,统治一切

无论你使用哪个云提供商,接口都一样:

cooooooooooooooooooooooooooooooooooooooooooooode1

就这样。BoxLang 的 getSystemSetting() BIF 能识别云提供商的命名空间。你的应用代码永远不知道秘密存在哪里——这正是关键所在。切换提供商、轮换凭据、在不同环境间迁移:你的代码无需改变。

需要本地开发的回退方案?

cooooooooooooooooooooooooooooooooooooooooooooooooode2

如果秘密无法解析(没有凭据、环境错误、网络问题),BoxLang 会优雅地回退到你的默认值。无需处理异常,无需编写条件逻辑。

安装

通过 CommandBox

coooooooooooooooooooooooooooooooooooooooooooooooooooooode3

通过 BoxLang OS 二进制文件

cooooooooooooooooooooooooooooooooooooooooooooooooooooooode4

三个模块都需要激活的 BoxLang+ 许可证。请参见 boxlang.io/plans 上的套餐。

配置解析方式

每个模块通过清晰的 3 层层级结构解析其设置——每项设置独立解析,因此你可以自由混合来源:

优先级来源用途
第1层Application.bx 中的 this.aws / this.azure / this.google每个应用的隔离
第2层boxlang.json 中的模块设置全局服务器默认值
第3层云提供商环境变量CI/CD 流水线、容器

这意味着一个多租户服务器可以运行多个应用,每个应用都有自己的凭据和区域,互不污染。每个应用都会获得专用的客户端实例,在首次使用时创建,并在应用关闭时清理。

每个应用的配置(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 设置:

模块关键变量
bx-aws-secretsAWS_REGION, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN
bx-azure-secretsAZURE_KEY_VAULT_URL, AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET
bx-google-secretsGOOGLE_CLOUD_PROJECT, GOOGLE_APPLICATION_CREDENTIALS

Azure 和 Google 还分别支持其托管身份和默认凭据链(DefaultAzureCredential、应用程序默认凭据),因此在 Azure 或 GCP 内运行的工作负载根本不需要显式凭据。

这是一项 BoxLang+ 功能

这些模块仅供 BoxLang+BoxLang++ 订阅者使用。如果你已经是订阅者,直接安装即可。如果不是,那么这正是看看该层级有哪些内容的好时机。

探索 BoxLang 套餐

开始使用

coooooooooooooooooooooooooooooooooooooooooooooooooooooooooooode12

完整文档:

有疑问?加入 Ortus Community —— 我们就在那里。🚀

BoxLang+ 模块是 Ortus Solutions 商业产品的一部分。需要有效的 bx-plus 许可证。查看套餐

本文 BoxLang AWS, Azure, and Google Secrets Manager Module Released 最初发布于 foojay