mcpField
A
azure-key-vault

azure-key-vault

github.com/vinayaklatthe安全17977 次安装1 天前更新
代码仓库

关于 azure-key-vault

面向 Azure 应用与安全架构设计者,提供 Key Vault 密钥、机密和证书管理的配置指导,涵盖访问控制、网络隔离与生命周期管理。

主要功能

  1. 01选择 Standard Key Vault 或 Managed HSM
  2. 02设计 RBAC 与托管身份访问
  3. 03规划软删除和清除保护
  4. 04配置专用终结点与网络限制
  5. 05制定密钥和证书轮换策略

适用场景

  1. 01为应用设计按环境隔离的保管库
  2. 02配置应用通过托管身份读取机密
  3. 03规划客户管理密钥与 HSM
  4. 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。

实施方法

  1. 数据平面使用 Azure RBAC — 将 vault 切换为 RBAC 权限模型(而不是旧版访问策略)。将最低权限角色(Key Vault Secrets User、Key Vault Crypto User)分配给托管标识,而非用户帐户。 验证:vault 的 enableRbacAuthorization = true;生产环境中没有用户拥有 Key Vault Administrator 角色。

  2. 应用通过托管标识和 Key Vault 引用进行访问 — 应用使用系统分配或用户分配的托管标识进行身份验证,并在运行时获取机密。 对于 App Service / Functions,请在应用设置中使用 Key Vault 引用 - @Microsoft.KeyVault(SecretUri=...) - 无需更改 SDK 代码。 验证:源代码中没有明文机密;托管标识仅在目标 vault 上拥有机密读取角色。

  3. 启用软删除 + 清除保护 — 默认已启用软删除;启用清除保护,使意外或恶意删除的密钥在 90 天内无法被永久清除。CMK 和大多数合规场景都要求启用此功能。 验证:softDeleteRetentionInDays >= 7;enablePurgeProtection = true。

  4. 限制网络访问 — 对于敏感 vault,禁用公共网络访问,并在工作负载 VNet 中使用专用终结点。其余网络流量通过服务标记或所选网络进行防火墙限制。 验证:publicNetworkAccess = Disabled;专用终结点可解析;从互联网进行的公共 IP 测试被阻止。

  5. 每个应用、每个环境使用一个 vault — 限制每个应用的影响范围。跨应用读取必须通过角色授权,并会留下审计记录。不要把机密统统放进一个共享 vault。

  6. 自动轮换 + 监控过期时间 — 为机密 / 证书设置过期时间;使用轮换策略,从颁发者处自动续订证书;对于机密,使用 Event Grid → Logic App / Function 在机密源头执行轮换,并更新机密值。 验证:生产环境中没有过期时间为 NULL 的机密;任何证书或机密过期前 60 天都会触发警报。

  7. 监控 + 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

评论

支持 Markdown