通过Powershell通过Azure Key Vault管理的密钥访问Azure存储

问题描述

我无法访问托管密钥库中的存储帐户密钥。 这是我的代码

$secret = Get-AzkeyvaultManagedStorageAccount -VaultName $keyvaultName -Name $storageAccountName
$ctx =New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $secret.SecretValueText

似乎$ secret.SecretValueText为空/空。如何正确检索存储帐户密钥?这是出现的错误

New-AzStorageContext : Cannot validate argument on parameter 'StorageAccountKey'. The argument is null or empty. Provide an argument that is not null or empty,and then try the command again.

解决方法

肯定是空的,Get-AzKeyVaultManagedStorageAccount的{​​{3}}是output,它没有这样的属性,SecretValueText是{{3}的属性}。

我认为您无法通过Get-AzKeyVaultManagedStorageAccount获取存储帐户密钥,如果要获取存储帐户密钥,可以使用以下命令,确保您登录的用户帐户/服务主体具有RBAC的角色,例如您存储帐户中的Storage Account Key Operator Service RoleContributorOwner

$key = (Get-AzStorageAccountKey -ResourceGroupName <group-name> -Name <storageaccount-name>).Value[0]
New-AzStorageContext -StorageAccountName <storageaccount-name> -StorageAccountKey $key

PSKeyVaultManagedStorageAccount