Öğretici: Etiket idaresi ile Azure İlkesi

Etiketler, Azure kaynaklarınızı bir sınıflandırmada düzenlemenin önemli bir parçasıdır. Etiket yönetimine yönelik en iyi yöntemleritakip eden etiketler, maliyet yönetimi ile iş ilkelerinizi Azure İlkesi veya maliyet izleme için temel olabilir. Etiketleri nasıl veya neden kullanır olur olun, Azure kaynaklarınıza bu etiketleri hızla eklemeniz, değiştirebilirsiniz ve kaldırabilirsiniz. Azure kaynağınız etiketlemeyi destekleyip desteklemedi görmek için bkz. Etiket desteği.

Azure İlkesi'ın Modify etkisi, kaynak idaresi aşamasından ne kadar farklı olursa olsun etiketlerin idaresi için yardımcı olmak üzere tasarlanmıştır. Değişiklik şu durumlarda yardımcı olur:

  • Bulutta yenisiniz ve etiket idaresi yok
  • Etiket idaresi özelliğine sahip binlerce kaynak zaten var
  • Zaten değişmeniz gereken bir sınıflandırmanız var

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

  • İş gereksinimlerinizi belirleme
  • Her gereksinimi bir ilke tanımıyla eşleme
  • Etiket ilkelerini bir girişimde grupla

Önkoşullar

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

Gereksinimleri tanımlama

İdare denetimlerinin tüm iyi uygulamaları gibi gereksinimlerin de iş gereksinimlerinize uygun olması ve teknik denetimler oluşturmadan önce iyi anlaşılmış olması gerekir. Bu senaryo öğreticisi için iş gereksinimlerimiz aşağıdaki öğelerdir:

  • Tüm kaynaklar için iki gerekli etiket: CostCenter ve Env
  • CostCenter tüm kapsayıcılarda ve tek tek kaynaklarda mevcut olmalı
    • Kaynaklar, içinde olduğu kapsayıcıdan devralınır, ancak tek tek geçersiz kılınabilir
  • Env tüm kapsayıcılarda ve tek tek kaynaklarda mevcut olmalı
    • Kaynaklar, ortamı kapsayıcı adlandırma düzenine göre belirler ve geçersiz kılınmayabilir
    • Kapsayıcıda yer alan tüm kaynaklar aynı ortamın bir parçası

CostCenter etiketini yapılandırma

Maliyet Merkezi etiketi gereksinimleri, Azure İlkesi yönetilen bir Azure ortamına özgü olarak aşağıdaki sonuçları sunar:

  • Kaynak gruplarını reddetmek için CostCenter etiketi eksik
  • Kaynaklar eksik olduğunda üst kaynak grubundan CostCenter etiketini eklemek için kaynakları değiştirme

Kaynak gruplarını reddetmek için CostCenter etiketi eksik

Bir kaynak grubunun CostCenter'ı kaynak grubunun adıyla belirleneyene kadar, kaynak grubunu oluşturmak için istekte tanımlanmış etikete sahip olması gerekir. Reddetme etkisine sahip aşağıdaki ilke kuralı, CostCenter etiketine sahip olan kaynak gruplarının oluşturulmasını veya güncelleştirilsini önler:

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

Not

Bu ilke kuralı bir kaynak grubunu hedefleyene kadar, ilke tanımında modun 'Dizinli' yerine 'All' olması gerekir.

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

İkinci CostCenter ihtiyacı, eksik olduğunda tüm kaynakların etiketi üst kaynak grubundan devralmasıdır. Etiket kaynakta zaten tanımlanmışsa, üst kaynak grubundan farklı olsa bile tek başına bıraklanmalıdır. Aşağıdaki ilke kuralı Değiştir 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ı, mevcut kaynakları düzelterek etiket değerini değiştirmek istemiyorsanız addOrReplace yerine add işlemi kullanır. Ayrıca, üst [resourcegroup()] kaynak grubundan etiket değerini almak için şablon işlevini kullanır.

Not

Bu ilke kuralı etiketleri destekleyen kaynakları hedefleyene kadar, ilke tanımında modun 'Dizinli' olması gerekir. Bu yapılandırma ayrıca bu ilkenin kaynak gruplarını atlar.

Env etiketini yapılandırma

Ortam tarafından yönetilen bir Azure ortamına özgü Azure İlkesi, Env etiketi gereksinimleri aşağıdaki sonuçları arar:

  • Kaynak grubunun adlandırma şemasına göre kaynak grubunda Env etiketini değiştirme
  • Kaynak grubunun tüm kaynaklarında Env etiketini üst kaynak grubuyla aynı olacak şekilde değiştirme

Kaynak gruplarının Env etiketini adına göre değiştirme

Azure ortamınız içinde mevcut olan her ortam için Bir Değiştirme ilkesi gereklidir. Her biri 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 hedefleyene kadar, ilke tanımında modun 'Dizinli' yerine 'All' olması gerekir.

Bu ilke, kaynak gruplarıyla yalnızca üretim kaynakları için kullanılan örnek adlandırma düzeniyle prd- eşler. Bu örnekteki gibi tek yerine çeşitli eşleşme koşullarıyla daha karmaşık adlandırma şemaları elde edilebilir.

Env etiketini devralmak için kaynakları değiştirme

İş gereksinimi, tüm kaynakların üst kaynak grubu tarafından env etiketine sahip olması için çağrı yapar. Bu etiket geçersiz kılınamaz, bu nedenle Modify etkisiyle addOrReplace işlemi kullandırılmaktadır. Ö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ı hedefleyene kadar, ilke tanımında 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ğeri olmayan veya Env etiketinin eksik olduğu herhangi bir kaynağı aramaz. Eşleşen kaynakların env etiketi, kaynakta zaten mevcut olsa bile 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şime ekleyin ve bunları bir yönetim grubuna veya aboneliğe attayabilirsiniz. Girişim ve dahil edilen ilkeler daha sonra mevcut kaynakların uyumluluğunu değerlendirir ve ilke kuralında if özelliğiyle eşan yeni veya güncelleştirilmiş kaynaklara yönelik istekleri değiştirebilir. Ancak ilke, mevcut uyumlu olmayan kaynakları tanımlı etiket değişiklikleriyle otomatik olarak güncelleştirmez.

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

Kaynakları temizleme

Bu öğreticide yer alan kaynaklarla çalışmayı tamamlarsanız, yukarıda oluşturulan atamaları veya tanımları silmek için aşağıdaki adımları kullanın:

  1. Atama sayfasının sol tarafındaki Yazma'nın altında Tanımlar'ı (veya atamayı smeye çalışıyorsanız Atamalar Azure İlkesi 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örevler hakkında bilgi edinebilirsiniz:

  • İş gereksinimlerinizi belirlediniz
  • Her gereksinim bir ilke tanımıyla eşlenmiş
  • Etiket ilkelerini bir girişimde gruplandı

Sonraki adımlar

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