使用 Azure AZ Powershell Cmdlet 列出 Azure 安全中心策略状态
Posted
技术标签:
【中文标题】使用 Azure AZ Powershell Cmdlet 列出 Azure 安全中心策略状态【英文标题】:List Azure Security Center Policies status using Azure AZ Powershell Cmdlets 【发布时间】:2020-02-17 12:46:53 【问题描述】:请告诉我可用于列出与特定订阅相关的安全策略的命令。
我要列出的内容如下:
在导航面板中,选择安全策略以访问策略管理门户。
在“策略管理”页面上,单击要检查的订阅名称以访问选定的订阅配置设置。
在“安全策略”页面的“计算和应用程序”类别中,检查计算机安全配置中的漏洞应修复设置状态。如果配置设置设置为已禁用,则不会为当前订阅中可用的 Microsoft Azure 虚拟机 (VM) 启用操作系统漏洞监控。
想要使用 powershell 命令列出以上策略状态。
使用 Get-AzPolicyAssignment
检索到的政策与门户网站上列出的政策不同。
谢谢。
【问题讨论】:
【参考方案1】:如果我没误会的话,你要检查策略[Preview]: Enable Monitoring in Azure Security Center
中Vulnerabilities in security configuration on your machines should be remediated
参数的状态。
目前,我们可以用
$policy = Get-AzPolicyAssignment | Where-Object $_.Properties.displayName -eq '[Preview]: Enable Monitoring in Azure Security Center'
但默认情况下我们似乎无法在此命令中获取参数的状态
如果您的最终目标是检查状态,如果是Disabled
,那么您将其设置为AuditIfNotExists
。
如果是这样,你可以使用下面的命令直接设置它,无论是Disabled
还是AuditIfNotExists
,都会设置为AuditIfNotExists
(如果你想设置为Disabled
,只需将命令更改为systemConfigurationsMonitoringEffect = "Disabled"
)。
$policy = Get-AzPolicyAssignment | Where-Object $_.Properties.displayName -eq '[Preview]: Enable Monitoring in Azure Security Center'
Set-AzPolicyAssignment -Id $policy.ResourceId -PolicyParameterObject @systemConfigurationsMonitoringEffect = "AuditIfNotExists"
然后我们检查$policy.Properties.parameters
,它出现了。检查门户,您会发现它也有效。
更新:
如果只使用Get-AzPolicyAssignment
不带任何参数,Initiative
策略将不会返回。
导航到门户中的Policy
-> Assignments
,找到你想要的Initiative
类型策略,点击它,复制Assignment ID
。
然后使用下面的命令。
Get-AzPolicyAssignment -Id <Assignment ID>
如果你想获取Initiative
策略下的所有策略,试试下面的命令,$policies
就是你想要的。
$initiative = Get-AzPolicyAssignment -Id <Assignment ID>
$policies = (Get-AzPolicySetDefinition -Id $initiative.Properties.policyDefinitionId).Properties.policyDefinitions
在门户中查看它们:
【讨论】:
已尝试使用 Get-AzPolicyAssignment 命令,但未显示安全策略下 azure 门户中列出的所有策略。我在这里错过了什么吗? @PrashantShete 你想列出什么?您能否在您的问题中提供屏幕截图? 用截图更新了问题,请检查。 @PrashantShete 导航到门户中的Policy
-> Assignments
,按照此屏幕截图i.stack.imgur.com/JZJgD.png,检查您的政策是否存在,如果存在,请使用Get-AzPolicyAssignment | Where-Object $_.Properties.displayName -eq '<Policy name>'
拥有试试看。
@Joy wang - 是的,我可以在门户中看到与 i.stack.imgur.com/rPvMe.jpg 相同的政策。其中两个是主动的,有什么办法可以用AZ power-shell命令来描述主动,列出它下的所有策略?以上是关于使用 Azure AZ Powershell Cmdlet 列出 Azure 安全中心策略状态的主要内容,如果未能解决你的问题,请参考以下文章
Azure自动化| Runbook | Powershell | Get-AzRoleAssignment | Microsoft.Rest.Azure.CloudException
如何使用 AZ Powershell 获取 VMSize 的成本/月?
Azure 函数中的 Az.Functions 模块引发错误