最近,亚马逊云科技发布了 AWS Workload Credentials Provider。该工具可以自动为应用程序分发和刷新证书及密钥。这款开源工具减少了对自定义自动化方案的需求,有助于防止因证书过期而导致的系统中断,并且既可以在 AWS 环境中运行,也可以在非 AWS 环境中运行。
这个新工具支持 ACM 证书导出,并且可以对公共和私有 TLS 证书进行自动续期。它提供了一个本地凭证层,用于检索、缓存、导出和自动刷新密钥及证书。它还能缓存来自 AWS Secrets Manager 的密钥,并且兼容现有的 Secrets Manager Agent 部署。
对于使用 AWS Secrets Manager 和 AWS Certificate Manager 的组织而言,这项新服务可以视为 Vault Agent 在凭证和证书交付方面的 AWS 原生替代方案。普华永道加速中心(PwC Acceleration Centers)高级云架构师 Ashish Kasaudhan 解释道:
多年来,HashiCorp Vault Agent 为这一问题提供了一个简洁的解决方案:一次认证,本地缓存,将凭证写入磁盘,并自动刷新。虽然亚马逊云科技提供了出色的托管服务来存储密钥和证书,但他们从未在客户端提供过等效的第一方解决方案(……)密钥管理的隐性成本并非 API 调用,而是运维复杂性。
根据文档,Workload Credentials Provider 在 Linux(需要 systemd)和 Windows(需 PowerShell 5.1 或更高版本)上均以系统服务的形式运行,由一个专用的低权限用户管理,并以受限的权限写入证书文件。该组件之前名为 AWS Secrets Manager Agent,可以用于在 AWS 和本地环境中运行的工作负载。
该项目每 24 小时会自动检查已配置的证书,并且仅在证书内容发生变化时才导出并更新本地文件。当发生更新时,它可以触发命令,重新加载依赖的服务,如 NGINX 或 Apache 。此外,在启动时,该项目会执行初始刷新,采用随机定时机制来防止大规模的同步 API 请求,并支持动态重新加载配置,因此不需要重新安装服务即可添加或修改证书设置。最多可配置 50 个证书,每个证书都在各自独立的管理进程中运行。
[logging]log_level = "info"log_to_file = true[capabilities.acm]enabled = true[[capabilities.acm.certificates]]certificate_arn = "arn:aws:acm:us-west-2:123456789012:certificate/abcd1234-5678-90ab-cdef-EXAMPLE11111"role_arn = "arn:aws:iam::123456789012:role/ACMExportRole"certificate_path = "/etc/pki/tls/certs/example.com.crt"private_key_path = "/etc/pki/tls/private/example.com.key"chain_path = "/etc/pki/tls/certs/example.com-chain.pem"refresh_command = "/usr/sbin/nginx -s reload"配置文件示例(图片来源:AWS 文档)
市场的初步反响比较积极,从业者将其视为一种用于本地密钥和证书分发的 AWS 原生替代方案。The Duckbill Group 首席云经济学家 Corey Quinn 在其新闻通讯中写道:
这名字恐怕只有委员会才会喜欢。它能自动化处理证书续期定时任务,而你自 2019 年以来一直靠“临时拼凑”和 EventBridge(在它改名为 EventBridge 之前)来维持这个任务。它完全开源且免费,这意味着亚马逊云科技将通过 Secrets Manager 的账单来收回成本,所以他们会此乐此不疲地进行缓存。运维团队终于可以在证书到期的那个周末睡个安稳觉了。我的意思是,他们本来就一直睡得很好,但说出来未免太失礼了。
虽然该提供程序本身免费,但使用 Secrets Manager 和 ACM 会产生相关费用。Workload Credentials Provider 通过一个 TOML 文件进行配置,开发人员可以在其中定义证书设置、输出路径、刷新命令及其他运行时选项。该提供程序遵循 Apache-2.0 许可,并且已经在 GitHub 上提供。
原文链接:https://www.infoq.com/news/2026/06/aws-credentials-provider/





