在Azure DevOps (ADO)服务主体中用来执行调用以下IaC发布管道的应用程序注册所需的Azure AD权限是什么Set-AzKeyVaultAccessPolicy我正在尝试添加对密钥库的访问权限Microsoft.ManagedIdentity/userAssignedIdentities..。我看到的错误是:“警告:请确保您在AD Graph中有足够的权限来获取和列出图形对象,以便验证有效。否则跳过向导-BypassObjectIdValidation“我已经尝试了许多AAD 'read‘权限的组合。我当前恢复的权限是:

当我使用我的个人登录在本地测试时,脚本运行良好,添加了访问策略,并且“托管身份”能够访问Key Vault secret。我已经能够使用
-BypassObjectIdValidation作为ADO中的一种变通方法,但这看起来像是一种技巧。所有Azure资源都在同一订阅中,所有对象都在同一Azure租户中,因此我没有理由需要使用绕过开关。
其他信息:
深入研究微软的源代码,我进一步确信问题出在服务主体的AAD权限内。例如,下面的代码调用Graph..。
if (!this.BypassObjectIdValidation.IsPresent && ActiveDirectoryClient != null)
{
objId = GetObjectId(this.ObjectId, this.UserPrincipalName, this.EmailAddress, this.ServicePrincipalName);
}
else if (ActiveDirectoryClient == null && objId == null)
{
throw new Exception(Resources.ActiveDirectoryClientNull);
}adObjects = GraphClient.Objects.GetObjectsByObjectIds(new GetObjectsParameters { ObjectIds = objectIdBatch, IncludeDirectoryObjectReferences = true });发布于 2021-02-26 07:00:04
显然,这个问题是一个“已知的产品限制”。https://github.com/Azure/azure-powershell/issues/10029#issuecomment-664485033
帮助文档中大约三分之一的内容:

因此,似乎没有可以设置的权限组合来使命令小程序在没有开关的情况下工作。
发布于 2021-02-26 04:25:06
这是RBAC角色对密钥库的访问控制权限。
我们的设置提供了Azure DevOps服务连接主体Contributor在订阅上,这就足够了。文档进行了验证,事实上,您应该注意谁拥有Contributor在你的Vault上,因为他们可以给自己提供访问策略(在Azure中他们通常不能)。
如果你想要更少的特权,我可以试试User Access Administrator或者
Key Vault Administrator.
https://stackoverflow.com/questions/66375536
复制相似问题