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

How to Enable-AzureRmDataLakeStoreKeyVault on my Azure Data Lake Store account?

我执行了以下操作来创建 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?

创建dls时,需要传递如下参数。否则,它将使用 Service managed encryption 创建 dls,即 -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 一起自动创建的服务主体需要访问您的 keyvault 中的密钥的权限,因此我们需要为服务主体配置访问策略,运行创建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 模块已被弃用,不会更新。