即使我正在订阅所有者配置文件下执行它,我无法执行Azure Powershell命令Add-AzureKeyVaultManagedStorageAccount
。我通过以下方式成功创建keyvault,存储账户,并存储帐户关键:Azure Powershell添加AzureKeyVaultManagedStorageAccount失败
$KeyVault = New-AzureRmKeyVault `
-VaultName "<redacted>" `
-ResourceGroupName $ResourceGroup.ResourceGroupName `
-Location $Location `
-EnabledForDiskEncryption `
-EnabledForDeployment `
-Tag $Tags
$StorageAccount = New-AzureRmStorageAccount `
-ResourceGroupName $ResourceGroup.ResourceGroupName `
-Name "<redacted>" `
-SkuName Standard_LRS `
-Location $Location `
-Kind "Storage" `
-EnableEncryptionService "Blob,File" `
-Tag $Tags `
-AssignIdentity
$StorageAccountKey = New-AzureRmStorageAccountKey `
-ResourceGroupName $ResourceGroup.ResourceGroupName `
-Name $StorageAccount.StorageAccountName `
-KeyName "key1"
,但想在我的关键金库管理存储帐户密钥失败
$KeyVaultManagedStorageAccount = Add-AzureKeyVaultManagedStorageAccount `
-VaultName $KeyVault.VaultName `
-AccountName $StorageAccount.StorageAccountName `
-AccountResourceId $StorageAccount.Id `
-ActiveKeyName "key1" `
-Tag $Tags
这是错误。正如我所提到的,我是在订阅所有者配置文件下执行的,那么它如何不能获得授权?其次,下面标识的“相同的编辑对象ID”与我可以找到的订阅中的任何对象不对应。我第一次遇到了Azure Powershell 4.2.1的这个问题,并且已经升级到4.3.0并且仍然存在问题。
Add-AzureKeyVaultManagedStorageAccount : The client '<same redacted object Id>' with object id '<same redacted object Id>' does not have authorization to perform action
'Microsoft.Authorization/permissions/read' over scope
'/subscriptions/<subscription ID>/resourceGroups/<resource group name>/providers/Microsoft.Storage/storageAccounts/<storage account name>/providers/Microsoft.Authorization'.
At E:\BitSync\Scripts\Azure\Create-Environment.ps1:129 char:34
+ ... VaultManagedStorageAccount = Add-AzureKeyVaultManagedStorageAccount `
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : CloseError: (:) [Add-AzureKeyVaultManagedStorageAccount], KeyVaultErrorException
+ FullyQualifiedErrorId : Microsoft.Azure.Commands.KeyVault.AddAzureKeyVaultManagedStorageAccount
顺便说一句,有没有出现任何的方式,通过重点库比剪切和粘贴等门户来管理存储帐户的密钥。
杰森,这不适合我。 Get-AzureRmADServicePrincipal返回2个属性,看起来他们可能是New-AzureRmRoleAssignment,ApplicationId和Id的objectId,但是使用其中一个导致错误“无法验证参数'ObjectId'参数。指定一个类型为”System.Guid“的参数然后再试一次”。他们都看起来像Guids给我。 –
@JackFox我们可以使用'get-azurermkeyvault'来获取信息,在那个输出中,我们可以找到对象ID,请检查截图。 –
Jason,修复了几件事情:1)它不是keyvault的ObjectId,而是$ KeyVault.AccessPolicies [0] .ObjectId。感谢您指出了这一点。 2)而存储帐户的资源ID实际上是$ StorageAccount.Id。一切都很好。我又回到了我原来的问题。 Add-AzureKeyVaultManagedStorageAccount抛出错误对象ID为'无法识别的GUID'的客户端'无法识别的GUID'没有权限执行操作'Microsoft.Authorization/permissions/read'超过作用域资源ID的存储帐户' –