温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - How to Enable-AzureRmDataLakeStoreKeyVault on my Azure Data Lake Store account?
azure azure-cli azure-powershell

其他 - 如何在我的Azure Data Lake Store帐户上启用-AzureRmDataLakeStoreKeyVault?

发布于 2020-05-01 08:48:14

我做了以下事情来创建一个Azure Data Lake Store帐户,然后尝试为其启用密钥库:

New-AzDataLakeStoreAccount -ResourceGroupName TestRG -Name TestDLSA -Location "East US 2"
Enable-AzureRmDataLakeStoreKeyVault -Account TestDLSA

并收到以下错误:

Enable-AzureRmDataLakeStoreKeyVault : Operation EnableKeyVault is invalid under current encryption state or config of account.

为了能够在我的Azure Data Lake Store帐户上正确运行Enable-AzureRmDataLakeStoreKeyVault,我需要做什么?

查看更多

提问者
C. Lightfoot
被浏览
20
Joy Wang 2020-02-12 10:22

创建dl时,需要传递如下参数。否则,它将使用来创建dl Service managed encryption,即-Encryption ServiceManaged

New-AzDataLakeStoreAccount -ResourceGroupName <RG-name> -Name joydls -Location "East US 2" -Encryption UserManaged -KeyVaultId "<keyvault-resource-id>" -KeyName "testkey" -KeyVersion "444243d9xxxx8db2303d1"

要启用用户管理的Key Vault进行加密,与您的dls一起自动创建的服务主体需要获得访问密钥库中密钥的权限,因此我们需要为服务主体配置访问策略,在创建密钥主体后运行以下命令dls,那么它将正常工作。

$ObjectId = (Get-AzDataLakeStoreAccount -ResourceGroupName <RG-name> -Name joydls).Identity.PrincipalId
Set-AzKeyVaultAccessPolicy -ResourceGroupName <RG-name> -VaultName joykeyvault -ObjectId $ObjectId -PermissionsToKeys encrypt,decrypt,get
Enable-AzDataLakeStoreKeyVault -Name "joydls"

在此处输入图片说明

检入门户:

在此处输入图片说明


此外,我注意到您正在使用新Az模块与旧模块混合使用AzureRm,请不要这样做,有时会导致错误,我建议您只使用Az模块Enable-AzDataLakeStoreKeyVault,因为该AzureRm模块已被弃用并且不会更新。