Azure Policy a způsob integrace se službou Azure Kubernetes Services

Dokončeno

Azure Policy je služba Azure, která pomáhá spravovat stav dodržování předpisů napříč různými službami Azure. Azure Policy pro Kubernetes umožňuje používat stejné zásady Azure v clusterech Kubernetes, což umožňuje spravovat stav dodržování předpisů prostředků Kubernetes, jako jsou pody, nasazení a služby, jako by šlo o prostředek Azure.

Představujeme Azure Policy

Azure Policy umožňuje spravovat stav dodržování předpisů služeb Azure. Funguje tak, že porovná stav vašich prostředků Azure s obchodními pravidly, která definujete. Běžná pravidla jsou omezení určitých oblastí, požadavek na značky prostředků nebo omezení, které služby Azure je možné použít.

Způsob, jakým definujete tato obchodní pravidla ve službě Azure Policy, je použití definic zásad. Existuje mnoho předdefinovaných zásad, které pokrývají celou řadu běžných scénářů. Pokud některá z předdefinovaných zásad nevyhovuje vašim potřebám, můžete také definovat vlastní zásady pomocí jazyka založeného na formátu JSON. Do iniciativy můžete také seskupit několik definic zásad.

V definici zásady definujete podmínku souladu prostředků a účinek, který by se měl provést, pokud je tato podmínka splněna. Podmínka porovnává vlastnosti prostředku s požadovanou hodnotou. Příkladem podmínky může být porovnání umístění prostředku a předdefinovaného seznamu povolených umístění. Vlivem zásady může být auditování podmínky, zamítnutí vytvoření prostředku nebo úprava vytvořeného prostředku. V příkladu umístění prostředku můžete zakázat vytváření prostředků, které nejsou v seznamu povolených umístění. Podrobnější vysvětlení definic zásad najdete v struktuře definic služby Azure Policy.

Azure Policy funguje tak, že přiřadí definici zásady nebo iniciativu ke konkrétnímu rozsahu . Oborem může být skupina pro správu, předplatné nebo skupina prostředků. Přiřazení pravidel se automaticky aplikují na všechny hierarchické úrovně pod přiřazením, pokud některé z oborů nevyloučíte. Na určitý obor se může použít více definic zásad. Čistý výsledek definic zásad vrstvení je považován za kumulativně nejvíce omezující: Pokud na určitý prostředek platí více zásad, je tento prostředek vyhovující pouze tehdy, pokud všechny definice zásad, které na něj platí, jsou v souladu.

Přiřazení zásad se hodnotí během vytváření nebo aktualizace prostředků Azure. Vyhodnocují se také, jestli se definice nebo obor změní, a pravidelně se provádí průběžné monitorování. Prakticky se zásada projeví při vytváření nových prostředků. Skenují se také všechny historické zdroje, takže získáte průběžný přehled o dodržování předpisů všech vašich zdrojů.

Integrace služby Azure Policy s AKS

Azure Policy se integruje se službou Azure Kubernetes Service (AKS) dvěma způsoby.

  • Zásady, které vynucuje dodržování předpisů v rovině řízení Azure pro AKS
  • Zásady, které zajišťují soulad s předpisy pro pracovní zátěž běžící ve vašem clusteru.

První sada zásad se zaměřuje spíše na prostředky Azure, které představují návrh clusteru, zatímco druhá sada zásad se zaměřuje na úlohy spuštěné v rámci clusteru.

Ukázková zásada zaměřená na řídicí rovinu Azure pro AKS je zásada, která vynucování použití privátních clusterů. Zásada vyhodnocuje, jestli cluster AKS používá funkci privátního clusteru. Tato zásada je konfigurace v rozhraní Azure API, která řídí návrh samotného clusteru.

Příkladem sady zásad zaměřených na úlohu spuštěnou ve vašem clusteru je zásada, která vynucovat použití povolených imagí. Zásada vyhodnotí, jestli definice podu v Kubernetes používá obrázek odpovídající určitému regulárnímu výrazu. Tato zásada je konfigurace v rámci samotného clusteru a nepracuje s rozhraním AZURE API.

První sada zásad působí proti samotnému rozhraní API Azure. Druhá sada zásad komunikuje s rozhraním API Kubernetes. Pokud chcete tyto předdefinované zásady zabezpečení použít a vynutit, musíte nastavit doplněk Azure Policy pro AKS v clusteru AKS.

Pochopení, jak funguje služba Azure Policy pro AKS v zákulisí

K vynucování zásad nad rozhraním Kubernetes API využívá Azure Policy pro Kubernetes mnoho nástrojů: konkrétně vstupní webhooky, Open Policy Agent (OPA), Gatekeeper a nakonec pod Azure Policy.

Azure Policy používá webhooky přístupu v Kubernetes. Webhooky pro povolení jsou integrovanou funkcí rozhraní Kubernetes API. Umožňují rozhraní API Kubernetes volat externí webhook, aby ověřila, zda má být žádost na vytvoření, odstranění, úpravu nebo připojení k prostředku povolena nebo zamítnuta (ValidatingAdmissionWebhook) ; nebo zda má být žádost změněna (MutatingAdmissionWebhook).

open policy agent (OPA) je opensourcový modul zásad. OPA poskytuje základní jazyk pro definování zásad. Pomocí OPA můžete vynucovat zásady ve vlastních mikroslužbách, v kanálech CI/CD a v Kubernetes. Azure Policy pro Kubernetes překládá zásady Azure do jazyka OPA, který se nasadí do clusteru Kubernetes.

OPA Gatekeeper je specifická implementace OPA kubernetes, která se integruje s rozhraním Kubernetes API. Integruje se s webhooky přístupu zavedenými dříve. Místo toho, abyste museli nasazovat vlastní obslužné rutiny webhooku, můžete použít OPA Gatekeeper k obsluze odpovědí webových hooků pro povolení. Azure Policy pro Kubernetes nasadí OPA Gatekeeper do clusteru Kubernetes, aby se této funkce dosáhlo.

1.

Jak přiřadíte zásady Azure všem předplatným vaší organizace?

2.

Jak můžete pomocí Azure zajistit, aby všechny pody vytvořené v clusteru Kubernetes měly nakonfigurované požadavky a limity a odepřít pody bez vytváření těchto konfigurací?

3.

Přiřadíte zásadu "Kontejnery clusteru Kubernetes by měly používat pouze povolené image" ke skupině prostředků clusteru Kubernetes. Co se stane s existujícími pody, které nepoužívají povolené image?