Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
若要了解 Azure 中的符合性,第一步是确定资源的状态。 本快速入门介绍如何使用 Azure CLI 创建策略分配以识别不合规的资源。 策略分配给资源组,并对不使用托管磁盘的虚拟机进行审核。 创建策略分配后,可以识别不合规的虚拟机。
Azure CLI 用于从命令行或脚本创建和管理 Azure 资源。 本指南使用 Azure CLI 创建策略分配,并识别 Azure 环境中的不合规资源。
先决条件
- 如果没有 Azure 帐户,请在开始前创建一个试用帐户。
- Azure CLI。
- Visual Studio Code。
- 必须在 Azure 订阅中重新注册
Microsoft.PolicyInsights
。 要注册资源提供程序,必须具有注册资源提供程序的权限。 此权限包含在“参与者”和“所有者”角色中。 - 具有至少一个不使用托管磁盘的虚拟机的资源组。
连接到 Azure
从 Visual Studio Code 终端会话连接到 Azure。 如果具有多个订阅,请运行命令以将上下文设置为你的订阅。 将 <subscriptionID>
替换为你的 Azure 订阅 ID。
az login
# Run these commands if you have multiple subscriptions
az account list --output table
az account set --subscription <subscriptionID>
注册资源提供程序
注册资源提供程序后,可在 Azure 订阅中使用。
若要验证是否已注册 Microsoft.PolicyInsights
,请运行 Get-AzResourceProvider
。 资源提供程序包含多个资源类型。 如果结果为 NotRegistered
,则运行 Register-AzResourceProvider
:
az provider show \
--namespace Microsoft.PolicyInsights \
--query "{Provider:namespace,State:registrationState}" \
--output table
az provider register --namespace Microsoft.PolicyInsights
Azure CLI 命令使用反斜杠 (\
) 进行行接续以提高可读性。 有关详细信息,请转到 az provider。
创建策略分配
运行以下命令,为资源组创建新的策略分配。 此示例使用的现有资源组包含不带托管磁盘的虚拟机。 该资源组属于策略分配范围。 本示例使用内置策略定义“审核不使用托管磁盘的 VM”。
运行以下命令并将 <resourceGroupName>
替换为资源组名称:
rgid=$(az group show --resource-group <resourceGroupName> --query id --output tsv)
definition=$(az policy definition list \
--query "[?displayName=='Audit VMs that do not use managed disks']".name \
--output tsv)
rgid
变量存储资源组 ID。 definition
变量存储策略定义的名称,即 GUID。
运行以下命令创建策略分配:
az policy assignment create \
--name 'audit-vm-managed-disks' \
--display-name 'Audit VM managed disks' \
--scope $rgid \
--policy $definition \
--description 'Azure CLI policy assignment to resource group'
name
创建分配的ResourceId
中使用的策略分配名称。display-name
是策略分配的名称,在 Azure 门户中可见。scope
使用$rgid
变量将策略分配给资源组。policy
分配存储在$definition
变量中的策略定义。description
可用于添加有关策略分配的上下文。
策略分配的结果类似于以下示例:
"description": "Azure CLI policy assignment to resource group",
"displayName": "Audit VM managed disks",
"enforcementMode": "Default",
"id": "/subscriptions/{subscriptionID}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/policyAssignments/audit-vm-managed-disks",
"identity": null,
"location": null,
"metadata": {
"createdBy": "11111111-1111-1111-1111-111111111111",
"createdOn": "2024-02-23T18:42:27.4780803Z",
"updatedBy": null,
"updatedOn": null
},
"name": "audit-vm-managed-disks",
若要重新显示策略分配信息,请运行以下命令:
az policy assignment show --name "audit-vm-managed-disks" --scope $rgid
有关详细信息,请转到 az policy assignment。
识别不合规的资源
新策略分配的“符合性状态”需要几分钟才会变为活动状态并提供关于策略状态的结果。
使用以下命令来识别不符合所创建的策略分配的资源:
policyid=$(az policy assignment show \
--name "audit-vm-managed-disks" \
--scope $rgid \
--query id \
--output tsv)
az policy state list --resource $policyid --filter "(isCompliant eq false)"
policyid
变量使用表达式获取策略分配的 ID。 filter
参数将向不合规资源限制输出。
az policy state list
输出很详尽,但在本文中 complianceState
显示 NonCompliant
:
"complianceState": "NonCompliant",
"components": null,
"effectiveParameters": "",
"isCompliant": false,
有关详细信息,请转到 az policy state。
清理资源
运行以下命令删除策略分配。
az policy assignment delete --name "audit-vm-managed-disks" --scope $rgid
若要退出登录 Azure CLI 会话,请执行以下操作:
az logout
后续步骤
本快速入门已分配一个策略定义用于识别 Azure 环境中的不合规资源。
若要详细了解如何分配验证资源合规性的策略,请继续学习以下教程。