配置客户管理的密钥

Azure 数据资源管理器对静态存储帐户中的所有数据进行加密。 默认情况下,数据使用 Microsoft 管理的密钥进行加密。 为了更进一步控制加密密钥,可以提供客户管理的密钥来用于对数据进行加密。

客户管理的密钥必须存储在 Azure 密钥保管库中。 可以创建自己的密钥并将其存储在 Key Vault 中,或者使用 Azure Key Vault API 来生成密钥。 Azure 数据资源管理器群集和密钥保管库必须在同一个区域中,但可以在不同的订阅中。 有关客户管理的密钥的详细说明,请参阅客户管理的密钥与 Azure 密钥保管库

本文将介绍如何配置客户管理的密钥。

有关基于以前的 SDK 版本的代码示例,请参阅存档的文章

配置 Azure Key Vault

若要使用 Azure 数据资源管理器配置客户管理的密钥,必须在密钥保管库上设置两个属性:“软删除”和“不清除” 。 默认情况下未启用这些属性。 若要启用这些属性,请在 PowerShell 或 Azure CLI 中对新的或现有的密钥保管库执行“启用软删除”和“启用清除保护” 。 仅支持大小为 2048 的 RSA 密钥。 有关密钥的详细信息,请参阅密钥保管库密钥

备注

有关在主群集和子群集上使用客户托管密钥的限制,请参阅限制

为群集分配托管标识

若要为群集启用客户管理的密钥,请先将系统分配的托管标识或用户分配的托管标识分配给该群集。 你将使用此托管标识授予群集访问密钥保管库的权限。 若要配置托管标识,请参阅托管标识

使用客户托管密钥启用加密

以下部分介绍如何使用 Azure CLI 客户端启用客户管理的密钥加密。 默认情况下,Azure 数据资源管理器加密使用 Microsoft 托管密钥。 将 Azure 数据资源管理器群集配置为使用客户托管密钥,并指定要与群集关联的密钥。

  1. 运行以下命令来登录到 Azure:

    az login
    
  2. 设置群集注册到的订阅。 将 MyAzureSub 替换为要使用的 Azure 订阅的名称。

    az account set --subscription MyAzureSub
    
  3. 运行以下命令,以使用群集的系统分配的标识设置新密钥

    az kusto cluster update --cluster-name "mytestcluster" --resource-group "mytestrg" --key-vault-properties key-name="<key-name>" key-version="<key-version>" key-vault-uri="<key-vault-uri>"
    

    或者,使用用户分配的标识设置新密钥。

    az kusto cluster update --cluster-name "mytestcluster" --resource-group "mytestrg" --key-vault-properties key-name="<key-name>" key-version="<key-version>" key-vault-uri="<key-vault-uri>" key-user-identity="<user-identity-resource-id>"
    
  4. 运行以下命令并检查“keyVaultProperties”属性,以验证群集是否已成功更新。

    az kusto cluster show --cluster-name "mytestcluster" --resource-group "mytestrg"
    

更新密钥版本

创建密钥的新版本时,需将群集更新为使用新版本。 首先调用 Get-AzKeyVaultKey 以获取最新密钥版本。 然后,将群集的密钥保管库属性更新为使用新的密钥版本,如使用客户管理的密钥启用加密中所示。