Bezpečné nasazení přiřazení azure Policy
Jak se vaše prostředí rozšiřuje, tak i poptávka po řízeném kanálu průběžného nasazování (CD) s progresivní kontrolou expozice. Společnost Microsoft proto doporučuje týmům DevOps dodržovat architekturu SDP (Safe Deployment Practices). Bezpečné nasazení definic a přiřazení služby Azure Policy pomáhá omezit dopad nezamýšleného chování prostředků zásad.
Obecný přístup implementace SDP se službou Azure Policy spočívá v postupném zavedení přiřazení zásad okruhy za účelem zjištění změn zásad, které mají vliv na prostředí v počátečních fázích předtím, než ovlivní kritickou cloudovou infrastrukturu.
Okruhy nasazení je možné uspořádat různými způsoby. V tomto kurzu s návodem jsou okruhy rozdělené různými oblastmi Azure s okruhem 0 představujícími nekritická místa, umístění s nízkým provozem a okruh 5 označující nejdůležitější a nejvyšší místa provozu.
Postup bezpečného nasazení přiřazení služby Azure Policy s účinky odepření nebo připojení
Následující vývojový diagram použijte jako referenci, jak použít architekturu SDP na přiřazení azure Policy, která používají efekty deny
zásad nebo append
zásad.
Poznámka:
Další informace o efektech zásad Azure najdete v tématu Vysvětlení fungování efektů.
Čísla kroků vývojového diagramu:
Jakmile vyberete definici zásady, přiřaďte tuto zásadu na nejvyšší úrovni včetně všech okruhů nasazení. Použití selektorů prostředků k zúžení použitelnosti na nejméně kritický okruh pomocí
"kind": "resource location"
vlastnosti. Nakonfigurujte typ efektuaudit
pomocí přepsání přiřazení. Ukázkový selektor s umístěním a efektemeastUS
jakoaudit
:"resourceSelectors": [{ "name": "SDPRegions", "selectors": [{ "kind": "resourceLocation", "in": [ "eastUS" ] }] }], "overrides":[{ "kind": "policyEffect", "value": "Audit" }]
Po nasazení přiřazení a dokončení počáteční kontroly dodržování předpisů ověřte, že výsledek dodržování předpisů je očekávaný.
Měli byste také nakonfigurovat automatizované testy, které spouští kontroly dodržování předpisů. Kontrola dodržování předpisů by měla zahrnovat následující logiku:
- Shromáždění výsledků dodržování předpisů
- Pokud jsou výsledky dodržování předpisů podle očekávání, měl by kanál pokračovat.
- Pokud výsledky dodržování předpisů nejsou podle očekávání, kanál by měl selhat a měli byste spustit ladění.
Kontrolu dodržování předpisů můžete například nakonfigurovat pomocí jiných nástrojů v rámci vašeho konkrétního kanálu kontinuální integrace nebo průběžného nasazování (CI/CD).
V každé fázi uvedení by kontroly stavu aplikace měly potvrdit stabilitu služby a dopadu zásady. Pokud výsledky nejsou kvůli konfiguraci aplikace očekávané, refaktorujte aplikaci podle potřeby.
Opakujte tak, že rozbalíte hodnoty vlastností selektoru prostředků tak, aby zahrnovaly další okruhy. umístění a ověření očekávaných výsledků dodržování předpisů a stavu aplikace. Příklad selektoru s přidanou hodnotou umístění:
"resourceSelectors": [{ "name": "SDPRegions", "selectors": [{ "kind": "resourceLocation", "in": [ "eastUS", "westUS"] }] }]
Jakmile úspěšně přiřadíte zásadu všem okruhům pomocí
audit
režimu, kanál by měl aktivovat úlohu, která změní účinek zásady nadeny
a resetuje selektory prostředků do umístění přidruženého k okruhu 0. Příklad selektoru s jednou oblastí a efektem nastaveným na odepření:"resourceSelectors": [{ "name": "SDPRegions", "selectors": [{ "kind": "resourceLocation", "in": [ "eastUS" ] }] }], "overrides":[{ "kind": "policyEffect", "value": "Deny" }]
Po změně efektu by automatizované testy měly zkontrolovat, jestli probíhá vynucení podle očekávání.
Zopakujte to tak, že do konfigurace selektoru prostředků zahrnete další okruhy.
Tento proces opakujte pro všechny produkční okruhy.
Postup bezpečného nasazení přiřazení azure Policy s úpravami nebo nasazením efektůIfNotExists
Kroky pro zásady, které používají efekty modify
, deployIfNotExists
jsou podobné krokům dříve vysvětleným s další akcí použití režimu vynucení a aktivací úlohy nápravy.
Projděte si následující vývojový diagram s upravenými kroky 5–9:
Čísla kroků vývojového diagramu:
Jakmile vyberete definici zásady, přiřaďte tuto zásadu na nejvyšší úrovni včetně všech okruhů nasazení. Použití selektorů prostředků k zúžení použitelnosti na nejméně kritický okruh pomocí
"kind": "resource location"
vlastnosti. Nakonfigurujte režim vynucení přiřazení do DoNotEnforce. Ukázkový selektor s umístěnímeastUS
a vynucenímMode jako DoNotEnforce:"resourceSelectors": [{ "name": "SDPRegions", "selectors": [{ "kind": "resourceLocation", "in": [ "eastUS" ] }] }], "enforcementMode": "DoNotEnforce"
Po nasazení přiřazení a dokončení počáteční kontroly dodržování předpisů ověřte, že výsledek dodržování předpisů je očekávaný.
Měli byste také nakonfigurovat automatizované testy, které spouští kontroly dodržování předpisů. Kontrola dodržování předpisů by měla zahrnovat následující logiku:
- Shromáždění výsledků dodržování předpisů
- Pokud jsou výsledky dodržování předpisů podle očekávání, měl by kanál pokračovat.
- Pokud výsledky dodržování předpisů nejsou podle očekávání, kanál by měl selhat a měli byste spustit ladění.
Kontrolu dodržování předpisů můžete nakonfigurovat pomocí jiných nástrojů v kanálu kontinuální integrace nebo průběžného nasazování (CI/CD).
V každé fázi uvedení by kontroly stavu aplikace měly potvrdit stabilitu služby a dopadu zásady. Pokud výsledky nejsou kvůli konfiguraci aplikace očekávané, refaktorujte aplikaci podle potřeby.
Můžete také aktivovat úlohy nápravy, které opraví stávající nekompatibilní prostředky. Ujistěte se, že úlohy nápravy přinášejí prostředky do souladu s očekáváním.
Opakujte to tak, že rozbalíte hodnoty vlastností selektoru prostředků tak, aby zahrnovaly umístění dalšího okruhu a ověření očekávaných výsledků dodržování předpisů a stavu aplikace. Příklad selektoru s přidanou hodnotou umístění:
"resourceSelectors": [{ "name": "SDPRegions", "selectors": [{ "kind": "resourceLocation", "in": [ "eastUS", "westUS"] }] }]
Jakmile úspěšně přiřadíte zásadu všem okruhům pomocí režimu DoNotEnforce , kanál by měl aktivovat úlohu, která změní zásadu
enforcementMode
na výchozí povolení a resetuje selektory prostředků do umístění přidruženého k okruhu 0. Příklad selektoru s jednou oblastí a efektem nastaveným na odepření:"resourceSelectors": [{ "name": "SDPRegions", "selectors": [{ "kind": "resourceLocation", "in": [ "eastUS" ] }] }], "enforcementMode": "Default",
Po změně efektu by automatizované testy měly zkontrolovat, jestli probíhá vynucení podle očekávání.
Zopakujte to tak, že do konfigurace selektoru prostředků zahrnete další okruhy.
Tento proces opakujte pro všechny produkční okruhy.
Postup bezpečné aktualizace předdefinované verze definice v rámci přiřazení služby Azure Policy
V rámci stávajícího přiřazení použijte přepsání pro aktualizaci verze definice pro nejméně kritický okruh. Ke změně definiceVersion a selektorů v podmínce přepsání používáme kombinaci přepsání, abychom zúžili použitelnost podle
"kind": "resource location"
vlastnosti. Všechny prostředky, které jsou mimo zadaná umístění, budou nadále hodnoceny proti verzi zdefinitionVersion
vlastnosti nejvyšší úrovně v přiřazení. Příklad přepsání aktualizace verze definice a2.0.*
jeho použití pouze na prostředky vEastUs
."overrides":[{ "kind": "definitionVersion", "value": "2.0.*", "selectors": [{ "kind": "resourceLocation", "in": [ "eastus"] }] }]
Po aktualizaci přiřazení a dokončení počáteční kontroly dodržování předpisů ověřte, že výsledek dodržování předpisů je očekávaný.
Měli byste také nakonfigurovat automatizované testy, které spouští kontroly dodržování předpisů. Kontrola dodržování předpisů by měla zahrnovat následující logiku:
- Shromáždění výsledků dodržování předpisů
- Pokud jsou výsledky dodržování předpisů podle očekávání, měl by kanál pokračovat.
- Pokud výsledky dodržování předpisů nejsou podle očekávání, kanál by měl selhat a měli byste spustit ladění.
Kontrolu dodržování předpisů můžete například nakonfigurovat pomocí jiných nástrojů v rámci vašeho konkrétního kanálu kontinuální integrace nebo průběžného nasazování (CI/CD).
V každé fázi uvedení by kontroly stavu aplikace měly potvrdit stabilitu služby a dopadu zásady. Pokud výsledky nejsou kvůli konfiguraci aplikace očekávané, refaktorujte aplikaci podle potřeby.
Opakujte tak, že rozbalíte hodnoty vlastností selektoru prostředků tak, aby zahrnovaly další okruhy. umístění a ověření očekávaných výsledků dodržování předpisů a stavu aplikace. Příklad s přidanou hodnotou umístění:
"overrides":[{ "kind": "definitionVersion", "value": "2.0", "selectors": [{ "kind": "resourceLocation", "in": [ "eastus", "westus"] }] }]
Po úspěšném zahrnutí všech potřebných umístění v rámci _selectors můžete odebrat přepsání a aktualizovat vlastnost definitionVersion v rámci přiřazení:
"properties": {
"displayName": "Enforce resource naming rules",
"description": "Force resource names to begin with DeptA and end with -LC",
"definitionVersion": "2.0.*",
}
Další kroky
- Naučte se programově vytvářet zásady.
- Projděte si pracovní postupy kódu ve službě Azure Policy.
- Prostudujte si pokyny Microsoftu týkající se postupů bezpečného nasazení.
- Projděte si nápravu nekompatibilních prostředků se službou Azure Policy.