你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
针对 Azure 弹性 SAN 管理客户管理的密钥
写入弹性 SAN 卷的所有数据都会由数据加密密钥 (DEK) 自动进行静态加密。 Azure DEK 始终由平台管理(由 Microsoft 管理)。 Azure 使用信封加密(也称为包装),这涉及到使用密钥加密密钥(KEK)来加密 DEK。 默认情况下,KEK 由平台管理,但你可以创建和管理自己的 KEK。 使用客户管理的密钥可以更灵活地管理访问控制,并可以帮助你满足组织的安全性和合规性要求。
可以控制密钥加密密钥的各个特性,包括:
- 使用哪个密钥
- 密钥的存储位置
- 密钥如何轮换
- 在客户管理的密钥和平台管理的密钥之间切换的能力
本文介绍如何管理客户管理的 KEK。
注意
信封加密允许更改密钥配置,而不会影响弹性 SAN 卷。 进行更改时,弹性 SAN 服务会使用新密钥重新加密数据加密密钥。 数据加密密钥的保护会更改,但弹性 SAN 卷中的数据始终处于加密状态。 您不需要执行其他操作来确保您的数据安全。 更改密钥配置不会影响性能,也不会导致停机。
限制
以下列表包含目前提供弹性 SAN 的区域,展示了哪些区域同时支持区域冗余存储 (ZRS) 和本地冗余存储 (LRS),或仅支持 LRS:
- 澳大利亚东部 - LRS
- 巴西南部 - LRS
- 加拿大中部 - LRS
- 美国中部 - LRS
- 东亚 - LRS
- 美国东部 - LRS
- 美国东部 2 - LRS
- 法国中部 - LRS 和 ZRS
- 德国中西部 - LRS
- 印度中部 - LRS
- 日本东部 - LRS
- 韩国中部 - LRS
- 北欧 - LRS 和 ZRS
- 挪威东部 - LRS
- 南非北部 - LRS
- 美国中南部 - LRS
- 东南亚 - LRS
- 瑞典中部 - LRS
- 瑞士北部 - LRS
- 阿联酋北部 - LRS
- 英国南部 - LRS
- 西欧 - LRS 和 ZRS
- 美国西部 2 - LRS 和 ZRS
- 美国西部 3 - LRS
弹性 SAN 也在以下地区提供,但不支持可用性区域:
- 加拿大东部 - LRS
- 日本西部 - LRS
- 美国中北部 - LRS
若要启用这些区域,请运行以下命令来注册必要的功能标志:
Register-AzProviderFeature -FeatureName "EnableElasticSANRegionalDeployment" -ProviderNamespace "Microsoft.ElasticSan"
更改密钥
可以随时更改用于 Azure 弹性 SAN 加密的密钥。
若要使用 PowerShell 更改密钥,请调用 Update-AzElasticSanVolumeGroup 并提供新密钥名称和版本。 如果新密钥位于不同的密钥保管库中,则还必须更新密钥保管库 URI。
如果新密钥位于其他密钥保管库中,则必须向托管标识授予对新保管库中密钥的访问权限。 如果选择手动更新密钥版本,则还需要更新密钥保管库 URI。
更新密钥版本
遵循加密最佳做法意味着定期轮换保护你的弹性 SAN 卷组的密钥,通常至少每两年轮换一次。 Azure 弹性 SAN 永远不会修改密钥保管库中的密钥,但你可以配置密钥轮换策略来根据合规性要求轮换密钥。 有关详细信息,请参阅在 Azure 密钥保管库中配置加密密钥自动轮换。
在密钥保管库中轮换密钥后,必须更新弹性 SAN 卷组的客户管理的 KEK 配置,以使用新的密钥版本。 客户管理的密钥支持自动更新和手动更新 KEK 版本。 可以在初始配置客户管理的密钥或更新配置时决定要使用的方法。
修改密钥或密钥版本时,根加密密钥的保护会更改,但是 Azure 弹性 SAN 卷组中的数据将始终保持加密状态。 无需执行额外操作即可确保数据受到保护。 轮换密钥版本不会影响性能,也不会导致停机。
重要
若要轮换密钥,请根据你的合规性要求,在密钥保管库中创建新版本的密钥。 Azure 弹性 SAN 不处理密钥轮换,因此你需要管理密钥保管库中的密钥轮换。
轮换用作客户管理的密钥的密钥时,该操作当前不会记录到 Azure 弹性 SAN 的 Azure Monitor 日志中。
自动更新密钥版本
若要在有新版本可用时自动更新客户管理的密钥,请在为弹性 SAN 卷组启用“使用客户管理的密钥进行加密”时省略密钥版本。 如果省略了密钥版本,Azure 弹性 SAN 每天都会在密钥保管库中检查是否有客户管理的密钥的新版本。 如果有可用的新密钥版本,Azure 弹性 SAN 将自动使用最新版本的密钥。
Azure 弹性 SAN 每天只会在密钥保管库中检查一次是否存在密钥的新版本。 轮换密钥时,请务必等待 24 小时,然后再禁用旧版本。
如果 弹性 SAN 卷组以前配置为手动更新密钥版本,而你想要将其更改为自动进行更新,则可能需要将密钥版本显式更改为空字符串。 有关此操作的详细步骤,请参阅手动轮换密钥版本。
手动更新密钥版本
若要对 Azure 弹性 SAN 加密使用特定版本的密钥,请在为弹性 SAN 卷组启用“使用客户管理的密钥进行加密”时指定该密钥版本。 如果指定了密钥版本,则 Azure 弹性 SAN 将使用该版本进行加密,直到你手动更新密钥版本。
显式指定密钥版本后,就必须手动更新弹性 SAN卷组,以便在创建新版本时使用新密钥版本 URI。 若要了解如何更新弹性 SAN 卷组以使用新的密钥版本,请参阅使用 Azure 密钥保管库中存储的客户管理的密钥来配置加密。
撤销对使用客户管理的密钥的卷组的访问权限
若要暂时撤销对使用客户管理的密钥的弹性 SAN 卷组的访问权限,请禁用密钥保管库中当前使用的密钥。 禁用和重新启用密钥不会影响性能或导致停机。
禁用密钥后,客户端就无法调用在该卷组或其元数据中读取或写入卷的操作。
注意
禁用密钥保管库中的密钥时,Azure 弹性 SAN 卷组中的数据将保持加密状态,但在重新启用密钥之前,这些数据将无法访问。
若要使用 PowerShell 撤销客户管理的密钥,请调用 Update-AzKeyVaultKey 命令,如以下示例所示。 请记得将括号中的占位符值替换为自己的值以定义变量,或使用前面示例中定义的变量。
$KvName = "<key-vault-name>"
$KeyName = "<key-name>"
$enabled = $false
# $false to disable the key / $true to enable it
# Check the current state of the key (before and after enabling/disabling it)
Get-AzKeyVaultKey -Name $KeyName -VaultName $KvName
# Disable (or enable) the key
Update-AzKeyVaultKey -VaultName $KvName -Name $KeyName -Enable $enabled
切换回平台管理的密钥
可以使用 Azure PowerShell 模块或 Azure CLI 随时从客户管理的密钥切换回平台管理的密钥。
若要使用 PowerShell 从客户管理的密钥切换回平台管理的密钥,请使用 -Encryption
选项调用 Update-AzElasticSanVolumeGroup,如以下示例所示。 请记得将占位符值替换为自己的值,并使用前面示例中定义的变量。
Update-AzElasticSanVolumeGroup -ResourceGroupName "ResourceGroupName" -ElasticSanName "ElasticSanName" -Name "ElasticSanVolumeGroupName" -Encryption EncryptionAtRestWithPlatformKey