为托管磁盘启用静态双重加密
适用于:✔️ Linux VM ✔️ Windows VM ✔️
Azure 磁盘存储支持对托管磁盘的静态双重加密。 有关静态双重加密的概念信息以及其他托管磁盘加密类型,请参阅磁盘加密文章的静态双重加密部分。
限制
超级磁盘或高级 SSD v2 磁盘当前不支持双重静态加密。
先决条件
如果要使用 Azure CLI,请安装最新的 Azure CLI,并使用 az login 登录到 Azure 帐户。
如果要使用 Azure PowerShell 模块,请安装最新的 Azure PowerShell 版本,并使用 Connect-AzAccount 登录到 Azure 帐户。
入门
登录到 Azure 门户。
搜索并选择“磁盘加密集”。
选择“+ 新建”。
选择一个支持的区域。
对于“加密类型”,请选择“通过平台管理的密钥和客户管理的密钥进行双重加密”。
注意
一旦创建了具有特定加密类型的磁盘加密集,就无法对其进行更改。 如果要使用其他加密类型,则必须创建新的磁盘加密集。
填写剩余信息。
选择 Azure 密钥保管库和密钥,或者根据需要新建一个。
注意
创建密钥保管库实例时,必须启用软删除和清除保护。 使用密钥保管库加密托管磁盘时必须使用这些设置,这还可以防止因意外删除而导致数据丢失。
选择“创建” 。
导航到创建的磁盘加密集,然后选择显示的错误。 这会配置磁盘加密集,使其可正常工作。
应会弹出一条通知,此时操作已成功。 这样做使你能够将磁盘加密集与 Key Vault 协同使用。
导航到你的磁盘。
选择“加密”。
对于“加密类型”,请选择“通过平台管理的密钥和客户管理的密钥进行双重加密”。
选择你的磁盘加密集。
选择“保存”。
现已在托管磁盘上启用静态双重加密。
创建 Azure Key Vault 和加密密钥的实例。
创建 Key Vault 实例时,必须启用软删除和清除保护。 软删除可确保 Key Vault 在给定的保留期(默认为 90 天)内保留已删除的密钥。 清除保护可确保在保留期结束之前,无法永久删除已删除的密钥。 这些设置可防止由于意外删除而丢失数据。 使用 Key Vault 加密托管磁盘时,这些设置是必需的。
subscriptionId=yourSubscriptionID
rgName=yourResourceGroupName
location=chinanorth2
keyVaultName=yourKeyVaultName
keyName=yourKeyName
diskEncryptionSetName=yourDiskEncryptionSetName
diskName=yourDiskName
az account set --subscription $subscriptionId
az keyvault create -n $keyVaultName -g $rgName -l $location --enable-purge-protection true --enable-soft-delete true
az keyvault key create --vault-name $keyVaultName -n $keyName --protection software
获取使用 az keyvault key show
创建的密钥的密钥 URL。
az keyvault key show --name $keyName --vault-name $keyVaultName
创建 DiskEncryptionSet,并将 encryptionType 设置为 EncryptionAtRestWithPlatformAndCustomerKeys。 将 yourKeyURL
替换为从 az keyvault key show
收到的 URL。
az disk-encryption-set create --resource-group $rgName --name $diskEncryptionSetName --key-url yourKeyURL --source-vault $keyVaultName --encryption-type EncryptionAtRestWithPlatformAndCustomerKeys
授予对密钥保管库的 DiskEncryptionSet 资源访问权限。
注意
Azure 可能需要几分钟时间才能在 Microsoft Entra ID 中创建 DiskEncryptionSet 的标识。 如果在运行以下命令时收到类似于“找不到 Active Directory 对象”的错误,请等待几分钟,然后重试。
desIdentity=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [identity.principalId] -o tsv)
az keyvault set-policy -n $keyVaultName -g $rgName --object-id $desIdentity --key-permissions wrapkey unwrapkey get
创建 Azure Key Vault 和加密密钥的实例。
创建 Key Vault 实例时,必须启用软删除和清除保护。 软删除可确保 Key Vault 在给定的保留期(默认为 90 天)内保留已删除的密钥。 清除保护可确保在保留期结束之前,无法永久删除已删除的密钥。 这些设置可防止由于意外删除而丢失数据。 使用 Key Vault 加密托管磁盘时,这些设置是必需的。
$ResourceGroupName="yourResourceGroupName"
$LocationName="chinanorth2"
$keyVaultName="yourKeyVaultName"
$keyName="yourKeyName"
$keyDestination="Software"
$diskEncryptionSetName="yourDiskEncryptionSetName"
$keyVault = New-AzKeyVault -Name $keyVaultName -ResourceGroupName $ResourceGroupName -Location $LocationName -EnableSoftDelete -EnablePurgeProtection
$key = Add-AzKeyVaultKey -VaultName $keyVaultName -Name $keyName -Destination $keyDestination
检索创建的密钥的 URL,后续命令需要用到它。 Get-AzKeyVaultKey
输出的 ID 是密钥 URL。
Get-AzKeyVaultKey -VaultName $keyVaultName -KeyName $keyName
获取所创建的 Key Vault 实例的资源 ID,你将需要它来执行后续命令。
Get-AzKeyVault -VaultName $keyVaultName
创建 DiskEncryptionSet,并将 encryptionType 设置为 EncryptionAtRestWithPlatformAndCustomerKeys。 将 yourKeyURL
和 yourKeyVaultURL
替换为以前检索到的 URL。
$config = New-AzDiskEncryptionSetConfig -Location $locationName -KeyUrl "yourKeyURL" -SourceVaultId 'yourKeyVaultURL' -IdentityType 'SystemAssigned'
$config | New-AzDiskEncryptionSet -ResourceGroupName $ResourceGroupName -Name $diskEncryptionSetName -EncryptionType EncryptionAtRestWithPlatformAndCustomerKeys
授予对密钥保管库的 DiskEncryptionSet 资源访问权限。
注意
Azure 可能需要几分钟时间才能在 Microsoft Entra ID 中创建 DiskEncryptionSet 的标识。 如果在运行以下命令时收到类似于“找不到 Active Directory 对象”的错误,请等待几分钟,然后重试。
$des=Get-AzDiskEncryptionSet -name $diskEncryptionSetName -ResourceGroupName $ResourceGroupName
Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -ObjectId $des.Identity.PrincipalId -PermissionsToKeys wrapkey,unwrapkey,get
后续步骤