Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
通过在 Key Vault 中自动轮换加密密钥,可以设置Key Vault以选择的频率自动创建新密钥版本。 若要设置轮换,请使用密钥轮换策略,可以为每个单独的密钥定义该策略。
若要遵循加密最佳做法,请至少每两年轮换加密密钥。
有关 Key Vault 如何处理对象版本的信息,请参阅 Key Vault 对象、标识符和版本控制。 为了全面了解 Azure Key Vault 中不同资产类型的自动轮换概念,请参阅 Azure Key Vault 中的自动轮换概念。
与 Azure 服务集成
此功能允许使用存储在Azure Key Vault中的客户管理的密钥(CMK)对Azure服务进行静态加密的端到端零接触轮换。 检查特定的Azure服务文档,查看该服务是否支持端到端轮换。
注意
轮换Azure服务使用的客户管理的密钥时,每个服务检测和应用新密钥版本所需的时间各不相同(从一小时到 24 小时或更多)。 有关轮换后何时可以安全地禁用旧密钥版本的指南,请参阅特定的Azure服务文档。
有关Azure中的数据加密的详细信息,请参阅:
定价
每个计划的密钥轮换都会产生额外的费用。 有关详细信息,请参阅 Azure Key Vault 定价页。
所需的权限
Key Vault密钥轮换功能需要密钥管理权限。 分配 Key Vault Crypto Officer 角色来管理轮换策略和按需轮换。
有关如何将 Azure RBAC 用于Key Vault和分配Azure角色的详细信息,请参阅 使用 Azure RBAC 来控制对密钥、证书和机密的访问。
注意
如果使用访问策略权限模型,请设置“轮换”、“设置轮换策略”和“获取轮换策略”密钥权限,以管理密钥上的轮换策略。
密钥轮换策略
密钥轮换策略允许您为即将过期的通知配置轮换,并通过事件网格发送通知。
密钥轮换策略设置:
- 到期时间:密钥的过期时间间隔。 它设置新轮换密钥的到期日期。 它不会影响当前密钥。
- 启用/禁用:用于启用或禁用密钥轮换的标志。
- 轮换类型:
- 创建后在给定时间自动续订(默认值)。
- 在到期前在给定时间自动续订。 它需要对轮换策略设置“到期时间”,并对密钥设置“到期日期”。
- 轮换时间:密钥轮换间隔。 最小值是创建 7 天,从过期时间起 7 天。
- 通知时间:密钥即将过期的事件网格通知间隔。 它需要对轮换策略设置“到期时间”,并对密钥设置“到期日期”。
重要
密钥轮换使用新密钥材料生成现有密钥的新密钥版本。 目标服务应使用无版本密钥 URI 自动刷新到最新版本的密钥。 确保您的数据加密解决方案在存储数据时使用带版本的密钥 URI,以指向相同的密钥材料用于解密/解包操作,从而避免您的服务中断。 所有Azure服务当前都遵循该模式进行数据加密。
配置密钥轮换策略
在创建密钥期间配置密钥轮换策略。
在现有密钥上配置轮换策略。
Azure CLI
将密钥轮换策略保存到文件。 下面是密钥轮换策略的示例:
{
"lifetimeActions": [
{
"trigger": {
"timeAfterCreate": "P18M",
"timeBeforeExpiry": null
},
"action": {
"type": "Rotate"
}
},
{
"trigger": {
"timeBeforeExpiry": "P30D"
},
"action": {
"type": "Notify"
}
}
],
"attributes": {
"expiryTime": "P2Y"
}
}
使用 Azure CLI az keyvault 密钥轮换策略更新命令对传递以前保存文件的密钥设置轮换策略。
az keyvault key rotation-policy update --vault-name <vault-name> --name <key-name> --value </path/to/policy.json>
Azure PowerShell
使用 Azure PowerShell Set-AzKeyVaultKeyRotationPolicy cmdlet 设置轮换策略。
Set-AzKeyVaultKeyRotationPolicy -VaultName <vault-name> -KeyName <key-name> -ExpiresIn (New-TimeSpan -Days 720) -KeyRotationLifetimeAction @{Action="Rotate";TimeAfterCreate= (New-TimeSpan -Days 540)}
按需轮换
可以手动调用密钥轮换。
Portal
选择“ 立即旋转 ”以启动旋转过程。
Azure CLI
使用 Azure CLI az keyvault 密钥轮换命令轮换密钥。
az keyvault key rotate --vault-name <vault-name> --name <key-name>
Azure PowerShell
使用 Azure PowerShell Invoke-AzKeyVaultKeyRotation cmdlet 旋转密钥。
Invoke-AzKeyVaultKeyRotation -VaultName <vault-name> -Name <key-name>
配置密钥即将到期的通知
可以为事件网格密钥配置即将过期事件的到期通知。 如果无法使用自动轮换,例如从本地 HSM 导入密钥时,可以将准过期通知配置为手动轮换提醒,也可以配置为通过与事件网格集成自定义自动轮换的触发器。 可以设置通知,使其在密钥到期前的几天、几个月或几年触发即将到期事件。
有关Key Vault中的事件网格通知的详细信息,请参阅Azure Key Vault作为事件网格源
使用 ARM 模板配置密钥轮换
可以使用 ARM 模板配置密钥轮换策略。
注意
若要通过控制平面部署密钥,需要在配置了 Azure RBAC 的 Key Vault 上具有 Key Vault 贡献者角色。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vaultName": {
"type": "String",
"metadata": {
"description": "The name of the key vault to be created."
}
},
"keyName": {
"type": "String",
"metadata": {
"description": "The name of the key to be created."
}
},
"rotationTimeAfterCreate": {
"defaultValue": "P18M",
"type": "String",
"metadata": {
"description": "Time duration to trigger key rotation, for example, P30D, P1M, P2Y."
}
},
"expiryTime": {
"defaultValue": "P2Y",
"type": "String",
"metadata": {
"description": "The expiry time for new key version, for example, P90D, P2M, P3Y."
}
},
"notifyTime": {
"defaultValue": "P30D",
"type": "String",
"metadata": {
"description": "Near expiry Event Grid notification, for example, P30D."
}
}
},
"resources": [
{
"type": "Microsoft.KeyVault/vaults/keys",
"apiVersion": "2024-11-01",
"name": "[concat(parameters('vaultName'), '/', parameters('keyName'))]",
"location": "[resourceGroup().location]",
"properties": {
"vaultName": "[parameters('vaultName')]",
"kty": "RSA",
"rotationPolicy": {
"lifetimeActions": [
{
"trigger": {
"timeAfterCreate": "[parameters('rotationTimeAfterCreate')]",
"timeBeforeExpiry": ""
},
"action": {
"type": "Rotate"
}
},
{
"trigger": {
"timeBeforeExpiry": "[parameters('notifyTime')]"
},
"action": {
"type": "Notify"
}
}
],
"attributes": {
"expiryTime": "[parameters('expiryTime')]"
}
}
}
}
]
}
配置密钥轮换策略治理
通过使用Azure Policy服务,可以控制密钥生命周期,并确保所有密钥都配置为在指定的天数内轮换。
创建并分配策略定义
- 转到策略资源。
- 在 Azure Policy 页左侧的 Authoring 下选择 Assignments。
- 选择页面顶部的“分配策略”。 此按钮会打开“策略分配”页面。
- 输入以下信息:
- 请填写任何其他栏位。 单击页面底部的 “上一 步”和“ 下一步 ”按钮,导航选项卡。
- 选择“查看 + 创建”。
- 选择 创建。
分配内置策略后,最长可能需要 24 小时才能完成扫描。 扫描完成后,可以看到如下所示的符合性结果。