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 dodržování předpisů 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 ve struktuře definic služby Azure Policy.

Azure Policy funguje přiřazením definice zásady nebo iniciativy k určitému oboru. Oborem může být skupina pro správu, předplatné nebo skupina prostředků. Přiřazení zásad se automaticky dědí do všech oborů pod přiřazením, pokud nevyloučíte. Na určitý obor se může použít více definic zásad. Čistý výsledek definic zásad vrstvení se považuje za kumulativní nejvíce omezující: Pokud se na určitý prostředek vztahuje více zásad, je tento prostředek kompatibilní pouze v případě, že všechny definice zásad, které se na ně vztahují, jsou kompatibilní.

Přiřazení zásad se vyhodnocují 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ů. Zkontrolují se také všechny historické prostředky, takže získáte nepřetržitý přehled o dodržování předpisů všech vašich prostředků.

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é vynucuje dodržování předpisů pro úlohu spuštěnou 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 pro vynucení 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á vynucuje 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 funguje se samotným rozhraním 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 v clusteru AKS nastavit doplněk Azure Policy pro AKS .

Vysvětlení fungování služby Azure Policy pro AKS v rámci

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

Azure Policy používá webhooky přístupu v Kubernetes. Webhooky přístupu představují integrovanou funkci rozhraní Kubernetes API. Rozhraní API Kubernetes umožňuje volat externí webhook, aby ověřil, jestli má být požadavek na vytvoření, odstranění, úpravu nebo připojení k prostředku povolený nebo odepřený (ValidatingAdmissionWebhook) nebo jestli se má žádost změnit (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 API Kubernetes. 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 Vrátný OPA k poskytování odpovědí webhooku přístupu. 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?