Aracılığıyla paylaş


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
  • 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",
        "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",
                "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 metadatayararlı 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.

  • 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çincategory, 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ğı.

Not

Azure İlkesi hizmeti, yerleşik ilke tanımına veya girişime ve deprecated duruma değişiklik düzeyini iletmek için , previewve özelliklerini kullanırversion. biçimi version : {Major}.{Minor}.{Patch}. Kullanım dışı veya önizleme gibi belirli durumlar, özelliğin version sonuna veya başka bir özelliğe boole olarak eklenir. Yerleşik sürümlerin Azure İlkesi yöntemi hakkında daha fazla bilgi için bkz. Yerleşik sürüm oluşturma.

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çinde parameters 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.
  • 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",
        "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çinde policyDefinitionskullanı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