将 Azure Policy 定义部署到管理组权限

Deployment of azure policy definitions to management group permissions

我正在尝试将一些策略定义部署到管理组,但出现授权错误。

我通过 Azure devops 运行 一个利用 New-AzPolicyDefinition -ManagementGroupName cmdlet 的 azure powershell 脚本来完成。

此管道配置了与服务主体的服务连接,目前使用资源策略贡献者,但我也尝试过管理组贡献者、贡献者和所有者

有谁知道为什么不允许我这样做以及需要什么样的权限?

谢谢

对于管理组范围的写入权限,您将需要 RBAC 角色:目标管理组的所有者、参与者、管理组参与者。

您可以参考 this 文档。

确保您使用实际名称,而不是管理组的“DisplayName”

我可以重现你的问题:##[error]AuthorizationFailed : The client '***' with object id '***' does not have authorization to perform action 'Microsoft.Authorization/policydefinitions/write' over scope '***' or the scope is invalid. If access was recently granted, please refresh your credentials.

它对我有效,这是我的步骤:

1.Create管理组:

2.Create服务连接并点击Azure DevOps服务连接中的Manage Service Principal选项:

3.Copy 显示名称(我的值看起来像 OrgName-ProjectName-SubscriptionID。我发现你的和我的有点不同):

4.Add 管理组中显示名称的角色分配(所有者或资源策略参与者)。我可以在这里找到两个结果,并将它们都添加了:

5.Here 是我对 Azure Pipeline 的配置:

答案最终是我的管理组 ID 与我的管理组名称不同。在与 Microsoft 确认后,cmdlet 要求提供 ID 而不是名称,这已解决并确认其文档和他们所知道的内容缺乏清晰度