Azure İlkesi girişim tanımı yapısı
Girişimler, bir grupla tek bir öğe olarak çalıştığınız için atamaları ve yönetimi basitleştirmek için çeşitli ilgili ilke tanımlarını gruplandırmanıza olanak tanır. Örneğin, ilgili etiketleme ilkesi tanımlarını tek bir girişimde gruplandırabilirsiniz. Her ilkeyi tek tek atamak yerine girişimi uygularsınız.
İlke girişimi tanımı oluşturmak için JSON kullanırsınız. İlke girişimi tanımı şu öğelere yönelik öğeler içerir:
- görünen ad
- açıklama
- meta veriler
- sürüm
- parametreler
- ilke tanımları
- ilke grupları (bu özellik Mevzuat Uyumluluğu (Önizleme) özelliğinin bir parçasıdır)
Aşağıdaki örnekte, iki etiketi işlemek için nasıl girişim oluşturulacağı gösterilmektedir: costCenter
ve productName
. Varsayılan etiket değerini uygulamak için iki yerleşik ilke kullanır.
{
"properties": {
"displayName": "Billing Tags Policy",
"policyType": "Custom",
"description": "Specify cost Center tag and product name tag",
"version" : "1.0.0",
"metadata": {
"version": "1.0.0",
"category": "Tags"
},
"parameters": {
"costCenterValue": {
"type": "String",
"metadata": {
"description": "required value for Cost Center tag"
},
"defaultValue": "DefaultCostCenter"
},
"productNameValue": {
"type": "String",
"metadata": {
"description": "required value for product Name tag"
},
"defaultValue": "DefaultProduct"
}
},
"policyDefinitions": [{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62",
"definitionVersion": "1.*.*"
"parameters": {
"tagName": {
"value": "costCenter"
},
"tagValue": {
"value": "[parameters('costCenterValue')]"
}
}
},
{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498",
"parameters": {
"tagName": {
"value": "costCenter"
},
"tagValue": {
"value": "[parameters('costCenterValue')]"
}
}
},
{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62",
"parameters": {
"tagName": {
"value": "productName"
},
"tagValue": {
"value": "[parameters('productNameValue')]"
}
}
},
{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498",
"parameters": {
"tagName": {
"value": "productName"
},
"tagValue": {
"value": "[parameters('productNameValue')]"
}
}
}
]
}
}
Azure İlkesi yerleşikler ve desenler Azure İlkesi örneklerde yer alır.
Meta veri
İsteğe bağlı metadata
özellik, ilke girişimi tanımı hakkındaki bilgileri depolar.
Müşteriler içindeki kuruluşlarında metadata
yararlı olan tüm özellikleri ve değerleri tanımlayabilir. Ancak, Azure İlkesi ve yerleşik olarak kullanılan bazı yaygın özellikler vardır.
Ortak meta veri özellikleri
version
(dize): İlke girişimi tanımının içeriğinin sürümü hakkındaki ayrıntıları izler. Yerleşikler için bu meta veri sürümü, yerleşik sürümün sürüm özelliğini izler. Bu meta veri sürümü üzerinde version özelliğini kullanmanız önerilir.category
(dize): azure portalında ilke tanımının hangi kategori altında görüntüleneceğini belirler.Not
Mevzuat Uyumluluğu girişimi için
category
, mevzuat uyumluluğu olmalıdır.preview
(boole): İlke girişimi tanımı önizleme ise için true veya false bayrağı.deprecated
(boole): İlke girişimi tanımının kullanım dışı olarak işaretlenip işaretlenmediği için true veya false bayrağı.
Sürüm (önizleme)
Yerleşik ilke girişimleri aynı definitionID
ile birden çok sürümü barındırabilir. Sürüm numarası belirtilmezse, tüm deneyimler tanımın en son sürümünü gösterir. Yerleşik bir sürümü görmek için API, SDK veya kullanıcı arabiriminde belirtilmesi gerekir. Atama içindeki tanımın belirli bir sürümüne başvurmak için bkz . atama içinde tanım sürümü
Azure İlkesi hizmeti, yerleşik ilke tanımına deprecated
veya girişimine durum ve değişiklik düzeyini iletmek için , preview
ve özelliklerini kullanırversion
. biçimi version
: {Major}.{Minor}.{Patch}
. İlke tanımı önizleme durumundayken, sonek önizleme özelliğine version
eklenir ve boole olarak kabul edilir. İlke tanımı kullanım dışı bırakıldığında, kullanımdan kaldırma kullanılarak tanımın meta verilerinde "deprecated": "true"
boole olarak yakalanır.
- Ana Sürüm (örnek: 2.0.0): Ana kural mantığı değişiklikleri, parametreleri kaldırma ve varsayılan olarak zorlama etkisi ekleme gibi önemli değişikliklere neden olur.
- İkincil Sürüm (örnek: 2.1.0): Küçük kural mantığı değişiklikleri, izin verilen yeni parametre değerleri ekleme, rol tanım kimliği olarak değiştirme, girişim içinde tanım ekleme veya kaldırma gibi değişiklikleri tanıtın.
- Yama Sürümü (örnek: 2.1.4): dize veya meta veri değişiklikleri ve kesme camı güvenlik senaryoları (nadir) tanıtın.
Yerleşik girişimler sürümlendirilir ve yerleşik ilke tanımlarının belirli sürümlerine yerleşik veya özel girişimler içinde de başvurabilirsiniz. Daha fazla bilgi için bkz . başvuru tanımı ve sürümleri.
Önizleme aşamasındayken portal üzerinden girişim oluştururken yerleşik ilke tanımı başvuruları için sürüm belirtemezsiniz. Portal aracılığıyla oluşturulan özel girişimlerdeki tüm yerleşik ilke başvuruları, bunun yerine ilke tanımının en son sürümüne varsayılan olarak geçer.
Azure İlkesi sürümleri hakkında daha fazla bilgi için bkz. Yerleşik sürüm oluşturma. İlkenin kullanım dışı veya önizleme aşamasında ne anlama geldiğini öğrenmek için bkz. İlkeleri önizleme ve kullanımdan kaldırma.
Parametreler
Parametreler, ilke tanımlarının sayısını azaltarak ilke yönetiminizi basitleştirmeye yardımcı olur. Formdaki alanlar gibi parametreleri düşünün: name
, address
, city
, state
. Bu parametreler her zaman aynı kalır, ancak değerleri formu dolduran kişiye göre değişir.
İlke girişimleri oluşturulurken parametreler aynı şekilde çalışır. İlke girişimi tanımına parametreleri ekleyerek, bu parametreyi dahil edilen ilkelerde yeniden kullanabilirsiniz.
Not
Girişim atandıktan sonra girişim düzeyi parametreleri değiştirilemez. Bu nedenle, parametresini tanımlarken defaultValue ayarlanması önerilir.
Parametre özellikleri
Parametre, ilke girişimi tanımında kullanılan aşağıdaki özelliklere sahiptir:
name
: Parametrenizin adı. İlke kuralı içindeparameters
dağıtım işlevi tarafından kullanılır. Daha fazla bilgi için bkz . parametre değeri kullanma.type
: Parametrenin dize, dizi, nesne, boole, tamsayı, kayan değer veya tarih saat olup olmadığını belirler.metadata
: Öncelikli olarak Azure portalı tarafından kullanıcı dostu bilgileri görüntülemek için kullanılan alt özellikleri tanımlar:description
: (İsteğe bağlı) Parametrenin ne için kullanıldığının açıklaması. Kabul edilebilir değerlere örnekler sağlamak için kullanılabilir.displayName
: Portalda parametresi için gösterilen kolay ad.strongType
: (İsteğe bağlı) portal aracılığıyla ilke tanımı atanırken kullanılır. Bağlam bilgisi olan bir liste sağlar. Daha fazla bilgi için bkz . strongType.
defaultValue
: (İsteğe bağlı) Değer verilmediyse atamadaki parametrenin değerini ayarlar.allowedValues
: (İsteğe bağlı) Parametrenin atama sırasında kabul eden bir değer dizisi sağlar.
Örneğin, dahil edilen çeşitli ilke tanımlarındaki kaynakların konumlarını sınırlamak için bir ilke girişimi tanımı tanımlayabilirsiniz. bu ilke girişimi tanımı için bir parametre allowedLocations olabilir. Ardından parametresi eklenen her ilke tanımı için kullanılabilir ve ilke girişiminin atandığı sırada tanımlanır.
"parameters": {
"init_allowedLocations": {
"type": "array",
"metadata": {
"description": "The list of allowed locations for resources.",
"displayName": "Allowed locations",
"strongType": "location"
},
"defaultValue": [ "westus2" ],
"allowedValues": [
"eastus2",
"westus2",
"westus"
]
}
}
İlke tanımına parametre değeri geçirme
Hangi girişim parametrelerini geçirdiğiniz ve girişim tanımının policyDefinitions dizisine ilke tanımlarını dahil ettiğinizi bildirirsiniz. Parametre adı aynı olsa da girişimlerde ilke tanımlarından farklı adlar kullanılması kod okunabilirliğini kolaylaştırır.
Örneğin, daha önce tanımlanan init_allowedLocations girişim parametresi aşağıdaki gibi dahil edilen birkaç ilke tanımına ve bunların parametrelerine ( sql_locations ve vm_locations) geçirilebilir:
"policyDefinitions": [
{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0ec8fc28-d5b7-4603-8fec-39044f00a92b",
"policyDefinitionReferenceId": "allowedLocationsSQL",
"parameters": {
"sql_locations": {
"value": "[parameters('init_allowedLocations')]"
}
}
},
{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/aa09bd0f-aa5f-4343-b6ab-a33a6a6304f3",
"policyDefinitionReferenceId": "allowedLocationsVMs",
"parameters": {
"vm_locations": {
"value": "[parameters('init_allowedLocations')]"
}
}
}
]
Bu örnek, parametre özelliklerinde gösterildiği init_allowedLocations parametresine başvurur.
strongType
özelliğinde metadata
strongType kullanarak Azure portalında çok seçimli bir seçenek listesi sağlayabilirsiniz. strongType desteklenen bir kaynak türü veya izin verilen bir değer olabilir. Bir kaynak türünün strongType için geçerli olup olmadığını belirlemek için Get-AzResourceProvider kullanın.
Get-AzResourceProvider tarafından döndürülmeyen bazı kaynak türleri desteklenir. Bu kaynak türleri şunlardır:
Microsoft.RecoveryServices/vaults/backupPolicies
strongType için kaynak türü olmayan izin verilen değerler şunlardır:
location
resourceTypes
storageSkus
vmSKUs
existingResourceGroups
İlke tanımları
policyDefinitions
Girişim tanımının bölümü, mevcut ilke tanımlarının girişime dahil olduğu bir dizidir. Parametre değerini ilke tanımına geçirme bölümünde belirtildiği gibi, bu özellik girişim parametrelerinin ilke tanımına geçirildiği yerdir.
İlke tanımı özellikleri
İlke tanımını temsil eden her dizi öğesi aşağıdaki özelliklere sahiptir:
policyDefinitionId
(dize): Eklenecek özel veya yerleşik ilke tanımının kimliği.policyDefinitionReferenceId
(dize): Eklenen ilke tanımı için kısa bir ad.parameters
: (İsteğe bağlı) Bir girişim parametresini bu ilke tanımında bir özellik olarak dahil edilen ilke tanımına geçirmek için ad/değer çiftleri. Daha fazla bilgi için bkz . Parametreler.definitionVersion
: (İsteğe bağlı) Başvuruda bulunmak için yerleşik tanımın sürümü. Belirtilmezse, atama zamanındaki en son ana sürüme başvurur ve küçük güncelleştirmeleri otomatik olarak ekler. Daha fazla bilgi için bkz. tanım sürümügroupNames
(dize dizisi): (İsteğe bağlı) İlke tanımının üyesi olduğu grup. Daha fazla bilgi için bkz . İlke grupları.
Aşağıda, her biri aynı girişim parametresinden geçirilen iki ilke tanımı içeren bir örnek policyDefinitions
verilmiştir:
"policyDefinitions": [
{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0ec8fc28-d5b7-4603-8fec-39044f00a92b",
"policyDefinitionReferenceId": "allowedLocationsSQL",
"definitionVersion": "1.2.*"
"parameters": {
"sql_locations": {
"value": "[parameters('init_allowedLocations')]"
}
}
},
{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/aa09bd0f-aa5f-4343-b6ab-a33a6a6304f3",
"policyDefinitionReferenceId": "allowedLocationsVMs",
"parameters": {
"vm_locations": {
"value": "[parameters('init_allowedLocations')]"
}
}
}
]
İlke tanım grupları
Girişim tanımındaki ilke tanımları gruplandırılabilir ve kategorilere ayırılabilir. Azure İlkesiMevzuat Uyumluluğu (önizleme) özelliği, tanımları denetimler ve uyumluluk etki alanları halinde gruplandırmak için bu özelliği kullanır. Bu bilgiler dizi özelliğinde policyDefinitionGroups
tanımlanır. Diğer gruplandırma ayrıntıları Microsoft tarafından oluşturulan policyMetadata nesnesinde bulunabilir. Bilgi için bkz . meta veri nesneleri.
İlke tanımı parametreleri gruplandırıyor
içindeki policyDefinitionGroups
her dizi öğesinin aşağıdaki özelliklerin her ikisi de olmalıdır:
name
(dize) [gerekli]: Grubun kısa adı. Mevzuat Uyumluluğu'nda denetim. Bu özelliğin değeri tarafından içindepolicyDefinitions
kullanılırgroupNames
.category
(dize): Grubun ait olduğu hiyerarşi. Mevzuat Uyumluluğu'nda, denetimin uyumluluk etki alanı .displayName
(dize): Grup veya denetimin kolay adı. Portal tarafından kullanılır.description
(dize): Grubun veya denetimin neleri kapsadığının açıklaması.additionalMetadataId
(dize): Denetim ve uyumluluk etki alanı hakkında ek ayrıntılar içeren policyMetadata nesnesinin konumu.Not
Müşteriler mevcut bir policyMetadata nesnesine işaret edebilir. Ancak, bu nesneler salt okunur ve yalnızca Microsoft tarafından oluşturulur.
NIST yerleşik girişim tanımındaki özelliğin bir örneği policyDefinitionGroups
şöyle görünür:
"policyDefinitionGroups": [
{
"name": "NIST_SP_800-53_R4_AC-1",
"additionalMetadataId": "/providers/Microsoft.PolicyInsights/policyMetadata/NIST_SP_800-53_R4_AC-1"
}
]
Meta veri nesneleri
Microsoft tarafından oluşturulan Mevzuat Uyumluluğu yerleşikleri, her denetim hakkında ek bilgilere sahiptir. Bu bilgiler:
- Mevzuat Uyumluluğu girişimindeki bir denetime genel bakış için Azure portalında görüntülenir.
- REST API aracılığıyla kullanılabilir. Kaynak sağlayıcısına
Microsoft.PolicyInsights
ve policyMetadata işlem grubuna bakın. - Azure CLI aracılığıyla kullanılabilir. Bkz. az policy metadata komutu.
Önemli
Mevzuat Uyumluluğu için meta veri nesneleri salt okunur durumdadır ve müşteriler tarafından oluşturulamaz.
İlke gruplandırma meta verileri düğümde properties
aşağıdaki bilgilere sahiptir:
metadataId
: Gruplandırmayla ilişkili Denetim Kimliği .category
(gerekli): Denetimin ait olduğu uyumluluk etki alanı.title
(gerekli): Denetim Kimliğinin kolay adı.owner
(gerekli): Azure'da denetimden kimin sorumlu olduğunu tanımlar: Müşteri, Microsoft, Paylaşılan.description
: Denetim hakkında ek bilgiler.requirements
: Denetimin uygulanmasıyla ilgili sorumlulukla ilgili ayrıntılar.additionalContentUrl
: Denetim hakkında daha fazla bilgi için bir bağlantı. Bu özellik genellikle uyumluluk standardında bu denetimi kapsayan belgelerin bölümüne bir bağlantıdır.
Aşağıda policyMetadata nesnesinin bir örneği verilmiştir. Bu örnek meta veriler NIST SP 800-53 R4 AC-1 denetimine aittir.
{
"properties": {
"metadataId": "NIST SP 800-53 R4 AC-1",
"category": "Access Control",
"title": "Access Control Policy and Procedures",
"owner": "Shared",
"description": "**The organization:** \na. Develops, documents, and disseminates to [Assignment: organization-defined personnel or roles]: \n1. An access control policy that addresses purpose, scope, roles, responsibilities, management commitment, coordination among organizational entities, and compliance; and \n2. Procedures to facilitate the implementation of the access control policy and associated access controls; and \n
\nb. Reviews and updates the current: \n1. Access control policy [Assignment: organization-defined frequency]; and \n2. Access control procedures [Assignment: organization-defined frequency].",
"requirements": "**a.** The customer is responsible for developing, documenting, and disseminating access control policies and procedures. The customer access control policies and procedures address access to all customer-deployed resources and customer system access (e.g., access to customer-deployed virtual machines, access to customer-built applications). \n**b.** The customer is responsible for reviewing and updating access control policies and procedures in accordance with FedRAMP requirements.",
"additionalContentUrl": "https://nvd.nist.gov/800-53/Rev4/control/AC-1"
},
"id": "/providers/Microsoft.PolicyInsights/policyMetadata/NIST_SP_800-53_R4_AC-1",
"name": "NIST_SP_800-53_R4_AC-1",
"type": "Microsoft.PolicyInsights/policyMetadata"
}
Sonraki adımlar
- Tanım yapısına bakın
- örnekleri Azure İlkesi gözden geçirin.
- İlkenin etkilerini anlama konusunu 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.
- Kaynaklarınızı Azure yönetim gruplarıyla düzenleme ile yönetim grubunun ne olduğunu gözden geçirin.