如何使用 Azure PowerShell 获取 Azure KeyVault 的访问策略

How to get Access Policies of the Azure KeyVault using Azure PowerShell

我正在编写一个 Azure Powershell 脚本,该脚本比较两个 Azure KeyVault 的机密和访问策略。

为了比较 Azure KeyVault 的秘密,我使用了命令 Get-AzureKeyVaultSecret 效果很好,
但是对于访问策略似乎没有像 Get-AzKeyVaultAccessPolicy.

这样的命令

那么,有什么方法可以使用 Azure PowerShell 从 KeyVault 检索访问策略吗?

如果您使用 AZ cli 获取访问策略,您可以使用以下命令获取访问策略:

az keyvault show --name
                 [--resource-group]
                 [--subscription]

如果您使用的是 Azure RM 模块,那么您只需调用以下命令即可:

Get-AzureRMKeyVault -VaultName 'myvault'

Vault Name                       : myvault
Resource Group Name              : myrg
Location                         : westus
Resource ID                      : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers
                                   /Microsoft.KeyVault/vaults/myvault
Vault URI                        : https://myvault.vault.azure.net/
Tenant ID                        : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
SKU                              : Standard
Enabled For Deployment?          : True
Enabled For Template Deployment? : True
Enabled For Disk Encryption?     : False
Soft Delete Enabled?             : True
Access Policies                  :
                                   Tenant ID                                  : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
                                   Object ID                                  : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
                                   Application ID                             :
                                   Display Name                               : User Name (username@microsoft.com)
                                   Permissions to Keys                        : get, create, delete, list, update,
                                   import, backup, restore, recover
                                   Permissions to Secrets                     : get, list, set, delete, backup,
                                   restore, recover
                                   Permissions to Certificates                : get, delete, list, create, import,
                                   update, deleteissuers, getissuers, listissuers, managecontacts, manageissuers,
                                   setissuers, recover
                                   Permissions to (Key Vault Managed) Storage : delete, deletesas, get, getsas, list,
                                   listsas, regeneratekey, set, setsas, update

Tags                             :

希望对您有所帮助。

这是 Azure Powershell 的解决方案:

$keyVaultName = "KEYVAULT_NAME_HERE"
$keyVault = Get-AzKeyVault -VaultName $keyVaultName
$accessPolicies = $keyVault.AccessPolicies

# Logging the amount of the items
Write-Host "$($keyVault.AccessPolicies.Count)"

注意:如果您想获得 Azure CLI 或 Azure RM 的解决方案,请考虑查看下面的 答案。

你也可以这样做

$ az keyvault show --name <my-kv-name> --query "properties.accessPolicies"