Öğ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:
Azure İlkesi sayfasının sol tarafındaki Yazmabölümünden Tanımlar'ı (veya ödevi silmeye çalışıyorsanız Atamalar'ı) seçin.
Kaldırmak istediğiniz yeni girişim veya tanımını (ya da atamayı) arayın.
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: