Azure İlkesi tanımları efekti değiştir
Bu modify
etki, oluşturma veya güncelleştirme sırasında bir abonelikte veya kaynakta özellik veya etiket eklemek, güncelleştirmek veya kaldırmak için kullanılır. CostCenter gibi kaynaklardaki etiketlerin güncelleştirilmesi yaygın bir örnektir. Mevcut uyumlu olmayan kaynaklar bir düzeltme göreviyle düzeltilebilir. Tek bir Değiştirme kuralının herhangi bir sayıda işlemi olabilir. Değişiklik olarak ayarlanmış efektli ilke atamaları, düzeltme yapmak için yönetilen bir kimlik gerektirir.
Etkisi modify
aşağıdaki işlemleri destekler:
- Kaynak etiketlerini ekleyin, değiştirin veya kaldırın. Etiketler için, hedef kaynak bir kaynak grubu olmadığı sürece Değiştir ilkesinin modu ayarlanmış
indexed
olmalıdır. - Sanal makinelerin yönetilen kimlik türünün (
identity.type
) değerini ekleyin veya değiştirin ve Sanal Makine Ölçek Kümeleri. yalnızca sanal makineler veya Sanal Makine Ölçek Kümeleri için öğesini değiştirebilirsinizidentity.type
. - Belirli diğer adların değerlerini ekleyin veya değiştirin.
- ile
modify
kullanılabilecek diğer adların listesini almak için Azure PowerShell 4.6.0 veya üzeri sürümlerde kullanınGet-AzPolicyAlias | Select-Object -ExpandProperty 'Aliases' | Where-Object { $_.DefaultMetadata.Attributes -eq 'Modifiable' }
.
- ile
Önemli
Etiketleri yönetiyorsanız, Daha fazla işlem türü ve mevcut kaynakları düzeltme olanağı sağlayan Değiştirme Olarak Ekle yerine Değiştir'i kullanmanız önerilir. Ancak, yönetilen kimlik oluşturamıyorsanız veya Değiştir henüz kaynak özelliği için diğer adı desteklemiyorsa Ekleme önerilir.
Değerlendirmeyi değiştirme
Değişiklik, bir kaynağın oluşturulması veya güncelleştirilmesi sırasında bir Kaynak Sağlayıcısı tarafından istek işlenmeden önce değerlendirilir. İlke modify
kuralının koşulu karşılandığında if
, istek içeriğine işlemler uygulanır. Her modify
işlem, ne zaman uygulanacağını belirleyen bir koşul belirtebilir. Hatalı koşul değerlendirmeleri olan işlemler atlanır.
Diğer ad belirtildiğinde, işlemin istek içeriğini kaynak sağlayıcısının modify
reddetmesine neden olacak şekilde değiştirmediğinden emin olmak için daha fazla denetim gerçekleştirilir:
- Diğer adın eşleneceği özellik, isteğin API sürümünde Değiştirilebilir olarak işaretlenir.
- İşlemdeki
modify
belirteç türü, isteğin API sürümündeki özelliği için beklenen belirteç türüyle eşleşir.
Bu denetimlerden biri başarısız olursa, ilke değerlendirmesi belirtilen conflictEffect
öğesine geri döner.
Önemli
Eşlenen özelliğin 'Değiştirilebilir' olmadığı API sürümlerini kullanarak isteklerin başarısız olmasını önlemek için Diğer adlar içeren Tanımları değiştir seçeneğinin denetimçakışması etkisini kullanması önerilir. Aynı diğer ad API sürümleri arasında farklı davranırsa, her API sürümü için kullanılan işlemi belirlemek modify
için koşullu değiştirme işlemleri kullanılabilir.
Efekti kullanan modify
bir ilke tanımı bir değerlendirme döngüsünün parçası olarak çalıştırıldığında, zaten var olan kaynaklarda değişiklik yapmaz. Bunun yerine, koşula if
uyan tüm kaynakları uyumsuz olarak işaretler.
Özellikleri değiştirme
details
efektinin modify
özelliği, düzeltme için gereken izinleri tanımlayan ve operations
etiket değerlerini eklemek, güncelleştirmek veya kaldırmak için kullanılan tüm alt özelliklere sahiptir.
roleDefinitionIds
(gerekli)- Bu özellik, abonelik tarafından erişilebilen rol tabanlı erişim denetimi rol kimliğiyle eşleşen bir dizi dize içermelidir. Daha fazla bilgi için bkz . düzeltme - ilke tanımını yapılandırma.
- Tanımlanan rol, Katkıda Bulunan rolüne verilen tüm işlemleri içermelidir.
conflictEffect
(isteğe bağlı)- Aynı özelliği birden fazla ilke tanımı değiştirirse veya işlem belirtilen diğer ad üzerinde çalışmazsa hangi ilke tanımının
modify
"kazandığını" belirler.- Yeni veya güncelleştirilmiş kaynaklar için reddetme içeren ilke tanımı önceliklidir. Denetimli ilke tanımları tümünü
operations
atlar. Birden fazla ilke tanımı reddetme etkisine sahipse, istek çakışma olarak reddedilir. Tüm ilke tanımlarında denetim varsa, çakışan ilke tanımlarından hiçbirioperations
işlenmez. - Mevcut kaynaklar için, birden fazla ilke tanımının etki reddetmesi varsa, uyumluluk durumu Çakışmadır. Etki reddeden bir veya daha az ilke tanımı varsa, her atama Uyumlu değil uyumluluk durumunu döndürür.
- Yeni veya güncelleştirilmiş kaynaklar için reddetme içeren ilke tanımı önceliklidir. Denetimli ilke tanımları tümünü
- Kullanılabilir değerler: denetim, reddetme, devre dışı.
- Varsayılan değer reddet'tir.
- Aynı özelliği birden fazla ilke tanımı değiştirirse veya işlem belirtilen diğer ad üzerinde çalışmazsa hangi ilke tanımının
operations
(gerekli)- Eşleşen kaynaklarda tamamlanacak tüm etiket işlemlerinin dizisi.
- Özellikler:
operation
(gerekli)- Eşleşen bir kaynakta hangi eylemin gerçekleştireceklerini tanımlar. Seçenekler şunlardır: addOrReplace, Ekle, Kaldır. Ekle, ekleme efektine benzer şekilde davranır.
field
(gerekli)- Eklenecek, değiştirilecek veya kaldırılacak etiket. Etiket adları, diğer alanlar için aynı adlandırma kuralına uymalıdır.
value
(isteğe bağlı)- Etiketin ayarlanacağı değer.
- addOrReplace veya Add ise
operation
bu özellik gereklidir.
condition
(isteğe bağlı)- true veya false olarak değerlendirilen İlke işlevlerine sahip bir Azure İlkesi dil ifadesi içeren dize.
- Şu İlke işlevlerini desteklemez:
field()
,resourceGroup()
,subscription()
.
İşlemleri değiştirme
operations
özellik dizisi, tek bir ilke tanımından farklı şekillerde çeşitli etiketlerin değiştirilmesini mümkün kılar. Her işlem , field
ve value
özelliklerinden oluşuroperation
. operation
, düzeltme görevinin etiketlere ne yaptığını belirler, field
hangi etiketin değiştirildiğini belirler ve value
bu etiket için yeni ayarı tanımlar. Aşağıdaki örnek aşağıdaki etiket değişikliklerini yapar:
environment
Farklı bir değerle zaten mevcut olsa bile etiketi "Test" olarak ayarlar.- etiketini
TempResource
kaldırır. - Etiketi,
Dept
ilke ataması üzerinde yapılandırılan DeptName ilke parametresine ayarlar.
"details": {
...
"operations": [
{
"operation": "addOrReplace",
"field": "tags['environment']",
"value": "Test"
},
{
"operation": "Remove",
"field": "tags['TempResource']",
},
{
"operation": "addOrReplace",
"field": "tags['Dept']",
"value": "[parameters('DeptName')]"
}
]
}
operation
özelliği aşağıdaki seçeneklere sahiptir:
Operasyon | Açıklama |
---|---|
addOrReplace |
Özellik veya etiket farklı bir değerle zaten mevcut olsa bile tanımlı özelliği veya etiketi ve değeri kaynağa ekler. |
add |
Tanımlı özelliği veya etiketi ve değeri kaynağa ekler. |
remove |
Tanımlı özelliği veya etiketi kaynaktan kaldırır. |
Örnekleri değiştirme
Örnek 1: Etiketi ekleyin environment
ve mevcut environment
etiketleri "Test" ile değiştirin:
"then": {
"effect": "modify",
"details": {
"roleDefinitionIds": [
"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
],
"operations": [
{
"operation": "addOrReplace",
"field": "tags['environment']",
"value": "Test"
}
]
}
}
Örnek 2: Etiketi kaldırın env
ve etiketi ekleyin environment
veya mevcut environment
etiketleri parametreli bir değerle değiştirin:
"then": {
"effect": "modify",
"details": {
"roleDefinitionIds": [
"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
],
"conflictEffect": "deny",
"operations": [
{
"operation": "Remove",
"field": "tags['env']"
},
{
"operation": "addOrReplace",
"field": "tags['environment']",
"value": "[parameters('tagValue')]"
}
]
}
}
Örnek 3: Depolama hesabının blob genel erişimine izin vermediğinden emin olun, modify
işlem yalnızca API sürümü daha büyük veya değerine eşit olan istekler 2019-04-01
değerlendirilirken uygulanır:
"then": {
"effect": "modify",
"details": {
"roleDefinitionIds": [
"/providers/microsoft.authorization/roleDefinitions/17d1049b-9a84-46fb-8f53-869881c3d3ab"
],
"conflictEffect": "audit",
"operations": [
{
"condition": "[greaterOrEquals(requestContext().apiVersion, '2019-04-01')]",
"operation": "addOrReplace",
"field": "Microsoft.Storage/storageAccounts/allowBlobPublicAccess",
"value": false
}
]
}
}
Sonraki adımlar
- örnekleri Azure İlkesi gözden geçirin.
- Azure İlkesi tanımı yapısını gözden geçirin.
- Program aracılığıyla ilkelerin nasıl oluşturulacağını anlama.
- Uyumluluk verilerini almayı öğrenin.
- Uyumlu olmayan kaynakları düzeltmeyi öğrenin.
- Azure yönetim gruplarını gözden geçirin.