Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
İlke atamaları, bir ilke tanımı veya girişimi tarafından değerlendirilen kaynakları tanımlar. Ayrıca, ilke ataması atama zamanında bu kaynak grubu için parametrelerin değerlerini belirleyebilir ve bu da aynı kaynak özelliklerine yönelik ilke tanımlarının farklı uyumluluk gereksinimleriyle yeniden kullanılmasını mümkün hale getirir.
İlke ataması oluşturmak için JavaScript Nesne Gösterimi (JSON) kullanırsınız. İlke ataması şu öğeler içerir:
- kapsam
- ilke tanımı kimliği ve sürümü
- görünen ad
- Açıklama
- meta veriler
- kaynak seçicileri
- Geçersiz kılınır
- zorlama modu
- hariç tutulan kapsamlar
- uyumsuzluk iletileri
- parametreler
- kimlik
Örneğin, aşağıdaki JSON, DoNotEnforce modunda parametrelerle örnek bir ilke atama isteği gösterir:
{
"properties": {
"displayName": "Enforce resource naming rules",
"description": "Force resource names to begin with DeptA and end with -LC",
"definitionVersion": "1.*.*",
"metadata": {
"assignedBy": "Cloud Center of Excellence"
},
"enforcementMode": "DoNotEnforce",
"notScopes": [],
"policyDefinitionId": "/subscriptions/{mySubscriptionID}/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming",
"nonComplianceMessages": [
{
"message": "Resource names must start with 'DeptA' and end with '-LC'."
}
],
"parameters": {
"prefix": {
"value": "DeptA"
},
"suffix": {
"value": "-LC"
}
},
"identity": {
"principalId": "<PrincipalId>",
"tenantId": "<TenantId>",
"identityType": "SystemAssigned",
"userAssignedIdentities": null
},
"location": "westus",
"resourceSelectors": [],
"overrides": [],
}
}
Kapsam
Atama kaynağı oluşturma zamanı için kullanılan kapsam, kaynak uygulanabilirliğinin birincil sürücüsüdür. Atama kapsamı hakkında daha fazla bilgi için Azure İlkesi'nde kapsamı anlama başlıklı bölüme bakın.
İlke tanımı kimliği ve sürümü
Bu alan, bir ilke tanımının veya girişim tanımının tam yol adı olmalıdır.
policyDefinitionId bir dizedir ve dizi değildir. Atanan ilke tanımının veya girişimin en son içeriği, ilke ataması her değerlendirildiğinde alınır. Tavsiye, çok sayıda ilkenin sıklıkla birlikte atandığı durumlarda bunun yerine bir girişim kullanılmasıdır.
Yerleşik tanımlar ve girişimler için, hangi definitionVersion öğesini değerlendirebileceğinizi belirleyebilirsiniz. Varsayılan olarak sürüm en son ana sürüm olarak ayarlanır ve ikincil ve düzeltme eki değişiklikleri otomatik olarak entegre edilir.
- Tanımın küçük değişikliklerini otomatik olarak içermek için sürüm numarası
#.*.*olacaktır. Joker karakter, otomatik güncelleştirmeleri temsil eder. - Alt sürüm yoluna sabitlemek için sürüm biçimi
#.#.*olacaktır. - Tüm düzeltme eki değişiklikleri güvenlik amacıyla otomatik olarak eklenmelidir. Düzeltme eki değişiklikleri metin değişiklikleri ve acil durum senaryolarıyla sınırlıdır.
Görünen ad ve açıklama
displayName ve description'i ilke atamasını belirlemek ve belirli bir kaynak kümesiyle kullanımına dair bağlam sağlamak için kullanırsınız.
displayNameen fazla 128 karakter uzunluğunda ve en fazla 512description.
Meta veri
İsteğe bağlı metadata özellik, ilke ataması hakkındaki bilgileri depolar. Müşteriler, kuruluşları için yararlı olan herhangi bir özellik ve değeri metadata tanımlayabilir. Ancak, Azure İlkesi tarafından kullanılan bazı ortak özellikler vardır. Her metadata özelliğin sınırı 1.024 karakterdir.
Ortak meta veri özellikleri
-
assignedBy(dize): Atamayı oluşturan güvenlik sorumlusunun kolay adı. -
createdBy(dize): Atamayı oluşturan güvenlik sorumlusunun GUID değeri. -
createdOn(dize): Atama oluşturma zamanının Evrensel ISO 8601 DateTime biçimi. -
updatedBy(dize): Varsa, atamayı güncelleştiren güvenlik sorumlusunun kolay adı. -
updatedOn(dize): Atama güncelleştirme zamanının, eğer varsa, Evrensel ISO 8601 tarih-saat biçimi.
Senaryoya özgü meta veri özellikleri
parameterScopes(nesne): Anahtarın strongType ile yapılandırılmış parametre adıyla eşleştiği ve değerin strongType ile eşleşen kullanılabilir kaynakların listesini sağlamak için Portal'da kullanılan kaynak kapsamını tanımladığı anahtar-değer çiftleri koleksiyonu. Portal, kapsam atama kapsamından farklıysa bu değeri ayarlar. Ayarlanırsa, portalda ilke atamasının düzenlenmesi parametrenin kapsamını otomatik olarak bu değere ayarlar. Ancak kapsam değere kilitlenmez ve başka bir kapsama değiştirilebilir.Aşağıdaki
parameterScopesörneği, strongType adlı bir parametre içindir ve bu parametre, atama portalda düzenlendiğinde kaynak seçimi için bir kapsam ayarlar."metadata": { "parameterScopes": { "backupPolicyId": "/subscriptions/{SubscriptionID}/resourcegroups/{ResourceGroupName}" } }evidenceStorages(nesne): Birmanualetkisi olan ilke atamalarına yönelik kanıtları saklamak için kullanılması gereken önerilen varsayılan depolama hesabı.displayNameözelliği, depolama hesabının adıdır.evidenceStorageAccountIDözelliği, depolama hesabının kaynak kimliğidir.evidenceBlobContainerözelliği, kanıtı depolamayı planladığınız blob kapsayıcı adıdır.{ "properties": { "displayName": "A contingency plan should be in place to ensure operational continuity for each Azure subscription.", "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/{definitionId}", "metadata": { "evidenceStorages": [ { "displayName": "Default evidence storage", "evidenceStorageAccountId": "/subscriptions/{subscriptionId}/resourceGroups/{rg-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name}", "evidenceBlobContainer": "evidence-container" } ] } } }
Kaynak seçiciler
İsteğe bağlı resourceSelectors özellik, kaynak konumu, kaynak türü veya kaynağın konumu olup olmadığı gibi faktörlere göre ilke atamalarını aşamalı olarak dağıtmanıza olanak tanıyarak güvenli dağıtım uygulamalarını (SDP) kolaylaştırır. Kaynak seçiciler kullanıldığında, Azure İlkesi yalnızca kaynak seçicilerde yapılan belirtimlere uygun kaynakları değerlendirir. Kaynak seçiciler, muafiyet vekayıt kapsamını aynı şekilde daraltmak için de kullanılabilir.
Aşağıdaki örnek senaryoda, yeni ilke ataması yalnızca kaynağın konumu Doğu ABD veya Batı ABD ise değerlendirilir.
{
"properties": {
"policyDefinitionId": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyDefinitions/ResourceLimit",
"definitionVersion": "1.1.*",
"resourceSelectors": [
{
"name": "SDPRegions",
"selectors": [
{
"kind": "resourceLocation",
"in": [
"eastus",
"westus"
]
}
]
}
]
},
"systemData": { ...
},
"id": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyAssignments/ResourceLimit",
"type": "Microsoft.Authorization/policyAssignments",
"name": "ResourceLimit"
}
İlkenizin değerlendirme kapsamını genişletmeye hazır olduğunuzda, atamayı güncelleştirmeniz gerekir. Aşağıdaki örnekte, SDPRegions seçicisine iki Azure bölgesi daha eklenerek ilke atamamız gösterilmektedir. Bu örnekte, SDP'nin Güvenli Dağıtım Uygulaması anlamına geldiğini unutmayın:
{
"properties": {
"policyDefinitionId": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyDefinitions/ResourceLimit",
"definitionVersion": "1.1.*",
"resourceSelectors": [
{
"name": "SDPRegions",
"selectors": [
{
"kind": "resourceLocation",
"in": [
"eastus",
"westus",
"centralus",
"southcentralus"
]
}
]
}
]
},
"systemData": { ...
},
"id": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyAssignments/ResourceLimit",
"type": "Microsoft.Authorization/policyAssignments",
"name": "ResourceLimit"
}
Kaynak seçiciler aşağıdaki özelliklere sahiptir:
name: Kaynak seçicinin adı.selectors: (İsteğe bağlı) İlke ataması için geçerli olan kaynakların hangi alt kümesinin uyumluluk açısından değerlendirilmesi gerektiğini belirlemek için kullanılan özellik.kind: Hangi özelliğin değerlendirilen kaynak kümesini daralttığını açıklayan seçicinin özelliği. Her tür tek bir kaynak seçicide yalnızca bir kez kullanılabilir. İzin verilen değerler şunlardır:resourceLocation: Bu özellik, kaynakları türlerine göre seçmek için kullanılır. ile aynı kaynak seçicideresourceWithoutLocationkullanılamaz.resourceType: Bu özellik, kaynakları türlerine göre seçmek için kullanılır.resourceWithoutLocation: Bu özellik, konumu olmayan abonelik düzeyindeki kaynakları seçmek için kullanılır. Şu anda yalnızcasubscriptionLevelResourcesdestekliyor. ile aynı kaynak seçicideresourceLocationkullanılamaz.
in: Belirtilenkindiçin izin verilen değerlerin listesi.notInile kullanılamaz. En fazla 50 değer içerebilir.notIn: Belirtilenkindiçin izin verilmeyen değerlerin listesi.inile kullanılamaz. En fazla 50 değer içerebilir.
Kaynak seçici birden çok selectorsiçerebilir. Kaynak seçiciye uygulanabilmesi için kaynağın tüm seçicileri tarafından belirtilen gereksinimleri karşılaması gerekir. Ayrıca, tek bir atamada en fazla 10 resourceSelectors belirtilebilir. Kapsam içi kaynaklar, bu kaynak seçicilerden herhangi birini karşıladığında değerlendirilir.
Geçersiz Kılmalar
İsteğe bağlı overrides özellik, temel ilke tanımını değiştirmeden veya ilke tanımında parametreli bir efekt kullanmadan ilke tanımının etkisini değiştirmenize olanak tanır.
Etkiler üzerine geçersiz kılmaların yaygın bir kullanım durumu, çok sayıda ilişkili politika tanımına sahip politika girişimleridir. Bu durumda, birden çok ilke etkisini yönetmek, özellikle de etkinin zaman zaman güncelleştirilmesi gerektiğinde önemli bir yönetim çabası tüketebilir. Geçersiz kılmalar, girişim içindeki birden çok ilke tanımının etkilerini aynı anda güncelleştirmek için kullanılabilir.
Şimdi bir örneğe göz atalım. CorpVMSizePolicyözel bir ilke tanımı ve tek bir etkisi içeren CostManagementpolicyDefinitionReferenceIdbir ilke girişiminiz olduğunu düşünün. CostManagement girişimini atamak istediğinizi ancak bu ilke için uyumluluk bildirimini görmek istemediğinizi varsayalım. Bu politikanın audit etkisi, aşağıdaki örnekte gösterildiği gibi girişim atamasında bir geçersiz kılma ile disabled değiştirilebilir.
{
"properties": {
"policyDefinitionId": "/subscriptions/{subId}/providers/Microsoft.Authorization/policySetDefinitions/CostManagement",
"overrides": [
{
"kind": "policyEffect",
"value": "disabled",
"selectors": [
{
"kind": "policyDefinitionReferenceId",
"in": [
"corpVMSizePolicy"
]
}
]
}
]
},
"systemData": { ...
},
"id": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyAssignments/CostManagement",
"type": "Microsoft.Authorization/policyAssignments",
"name": "CostManagement"
}
Geçersiz kılmalar için bir diğer yaygın kullanım örneği de tanımın yeni bir sürümünü kullanıma sunmadır. Atama sürümünü güvenli bir şekilde güncellemek için önerilen adımlar hakkında daha fazla bilgi için 'Politika Güvenli Dağıtım'a bakın.
Geçersiz kılmalar aşağıdaki özelliklere sahiptir:
kind: Atamanın geçersiz kıldığı özellik. Desteklenen türlerpolicyEffectvepolicyVersion'dir.value: Mevcut değeri geçersiz kılan yeni değer.kind: policyEffectiçin desteklenen değerler efektlerdir. içinkind: policyVersion, desteklenen sürüm numarası atamada belirtilenden büyük veya buna eşitdefinitionVersionolmalıdır.selectors: (İsteğe bağlı) ilke atamasının hangi kapsamının geçersiz kılmayı üstlenmesi gerektiğini belirlemek için kullanılan özellik.kind: Hangi özelliğin geçersiz kılma kapsamını daralttığını açıklayan seçicinin özelliği. içinkind: policyEffectizin verilen değerler:policyDefinitionReferenceId: Bu özellik, bir girişim ataması içindeki hangi ilke tanımlarının geçersiz kılma etkisini üstlenmesi gerektiğini belirtir.resourceLocation: Bu özellik, kaynakları türlerine göre seçmek için kullanılır. ile aynı kaynak seçicideresourceWithoutLocationkullanılamaz.
için
kind: policyVersionizin verilen değer:-
resourceLocation: Bu özellik, kaynakları türlerine göre seçmek için kullanılır. ile aynı kaynak seçicideresourceWithoutLocationkullanılamaz.
in: Belirtilenkindiçin izin verilen değerlerin listesi.notInile kullanılamaz. En fazla 50 değer içerebilir.notIn: Belirtilenkindiçin izin verilmeyen değerlerin listesi.inile kullanılamaz. En fazla 50 değer içerebilir.
Dizide birden çok değer policyDefinitionReferenceId belirterek birçok ilkenin etkisini değiştirmek için tek bir geçersiz kılma kullanılabilir. Tek bir geçersiz kılma en fazla 50 policyDefinitionReferenceIdiçin kullanılabilir ve tek bir ilke ataması, belirtildikleri sırayla değerlendirilen en fazla 10 geçersiz kılma içerebilir. Atama oluşturulmadan önce, geçersiz kılmada seçilen etki ilke kuralına ve parametre izin verilen değer listesine göre doğrulanır (efektin parametreleştirildiği durumlarda).
Zorlama modu
Bu enforcementMode özellik, müşterilere politika etkisini başlatmadan veya Azure Etkinlik günlüğündeki girişleri tetiklemeden mevcut kaynaklarda politikanın sonucunu kontrol etme imkanı sağlar.
Bu özellik, aşağıdaki değerlere sahiptir:
| Modu | JSON Değeri | Tür | El ile düzeltme | Etkinlik günlüğü girdisi | Açıklama |
|---|---|---|---|---|---|
| Etkinleştirildi | Varsayılan | string | Yes | Yes | İlke etkisi, kaynak oluşturma veya güncelleme sırasında uygulanır. |
| Devre dışı | Uygulamayın | string | Yes | Hayır | İlke etkisi, kaynak oluşturma veya güncelleştirme sırasında uygulanmaz. |
| Enroll | Enroll | string | Yes | Kayıtlı kaynaklar için evet | Politika etkisi, yalnızca atamada kayıtlı kaynaklar için kaynak oluşturma veya güncelleme sırasında uygulanır. |
İlke veya girişim tanımında belirtilmezse enforcementMode Varsayılan değeri kullanılır.
Düzeltme görevleri, deployIfNotExists ilkeleri için, enforcementMode "DoNotEnforce" olarak ayarlandığında bile başlatılabilir. Kayıt modu hakkında daha fazla bilgi için Azure İlkesi enrollment structure sayfasına bakınız.
Politika etkisinin kapsamdaki tüm kaynaklara uygulanması gereken standart politika atamaları için kullanılır Default .
Uygulamadan önce poliçe atamasını değerlendirmek istediğinizde kullanın DoNotEnforce . Bu mod, yeni bir atamayı test etmek, uyum etkisini gözden geçirmek veya politika etkisi uygulanmadan önce politika mantığını doğrulamak için faydalıdır.
Zorlama modu seçme
Atamanın kaynakları nasıl etkilemesini istediğinize uyan zorunluluk modunu kullanın.
| Scenario | Zorlama modu |
|---|---|
| Kaynak oluşturma veya güncelleme sırasında kapsamdaki tüm kaynaklar için politika etkisini uygulayın. | Default |
| Politika etkisini uygulamadan veya Azure Etkinlik günlüğüne reddetme girişleri yazmadan uyumu değerlendirin. | DoNotEnforce |
| Atamayı, politika kayıtları aracılığıyla aşamalı uygulama için erişilebilir kılın. | Enroll |
Politika etkisinin kapsamdaki tüm kaynaklara uygulanması gereken standart politika atamaları için kullanılır Default .
Uygulamadan önce poliçe atamasını değerlendirmek istediğinizde kullanın DoNotEnforce . Bu mod, yeni bir atamayı test etmek, uyum etkisini gözden geçirmek veya politika etkisi uygulanmadan önce politika mantığını doğrulamak için faydalıdır.
Görevi politika kayıtları aracılığıyla aşamalı uygulama için mevcut hale getirmek istediğinizde kullanın Enroll . Bu modda, kapsam sahipleri, uygulamanın belirli kapsamlara uygulanması gerektiğini belirtmek için kayıt kaynakları oluşturabilirler. Bir kayıt kaynağı olmadığında, politika değerlendirmesi varsayılan olarak kullanılan atama DoNotEnforce ile aynıdır, ancak bu davranış yapılandırılabilir. Bu mod, bir atamaya yavaş yavaş toplu olarak alt skoplar eklemek istediğinizde faydalıdır.
Dışlanan kapsamlar
Atamanın kapsamı tüm alt kaynak kapsayıcılarını ve alt kaynakları içerir. Bir alt kaynak kapsayıcısının veya alt kaynağın tanımı uygulanmaması gerekiyorsa, her bir değeri ayarlanarak değerlendirme dışında tutulabilir.notScopes Bu özellik, bir veya daha fazla kaynak kapsayıcısını veya kaynağı değerlendirme dışında tutmak için bir dizidir.
notScopes ilk atama oluşturulduktan sonra eklenebilir veya güncelleştirilebilir.
Not
Dışlanan kaynak, muaf tutulan kaynaktan farklıdır. Daha fazla bilgi için bkz. Azure İlkesi'nde kapsamı anlama.
Uyumsuzluk iletileri
Kaynağın ilke veya girişim tanımıyla neden uyumlu olmadığını açıklayan özel bir ileti ayarlamak için atama tanımında ayarlayın nonComplianceMessages . Bu düğüm bir girdi dizisidir message . Bu özel ileti, uyumsuzluk için varsayılan hata iletisine ek olarak isteğe bağlıdır.
Önemli
Uyumsuzluğa yönelik özel iletiler yalnızca Resource Manager modları tanımlarıyla tanımlarda veya girişimlerde desteklenir.
"nonComplianceMessages": [
{
"message": "Default message"
}
]
Atama bir girişime yönelikse girişimdeki her ilke tanımı için farklı iletiler yapılandırılabilir. İletiler girişim tanımında yapılandırılan değeri kullanır policyDefinitionReferenceId . Daha fazla bilgi için bkz . ilke tanımları özellikleri.
"nonComplianceMessages": [
{
"message": "Default message"
},
{
"message": "Message for just this policy definition by reference ID",
"policyDefinitionReferenceId": "10420126870854049575"
}
]
Parametreler
İlke atamasının bu kesimi, ilke tanımında veya girişim tanımında tanımlanan parametrelerin değerlerini sağlar. Bu tasarım, ilke veya girişim tanımını farklı kaynaklarla yeniden kullanabilmeyi, ancak farklı iş değerlerini veya sonuçlarını denetlemeyi mümkün kılar.
"parameters": {
"prefix": {
"value": "DeptA"
},
"suffix": {
"value": "-LC"
}
}
Bu örnekte, ilke tanımında daha önce tanımlanan parametreler prefix ve suffix şeklindedir. Bu belirli ilke ataması prefix öğesini DeptA ve suffix öğesini -LC olarak ayarlar. Aynı ilke tanımı, farklı bir departman için farklı bir parametre kümesiyle yeniden kullanılabilir ve esneklik sağlarken ilke tanımlarının yinelemesini ve karmaşıklığını azaltır.
Kimlik
Uyumlu olmayan kaynaklarda düzeltme yapmak için deployIfNotExists efekt olarak ayarlanmış veya modify kimlik özelliğine sahip ilke atamaları olmalıdır. Tek bir ilke ataması yalnızca bir sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimlikle ilişkilendirilebilir. Ancak, gerekirse bu kimliğe birden fazla rol atanabilir.
Sistem tarafından atanan yönetilen kimlik kullanan atamalar, dağıtılacağı yeri belirlemek için bir üst düzey location özellik de belirtmelidir. Konum global olarak ayarlanamaz ve değiştirilemez.
location Özelliği yalnızca Rest API 2018-05-01 ve sonraki sürümlerinde belirtilir. Kimlik kullanılmayan bir görevlendirmede bir konum belirtilirse, bu konum görmezden gelinir.
# System-assigned identity
"identity": {
"principalId": "<PrincipalId>",
"tenantId": "<TenantId>",
"identityType": "SystemAssigned",
"userAssignedIdentities": null
},
"location": "westus",
...
# User-assigned identity
"identity": {
"identityType": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/SubscriptionID/resourceGroups/{rgName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test-identity": {}
}
},
Not
Bir ilke deployIfNotExists için, atama kimliği her zaman ARM Şablonu dağıtımında kullanılır. Ancak, hedef kaynak oluşturulduğunda veya güncelleştirildiğinde, istek sahibinin kimliği değerlendirme için kullanılır.
Örneğin, Microsoft.Insights/diagnosticSettings üzerinde konuşlandırılan Microsoft.KeyVault/vaults bir politika hayal edin. Bir anahtar kasası oluşturulduğunda, kural tanımının varoluş koşulunu değerlendirmek amacıyla ilgili kaynakları elde etmek için arayan kimliği kullanılır. Koşullar karşılanırsa, anahtar kasasına tanılama ayarlarını dağıtmak için ilke atamasının kimliği kullanılır. Bu, Microsoft.Insights/diagnosticSettings/read permissions öğesinin çağıran tarafından, Microsoft.Insights/diagnosticSettings/write permissions öğesinin de atama tarafından gerekeceği anlamına gelir.
Sonraki adımlar
- İlke tanımı yapısı hakkında bilgi edinin.
- Program aracılığıyla ilkelerin nasıl oluşturulacağını anlama.
- Uyumluluk verilerini almayı öğrenin.
- Uyumlu olmayan kaynakları düzeltmeyi öğrenin.
- Kaynaklarınızı Azure yönetim gruplarıyla düzenleme ile yönetim grubunun ne olduğunu gözden geçirin.