Kurz: Správa zásad správného řízení značek pomocí Azure Policy

Značky jsou klíčovou součástí uspořádání prostředků Azure do taxonomie. Při dodržování osvědčených postupů pro správu značek můžou být značky základem pro použití obchodních zásad s Azure Policy nebo sledování nákladů pomocí služby Cost Management. Bez ohledu na to, jak nebo proč značky používáte, je důležité, abyste tyto značky mohli ve svých prostředcích Azure rychle přidávat, měnit a odebírat. Pokud chcete zjistit, jestli váš prostředek Azure podporuje označování, přečtěte si téma Podpora značek.

Azure Policy efekt Modify je navržený tak, aby pomáhal při řízení značek bez ohledu na to, v jaké fázi zásad správného řízení prostředků se nacházíte. Upravit pomůže, když:

  • S cloudem začínáte a nemáte žádné zásady správného řízení značek
  • Už máte tisíce prostředků bez zásad správného řízení značek.
  • Už máte existující taxonomii, kterou potřebujete změnit.

V tomto kurzu dokončíte následující úlohy:

  • Identifikace vašich obchodních požadavků
  • Mapování jednotlivých požadavků na definici zásad
  • Seskupení zásad značek do iniciativy

Požadavky

K dokončení tohoto kurzu potřebujete předplatné Azure. Pokud ho nemáte, vytvořte si bezplatný účet , než začnete.

Identifikace požadavků

Stejně jako u každé dobré implementace kontrolních mechanismů zásad správného řízení by požadavky měly pocházet z vašich obchodních potřeb a měly by být dobře srozumitelné před vytvořením technických kontrolních mechanismů. Pro tento scénář kurzu jsou následujícími položkami naše obchodní požadavky:

  • Dvě požadované značky na všech prostředcích: CostCenter a Env
  • CostCenter musí existovat ve všech kontejnerech a jednotlivých prostředcích.
    • Prostředky dědí z kontejneru, ve kterém se nachází, ale můžou být jednotlivě přepsány.
  • Env musí existovat ve všech kontejnerech a jednotlivých prostředcích.
    • Prostředky určují prostředí podle schématu pojmenování kontejnerů a nemusí být přepsány.
    • Všechny prostředky v kontejneru jsou součástí stejného prostředí.

Konfigurace značky CostCenter

Pokud jde o specifické prostředí Azure spravované službou Azure Policy, požadavky na značku CostCenter volají pro následující výsledky:

  • Odepření chybějící značky CostCenter skupinám prostředků
  • Úprava prostředků pro přidání značky CostCenter z nadřazené skupiny prostředků, pokud chybí

Odepření chybějící značky CostCenter skupinám prostředků

Vzhledem k tomu, že CostCenter pro skupinu prostředků nelze určit podle názvu skupiny prostředků, musí mít v požadavku definovanou značku, aby bylo možné skupinu prostředků vytvořit. Následující pravidlo zásad s efektem Odepřít zabraňuje vytvoření nebo aktualizaci skupin prostředků, které nemají značku CostCenter :

"if": {
    "allOf": [{
            "field": "type",
            "equals": "Microsoft.Resources/subscriptions/resourceGroups"
        },
        {
            "field": "tags['CostCenter']",
            "exists": false
        }
    ]
},
"then": {
    "effect": "deny"
}

Poznámka

Vzhledem k tomu, že toto pravidlo zásad cílí na skupinu prostředků, musí být režim v definici zásady "Vše" místo indexovaného.

Úprava prostředků pro zdědění značky CostCenter, pokud chybí

Druhou potřebou CostCenter je, aby všechny prostředky zdědily značku z nadřazené skupiny prostředků, když chybí. Pokud už je značka v prostředku definovaná, i když se liší od nadřazené skupiny prostředků, musí být sama. Následující pravidlo zásad používá změnit:

"policyRule": {
    "if": {
        "field": "tags['CostCenter']",
        "exists": "false"
    },
    "then": {
        "effect": "modify",
        "details": {
            "roleDefinitionIds": [
                "/providers/microsoft.authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
            ],
            "operations": [{
                "operation": "add",
                "field": "tags['CostCenter']",
                "value": "[resourcegroup().tags['CostCenter']]"
            }]
        }
    }
}

Toto pravidlo zásad používá operaci add místo addOrReplace , protože nechceme měnit hodnotu značky, pokud je k dispozici při nápravě existujících prostředků. Používá také [resourcegroup()] funkci šablony k získání hodnoty značky z nadřazené skupiny prostředků.

Poznámka

Vzhledem k tomu, že toto pravidlo zásad cílí na prostředky, které podporují značky, musí být režim v definici zásady indexovaný. Tato konfigurace také zajišťuje, že tato zásada přeskočí skupiny prostředků.

Konfigurace značky Env

Pokud jde o prostředí Azure spravované službou Azure Policy, požadavky na značku Env volají pro následující výsledky:

  • Úprava značky Env ve skupině prostředků na základě schématu pojmenování skupiny prostředků
  • Upravte značku Env u všech prostředků ve skupině prostředků tak, aby byla stejná jako u nadřazené skupiny prostředků.

Úprava skupin prostředků Značky env na základě názvu

Pro každé prostředí, které existuje ve vašem prostředí Azure, se vyžaduje zásada Upravit . Zásady Upravit pro každou z nich vypadají přibližně takto:

"policyRule": {
    "if": {
        "allOf": [{
            "field": "type",
            "equals": "Microsoft.Resources/subscriptions/resourceGroups"
        },
        {
            "field": "name",
            "like": "prd-*"
        },
        {
            "field": "tags['Env']",
            "notEquals": "Production"
        }

    ]
    },
    "then": {
        "effect": "modify",
        "details": {
            "roleDefinitionIds": [
                "/providers/microsoft.authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
            ],
            "operations": [{
                "operation": "addOrReplace",
                "field": "tags['Env']",
                "value": "Production"
            }]
        }
    }
}

Poznámka

Vzhledem k tomu, že toto pravidlo zásad cílí na skupinu prostředků, musí být režim v definici zásady "Vše" místo indexovaného.

Tato zásada odpovídá pouze skupinám prostředků s ukázkovým schématem názvů používaným pro produkční prostředky nástroje prd-. Složitějších schémat pojmenování je možné dosáhnout pomocí několika podmínek shody namísto jediného schématu , jako je tomu v tomto příkladu.

Úprava prostředků pro zdědění značky Env

Obchodní požadavek vyžaduje, aby všechny prostředky měly značku Env , kterou mají jejich nadřazená skupina prostředků. Tuto značku nejde přepsat, proto použijeme operaci addOrReplace s efektem Modify . Ukázková zásada Upravit vypadá jako následující pravidlo:

"policyRule": {
    "if": {
        "anyOf": [{
            "field": "tags['Env']",
            "notEquals": "[resourcegroup().tags['Env']]"
        },
        {
            "field": "tags['Env']",
            "exists": false
        }
    ]
    },
    "then": {
        "effect": "modify",
        "details": {
            "roleDefinitionIds": [
                "/providers/microsoft.authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
            ],
            "operations": [{
                "operation": "addOrReplace",
                "field": "tags['Env']",
                "value": "[resourcegroup().tags['Env']]"
            }]
        }
    }
}

Poznámka

Vzhledem k tomu, že toto pravidlo zásad cílí na prostředky, které podporují značky, musí být režim v definici zásady indexovaný. Tato konfigurace také zajišťuje, že tato zásada přeskočí skupiny prostředků.

Toto pravidlo zásad vyhledá všechny prostředky, u kterých není hodnota nadřazených skupin prostředků pro značku Env nebo chybí značka Env . Odpovídající prostředky mají značku Env nastavenou na hodnotu nadřazených skupin prostředků, a to i v případě, že značka již na prostředku existovala, ale s jinou hodnotou.

Přiřazení iniciativy a náprava prostředků

Po vytvoření výše uvedených zásad značek je připojte k jedné iniciativě zásad správného řízení značek a přiřaďte je ke skupině pro správu nebo předplatnému. Iniciativa a zahrnuté zásady pak vyhodnocují dodržování předpisů u stávajících prostředků a mění požadavky na nové nebo aktualizované prostředky, které odpovídají vlastnosti if v pravidle zásad. Zásady ale automaticky neaktualizují stávající nedodržující prostředky pomocí definovaných změn značek.

Podobně jako zásady deployIfNotExists i zásada Modify používá úlohy nápravy ke změně stávajících prostředků, které nedodržují předpisy. Postupujte podle pokynů v tématu Postup nápravy prostředků , abyste identifikovali prostředky, které nedodržují předpisy , a opravte značky podle definované taxonomie.

Vyčištění prostředků

Pokud jste dokončili práci s prostředky z tohoto kurzu, pomocí následujícího postupu odstraňte všechna přiřazení nebo definice vytvořené výše:

  1. V části Vytváření obsahu na levé straně stránky Azure Policy vyberte Definice (nebo Přiřazení, pokud se pokoušíte odstranit přiřazení).

  2. Vyhledejte novou definici iniciativy nebo zásady (nebo přiřazení), kterou chcete odebrat.

  3. Klikněte na řádek pravým tlačítkem nebo vyberte tři tečky na konci definice (nebo přiřazení) a pak vyberte Odstranit definici (nebo Odstranit přiřazení).

Opakování

V tomto kurzu jste se dozvěděli o následujících úlohách:

  • Zjištění vašich obchodních požadavků
  • Namapoval každý požadavek na definici zásady.
  • Seskupení zásad značek do iniciativy

Další kroky

Další informace o strukturách definic zásad najdete v tomto článku: