0Pricing
Cloud & IT Cert Prep · 课时

Azure Key Vault

在 Key Vault 中存储和管理机密、加密密钥和证书,并将其与其他 Azure 服务集成,以避免凭据硬编码。

Azure Key Vault 是 CoddyKit 上的免费 Cloud & IT Cert Prep 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cloud & IT Cert Prep 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cloud & IT Cert Prep 课程共包含 4 节课。

什么是 Azure Key Vault?

Azure Key Vault 是一项用于安全存储和管理机密(API 密钥、密码、连接字符串)、加密密钥(用于加密数据)和证书(应用程序使用的 TLS/SSL 证书)的云服务。应用程序无需将敏感值嵌入应用程序代码、配置文件或环境变量中,而是在运行时从 Key Vault 中检索这些值,从而避免凭据出现在源代码和部署构件中。

Key Vault 层级:Standard 与 Premium

Key Vault 提供两个层级。Standard 使用基于软件的加密来保护机密和证书。Premium 增加了对受硬件安全模块 (HSM) 保护的密钥的支持:加密操作在具备防篡改能力的硬件内部执行,并提供 FIPS 140-2 Level 2(Standard)或 Level 3(HSM)认证。另有一项独立服务Managed HSM,可提供单租户、完全托管的 HSM,以满足最高级别的保障要求。

创建 Key Vault

每个 Key Vault 都会在特定的 Azure 资源组和区域中创建。保管库名称在 vault.azure.net 命名空间内必须全局唯一。创建时需要配置访问模型:可以选择较早的保管库访问策略模型,也可以选择推荐的Azure RBAC模型,由 Entra ID 角色分别控制对机密、密钥和证书的读取与写入访问。

# Create a Key Vault with RBAC access model
az keyvault create \
  --name myUniqueVault123 \
  --resource-group myRG \
  --location eastus \
  --enable-rbac-authorization true

# Grant yourself the Key Vault Secrets Officer role
az role assignment create \
  --role 'Key Vault Secrets Officer' \
  --assignee your-user@company.com \
  --scope /subscriptions/<sub-id>/resourceGroups/myRG/providers/Microsoft.KeyVault/vaults/myUniqueVault123

存储和检索机密

Key Vault 中的机密是指任何敏感字符串值,例如数据库密码、API 密钥、OAuth 客户端机密和存储帐户连接字符串。每个机密都有名称和值,还可以包含过期日期、启用标志等可选属性。应用程序向 Key Vault 进行身份验证(通常使用托管标识),并调用 Key Vault REST API 在运行时检索当前机密值,因此任何位置都不需要硬编码值。

# Store a database password as a secret
az keyvault secret set \
  --vault-name myUniqueVault123 \
  --name db-password \
  --value 'SuperSecret!42'

# Retrieve the secret value
az keyvault secret show \
  --vault-name myUniqueVault123 \
  --name db-password \
  --query value \
  --output tsv

管理加密密钥

Key Vault 存储用于加密和解密数据的加密密钥。Azure Storage、Azure SQL Database 和 Azure Disk Encryption 等服务可以与 Key Vault 集成,在自带密钥 (BYOK) 场景中使用客户管理的密钥 (CMK)。使用 CMK 时,您可以保留对加密密钥的控制权:在 Key Vault 中撤销密钥后,任何服务都会立即无法解密数据,从而为您提供一个加密级的紧急开关。

# Create an RSA key in Key Vault
az keyvault key create \
  --vault-name myUniqueVault123 \
  --name myEncryptionKey \
  --kty RSA \
  --size 2048

# Enable CMK on a Storage Account
az storage account update \
  --resource-group myRG \
  --name mystorageaccount \
  --encryption-key-vault myUniqueVault123 \
  --encryption-key-name myEncryptionKey \
  --encryption-key-source Microsoft.Keyvault

证书管理

Key Vault 可以充当 TLS 证书的证书颁发机构接口。您可以生成自签名证书、导入现有的 PFX/PEM 文件,或将 Key Vault 配置为从 DigiCert 或 GlobalSign 等受信任的 CA 自动请求和续订证书。证书即将过期时,Key Vault 可以自动续订证书,并通过 Event Grid 事件通知管理员,从而免除手动续订工作流。

# Import an existing certificate
az keyvault certificate import \
  --vault-name myUniqueVault123 \
  --name myCert \
  --file certificate.pfx \
  --password 'CertPassword'

访问控制:RBAC 与访问策略

Key Vault 支持两种访问模型。保管库访问策略是旧版模型,您可以向主体授予对保管库中所有机密、密钥或证书的权限,但无法将访问权限限制到单个机密名称。较新的推荐模型是Azure RBAC 模型,它使用标准 RBAC 角色(Key Vault Secrets User、Key Vault Secrets Officer 等),并支持拒绝分配和特权身份管理,从而提供更加细粒度的控制。

将 Key Vault 与 App Service 集成

一种常见模式是将 Key Vault 机密作为App Service 应用程序设置进行引用。您无需将机密值存储在应用设置中,而是存储一个 Key Vault 引用:@Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/db-password/)。App Service 会在运行时使用应用的托管标识自动检索当前机密值。如果 Key Vault 中的机密发生轮换,应用会在下次重启时获取新值。

# Set an App Service app setting as a Key Vault reference
az webapp config appsettings set \
  --resource-group myRG \
  --name myWebApp \
  --settings 'DB_PASSWORD=@Microsoft.KeyVault(SecretUri=https://myUniqueVault123.vault.azure.net/secrets/db-password/)'

软删除和清除保护

软删除(默认启用)会将已删除的 Key Vault 项保留 7 到 90 天,以便在误删时恢复。启用清除保护后,在保留期到期前,任何人(包括订阅所有者)都无法永久清除软删除的保管库或其中的对象。出于法规合规性和抵御勒索软件的目的,同时启用这两项功能是由 Azure Policy 强制执行的安全最佳实践。

# Recover a soft-deleted secret
az keyvault secret recover \
  --vault-name myUniqueVault123 \
  --name db-password

监视和审计 Key Vault 访问

针对 Key Vault 执行的每项操作(读取、写入、证书续订和密钥使用)都会记录在Key Vault 审计日志中。您可以启用诊断设置,将这些日志路由到 Log Analytics 工作区或存储帐户,以便长期保留。这会提供完整的审计轨迹,记录谁在何时、从哪个 IP 地址访问了哪个机密,对于安全调查和合规性证据至关重要。

# Enable diagnostic logging for Key Vault
az monitor diagnostic-settings create \
  --resource /subscriptions/<sub-id>/resourceGroups/myRG/providers/Microsoft.KeyVault/vaults/myUniqueVault123 \
  --workspace /subscriptions/<sub-id>/resourceGroups/myRG/providers/Microsoft.OperationalInsights/workspaces/myWorkspace \
  --name kv-audit-logs \
  --logs '[{"category":"AuditEvent","enabled":true}]'

Key Vault 的专用终结点

默认情况下,Key Vault 在互联网上提供公共 HTTPS 终结点。对于高安全性环境,您可以部署一个专用终结点,将 Key Vault 放置在 VNet 内并为其分配专用 IP 地址,同时完全禁用公共终结点。通过专用终结点访问 Key Vault 的应用程序不会经过公共互联网,从而满足防止数据外泄的要求,并使 Key Vault 对 VNet 外部不可见。

快速检查

测试您对本课 Microsoft Azure Fundamentals (AZ-900) 概念的理解。

课程回顾

在本课中,您学习了:Key Vault 在托管且可审计的服务中存储机密、加密密钥和 TLS 证书;托管标识集成消除了在应用程序代码中硬编码凭据的需要;以及软删除和清除保护可防止加密材料被意外或恶意删除。接下来,我们将学习 Microsoft Sentinel,这是 Azure 的云原生 SIEM。

常见问题解答

「Azure Key Vault」课时是免费的吗?

是的 — 「Azure Key Vault」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cloud & IT Cert Prep 课程的其余内容,请升级到 CoddyKit PRO。 Cloud & IT Cert Prep 课程共包含 4 节课。

「Azure Key Vault」这节课中我会学到什么?

在 Key Vault 中存储和管理机密、加密密钥和证书,并将其与其他 Azure 服务集成,以避免凭据硬编码。 你通过在浏览器中直接运行的动手代码来练习 Cloud & IT Cert Prep,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cloud & IT Cert Prep 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cloud & IT Cert Prep 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「Azure Key Vault」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cloud & IT Cert Prep 课中编写并运行代码吗?

能。每节 Cloud & IT Cert Prep 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. Microsoft Defender for Cloud
  2. Azure Key Vault
  3. Microsoft Sentinel:云 SIEM
  4. Azure DDoS Protection 和防火墙
← 返回 Cloud & IT Cert Prep