【问题标题】:Problems with assigning a Azure policy and multiple subscriptions分配 Azure 策略和多个订阅的问题
【发布时间】:2020-12-04 08:55:23
【问题描述】:

我在使用 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 工作区参数将为空. 运行这些命令的服务主体是两个订阅的所有者。

【问题讨论】:

    标签: azure azure-log-analytics azure-policy


    【解决方案1】:

    跨多个订阅应用策略的最直接方式是让它们成为管理组的一部分。您可以将策略应用于管理组,并且作为成员的每个订阅都将继承它。

    可在此处找到有关管理组的更多信息: 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 网站上的文档进行仔细检查。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-30
      • 1970-01-01
      • 2021-08-04
      • 2021-05-24
      • 1970-01-01
      • 2022-08-13
      • 2022-08-20
      • 2013-10-22
      相关资源
      最近更新 更多