Guia de início rápido: criar uma atribuição de política para identificar recursos não compatíveis usando a CLI do Azure

O primeiro passo para compreender a conformidade no Azure consiste em identificar o estado dos seus recursos. Neste início rápido, você cria uma atribuição de política para identificar recursos não compatíveis usando a CLI do Azure. A política é atribuída a um grupo de recursos e audita máquinas virtuais que não usam discos gerenciados. Depois de criar a atribuição de política, você identifica máquinas virtuais não compatíveis.

A CLI do Azure é utilizada para criar e gerir recursos do Azure a partir da linha de comandos ou em scripts. Este guia utiliza a CLI do Azure para criar uma atribuição de política para identificar recursos que não estão em conformidade no seu ambiente do Azure.

Pré-requisitos

  • Se não tiver uma conta do Azure, crie uma conta gratuita antes de começar.
  • CLI do Azure.
  • Visual Studio Code.
  • Microsoft.PolicyInsights deve estar registrado em sua assinatura do Azure. Para registrar um provedor de recursos, você deve ter permissão para registrar provedores de recursos. Essa permissão está incluída nas funções de Colaborador e Proprietário.
  • Um grupo de recursos com pelo menos uma máquina virtual que não usa discos gerenciados.

Ligar ao Azure

Em uma sessão de terminal do Visual Studio Code, conecte-se ao Azure. Se você tiver mais de uma assinatura, execute os comandos para definir o contexto da sua assinatura. Substitua <subscriptionID> pelo seu ID da subscrição do Azure.

az login

# Run these commands if you have multiple subscriptions
az account list --output table
az account set --subscription <subscriptionID>

Registar o fornecedor de recursos

Quando um provedor de recursos é registrado, ele está disponível para uso em sua assinatura do Azure.

Para verificar se Microsoft.PolicyInsights está registado, execute Get-AzResourceProvider. O provedor de recursos contém vários tipos de recursos. Se o resultado for NotRegistered executado Register-AzResourceProvider:

az provider show \
  --namespace Microsoft.PolicyInsights \
  --query "{Provider:namespace,State:registrationState}" \
  --output table

az provider register --namespace Microsoft.PolicyInsights

Os comandos da CLI do Azure usam uma barra invertida (\) para a continuação da linha para melhorar a legibilidade. Para obter mais informações, vá para az provider.

Criar atribuição de política

Use os comandos a seguir para criar uma nova atribuição de política para seu grupo de recursos. Este exemplo usa um grupo de recursos existente que contém uma máquina virtual sem discos gerenciados. O grupo de recursos é o escopo para a atribuição de política. Este exemplo usa a definição de política interna Auditar VMs que não usam discos gerenciados.

Execute os seguintes comandos e substitua <resourceGroupName> pelo nome do grupo de recursos:

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)

A rgid variável armazena a ID do grupo de recursos. A definition variável armazena o nome da definição de política, que é um GUID.

Execute o seguinte comando para criar a atribuição de política:

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 Cria o nome da atribuição de política usado no ResourceId.
  • display-name é o nome da atribuição de política e está visível no portal do Azure.
  • scope Usa a $rgid variável para atribuir a política ao grupo de recursos.
  • policy Atribui a definição de política armazenada na $definition variável.
  • description pode ser usado para adicionar contexto sobre a atribuição de política.

Os resultados da atribuição de política são semelhantes ao exemplo a seguir:

"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",

Se desejar exibir novamente as informações de atribuição de política, execute o seguinte comando:

az policy assignment show --name "audit-vm-managed-disks" --scope $rgid

Para obter mais informações, vá para az policy assignment.

Identificar recursos que não estão em conformidade

O estado de conformidade de uma nova atribuição de política leva alguns minutos para se tornar ativo e fornecer resultados sobre o estado da política.

Use o comando a seguir para identificar recursos que não estão em conformidade com a atribuição de política que você criou:

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)"

A policyid variável usa uma expressão para obter a ID da atribuição de política. O filter parâmetro limita a saída a recursos não compatíveis.

A az policy state list saída é detalhada, mas para este artigo os complianceState mostra:NonCompliant

"complianceState": "NonCompliant",
"components": null,
"effectiveParameters": "",
"isCompliant": false,

Para obter mais informações, vá para az policy state.

Clean up resources (Limpar recursos)

Para remover a atribuição de política, execute o seguinte comando:

az policy assignment delete --name "audit-vm-managed-disks" --scope $rgid

Para sair da sessão da CLI do Azure:

az logout

Próximos passos

Neste guia de introdução, atribuiu uma definição de política para identificar recursos incompatíveis no seu ambiente do Azure.

Para saber mais sobre como atribuir políticas que validam a conformidade de recursos, continue para o tutorial.