Hızlı Başlangıç: Azure CLI kullanarak uyumlu olmayan kaynakları tanımlamak için ilke ataması oluşturma

Azure’da uyumluluğu anlamanın ilk adımı, kaynaklarınızın durumunu belirlemektir. Bu hızlı başlangıçta, Azure CLI kullanarak uyumlu olmayan kaynakları tanımlamak için bir ilke ataması oluşturacaksınız. İlke bir kaynak grubuna atanır ve yönetilen disk kullanmayan sanal makineleri denetler. İlke atamasını oluşturduktan sonra uyumlu olmayan sanal makineleri tanımlarsınız.

Azure CLI, komut satırından veya betik içindeki Azure kaynaklarını yönetmek veya bu kaynakları oluşturmak için kullanılır. Bu kılavuzda, Azure ortamınızda uyumlu olmayan kaynakları belirlemek ve bir ilke ataması oluşturmak için Azure CLI kullanılır.

Yerleşik bir ilke veya girişim tanımı atarken, bir sürüme başvurmak isteğe bağlıdır. Yerleşik tanımların ilke atamaları varsayılan olarak en son sürüme ayarlı ve aksi belirtilmedikçe ikincil sürüm değişikliklerini otomatik olarak devralır.

Önkoşullar

  • Azure hesabınız yoksa, başlamadan önce ücretsiz hesap oluşturun.
  • Azure CLI.
  • Visual Studio Code.
  • Microsoft.PolicyInsightsAzure aboneliğinize kayıtlı olmalıdır. Bir kaynak sağlayıcısını kaydetmek için kaynak sağlayıcılarını kaydetme izniniz olmalıdır. Bu izin Katkıda Bulunan ve Sahip rollerine dahil edilir.
  • Yönetilen diskleri kullanmayan en az bir sanal makineye sahip bir kaynak grubu.

Azure'a bağlanma

Visual Studio Code terminal oturumundan Azure'a bağlanın. Birden fazla aboneliğiniz varsa, aboneliğinize bağlam ayarlamak için komutları çalıştırın. <subscriptionID> öğesini Azure abonelik kimliğinizle değiştirin.

az login

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

Kaynak sağlayıcısını kaydetme

Bir kaynak sağlayıcısı kaydedildiğinde Azure aboneliğinizde kullanılabilir.

Kayıtlı olup olmadığını Microsoft.PolicyInsights doğrulamak için komutunu çalıştırın Get-AzResourceProvider. Kaynak sağlayıcısı birkaç kaynak türü içerir. Sonuç çalıştırılırsa NotRegistered Register-AzResourceProvider:

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

az provider register --namespace Microsoft.PolicyInsights

Azure CLI komutları, okunabilirliği geliştirmek için satır devamı için ters eğik çizgi (\) kullanır. Daha fazla bilgi için az provider sayfasına gidin.

İlke ataması oluştur

Kaynak grubunuz için yeni bir ilke ataması oluşturmak için aşağıdaki komutları kullanın. Bu örnekte, yönetilen diskleri olmayan bir sanal makine içeren mevcut bir kaynak grubu kullanılmaktadır. Kaynak grubu, ilke atamasının kapsamıdır. Bu örnek, yönetilen disk kullanmayan VM'leri denetle yerleşik ilke tanımını kullanır.

Aşağıdaki komutları çalıştırın ve öğesini kaynak grubu adınızla değiştirin <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 değişkeni kaynak grubu kimliğini depolar. definition değişkeni, ilke tanımının adını (GUID) depolar.

İlke atamasını oluşturmak için aşağıdaki komutu çalıştırın:

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 , atamada kullanılan ilke atama ResourceIdadını oluşturur.
  • display-name , ilke atamasının adıdır ve Azure portalında görünür.
  • scope , ilkeyi $rgid kaynak grubuna atamak için değişkenini kullanır.
  • policy değişkeninde $definition depolanan ilke tanımını atar.
  • description ilke ataması hakkında bağlam eklemek için kullanılabilir.

İlke atamasının sonuçları aşağıdaki örneğe benzer:

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

İlke atama bilgilerini yeniden görüntülemek istiyorsanız aşağıdaki komutu çalıştırın:

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

Daha fazla bilgi için az policy assignment sayfasına gidin.

Uyumlu olmayan kaynakları belirleme

Yeni ilke atamasının uyumluluk durumunun etkinleşmesi ve ilkenin durumuyla ilgili sonuçlar sağlaması birkaç dakika sürer.

Oluşturduğunuz ilke atamasıyla uyumlu olmayan kaynakları belirlemek için aşağıdaki komutu kullanın:

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

değişkeni, policyid ilke atamasının kimliğini almak için bir ifade kullanır. filter parametresi, çıkışı uyumlu olmayan kaynaklarda sınırlar.

Çıktı az policy state list ayrıntılıdır, ancak bu makalede complianceState şunu gösterir NonCompliant:

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

Daha fazla bilgi için az policy state bölümüne gidin.

Kaynakları temizleme

İlke atamasını kaldırmak için aşağıdaki komutu çalıştırın:

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

Azure CLI oturumunuzun oturumunu kapatmak için:

az logout

Sonraki adımlar

Bu hızlı başlangıçta, Azure ortamınızda uyumlu olmayan kaynakları belirlemek üzere bir ilke tanımı atadınız.

Kaynak uyumluluğunu doğrulayan ilkeler atama hakkında daha fazla bilgi edinmek için öğreticiye geçin.