azure - 分配 Azure 策略和多个订阅的问题
问题描述
我在使用涉及多个订阅的 logAnalytics 参数分配内置策略之一时遇到了一些问题。我需要用代码来做。这是我尝试完成它的方法。
获取对要分配的内置策略定义的引用
$definition = Get-AzPolicyDefinition | Where-Object { $_.Properties.DisplayName -eq 'Deploy Log Analytics agent for Windows VMs' }
$parameter = @{
logAnalytics = '<resourceId to my logAnalytics workspace>'
}
使用针对您的资源组的内置定义创建策略分配
New-AzPolicyAssignment -Name 'Deploy LA Agent Windows VMs' -DisplayName 'Deploy LA Agent Windows VMs' -Scope "/subscriptions/<my subscriptionId" -PolicyDefinition $definition -AssignIdentity -Location 'norwayeast' -PolicyParameterObject $parameter
如果我将策略分配给 logAnalytics 工作区所在的同一订阅,则此代码可以正常工作,但如果我将策略分配范围限定为另一个订阅,然后在门户中检查分配,则 Log Analytics 工作区参数将为空。运行这些命令的服务主体是两个订阅的所有者。
解决方案
跨多个订阅应用策略的最直接方式是使它们成为管理组的一部分。您可以将策略应用于管理组,并且作为成员的每个订阅都将继承它。
可以在此处找到有关管理组的更多信息: https ://docs.microsoft.com/en-us/azure/governance/management-groups/overview
使用管理组修改代码:
New-AzPolicyAssignment -Name 'Deploy LA Agent Windows VMs' -DisplayName 'Deploy LA Agent Windows VMs' -Scope "/providers/Microsoft.Management/managementGroups/managementGroup001" -PolicyDefinition $definition -AssignIdentity -Location 'norwayeast' -PolicyParameterObject $parameter
笔记
- 在运行任何命令之前,您需要创建一个管理组并向其添加订阅。
- 将订阅分配给现有管理组可能会产生不利影响,请检查是否存在冲突。
- 由于名称的长度限制为 24 个字符,因此可能会产生关于所用名称长度的错误。您应该缩短或缩写它们。
- 我尚未测试此代码,因此请在您自己的环境中运行之前通过查看 Microsoft 网站上的文档进行仔细检查。
推荐阅读
- css - 高度为 100% 的 div 未扩展以匹配父 div
- c# - 有没有更好的方法来用泛型类型实现这个 IEquatable 接口
- tfs - 取消发布并开始新的发布后,无法创建发布工件目录错误
- javascript - ES6 速记会影响抽象吗?
- php - 管弦乐/测试台 getPackageAliases() 不适用于 github 操作
- javascript - 从 JSON 文件动态加载图像位置 - (找不到模块...) React, Next.js
- express - 如何使用入口控制器在 AKS 上设置 HTTPS 快速服务器
- php - 我需要用最少 300 个元素解析巨大的 xml 数组,但是速度变慢了,我需要建议
- docker - 从一个 Docker 容器内部,如何连接到同一 Docker 主机上另一个 Docker 容器的端口?
- java - Hibernate findById 查询中的奇怪行为