Azure İlkesi tanımları auditIfNotExists etkisi
Bu auditIfNotExists
etki, koşulla eşleşen if
ancak koşulda then
details
belirtilen özelliklere sahip olmayan kaynakla ilgili kaynakların denetlenmeye olanak tanır.
AuditIfNotExists değerlendirmesi
auditIfNotExists
bir Kaynak Sağlayıcısı bir kaynak oluşturma veya güncelleştirme isteğini işledikten ve bir başarı durum kodu döndürdükten sonra çalışır. denetim, ilgili kaynak yoksa veya tarafından ExistenceCondition
tanımlanan kaynaklar doğru olarak değerlendirilmediyse gerçekleşir. Yeni ve güncelleştirilmiş kaynaklar için Azure İlkesi etkinlik günlüğüne bir Microsoft.Authorization/policies/audit/action
işlem ekler ve kaynağı uyumsuz olarak işaretler. Tetiklendiğinde, koşulu karşılayan if
kaynak uyumsuz olarak işaretlenen kaynaktır.
AuditIfNotExists özellikleri
details
AuditIfNotExists efektlerinin özelliği, eşleşecek ilgili kaynakları tanımlayan tüm alt özelliklere sahiptir.
type
(gerekli)- Eşleşecek ilgili kaynağın türünü belirtir.
- Koşul kaynağının
if
altında bir kaynak türü varsatype
, ilke, değerlendirilen kaynak kapsamında bununtype
kaynaklarını sorgular. Aksi takdirde, ilke sorguları, öğesine bağlı olarak değerlendirilen kaynakla aynı kaynak grubu veya abonelik içinde sorgularexistenceScope
.
name
(isteğe bağlı)- Eşleşecek kaynağın tam adını belirtir ve ilkenin belirtilen türdeki tüm kaynaklar yerine belirli bir kaynağı getirmesine neden olur.
- ve için
if.field.type
then.details.type
koşul değerleri eşleştiğindename
, gerekli hale gelir ve bir alt kaynak için veya[field('fullName')]
olmalıdır[field('name')]
. Ancak bunun yerine bir denetim etkisi dikkate alınmalıdır.
Not
type
ve name
kesimleri iç içe kaynakları genel olarak almak için birleştirilebilir.
Belirli bir kaynağı almak için ve "name": "parentResourceName/nestedResourceName"
kullanabilirsiniz"type": "Microsoft.ExampleProvider/exampleParentType/exampleNestedType"
.
İç içe kaynaklar koleksiyonunu almak için, soyadı kesimi yerine bir joker karakter ?
sağlanabilir. Örneğin, "type": "Microsoft.ExampleProvider/exampleParentType/exampleNestedType"
ve "name": "parentResourceName/?"
. Bu, değerlendirilen kaynakla ilgili kaynaklara erişmek için alan işlevleriyle birleştirilebilir, örneğin "name": "[concat(field('name'), '/?')]"
."
resourceGroupName
(isteğe bağlı)- İlgili kaynağın eşleşmesinin farklı bir kaynak grubundan gelmesini sağlar.
- Koşul kaynağının altında
if
yer alan bir kaynaksatype
geçerli değildir. - Varsayılan, koşul kaynağının
if
kaynak grubudur.
existenceScope
(isteğe bağlı)- İzin verilen değerler Subscription ve ResourceGroup değerleridir.
- Eşleşmesi gereken ilgili kaynağın getirileceği yerin kapsamını ayarlar.
- Koşul kaynağının altında
if
yer alan bir kaynaksatype
geçerli değildir. - ResourceGroup için, belirtilirse içindeki
resourceGroupName
kaynak grubuyla sınırlayabilir. BelirtilmezseresourceGroupName
, koşul kaynağınınif
kaynak grubuyla sınırlanır ve bu varsayılan davranıştır. - Abonelik için ilgili kaynak için aboneliğin tamamını sorgular. Uygun değerlendirme için atama kapsamı abonelikte veya daha yüksek bir değerde ayarlanmalıdır.
- Varsayılan değer ResourceGroup'tır.
evaluationDelay
(isteğe bağlı)- İlgili kaynakların varlığının ne zaman değerlendirilmesi gerektiğini belirtir. Gecikme yalnızca kaynak oluşturma veya güncelleştirme isteğinin sonucu olan değerlendirmeler için kullanılır.
- İzin verilen değerler, ,
AfterProvisioningSuccess
,AfterProvisioningFailure
veya 0 ile 360 dakika arasında bir ISO 8601 süresidirAfterProvisioning
. - AfterProvisioning değerleri, ilke kuralının
if
koşulunda değerlendirilen kaynağın sağlama sonucunu inceler.AfterProvisioning
sonuç ne olursa olsun sağlama tamamlandıktan sonra çalışır. Altı saatten uzun süren sağlama, Değerlendirme sonrası gecikmeleri belirlenirken hata olarak değerlendirilir. - Varsayılan değer (
PT10M
10 dakika). - Uzun bir değerlendirme gecikmesi belirtilmesi, kaynağın kayıtlı uyumluluk durumunun bir sonraki değerlendirme tetikleyicisine kadar güncelleştirilmemesiyle sonuçlanabilir.
existenceCondition
(isteğe bağlı)- Belirtilmezse, ilgili kaynaklardan herhangi biri
type
etkiyi karşılar ve denetimi tetiklemez. - Koşul için
if
ilke kuralıyla aynı dili kullanır, ancak ilgili her kaynak için ayrı ayrı değerlendirilir. - Eşleşen ilgili herhangi bir kaynak true olarak değerlendirilirse, etki karşılanır ve denetimi tetiklemez.
- Koşuldaki
if
değerlerle eşdeğerliği denetlemek için [field()] kullanabilir. - Örneğin, üst kaynağın (koşulda
if
) eşleşen ilgili kaynakla aynı kaynak konumunda olduğunu doğrulamak için kullanılabilir.
- Belirtilmezse, ilgili kaynaklardan herhangi biri
AuditIfNotExists örneği
Örnek: Kötü amaçlı yazılımdan koruma uzantısının mevcut olup olmadığını belirlemek için Sanal Makineler değerlendirir ve eksik olduğunda denetler.
{
"if": {
"field": "type",
"equals": "Microsoft.Compute/virtualMachines"
},
"then": {
"effect": "auditIfNotExists",
"details": {
"type": "Microsoft.Compute/virtualMachines/extensions",
"existenceCondition": {
"allOf": [
{
"field": "Microsoft.Compute/virtualMachines/extensions/publisher",
"equals": "Microsoft.Azure.Security"
},
{
"field": "Microsoft.Compute/virtualMachines/extensions/type",
"equals": "IaaSAntimalware"
}
]
}
}
}
}
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.