azure密钥保险库许可证

azure密钥保险库许可证,azure,azure-keyvault,Azure,Azure Keyvault,在密钥保管库中设置备份管理服务(262044b1-e2ce-469f-a196-69ab7ada62d3)的权限时,我们面临一个问题 我们正在一个自动化帐户中运行以下代码,该帐户的服务主体没有访问Microsoft Azure目录和Microsoft graph的权限 Set-AzureRmKeyVaultAccessPolicy -VaultName MAHSEN-KEY-00010-DEV -ResourceGroupName MAHSBC-RGP-DEV-ARM-TEMPLATE-008

在密钥保管库中设置备份管理服务(262044b1-e2ce-469f-a196-69ab7ada62d3)的权限时,我们面临一个问题

我们正在一个自动化帐户中运行以下代码,该帐户的服务主体没有访问Microsoft Azure目录和Microsoft graph的权限

Set-AzureRmKeyVaultAccessPolicy -VaultName MAHSEN-KEY-00010-DEV -ResourceGroupName MAHSBC-RGP-DEV-ARM-TEMPLATE-008 -AzureRmContext $context -PermissionsToSecrets backup,get,list -ServicePrincipalName 262044b1-e2ce-469f-a196-69ab7ada62d3 
我们收到错误“权限不足,无法完成操作”

当我们在自动化帐户具有“读取目录数据”权限的Windows Azure Active Directory中运行相同的代码时,我们能够成功运行这些命令,如下面的屏幕截图所示

请确认是否需要Windows Azure Active Directory权限才能使用
Set-AzureRmKeyVaultAccessPolicy
命令


关键Vault访问策略基于AAD对象ID。调用Set-AzureRmKeyVaultAccessPolicy并指定ServicePrincipal或ObjectId以外的任何内容时,cmdlet需要通过直接查询AAD将ServicePrincipal转换为AAD对象ID。这是在使用更新的策略调用密钥库之前完成的

为了避免需要AAD查询,请提前查找服务主体的对象ID。然后将对象ID传递给“ObjectId”参数。还应传递“BypassObjectiveValidation”参数,以指示cmdlet不应尝试使用AAD验证ObjectID参数的值

您可以在以在AAD中具有查询权限的用户身份登录时运行以下命令来查找服务主体的对象ID

Get-AzureRmADServicePrincipal -ServicePrincipalName 262044b1-e2ce-469f-a196-69ab7ada62d3
在Set-AzureRmKeyVaultAccessPolicy命令中使用返回的“Id:”字段,如下所示:

Set-AzureRmKeyVaultAccessPolicy -VaultName VNAME -ResourceGroupName RGROUP -AzureRmContext $context -PermissionsToSecrets backup,get,list -ObjectID 00000000-0000-0000-0000-000000000000 -BypassObjectIdValidation

其中,00000000-0000-0000-0000-000000000000应替换为您的服务主体的实际对象ID。

关键Vault访问策略基于AAD对象ID。调用Set-AzureRmKeyVaultAccessPolicy并指定ServicePrincipal或ObjectId以外的任何内容时,cmdlet需要通过直接查询AAD将ServicePrincipal转换为AAD对象ID。这是在使用更新的策略调用密钥库之前完成的

为了避免需要AAD查询,请提前查找服务主体的对象ID。然后将对象ID传递给“ObjectId”参数。还应传递“BypassObjectiveValidation”参数,以指示cmdlet不应尝试使用AAD验证ObjectID参数的值

您可以在以在AAD中具有查询权限的用户身份登录时运行以下命令来查找服务主体的对象ID

Get-AzureRmADServicePrincipal -ServicePrincipalName 262044b1-e2ce-469f-a196-69ab7ada62d3
在Set-AzureRmKeyVaultAccessPolicy命令中使用返回的“Id:”字段,如下所示:

Set-AzureRmKeyVaultAccessPolicy -VaultName VNAME -ResourceGroupName RGROUP -AzureRmContext $context -PermissionsToSecrets backup,get,list -ObjectID 00000000-0000-0000-0000-000000000000 -BypassObjectIdValidation
其中00000000-0000-0000-0000-000000000000应替换为服务主体的实际对象ID