Azure 策略摘要和计数的问题

Issues with Azure policy summary and the count

提问人:learner 提问时间:11/5/2023 最后编辑:learner 更新时间:11/6/2023 访问量:44

问:

我正在使用 summary 查询 Azure Policy 信息,我的目标是使用 powershell 关联门户上显示的数字,以便我可以对数字执行一些分析。到目前为止,这是一次令人沮丧的经历。

参考来源 https://learn.microsoft.com/en-us/powershell/module/az.policyinsights/get-azpolicystate?view=azps-10.4.1

https://learn.microsoft.com/en-us/powershell/module/az.resources/get-azpolicyassignment?view=azps-10.4.1&viewFallbackFrom=azps-6.6.0

我想达到什么目的?

获取与 Azure 门户上显示的不合规资源相同的数字 然后按特定资源组进行筛选,虽然我可以按特定资源组进行筛选,但如果数字不匹配,则会出现问题。当我检查电子表格时,我可以看到重复项。

enter image description here

我做了什么?

Get-AzPolicyState -ManagementGroupName 'xxx' -Filter " ComplianceState eq 'NonCompliant' and PolicySetDefinitionName eq 'xx'"

我根据使数字计数的想法对其进行了过滤。如果数字没有统计出来,它就会歪曲我的报告,就好像一个人进入门户网站一样,数字将不匹配。PolicySetDefinitionName

使用下面的细分非常接近,但有一些额外的值,所以不确定该怎么做。

Get-AzPolicyState -ManagementGroupName 'xx' -Filter " ComplianceState eq 'NonCompliant' and PolicySetDefinitionName eq 'xx' and PolicyDefinitionAction eq 'audit'" -Apply "groupby((PolicyAssignmentId, PolicySetDefinitionId, PolicyDefinitionReferenceId, PolicyDefinitionId), aggregate(`$count as NumStates))" -OrderBy "NumStates desc" -Top 1000
azure powershell azure-policy

评论

0赞 Jahnavi 11/6/2023
第二个 PowerShell 查询的确切问题是什么?@learner

答:

0赞 Jahnavi 11/6/2023 #1

使用 PowerShell 命令的第二种方法是准确的,但需要进行一些修改才能识别和删除重复项。

注意:确保使用与门户结果相同的条件对输出进行筛选。您还需要考虑可能的数据重复。PowerShell

进行一些更改后,脚本应如下所示。

在这里,我尝试在订阅级别下筛选出,因为管理组访问在我的环境中受到限制。可以将 替换为管理组名称和属性。subscriptionID-ManagementGroupName

$policysetdef = "xxx"
$Action = 'audit'
$policyState = Get-AzPolicyState -SubscriptionId "xxxx" `
    -Filter "ComplianceState eq 'NonCompliant' and PolicySetDefinitionName eq '$policysetdef' and PolicyDefinitionAction eq '$Action'"
$uniquestates = $policyState | unique
$groupedPolicyStateinfo = $uniquestates | Group-Object -Property @{Name='PolicySetDefinitionId';Expression={$_.PolicySetDefinitionId}} `
    -AsHashTable | Measure-Object -Property Value -Sum | Sort-Object -Descending count | Select-Object -First 1000
Write-Output $groupedPolicyStateinfo

输出:

enter image description here

评论

0赞 learner 11/27/2023
请帮助澄清,当您从门户查看策略时,然后在合规性下查看时,我有一些合规性计划,例如,我如何确定它是否基于此计划进行过滤?我尝试使用这里,它给了我一个 ID 而不是名称。我也收到错误CIS Microsoft Azure Foundations Benchmark v1.4.0PolicySetDefinitionNameGroup-Object : The Name key is not valid.
0赞 Jahnavi 11/28/2023
你的意思是抛出错误?@learnerGet-AzPolicyState
0赞 learner 11/28/2023
它的组对象不喜欢它的某些东西。?@jahnavi
0赞 Jahnavi 11/28/2023
如果可能的话,你能让我知道整个错误以找出问题吗?@learner