Szybki start: tworzenie przypisania zasad w celu identyfikowania niezgodnych zasobów przy użyciu interfejsu wiersza polecenia platformy Azure

Pierwszym krokiem do zrozumienia pojęcia zgodności na platformie Azure jest określenie obecnej sytuacji dotyczącej Twoich zasobów. W tym przewodniku Szybki start utworzysz przypisanie zasad w celu zidentyfikowania niezgodnych zasobów przy użyciu interfejsu wiersza polecenia platformy Azure. Zasady są przypisywane do grupy zasobów i przeprowadza inspekcję maszyn wirtualnych, które nie korzystają z dysków zarządzanych. Po utworzeniu przypisania zasad należy zidentyfikować niezgodne maszyny wirtualne.

Interfejs wiersza polecenia platformy Azure umożliwia tworzenie zasobów Azure i zarządzanie nimi z poziomu wiersza polecenia lub skryptów. W tym przewodniku interfejs wiersza polecenia platformy Azure używany jest do utworzenia przypisania zasad i zidentyfikowania niezgodnych zasobów w środowisku Azure.

Wymagania wstępne

  • Jeśli nie masz jeszcze konta platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
  • Interfejs wiersza polecenia platformy Azure.
  • Program Visual Studio Code
  • Microsoft.PolicyInsights musi być zarejestrowana w ramach subskrypcji platformy Azure. Aby zarejestrować dostawcę zasobów, musisz mieć uprawnienia do rejestrowania dostawców zasobów. To uprawnienie jest uwzględniane w rolach Współautor i Właściciel.
  • Grupa zasobów z co najmniej jedną maszyną wirtualną, która nie korzysta z dysków zarządzanych.

Łączenie się z platformą Azure

Z poziomu sesji terminalu programu Visual Studio Code nawiąż połączenie z platformą Azure. Jeśli masz więcej niż jedną subskrypcję, uruchom polecenia, aby ustawić kontekst na subskrypcję. Zamień wartość <subscriptionID> na identyfikator swojej subskrypcji platformy Azure.

az login

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

Rejestrowanie dostawcy zasobów

Po zarejestrowaniu dostawcy zasobów jest on dostępny do użycia w ramach subskrypcji platformy Azure.

Aby sprawdzić, czy Microsoft.PolicyInsights jest zarejestrowany, uruchom polecenie Get-AzResourceProvider. Dostawca zasobów zawiera kilka typów zasobów. Jeśli wynik zostanie NotRegistered uruchomiony Register-AzResourceProvider:

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

az provider register --namespace Microsoft.PolicyInsights

Polecenia interfejsu wiersza polecenia platformy Azure używają ukośnika odwrotnego (\) do kontynuacji wiersza w celu zwiększenia czytelności. Aby uzyskać więcej informacji, przejdź do polecenia az provider.

Utworzenie przypisania zasad

Użyj następujących poleceń, aby utworzyć nowe przypisanie zasad dla grupy zasobów. W tym przykładzie użyto istniejącej grupy zasobów zawierającej maszynę wirtualną bez dysków zarządzanych. Grupa zasobów jest zakresem przypisania zasad. W tym przykładzie użyto wbudowanej definicji zasad Inspekcja maszyn wirtualnych, które nie korzystają z dysków zarządzanych.

Uruchom następujące polecenia i zastąp <resourceGroupName> ciąg nazwą grupy zasobów:

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)

Zmienna rgid przechowuje identyfikator grupy zasobów. Zmienna definition przechowuje nazwę definicji zasad, która jest identyfikatorem GUID.

Uruchom następujące polecenie, aby utworzyć przypisanie zasad:

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 Tworzy nazwę przypisania zasad używaną w przypisania przypisania ResourceId.
  • display-name to nazwa przypisania zasad i jest widoczna w witrynie Azure Portal.
  • scope używa zmiennej $rgid w celu przypisania zasad do grupy zasobów.
  • policy przypisuje definicję zasad przechowywaną w zmiennej $definition .
  • description można użyć do dodania kontekstu dotyczącego przypisania zasad.

Wyniki przypisania zasad przypominają następujący przykład:

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

Jeśli chcesz ponownie odtworzyć informacje o przypisaniu zasad, uruchom następujące polecenie:

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

Aby uzyskać więcej informacji, zobacz az policy assignment (az policy assignment).

Identyfikowanie niezgodnych zasobów

Stan zgodności dla nowego przypisania zasad może potrwać kilka minut i dostarczyć wyniki dotyczące stanu zasad.

Użyj następującego polecenia, aby zidentyfikować zasoby, które nie są zgodne z utworzonym przypisaniem zasad:

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

Zmienna policyid używa wyrażenia, aby uzyskać identyfikator przypisania zasad. Parametr filter ogranicza dane wyjściowe do niezgodnych zasobów.

Dane az policy state list wyjściowe są pełne, ale w tym artykule complianceState są wyświetlane następujące elementy NonCompliant:

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

Aby uzyskać więcej informacji, przejdź do polecenia az policy state.

Czyszczenie zasobów

Aby usunąć przypisanie zasad, uruchom następujące polecenie:

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

Aby wylogować się z sesji interfejsu wiersza polecenia platformy Azure:

az logout

Następne kroki

W tym przewodniku Szybki start została przypisana definicja zasad mających na celu zidentyfikowanie niezgodnych zasobów w środowisku platformy Azure.

Aby dowiedzieć się więcej na temat przypisywania zasad, które weryfikują zgodność zasobów, przejdź do samouczka.