Używanie uwierzytelniania entra firmy Microsoft z błędami usługi AKS programu Chaos Studio
Omówienie
Usługa Azure Chaos Studio integruje się z usługą Chaos Mesh w celu uruchamiania błędów w klastrach usługi Azure Kubernetes Service (AKS), takich jak usuwanie zasobników, przeciążenie procesora CPU, zakłócenia sieci i nie tylko. Możesz użyć dwóch różnych typów uwierzytelniania, aby uruchomić te błędy, w zależności od konfiguracji i preferencji, kont lokalnych lub uwierzytelniania usługi AKS Zarządzane przez firmę Microsoft Entra:
- Konta lokalne platformy Kubernetes są przechowywane na serwerze interfejsu API Kubernetes i mogą służyć do uwierzytelniania i autoryzacji żądań do klastra. Dowiedz się więcej o kontach lokalnych na tej stronie: Zarządzanie kontami lokalnymi.
- Uwierzytelnianie usługi Microsoft Entra zarządzane przez usługę AKS umożliwia logowanie się do klastra i zarządzanie nimi przy użyciu poświadczeń usługi Microsoft Entra i kontroli dostępu opartej na rolach platformy Azure. Dowiedz się, jak włączyć uwierzytelnianie firmy Microsoft zarządzane przez usługę AKS.
Uwaga
Uprawnienia konta lokalnego zapewniają dostęp tak długo, jak poświadczenia znajdują się na komputerze klienckim, podczas gdy uwierzytelnianie usługi Microsoft Entra zarządzane przez usługę AKS umożliwia przypisywanie uprawnień w większym zakresie i zarządzanie nimi. Dowiedz się więcej o tym najlepszym rozwiązaniu: Najlepsze rozwiązania dotyczące zabezpieczeń i uaktualnień klastra.
Program Chaos Studio wcześniej obsługiwał tylko używanie usługi Chaos Mesh z kontami lokalnymi, ale wersja 2.2 wszystkich błędów usługi AKS obsługuje teraz zarówno konta lokalne, jak i uwierzytelnianie Microsoft Entra.
Ostrzeżenie
Jeśli zostanie wyświetlony błąd Object reference not set to an instance of an object
środowiska uruchomieniowego , jest to znana usterka z błędami w wersji 2.2. Oczekuje się, że poprawka zakończy wdrażanie na początku stycznia 2025 r. Dzieje się tak w przypadku korzystania z nowej wersji błędu usługi AKS Chaos Mesh (2.2) w klastrze z włączonymi kontami lokalnymi. Obejściem jest użycie błędów w wersji 2.1 oznaczonych jako "(przestarzałe)" w interfejsie użytkownika lub użycie klastra usługi AKS z włączonym uwierzytelnianiem Entra.
Aktualizuj elementy docelowe
Elementy docelowe (Microsoft.Chaos/targets
) reprezentują inny zasób platformy Azure w modelu zasobów programu Chaos Studio, dzięki czemu można łatwo kontrolować, czy określony zasób jest włączony w celu wstrzyknięcia błędów i jakie błędy mogą zostać uruchomione. W takim przypadku obiekt docelowy reprezentuje klaster usługi AKS, który chcesz mieć wpływ.
Jeśli dołączasz klaster usługi AKS jako nowy element docelowy programu Chaos Studio w witrynie Azure Portal, nowe wersje błędów będą automatycznie dostępne.
Jeśli chcesz użyć nowej wersji błędów w istniejącym obiekcie docelowym usługi AKS, musisz zaktualizować element docelowy. Możesz to zrobić na dwa sposoby:
- Wyłącz i ponownie włącz zasób docelowy.
- Aby to zrobić w witrynie Azure Portal, odwiedź okienko Cele w interfejsie portalu Chaos Studio, wybierz odpowiednie klastry usługi AKS i wybierz pozycję Wyłącz obiekty docelowe. Zaczekaj 1–2 minuty lub na powiadomienie z potwierdzeniem, a następnie wybierz pozycję Włącz obiekty docelowe włącz cele> bezpośrednie usługi i przejdź przez ekran Przeglądanie i tworzenie.
- Zaktualizuj włączone możliwości.
- Aby to zrobić w witrynie Azure Portal, odwiedź okienko Cele w narzędziu Chaos Studio, znajdź klastry usługi AKS, wybierz pozycję Zarządzaj akcjami i upewnij się, że wszystkie funkcje są włączone. Wybierz pozycję Zapisz , aby sfinalizować aktualizację.
Jeśli używasz interfejsu API lub wiersza polecenia, postępuj zgodnie z instrukcjami w artykule Tworzenie eksperymentu chaosu, który używa błędu usługi Chaos Mesh z interfejsem wiersza polecenia platformy Azure, aby upewnić się, że są włączone najnowsze dostępne funkcje.
Tworzenie nowego eksperymentu
Podczas tworzenia nowego eksperymentu, który używa błędów usługi AKS Chaos Mesh w witrynie Azure Portal, mogą zostać wyświetlone dwie wersje każdego błędu, takie jak "AKS Chaos Mesh DNS Chaos Mesh" i "AKS Chaos Mesh DNS Chaos (przestarzałe)". Wybierz pierwszą opcję, a nie przestarzałą opcję.
Jeśli klaster usługi AKS nie jest widoczny jako możliwy element docelowy po wybraniu błędu, może być konieczne włączenie nowej wersji błędów w klastrze. Odwiedź stronę Cele, znajdź klaster usługi AKS i wybierz pozycję Zarządzaj akcjami, a następnie upewnij się, że wszystkie możliwości zostały wybrane przed wybraniem pozycji Zapisz.
Postępuj zgodnie z samouczkiem Tworzenie eksperymentu chaosu korzystającego z błędu usługi Chaos Mesh w celu zabicia zasobników usługi AKS za pomocą witryny Azure Portal w celu utworzenia eksperymentu.
Aktualizowanie istniejącego eksperymentu
Wykonaj jedną z tych dwóch metod, aby zaktualizować istniejący eksperyment.
- Otwórz eksperyment zawierający co najmniej jeden błąd usługi AKS Chaos Mesh.
- Wybierz pozycję Edytuj po błędzie i skopiuj wartość parametru
jsonSpec
do schowka. - Otwórz listę rozwijaną wyboru błędów i wybierz wersję żądanej błędu
(deprecated)
bez oznaczenia. - Wklej element
jsonSpec
ze schowka do pola parametru. - Zapisz błąd i eksperyment.
Uprawnienia
Program Chaos Studio musi mieć uprawnienia do wykonywania błędów w zasobach.
Podczas tworzenia eksperymentu w witrynie Azure Portal możesz opcjonalnie wybrać pozycję Włącz tworzenie i przypisanie roli niestandardowej, aby umożliwić usłudze Chaos Studio podjęcie próby przypisania niezbędnych uprawnień do tożsamości zarządzanej eksperymentu.
Jeśli nie chcesz używać niestandardowego tworzenia roli lub nie używasz witryny Azure Portal, musisz wykonać jedną z następujących czynności po utworzeniu eksperymentu:
- Ręcznie przypisz role administratora RBAC usługi Azure Kubernetes Service i użytkownika klastra usługi Azure Kubernetes Service do tożsamości zarządzanej eksperymentu (przypisanej przez system lub przypisanej przez użytkownika).
- Ręcznie utwórz rolę niestandardową zezwalającą na pełną listę operacji wymaganych w operacjach kontroli dostępu opartej na rolach.
- Ręcznie utwórz rolę niestandardową zezwalającą na częściową listę wymaganych operacji i wdróż niestandardowy plik YAML. Ten proces został szczegółowo opisany w temacie Opcjonalny dostęp z najniższymi uprawnieniami.
Operacje kontroli dostępu opartej na rolach
Następujące operacje kontroli dostępu opartej na rolach są używane w przypadku błędów usługi AKS Chaos Mesh:
- Akcje:
- Microsoft.ContainerService/managedClusters/read
- Akcje danych:
- Microsoft.ContainerService/managedClusters/namespaces/read
- Microsoft.ContainerService/managedClusters/pods/read
- Microsoft.ContainerService/managedClusters/apiextensions.k8s.io/customresourcedefinitions/write
- Microsoft.ContainerService/managedClusters/apiextensions.k8s.io/customresourcedefinitions/read
- Microsoft.ContainerService/managedClusters/authorization.k8s.io/subjectaccessreviews/write
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterroles/read
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterroles/write
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterroles/delete
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterroles/bind/action
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterroles/escalate/action
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterrolebindings/read
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterrolebindings/write
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterrolebindings/delete
Opcjonalny dostęp z najniższymi uprawnieniami
Jeśli nie chcesz udzielać pełnych uprawnień ClusterRole i ClusterRoleBinding odczytu/zapisu do tożsamości eksperymentu programu Chaos Studio, możesz ręcznie utworzyć niezbędną rolę i powiązanie dla usługi Chaos Mesh. Jest to konieczne w przypadku usługi Chaos Mesh, aby upewnić się, że eksperyment ma uprawnienia do kierowania do określonej przestrzeni nazw dzierżawy.
Do tej opcjonalnej konfiguracji należy wykonać dwa kroki.
Podczas przypisywania uprawnień do tożsamości zarządzanej eksperymentu użyj roli niestandardowej z ograniczonym zestawem uprawnień. Wymagane są następujące uprawnienia:
- Akcje:
- Microsoft.ContainerService/managedClusters/read
- Akcje danych:
- Microsoft.ContainerService/managedClusters/namespaces/read
- Microsoft.ContainerService/managedClusters/pods/read
- Microsoft.ContainerService/managedClusters/apiextensions.k8s.io/customresourcedefinitions/write
- Microsoft.ContainerService/managedClusters/apiextensions.k8s.io/customresourcedefinitions/read
- Microsoft.ContainerService/managedClusters/authorization.k8s.io/subjectaccessreviews/write
- Akcje:
Wdróż następującą konfigurację YAML, aby utworzyć rolę i powiązanie. Dowiedz się więcej o wdrożeniach w dokumentacji usługi AKS: Wdrażanie klastra usługi Azure Kubernetes Service (AKS) przy użyciu witryny Azure Portal.
kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata: name: role-cluster-manager-pdmas rules: - apiGroups: - chaos-mesh.org resources: [ "*" ] verbs: ["get", "list", "watch", "create", "delete", "patch", "update"] --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: cluster-manager-binding namespace: {Namespace targeted by experiment} subjects: - kind: User name: {CHAOS-STUDIO-EXPERIMENT-MSI-OBJECT-ID} roleRef: kind: ClusterRole name: role-cluster-manager-pdmas apiGroup: rbac.authorization.k8s.io