关于 azure-key-vault
面向 Azure 应用与安全架构设计者,提供 Key Vault 密钥、机密和证书管理的配置指导,涵盖访问控制、网络隔离与生命周期管理。
主要功能
- 01选择 Standard Key Vault 或 Managed HSM
- 02设计 RBAC 与托管身份访问
- 03规划软删除和清除保护
- 04配置专用终结点与网络限制
- 05制定密钥和证书轮换策略
适用场景
- 01为应用设计按环境隔离的保管库
- 02配置应用通过托管身份读取机密
- 03规划客户管理密钥与 HSM
- 04设置证书到期监控和自动轮换
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ vinayaklatthe/ microsoft-security-skills --skill azure-key-vault安装后在 Claude Code 中输入/azure-key-vault确认已加载。
详细介绍
Azure Key Vault
Azure Key Vault 可集中、安全地存储机密、密钥和证书,并提供基于 RBAC 的访问控制、网络隔离、日志记录和生命周期自动化,让应用无需在代码中嵌入凭据,并确保加密材料拥有受管理的生命周期。
适用场景
管理应用机密、加密密钥(包括客户管理的密钥 / BYOK)和 TLS 证书。使用此技能来选择标准版还是 Managed HSM、设计访问权限并规划轮换。
以下场景不适用此技能:CA 设计(pki-design)、仅限 Entra 应用凭据(entra-id)或 PaaS 网络拓扑(azure-network-security-design)。
选择 Key Vault 类型和访问模型
| 需求 | 选择 | 说明 |
|---|---|---|
| 应用机密、TLS 证书、软件保护的密钥 | 标准版 Key Vault | 默认选择;FIPS 140-2 Level 2 |
| 单租户 HSM,密钥符合 FIPS 140-3 Level 3(CMK、根 CA) | Managed HSM | 受监管的工作负载 |
| 按应用、按环境隔离 | 每个应用、每个环境使用一个 vault | 限制影响范围 |
| 应用在运行时读取机密 | 托管标识 + RBAC(Key Vault Secrets User) | 代码中不存放机密 |
| App Service / Functions 配置中的机密 | 应用设置中的 Key Vault 引用 | 无需更改代码 |
| Storage / SQL 的客户管理密钥 | Key Vault(或 HSM)中的密钥 + 标识授权 | 可独立轮换 |
经验法则: 每个应用、每个环境使用一个 vault(dev / test / prod)。不要让多个应用共用一个 vault——某个应用的标识一旦遭到入侵,攻击者就能读取其他所有应用的机密。只有在监管机构或 CMK 边界要求 FIPS 140-3 Level 3 时才使用 Managed HSM。
实施方法
-
数据平面使用 Azure RBAC — 将 vault 切换为 RBAC 权限模型(而不是旧版访问策略)。将最低权限角色(
Key Vault Secrets User、Key Vault Crypto User)分配给托管标识,而非用户帐户。 验证:vault 的enableRbacAuthorization = true;生产环境中没有用户拥有Key Vault Administrator角色。 -
应用通过托管标识和 Key Vault 引用进行访问 — 应用使用系统分配或用户分配的托管标识进行身份验证,并在运行时获取机密。 对于 App Service / Functions,请在应用设置中使用 Key Vault 引用 -
@Microsoft.KeyVault(SecretUri=...)- 无需更改 SDK 代码。 验证:源代码中没有明文机密;托管标识仅在目标 vault 上拥有机密读取角色。 -
启用软删除 + 清除保护 — 默认已启用软删除;启用清除保护,使意外或恶意删除的密钥在 90 天内无法被永久清除。CMK 和大多数合规场景都要求启用此功能。 验证:
softDeleteRetentionInDays >= 7;enablePurgeProtection = true。 -
限制网络访问 — 对于敏感 vault,禁用公共网络访问,并在工作负载 VNet 中使用专用终结点。其余网络流量通过服务标记或所选网络进行防火墙限制。 验证:
publicNetworkAccess = Disabled;专用终结点可解析;从互联网进行的公共 IP 测试被阻止。 -
每个应用、每个环境使用一个 vault — 限制每个应用的影响范围。跨应用读取必须通过角色授权,并会留下审计记录。不要把机密统统放进一个共享 vault。
-
自动轮换 + 监控过期时间 — 为机密 / 证书设置过期时间;使用轮换策略,从颁发者处自动续订证书;对于机密,使用 Event Grid → Logic App / Function 在机密源头执行轮换,并更新机密值。 验证:生产环境中没有过期时间为 NULL 的机密;任何证书或机密过期前 60 天都会触发警报。
-
监控 + Defender — 启用诊断日志并发送到 Log Analytics;启用 Defender for Key Vault,以检测异常访问。
防护措施
- 每个应用、每个环境使用一个保管库,可限制影响范围并简化访问控制。 共用保管库是权限过度的反模式。
- 启用清除保护后不可撤销——这是 CMK 和许多合规场景的要求。 启用前请审慎考虑。
- 切勿将机密存储在源代码或配置中;请使用托管标识和 Key Vault 引用。 存储在代码中的机密可能通过代码仓库、日志和环境变量转储泄露。
- 对敏感保管库禁用公共网络访问。 对互联网开放的 Key Vault 容易成为暴力破解和凭据喷洒攻击的目标。
- 使用 RBAC,而非访问策略。 RBAC 是现代模型,支持适当的继承和符合 PIM 条件的角色。
- 不要向应用授予
Key Vault Administrator角色。 应用只需读取机密或密钥,无需管理员权限。
常见反模式
- “所有应用共用一个‘企业级’ Key Vault”——一个应用遭到入侵,就能读取所有人的机密。应按应用、按环境分别设置。
- “一直以来都用访问策略,所以继续用”——这是旧版方式,审计更困难。请使用 RBAC。
- “不启用清除保护——我们可能需要删除”——首次恶意或意外清除就会导致数据丢失。请启用清除保护,并妥善应对其不可撤销性。
- “为了方便而启用公共网络访问”——会暴露在互联网中。请使用专用终结点和防火墙。
- “将机密以明文形式放在 App Service 应用程序设置中”——任何能读取配置的人都能看到。请使用 Key Vault 引用。
- “没有过期时间,也不轮换”——长期有效的机密会持续带来风险。请设置过期时间并制定轮换策略。
- “应用和 CA 根密钥使用同一个保管库”——影响范围混杂。CA / HSM 密钥应存放在 Managed HSM 中,与应用机密保管库分开。
示例提示词
Set up Azure Key Vault with RBAC, purge protection, and a private endpoint.Configure an App Service to read secrets via managed identity and Key Vault references.When should I use Managed HSM instead of standard Key Vault?Plan one-vault-per-app-per-environment for our microservices estate.Automate certificate rotation in Key Vault with a 60-day expiry alert.Review my Key Vault access model for least privilege.
Microsoft Learn
- Key Vault 概述:https://learn.microsoft.com/azure/key-vault/general/overview
- 安全功能:https://learn.microsoft.com/azure/key-vault/general/security-features
- RBAC 指南:https://learn.microsoft.com/azure/key-vault/general/rbac-guide
- 软删除与清除保护:https://learn.microsoft.com/azure/key-vault/general/soft-delete-overview
- 专用终结点:https://learn.microsoft.com/azure/key-vault/general/private-link-service
- App Service 中的 Key Vault 引用:https://learn.microsoft.com/azure/app-service/app-service-key-vault-references
- Managed HSM:https://learn.microsoft.com/azure/key-vault/managed-hsm/overview
- Key Vault 的 Defender:https://learn.microsoft.com/azure/defender-for-cloud/defender-for-key-vault-introduction