Usługa Azure Policy i sposób jej integracji z usługą Azure Kubernetes Services

Ukończone

Azure Policy to usługa platformy Azure, która ułatwia zarządzanie stanem zgodności w różnych usługach platformy Azure. Usługa Azure Policy dla platformy Kubernetes umożliwia korzystanie z tych samych zasad platformy Azure w klastrach Kubernetes, co umożliwia zarządzanie stanem zgodności zasobów Kubernetes, takich jak zasobniki, wdrożenia i usługi, tak jakby były zasobami platformy Azure.

Wprowadzenie do usługi Azure Policy

Usługa Azure Policy umożliwia zarządzanie stanem zgodności usług platformy Azure. Działa to przez porównanie stanu zasobów platformy Azure z zdefiniowanymi regułami biznesowymi. Typowe reguły są ograniczeniem niektórych regionów, wymaganiem dla tagów zasobów lub ograniczeniem, które usługi platformy Azure mogą być używane.

Sposób definiowania tych reguł biznesowych w usłudze Azure Policy polega na użyciu definicji zasad. Istnieje wiele wbudowanych zasad obejmujących szereg typowych scenariuszy. Jeśli jedna z wbudowanych zasad nie spełnia Twoich potrzeb, możesz również zdefiniować zasady niestandardowe przy użyciu języka opartego na formacie JSON. Można również zgrupować wiele definicji zasad w ramach inicjatywy.

W definicji zasad należy zdefiniować warunek zgodności zasobów i efekt, który należy podjąć w przypadku spełnienia tego warunku. Warunek porównuje właściwości zasobu z wymaganą wartością. Przykładem warunku może być porównanie lokalizacji zasobu w porównaniu ze wstępnie zdefiniowaną listą dozwolonych lokalizacji. Efektem zasad może być inspekcja warunku, odmawianie utworzenia zasobu lub modyfikowanie utworzonego zasobu. W przykładzie lokalizacji zasobu można odmówić tworzenia zasobów, które nie znajdują się na liście dozwolonych lokalizacji. Aby uzyskać bardziej szczegółowe wyjaśnienie definicji zasad, zapoznaj się ze strukturą definicji usługi Azure Policy.

Usługa Azure Policy działa przez przypisanie definicji zasad lub inicjatywy do określonego zakresu. Zakres może być grupą zarządzania, subskrypcją lub grupą zasobów. Przypisania zasad są automatycznie dziedziczone do wszystkich zakresów poniżej przypisania, chyba że zostanie utworzone wykluczenie. Wiele definicji zasad może mieć zastosowanie do określonego zakresu. Wynik netto definicji zasad warstwowych jest uważany za skumulowany najbardziej restrykcyjny: jeśli wiele zasad ma zastosowanie do określonego zasobu, ten zasób jest zgodny tylko wtedy, gdy wszystkie definicje zasad stosowane do niego są zgodne.

Przypisania zasad są oceniane podczas tworzenia lub aktualizowania zasobów platformy Azure. Są one również oceniane, czy definicja lub zakres są zmieniane, i okresowo na potrzeby ciągłego monitorowania. Praktycznie zasady natychmiast obowiązują podczas tworzenia nowych zasobów. Wszystkie zasoby historyczne są również skanowane, dzięki czemu można uzyskać ciągły wgląd w zgodność wszystkich zasobów.

Integracja usługi Azure Policy z usługą AKS

Istnieją dwa sposoby integracji usługi Azure Policy z usługą Azure Kubernetes Service (AKS).

  • Zasady wymuszające zgodność na płaszczyźnie sterowania platformy Azure dla usługi AKS.
  • Zasady wymuszające zgodność obciążenia uruchomionego w klastrze.

Pierwszy zestaw zasad koncentruje się bardziej na zasobach platformy Azure reprezentujących projekt klastra, natomiast drugi zestaw zasad koncentruje się na obciążeniach uruchomionych w klastrze.

Przykładowe zasady skoncentrowane na płaszczyźnie sterowania platformy Azure dla usługi AKS to zasady wymuszania korzystania z klastrów prywatnych. Zasady oceniają, czy klaster usługi AKS korzysta z funkcji klastra prywatnego. Te zasady są konfiguracją interfejsu API platformy Azure, która kontroluje projekt samego klastra.

Przykładem zestawu zasad skoncentrowanych na obciążeniu uruchomionym w klastrze są zasady wymuszania użycia dozwolonych obrazów. Zasady oceniają, czy definicja zasobnika na platformie Kubernetes używa obrazu pasującego do określonego wyrażenia regularnego. Te zasady są konfiguracją w samym klastrze i nie współdziałają z interfejsem API platformy Azure.

Pierwszy zestaw zasad działa w odniesieniu do samego interfejsu API platformy Azure. Drugi zestaw zasad współdziała z interfejsem API platformy Kubernetes. Aby zastosować i wymusić te wbudowane zasady zabezpieczeń, należy skonfigurować dodatek usługi Azure Policy dla usługi AKS w klastrze usługi AKS .

Informacje o tym, jak działa usługa Azure Policy dla usługi AKS w ramach okładek

Aby wymusić zasady na podstawie interfejsu API platformy Kubernetes, usługa Azure Policy dla platformy Kubernetes korzysta z wielu narzędzi: a mianowicie elementów webhook przyjmowania, agenta open policy (OPA), gatekeeper i wreszcie zasobnika usługi Azure Policy.

Usługa Azure Policy używa elementów webhook przyjęcia na platformie Kubernetes. Elementy webhook wstępu to wbudowana funkcja interfejsu API platformy Kubernetes. Umożliwiają one interfejsowi API platformy Kubernetes wywołanie zewnętrznego elementu webhook w celu sprawdzenia, czy żądanie tworzenia, usuwania, modyfikowania lub nawiązywania połączenia z zasobem powinno być dozwolone lub blokowane () lub jeśli żądanie powinno zostać zmienione (ValidatingAdmissionWebhookMutatingAdmissionWebhook).

Open Policy Agent (OPA) to aparat zasad typu open source. OPA udostępnia język wysokiego poziomu do definiowania zasad. Za pomocą narzędzia OPA można wymusić zasady we własnych mikrousługach, potokach ciągłej integracji/ciągłego wdrażania i na platformie Kubernetes. Usługa Azure Policy dla platformy Kubernetes tłumaczy zasady platformy Azure na język OPA, który ma zostać wdrożony w klastrze Kubernetes.

OPA Gatekeeper to implementacja OPA specyficzna dla platformy Kubernetes, która integruje się z interfejsem API kubernetes. Integruje się z wprowadzonymi wcześniej elementami webhook wstępu. Zamiast wdrażać własne programy obsługi elementów webhook, możesz użyć strażnika OPA do obsługi odpowiedzi elementu webhook przyjęcia. Usługa Azure Policy dla platformy Kubernetes wdraża usługę OPA Gatekeeper w klastrze Kubernetes w celu osiągnięcia tej funkcji.

1.

Jak przypisać zasady platformy Azure do wszystkich subskrypcji organizacji?

2.

Jak można użyć platformy Azure, aby upewnić się, że wszystkie zasobniki utworzone w klastrze Kubernetes mają skonfigurowane żądania i limity oraz odrzucają zasobniki bez tworzenia tych konfiguracji?

3.

Zasady "Kontenery klastra Kubernetes powinny używać tylko dozwolonych obrazów" do grupy zasobów klastra Kubernetes. Co się stanie z istniejącymi zasobnikami, które nie korzystają z dozwolonych obrazów?