Konfigurace zásad kvóty prostředků AKS pomocí služby Azure Policy pro Kubernetes

Dokončeno

Azure Policy vám pomůže vynutit standardy a posoudit dodržování předpisů s podporou škálování pro cloudové prostředí. Je vhodné, aby společnosti implementovaly obchodní pravidla, která definují, jak zaměstnanci můžou používat firemní software, hardware a další prostředky v organizaci. Firmy proto používají zásady k vynucení, kontrole a definování přístupu. Zásady pomáhají organizaci dodržovat zásady správného řízení a zákonné požadavky a implementovat osvědčené postupy a organizační konvence.

Azure Kubernetes Service (AKS) umožňuje efektivně orchestrovat aplikace nativní pro cloud pomocí zásad. Uvědomujete si, že potřebujete vynutit obchodní pravidla pro správu způsobu, jakým týmy používají AKS k zajištění nákladově efektivního přístupu. Rozhodnete se použít Azure Policy k použití této myšlenky na cloudové prostředky založené na Azure.

Než začnete diskutovat o tom, jak používat Azure Policy pro Kubernetes, měli byste porozumět několika dalším konceptům, které tuto funkci umožňují v rámci Kubernetes.

Co je kontroler přístupu Kubernetes?

Kontroler přístupu je modul plug-in Kubernetes, který zachycuje ověřené a autorizované požadavky na rozhraní Kubernetes API před nastavením trvalosti požadovaného objektu Kubernetes. Předpokládejme například, že nasazujete novou úlohu a nasazení zahrnuje požadavek na pod se specifickými požadavky na paměť. Kontroler přístupu zachytí požadavek na nasazení a musí autorizovat nasazení, než bude trvale nastavené v clusteru.

Kontroler přístupu si můžete představit jako software, který řídí a vynucuje způsob použití a navržení clusteru. Omezuje požadavky na vytváření, odstraňování a úpravy objektů Kubernetes.

Co je webhook kontroleru přístupu?

Webhook kontroleru přístupu je funkce zpětného volání HTTP, které přijímá požadavky na přístup a pak tyto požadavky vyřizuje. Kontrolery přístupu je potřeba nakonfigurovat za běhu. Tyto kontrolery existují buď pro kompilovaný modul plug-in přístupu, nebo nasazené rozšíření, které běží jako webhook.

Existují dva druhy webhooků přístupu: ověřovací webhooky a mutační webhooky. Nejprve se vyvolá mutační webhook, který může změnit a použít výchozí hodnoty u objektů odesílaných na server rozhraní API. Ověřovací webhook ověřuje hodnoty objektu a může zamítnout žádosti.

Co je agent Open Policy Agent (OPA)?

Open Policy Agent (OPA) je opensourcový modul zásad pro obecné účely, který poskytuje deklarativní jazyk na vysoké úrovni určený pro tvorbu zásad. Tyto zásady umožňují definovat pravidla, která dohlíží na to, jak by se měl systém chovat.

Co je OPA Gatekeeper?

OPA Gatekeeper je opensourcový webhook kontroleru přístupu Kubernetes, který vynucuje zásady založené na vlastní definici prostředků (CRD), které se řídí syntaxí OPA.

Cílem OPA Gatekeeper je umožnit přizpůsobení zásad přístupu pomocí konfigurace místo pevně zakódovaných pravidel zásad pro služby. Poskytne vám také úplný přehled o clusteru, abyste mohli identifikovat prostředky, které zásady porušují.

Použijte OPA Gatekeeper k definování zásad pro celou organizaci s pravidly:

  • Aby se vynucovala maximální omezení prostředků, jako jsou limity procesoru a paměti, pro všechny nakonfigurované pody.

  • Aby bylo nasazování imagí povolené pouze ze schválených úložišť.

  • Zásady vytváření názvů pro popisky pro všechny obory názvů v clusteru musí určovat kontaktní bod pro každý obor názvů.

  • Nařizte, aby služby clusteru měly globálně jedinečné selektory.

Azure Policy pro AKS

Azure Policy rozšiřuje OPA Gatekeeper verze 3 a integruje se s AKS prostřednictvím předdefinovaných zásad. Tyto zásady centralizovaným a konzistentním způsobem aplikují škálovatelné vynucování a bezpečnostní prvky v clusteru.

Vývojové týmy vaší společnosti chtějí optimalizovat vývoj a zavést vývojové nástroje, jako je DevSpaces, a zjednodušit tak pracovní postup vývoje v Kubernetes. Chcete zajistit, aby členové týmu dodržovali na svých projektech konkrétní omezení prostředků. Rozhodnete se nastavit zásadu, která definuje výpočetní prostředky, prostředky úložiště a počet objektů povolený ve vývojových oborech názvů.

K nastavení limitů prostředků můžete použít kvóty prostředků na úrovni oboru názvů a monitorovat využití prostředků, abyste mohli upravit kvóty zásad. Tato strategie vám umožní rezervovat a omezit prostředky pro vývojový tým.

Postup povolení doplňku Azure Policy pro AKS

Postup registrace funkce doplňku Azure Policy pro AKS má několik kroků. Tady uvedeme příklady, ale ve skutečnosti dokončíte kroky v další lekci.

  1. Pomocí příkazu az provider register zaregistrujte dva poskytovatele prostředků:

    • Microsoft.ContainerService a Microsoft.Policy Přehledy: Tito poskytovatelé prostředků podporují akce, jako je dotazování na informace o událostech zásad a správa kontejnerů. Jedná se o akce pro dotazování, vytvoření, aktualizaci nebo odstranění nápravy zásad.

    Tady je příklad těchto dvou příkazů pro registraci:

    az provider register --namespace Microsoft.ContainerService
    az provider register --namespace Microsoft.PolicyInsights
    
  2. Zaregistrujte funkci AKS-AzurePolicyAutoApprove u poskytovatele prostředků Microsoft. ContainerService. Tady je příklad tohoto příkazu:

    az feature register --namespace Microsoft.ContainerService --name AKS-AzurePolicyAutoApprove
    
  3. Po potvrzení úspěšné registrace funkce spusťte az provider register příkaz s parametrem --namespace , který rozšíří registraci nové funkce. Tady je příklad tohoto příkazu:

    az provider register -n Microsoft.ContainerService
    
  4. Povolte doplněk azure-policy:

    az aks enable-addons \
        --addons azure-policy \
        --name myAKSCluster \
        --resource-group myResourceGroup
    

    Aktivace doplňku naplánuje úlohy ve dvou oborech názvů ve vašem clusteru. První obor názvů je kube-system, který obsahuje a azure-policy azure-policy-webhook. Druhý obor názvů je gatekeeper-system, který obsahuje gatekeeper-controller-manager. Tyto úlohy jsou zodpovědné za hodnocení požadavků odeslaných do řídicí roviny AKS. Na základě nakonfigurovaných zásad může webhook zásad povolit nebo odepřít žádosti.

Přiřazení definice předdefinované zásady

Zásady prostředí Azure spravujete pomocí řídicího panelu dodržování předpisů zásad Azure. Řídicí panel umožňuje přejít k podrobnostem na úrovni jednotlivých prostředků a zásad. Napomáhá tomu, aby prostředky dodržovaly předpisy, prostřednictvím hromadné nápravy existujících prostředků a automatické nápravy nových prostředků.

U každé zásady je uvedený přehled následujících informací:

Položka Popis Příklad
Název Název zásad. [Preview]: Ujistěte se, že limity prostředků procesoru a paměti kontejneru nepřekročí zadané limity v clusteru Kubernetes.
Scope Skupina prostředků předplatného, pro kterou tato zásada platí. mySubscription/rg-akscostsaving.
Stav dodržování předpisů Stav přiřazených zásad. Kompatibilní, Konfliktní, Nespustil nebo Nezaregistrováno.
Dodržování předpisů prostředkem Procentuální podíl prostředků, který je v souladu se zásadou. Tento výpočet bere v úvahu prostředky vyhovující, nevyhovující a v konfliktu. 100
Nekompatibilní prostředky Počet jedinečných prostředků, které porušují jedno nebo více pravidel zásad. 3
Nekompatibilní zásady Počet nekompatibilních zásad. 5

Odtud můžete přejít k podrobnostem o jednotlivých prostředcích a podrobnostech o zásadách pro události aktivované. Můžete například prozkoumat podrobnosti o odepřeném nasazení úlohy.

Přiřazování zásad

Pokud chcete přiřadit zásadu, vyberte v navigačním panelu Azure Policy možnost Přiřazení v části Vytváření obsahu.

Zásady Azure přiřazujete jedním ze dvou způsobů: jako skupinu zásad označovaných jako iniciativa nebo jako jedna zásada.

Přiřazení iniciativy

Přiřazení iniciativy je kolekce definic zásad Azure seskupených dohromady tak, aby splňovaly konkrétní cíl nebo účel. Cílem může být například použít u prostředků standard zabezpečení dat v odvětví platebních karet.

Přiřazení zásady

Přiřazení zásady přiřadí jednu zásadu, například Nepovolit privilegované kontejnery v clusteru Kubernetes.

Postup přiřazení zásady

Každá zásada se definuje pomocí řady kroků konfigurace. Množství informací, které zaznamenáte, závisí na typu vámi vybrané zásady.

Pokud například chcete omezit nasazení prostředků vývojáři v cloudovém prostředí společnosti, můžete přiřadit jednu z předdefinovaných zásad Azure pro službu Azure Kubernetes Service. Název zásady je Zajistit, že limity prostředků procesoru a paměti kontejneru nepřekročí stanovené limity v clusteru Kubernetes.

Tato zásada vyžaduje, abyste nastavili limit povolených prostředků vyžadovaných v požadavcích na nasazení.

Podívejme se na konfigurovatelné možnosti při přiřazování zásad.

Základní informace o zásadě

První krok vyžaduje, abyste vybrali a zadali základní informace definující novou zásadu. Tyto informace můžou být například zásadou a oborem prostředků. Tato tabulka uvádí jednotlivé položky, které můžete nakonfigurovat:

Položka Popis
Scope Obor určuje, jaké prostředky nebo skupinu prostředků se přiřazení zásady vynucuje. Tato hodnota je založená na předplatném nebo skupině pro správu. Prostředky můžete z výběru vyloučit na úrovni o jednu nižší, než je úroveň rozsahu.
Definice zásady Zásada, kterou chcete použít. Můžete vybírat z několika předdefinovaných možností zásad.
Název přiřazení Název použitý k identifikaci přiřazené zásady.
Popis Libovolný textový popis, který popisuje zásadu.
Vynucení zásad Můžete zvolit Povoleno a Zakázáno. Pokud je možnost nastavená na Zakázáno, zásada se nepoužije a požadavky se nebudou zamítat z důvodu nedodržení předpisů.
Přiřadil Libovolná textová hodnota, která ve výchozím nastavení označuje registrovaného uživatele. Tuto hodnotu můžete změnit.

Parametry zásad

Zásady vyžadují, abyste nakonfigurovali obchodní pravidla, která platí pro jednotlivé konkrétní zásady. Ne všechny zásady mají stejná obchodní pravidla, a proto má každá zásada jiné parametry.

Například zásada Zajistit, že limity prostředků procesoru a paměti kontejneru nepřekročí stanovené limity v clusteru Kubernetes vyžaduje nastavení tří parametrů:

  • Maximální povolené jednotky procesoru pro kontejner
  • Maximální počet bajtů paměti povolený pro kontejner
  • Seznam oborů názvů Kubernetes, které se mají ze zásad vyloučit

Porovnejte tuto zásadu se zásadou Webová aplikace by měla být přístupná jen přes protokol HTTPS, která nemá žádné vlastní parametry ke konfiguraci.

Všechny zásady mají nastavení Účinek. Toto nastavení povolí nebo zakáže provádění zásad. Stejně jako u parametrů můžou mít zásady také jiné možnosti Účinek.

Například u zásad správy prostředků můžete jako hodnotu Efekt vybrat audit, odepřít nebo zakázat. Pro zásadu webové aplikace můžete vybrat jenom možnost auditovat nebo zakázat.

Následující tabulka obsahuje všechny účinky, které se momentálně podporují v definicích zásad:

Účinnost Popis
Připojit Přidá do požadovaného prostředku další pole.
Auditovat Vytvoří v protokolu aktivit událost upozornění.
AuditIfNotExists Umožňuje auditování prostředků souvisejících s prostředkem, který odpovídá podmínce.
Odepřít Brání požadavku na prostředek, který neodpovídá definovaným standardům prostřednictvím definice zásady, a požadavek selže.
DeployIfNotExists Spustí nasazení šablony při splnění podmínky.
Zakázáno Užitečné pro testování situací nebo pro případy, kdy definice zásady parametrizovala efekt a chcete zakázat jedno přiřazení.
Upravit Přidá, aktualizuje nebo odebere značky prostředku během vytváření nebo aktualizace.

Náprava zásady

Posledním krokem je zvážení nápravy zásady. Když přiřadíte zásady, je možné, že už prostředky existují a porušují nové zásady. Ve výchozím nastavení se na nové zásady použijí jenom nově vytvořené prostředky. Pomocí nápravy můžete zkontrolovat existující prostředky po přiřazení nové zásady. Úlohy nápravy se můžou lišit v závislosti na typech použitých zásad.

V dalším cvičení použijete omezení prostředků procesoru a paměti kontejneru, které nepřekročí zadané limity v zásadách clusteru Kubernetes, aby se náklady dále snížily.