使用 Azure CLI 为托管磁盘启用静态双重加密

适用于:✔️ Linux VM ✔️ 灵活规模集

Azure 磁盘存储支持对托管磁盘的静态双重加密。 有关静态双重加密的概念信息以及其他托管磁盘加密类型,请参阅磁盘加密文章的静态双重加密部分。

限制

超级磁盘当前不支持双重静态加密。

先决条件

安装最新的 Azure CLI 并使用 az login 登录到 Azure 帐户。

入门

  1. 创建 Azure Key Vault 和加密密钥的实例。

    创建 Key Vault 实例时,必须启用软删除和清除保护。 软删除可确保 Key Vault 在给定的保留期(默认为 90 天)内保留已删除的密钥。 清除保护可确保在保留期结束之前,无法永久删除已删除的密钥。 这些设置可防止由于意外删除而丢失数据。 使用 Key Vault 加密托管磁盘时,这些设置是必需的。

    subscriptionId=yourSubscriptionID
    rgName=yourResourceGroupName
    location=chinaeast2
    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
    
  2. 获取使用 az keyvault key show 创建的密钥的密钥 URL。

    az keyvault key show --name $keyName --vault-name $keyVaultName
    
  3. 创建 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
    
  4. 授予对密钥保管库的 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
    

后续步骤

创建并配置这些资源之后,可以使用它们来保护托管磁盘。 以下链接包含示例脚本,每个脚本都有各自的方案,可用于保护托管磁盘。