Struktura definic iniciativy Azure Policy

Iniciativy umožňují seskupit několik souvisejících definic zásad, které zjednodušují přiřazení a správu, protože pracujete se skupinou jako s jednou položkou. Můžete například seskupit související definice zásad označování do jedné iniciativy. Místo individuálního přiřazování jednotlivých zásad použijete iniciativu.

K vytvoření definice iniciativy zásad použijete JSON. Definice iniciativy zásad obsahuje prvky pro:

  • zobrazovaný název
  • description
  • metadata
  • parametry
  • definice zásad
  • skupiny zásad (tato vlastnost je součástí funkce Dodržování právních předpisů (Preview)

Následující příklad ukazuje, jak vytvořit iniciativu pro zpracování dvou značek: costCenter a productName. K použití výchozí hodnoty značky se používají dvě předdefinované zásady.

{
    "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')]"
                    }
                }
            }
        ]
    }
}

Předdefinované vzory a vzory služby Azure Policy jsou v ukázkách služby Azure Policy.

Metadata

Volitelná metadata vlastnost ukládá informace o definici iniciativy zásad. Zákazníci mohou definovat jakékoli vlastnosti a hodnoty užitečné pro svoji organizaci v metadata. Existují ale některé běžné vlastnosti používané službou Azure Policy a integrované.

Běžné vlastnosti metadat

  • version (řetězec): Sleduje podrobnosti o verzi obsahu definice iniciativy zásad.

  • category (řetězec): Určuje, ve které kategorii na webu Azure Portal se zobrazí definice zásady.

    Poznámka:

    Pro iniciativu dodržování právních předpisů musí být dodržování právních předpisů.category

  • preview (logická hodnota): True nebo false flag for if the policy initiative definition is Preview.

  • deprecated (logická hodnota): True nebo false flag for if the policy initiative definition has been marked as deprecated.

Poznámka:

Služba Azure Policy používá versiona previewdeprecated vlastnosti ke sdělení úrovně změn do předdefinované definice nebo iniciativy a stavu zásad. Formát version je: {Major}.{Minor}.{Patch}. Ke vlastnosti nebo v jiné vlastnosti jako logická hodnota se připojují version konkrétní stavy, jako je zastaralé nebo náhled. Další informace o způsobu, jakým jsou integrované verze Azure Policy, najdete v tématu Předdefinované verze.

Parametry

Parametry pomáhají zjednodušit správu zásad tím, že snižují počet definic zásad. Parametry si můžete představit jako pole ve formuláři - name, address, city, state. Tyto parametry vždy zůstávají stejné, ale jejich hodnoty se mění na základě individuálního vyplňování formuláře. Parametry fungují stejným způsobem při sestavování iniciativ zásad. Zahrnutím parametrů do definice iniciativy zásad můžete tento parametr znovu použít v zahrnutých zásadách.

Poznámka:

Po přiřazení iniciativy nelze změnit parametry na úrovni iniciativy. Z tohoto důvodu doporučujeme nastavit výchozí Hodnotu při definování parametru.

Vlastnosti parametru

Parametr má následující vlastnosti, které se používají v definici iniciativy zásad:

  • name: Název parametru. Používá se parameters funkcí nasazení v rámci pravidla zásad. Další informace najdete v tématu použití hodnoty parametru.
  • type: Určuje, zda je parametr řetězec, pole, objekt, logická hodnota, celé číslo, float nebo datetime.
  • metadata: Definuje dílčí výhody, které primárně používá Azure Portal k zobrazení uživatelsky přívětivých informací:
    • description: (Volitelné) Vysvětlení, k čemu se parametr používá. Dá se použít k poskytnutí příkladů přijatelných hodnot.
    • displayName: Popisný název zobrazený na portálu pro parametr.
    • strongType: (Volitelné) Používá se při přiřazování definice zásady prostřednictvím portálu. Poskytuje seznam s podporou kontextu. Další informace naleznete v tématu strongType.
  • defaultValue: (Volitelné) Nastaví hodnotu parametru v přiřazení, pokud není udělena žádná hodnota.
  • allowedValues: (Volitelné) Poskytuje pole hodnot, které parametr přijímá během přiřazení.

Můžete například definovat definici iniciativy zásad, která omezí umístění prostředků v různých definicích zahrnutých zásad. Parametr pro tuto definici iniciativy zásad může být allowedLocations. Parametr je pak k dispozici pro každou definici zahrnuté zásady a definovaný během přiřazení iniciativy zásad.

"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"
        ]
    }
}

Předání hodnoty parametru definici zásady

Deklarujete parametry iniciativy, kterým předáte definice zásad v poli policyDefinitions definice iniciativy. I když název parametru může být stejný, použití různých názvů v iniciativách než v definicích zásad zjednodušuje čitelnost kódu.

Například parametr iniciativy init_allowedLocations definovaný dříve lze předat několika zahrnutým definicům zásad a jejich parametrům, sql_locations a vm_locations, například takto:

"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')]"
            }
        }
    }
]

Tato ukázka odkazuje na parametr init_allowedLocations , který byl ukázaný ve vlastnostech parametru.

strongType

V rámci metadata vlastnosti můžete pomocí strongType zadat vícenásobný seznam možností na webu Azure Portal. strongType může být podporovaný typ prostředku nebo povolená hodnota. Pokud chcete zjistit, jestli je typ prostředku platný pro strongType, použijte Get-AzResourceProvider.

Některé typy prostředků, které nevrátí Get-AzResourceProvider , jsou podporovány. Mezi tyto typy prostředků patří:

  • Microsoft.RecoveryServices/vaults/backupPolicies

Povolené hodnoty typu mimo prostředek pro strongType jsou:

  • location
  • resourceTypes
  • storageSkus
  • vmSKUs
  • existingResourceGroups

Definice zásad

Část policyDefinitions definice iniciativy je pole , jehož existující definice zásad jsou součástí iniciativy. Jak je uvedeno v předávání hodnoty parametru do definice zásady, tato vlastnost je místo, kde parametry iniciativy jsou předány definici zásady.

Vlastnosti definice zásad

Každý prvek pole , který představuje definici zásady, má následující vlastnosti:

  • policyDefinitionId (řetězec): ID vlastní nebo předdefinované definice zásady, která se má zahrnout.
  • policyDefinitionReferenceId (řetězec): Krátký název zahrnuté definice zásady.
  • parameters: (Volitelné) Páry name/value pro předání parametru iniciativy do zahrnuté definice zásady jako vlastnost v této definici zásady. Další informace najdete v tématu Parametry.
  • groupNames (pole řetězců): (Volitelné) Skupina, ve které je definice zásady členem. Další informace najdete v tématu Skupiny zásad.

Tady je příklad policyDefinitions , který obsahuje dvě zahrnuté definice zásad, které se předávají stejnému parametru iniciativy:

"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')]"
            }
        }
    }
]

Skupiny definic zásad

Definice zásad v definici iniciativy je možné seskupit a zařadit do kategorií. Funkce dodržování právních předpisů azure Policy (Preview) používá tuto vlastnost k seskupení definic do ovládacích prvků a domén dodržování předpisů. Tyto informace jsou definovány v maticové policyDefinitionGroups vlastnosti. Další podrobnosti seskupení můžou být nalezeny v objektu policyMetadata vytvořeném Microsoftem. Informace najdete v tématu objekty metadat.

Parametry skupin definic zásad

Každý prvek policyDefinitionGroups pole musí mít obě následující vlastnosti:

  • name (řetězec) [povinné]: Krátký název skupiny. V dodržování právních předpisů řízení. Hodnota této vlastnosti je použita groupNames v policyDefinitions.

  • category (řetězec): Hierarchie, do které skupina patří. V dodržování právních předpisů je doména dodržování předpisů ovládacího prvku.

  • displayName(řetězec): Popisný název skupiny nebo ovládacího prvku. Používá se portálem.

  • description (řetězec): Popis toho, co skupina nebo ovládací prvek pokrývá.

  • additionalMetadataId (řetězec): Umístění objektu policyMetadata , který obsahuje další podrobnosti o kontrole a dodržování předpisů domény.

    Poznámka:

    Zákazníci mohou odkazovat na existující objekt policyMetadata . Tyto objekty jsou však jen pro čtení a jsou vytvořeny pouze společností Microsoft.

policyDefinitionGroups Příklad vlastnosti z integrované definice iniciativy NIST vypadá takto:

"policyDefinitionGroups": [
    {
        "name": "NIST_SP_800-53_R4_AC-1",
        "additionalMetadataId": "/providers/Microsoft.PolicyInsights/policyMetadata/NIST_SP_800-53_R4_AC-1"
    }
]

Objekty metadat

Předdefinované dodržování právních předpisů vytvořené Microsoftem mají další informace o jednotlivých kontrolách. Tyto informace jsou:

  • Na webu Azure Portal se zobrazuje přehled ovládacího prvku iniciativy dodržování právních předpisů.
  • K dispozici prostřednictvím rozhraní REST API. Podívejte se na Microsoft.PolicyInsights poskytovatele prostředků a skupinu operací policyMetadata.
  • K dispozici prostřednictvím Azure CLI. Viz příkaz az policy metadata.

Důležité

Objekty metadat pro dodržování právních předpisů jsou jen pro čtení a nedají se vytvářet zákazníky.

Metadata pro seskupení zásad mají v properties uzlu následující informace:

  • metadataId: ID ovládacího prvku, ke které se seskupení vztahuje.
  • category(povinné): Doména dodržování předpisů, do které ovládací prvek patří.
  • title (povinné): Popisný název ID ovládacího prvku.
  • owner (povinné): Určuje, kdo má odpovědnost za řízení v Azure: Zákazník, Microsoft, Shared.
  • description: Další informace o ovládacím prvku.
  • requirements: Podrobnosti o odpovědnosti za provádění kontroly.
  • additionalContentUrl: Odkaz na další informace o ovládacím prvku. Tato vlastnost je obvykle odkazem na část dokumentace, která se vztahuje na tento ovládací prvek ve standardu dodržování předpisů.

Níže je příklad objektu policyMetadata . Tato ukázková metadata patří do ovládacího prvku AC-1 NIST SP 800-53 R4.

{
  "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"
}

Další kroky