Öğretici: Azure İlkesi ile etiket idaresi yönetme

Etiketler , Azure kaynaklarınızı taksonomi olarak düzenlemenin önemli bir parçasıdır. Etiket yönetimi için en iyi yöntemleri takip ederken etiketler, iş ilkelerinizi Azure İlkesi uygulamak veya Maliyet Yönetimi ile maliyetleri izlemek için temel olabilir. Etiketleri nasıl veya neden kullanırsanız kullanın, Azure kaynaklarınızda bu etiketleri hızla ekleyebilmeniz, değiştirebilmeniz ve kaldırabilmeniz önemlidir. Azure kaynağınızın etiketlemeyi destekleyip desteklemediğini görmek için bkz. Etiket desteği.

Azure İlkesi'in Değiştir etkisi, kaynak idaresinin hangi aşamasında olursanız olun etiketlerin idaresine yardımcı olmak için tasarlanmıştır. Değiştirme şu durumlarda yardımcı olur:

  • Bulutta yenisiniz ve etiket idareniz yok
  • Etiket idaresi olmayan binlerce kaynağa zaten sahip
  • Zaten değiştirilmesi gereken bir taksonomi var

Bu öğreticide aşağıdaki görevleri tamamlayacaksınız:

  • İş gereksinimlerinizi tanımlama
  • Her gereksinimi bir ilke tanımıyla eşleme
  • Etiket ilkelerini bir girişimde gruplandırma

Önkoşullar

Bu öğreticiyi tamamlamak için bir Azure aboneliğinizin olması gerekir. Hesabınız yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Gereksinimleri belirleme

İdare denetimlerinin her iyi uygulaması gibi, gereksinimler de iş gereksinimlerinizden gelmeli ve teknik denetimler oluşturmadan önce iyi anlaşılmalıdır. Bu senaryo öğreticisi için aşağıdaki öğeler iş gereksinimlerimizdir:

  • Tüm kaynaklarda iki gerekli etiket: CostCenter ve Env
  • CostCenter tüm kapsayıcılarda ve tek tek kaynaklarda bulunmalıdır
    • Kaynaklar içinde bulundukları kapsayıcıdan devralınır, ancak tek tek geçersiz kılınabilir
  • Env tüm kapsayıcılarda ve tek tek kaynaklarda bulunmalıdır
    • Kaynaklar ortamı kapsayıcı adlandırma düzenine göre belirler ve geçersiz kılınmayabilir
    • Kapsayıcıdaki tüm kaynaklar aynı ortamın parçasıdır

CostCenter etiketini yapılandırma

Azure İlkesi tarafından yönetilen bir Azure ortamına özgü olarak, CostCenter etiket gereksinimleri aşağıdaki sonuçlar için çağrı yapar:

  • CostCenter etiketinin eksik olduğu kaynak gruplarını reddet
  • Eksik olduğunda üst kaynak grubundan CostCenter etiketini eklemek için kaynakları değiştirme

CostCenter etiketinin eksik olduğu kaynak gruplarını reddet

Bir kaynak grubu için CostCenter kaynak grubunun adıyla belirlenebileceğinden, kaynak grubunu oluşturmak için istekte tanımlanan etikete sahip olması gerekir. Reddet etkisine sahip aşağıdaki ilke kuralı, CostCenter etiketine sahip olmayan kaynak gruplarının oluşturulmasını veya güncelleştirilmesini engeller:

"if": {
    "allOf": [{
            "field": "type",
            "equals": "Microsoft.Resources/subscriptions/resourceGroups"
        },
        {
            "field": "tags['CostCenter']",
            "exists": false
        }
    ]
},
"then": {
    "effect": "deny"
}

Not

Bu ilke kuralı bir kaynak grubunu hedeflediği için, ilke tanımındaki modun 'Dizinli' yerine 'Tümü' olması gerekir.

Eksik olduğunda CostCenter etiketini devralmak için kaynakları değiştirme

İkinci CostCenter gereksinimi, eksik olduğunda etiketi üst kaynak grubundan devralacak kaynaklardır. Etiket, üst kaynak grubundan farklı olsa bile kaynakta zaten tanımlanmışsa, tek başına bırakılmalıdır. Aşağıdaki ilke kuralı Değiştir'i kullanır:

"policyRule": {
    "if": {
        "field": "tags['CostCenter']",
        "exists": "false"
    },
    "then": {
        "effect": "modify",
        "details": {
            "roleDefinitionIds": [
                "/providers/microsoft.authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
            ],
            "operations": [{
                "operation": "add",
                "field": "tags['CostCenter']",
                "value": "[resourcegroup().tags['CostCenter']]"
            }]
        }
    }
}

Bu ilke kuralı addOrReplace yerine add işlemini kullanır çünkü mevcut kaynaklar düzeltildiğinde etiket değerini değiştirmek istemiyoruz. Ayrıca üst kaynak grubundan [resourcegroup()] etiket değerini almak için şablon işlevini kullanır.

Not

Bu ilke kuralı etiketleri destekleyen kaynakları hedeflediği için ilke tanımındaki modun 'Dizinli' olması gerekir. Bu yapılandırma ayrıca bu ilkenin kaynak gruplarını atlar.

Env etiketini yapılandırma

env etiketi gereksinimleri, Azure İlkesi tarafından yönetilen bir Azure ortamına özgü olarak aşağıdaki sonuçlar için çağrı yapar:

  • Kaynak grubundaki Env etiketini, kaynak grubunun adlandırma şemasına göre değiştirme
  • Kaynak grubundaki tüm kaynaklarda Env etiketini üst kaynak grubuyla aynı olacak şekilde değiştirin

Kaynak grupları Env etiketini ada göre değiştirme

Azure ortamınızda bulunan her ortam için bir Değiştirme ilkesi gereklidir. Her bir ilke için Değiştir ilkesi şu ilke tanımına benzer:

"policyRule": {
    "if": {
        "allOf": [{
            "field": "type",
            "equals": "Microsoft.Resources/subscriptions/resourceGroups"
        },
        {
            "field": "name",
            "like": "prd-*"
        },
        {
            "field": "tags['Env']",
            "notEquals": "Production"
        }

    ]
    },
    "then": {
        "effect": "modify",
        "details": {
            "roleDefinitionIds": [
                "/providers/microsoft.authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
            ],
            "operations": [{
                "operation": "addOrReplace",
                "field": "tags['Env']",
                "value": "Production"
            }]
        }
    }
}

Not

Bu ilke kuralı bir kaynak grubunu hedeflediği için, ilke tanımındaki modun 'Dizinli' yerine 'Tümü' olması gerekir.

Bu ilke yalnızca üretim kaynakları için kullanılan örnek adlandırma düzeniyle kaynak gruplarıyla eşleşir prd-. Daha karmaşık adlandırma düzenleri, bu örnekteki gibi tek yerine birkaç eşleşme koşuluyla elde edilebilir.

Kaynakları Env etiketini devralacak şekilde değiştirme

İş gereksinimi, tüm kaynakların üst kaynak grubunun sahip olduğu Env etiketine sahip olmasını gerektirir. Bu etiket geçersiz kılınamaz, bu nedenle addOrReplace işlemini Modify efektiyle kullanacağız. Örnek Değiştirme ilkesi aşağıdaki kurala benzer:

"policyRule": {
    "if": {
        "anyOf": [{
            "field": "tags['Env']",
            "notEquals": "[resourcegroup().tags['Env']]"
        },
        {
            "field": "tags['Env']",
            "exists": false
        }
    ]
    },
    "then": {
        "effect": "modify",
        "details": {
            "roleDefinitionIds": [
                "/providers/microsoft.authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
            ],
            "operations": [{
                "operation": "addOrReplace",
                "field": "tags['Env']",
                "value": "[resourcegroup().tags['Env']]"
            }]
        }
    }
}

Not

Bu ilke kuralı etiketleri destekleyen kaynakları hedeflediği için ilke tanımındaki modun 'Dizinli' olması gerekir. Bu yapılandırma ayrıca bu ilkenin kaynak gruplarını atlar.

Bu ilke kuralı , Env etiketi için üst kaynak grupları değerine sahip olmayan veya Env etiketi eksik olan tüm kaynakları arar. Eşleşen kaynakların Env etiketi, kaynakta zaten mevcut olsa ancak farklı bir değere sahip olsa bile üst kaynak grupları değerine ayarlanmıştır.

Girişimi atama ve kaynakları düzeltme

Yukarıdaki etiket ilkeleri oluşturulduktan sonra, bunları etiket idaresi için tek bir girişimde birleştirin ve bunları bir yönetim grubuna veya aboneliğe atayın. Girişim ve dahil edilen ilkeler daha sonra mevcut kaynakların uyumluluğunu değerlendirir ve ilke kuralındaki if özelliğiyle eşleşen yeni veya güncelleştirilmiş kaynaklara yönelik istekleri değiştirir. Ancak ilke, mevcut uyumlu olmayan kaynakları tanımlı etiket değişiklikleriyle otomatik olarak güncelleştirmez.

deployIfNotExists ilkeleri gibi Değiştirme ilkesi de mevcut uyumlu olmayan kaynakları değiştirmek için düzeltme görevlerini kullanır. Uyumlu olmayan Değiştirmekaynaklarınızı belirlemek ve etiketleri tanımlanan taksonominize göre düzeltmek için Kaynakları düzeltme yönergelerini izleyin.

Kaynakları temizleme

Bu öğreticideki kaynaklarla çalışmayı bitirdiyseniz, yukarıda oluşturulan atamaları veya tanımları silmek için aşağıdaki adımları kullanın:

  1. Azure İlkesi sayfasının sol tarafındaki Yazmabölümünden Tanımlar'ı (veya ödevi silmeye çalışıyorsanız Atamalar'ı) seçin.

  2. Kaldırmak istediğiniz yeni girişim veya tanımını (ya da atamayı) arayın.

  3. Satıra sağ tıklayın ya da tanımın (veya atamanın) sonundaki üç noktayı seçip Tanımı sil (veya Atamayı sil) öğesini seçin.

Gözden geçirme

Bu öğreticide aşağıdaki görevleri öğrendiniz:

  • İş gereksinimlerinizi tanımladı
  • Her gereksinim bir ilke tanımıyla eşlendi
  • Etiket ilkelerini bir girişimde gruplandırma

Sonraki adımlar

İlke tanımlarının yapıları hakkında daha fazla bilgi edinmek için şu makaleyi gözden geçirin: