Когда вы создаете dls, вам нужно передать параметры, как показано ниже. В противном случае он создает dls с 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"
. Чтобы включить управляемое пользователем хранилище ключей для шифрования, субъекту службы, автоматически создаваемому вместе с вашим 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
был устарела и не будет обновляться.