Använda Microsoft Entra-autentisering med Chaos Studio AKS-fel
Översikt
Azure Chaos Studio integreras med Chaos Mesh för att köra fel i AKS-kluster (Azure Kubernetes Service), som att ta bort poddar, CPU-stress, nätverksstörningar med mera. Du kan använda två olika typer av autentisering för att köra dessa fel, beroende på din konfiguration och dina inställningar, antingen lokala konton eller AKS-hanterad Microsoft Entra-autentisering:
- Lokala Kubernetes-konton lagras på Kubernetes API-servern och kan användas för att autentisera och auktorisera begäranden till klustret. Läs mer om lokala konton på den här sidan: Hantera lokala konton.
- MED AKS-hanterad Microsoft Entra-autentisering kan du logga in och hantera behörigheter för klustret med Microsoft Entra-autentiseringsuppgifter och Azure RBAC. Lär dig hur du aktiverar AKS-hanterad Microsoft Entra-autentisering.
Kommentar
Behörigheter för lokala konton beviljar åtkomst så länge autentiseringsuppgifterna finns på klientdatorn, medan AKS-hanterad Microsoft Entra-autentisering tillåter mer omfattande tilldelning och hantering av behörigheter. Läs mer om den här bästa metoden: Metodtips för klustersäkerhet och uppgraderingar.
Chaos Studio har tidigare endast stöd för att använda Chaos Mesh med lokala konton, men version 2.2 av alla AKS-fel stöder nu både lokala konton och Microsoft Entra-autentisering.
Uppdatera mål
Mål (Microsoft.Chaos/targets
) representerar en annan Azure-resurs i Chaos Studios resursmodell, så att du enkelt kan styra om en viss resurs är aktiverad för felinmatning och vilka fel som kan köras mot den. I det här fallet representerar målet ett AKS-kluster som du vill påverka.
Om du registrerar ett AKS-kluster som ett nytt Chaos Studio-mål inom Azure Portal blir de nya felversionerna automatiskt tillgängliga.
Om du vill använda den nya felversionen på ett befintligt AKS-mål måste du uppdatera målet. Det kan du göra på ett av följande två vis:
- Inaktivera och återaktivera målresursen.
- Om du vill göra detta i Azure Portal går du till fönstret Mål i Chaos Studio-portalgränssnittet, väljer relevanta AKS-kluster och väljer Inaktivera mål. Vänta 1–2 minuter eller på ett bekräftelsemeddelande och välj sedan Aktivera mål>Aktivera tjänstdirigeringsmål och gå igenom skärmen Granska och skapa.
- Uppdatera de aktiverade funktionerna.
- Om du vill göra detta i Azure Portal går du till fönstret Mål i Chaos Studio, letar reda på AKS-klustren, väljer Hantera åtgärder och kontrollerar att alla funktioner är aktiverade. Välj Spara för att slutföra uppdateringen.
Om du använder API:et eller kommandoraden följer du anvisningarna i Skapa ett kaosexperiment som använder ett Chaos Mesh-fel med Azure CLI för att säkerställa att de senaste tillgängliga funktionerna är aktiverade.
Skapa ett nytt experiment
När du skapar ett nytt experiment som använder AKS Chaos Mesh-fel i Azure Portal kan du se två versioner av varje fel, till exempel "AKS Chaos Mesh DNS Chaos" och "AKS Chaos Mesh DNS Chaos (inaktuellt)". Välj det första alternativet, inte det inaktuella alternativet.
Om du inte ser AKS-klustret som ett möjligt mål när du har valt felet kan du behöva aktivera den nya felversionen i klustret. Gå till sidan Mål, leta upp ditt AKS-kluster och välj Hantera åtgärder och kontrollera sedan att alla funktioner är markerade innan du väljer Spara.
Följ experimentet Skapa ett kaos som använder ett Chaos Mesh-fel för att döda AKS-poddar med självstudien Azure Portal för att skapa ett experiment.
Uppdatera ett befintligt experiment
Följ någon av dessa två metoder för att uppdatera ditt befintliga experiment.
- Öppna ett experiment som innehåller minst ett AKS Chaos Mesh-fel.
- Välj Redigera på felet och kopiera
jsonSpec
parametervärdet till Urklipp. - Öppna listrutan för felval och välj den version av ditt önskade fel som inte har markerats
(deprecated)
. jsonSpec
Klistra in från Urklipp i parameterfältet.- Spara felet och experimentet.
Behörigheter
Chaos Studio behöver behörighet att köra fel på dina resurser.
När du skapar ett experiment i Azure Portal kan du välja Aktivera skapande och tilldelning av anpassade roller så att Chaos Studio kan försöka tilldela nödvändiga behörigheter till experimentets hanterade identitet.
Om du väljer att inte använda skapande av anpassade roller, eller om du inte använder Azure Portal, måste du göra något av följande när du har skapat experimentet:
- Tilldela rollerna Azure Kubernetes Service RBAC Admin och Azure Kubernetes Service Cluster Användarroller manuellt till den hanterade experimentidentiteten (systemtilldelad eller användartilldelad).
- Skapa en anpassad roll manuellt så att den fullständiga listan över åtgärder som behövs i RBAC-åtgärder tillåts.
- Skapa en anpassad roll manuellt för att tillåta en partiell lista över de åtgärder som behövs och distribuera en anpassad YAML-fil. Den här processen beskrivs i Valfri åtkomst med lägsta behörighet.
RBAC-åtgärder
Följande RBAC-åtgärder används för AKS Chaos Mesh-fel:
- Åtgärder:
- Microsoft.ContainerService/managedClusters/read
- Dataåtgärder:
- 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
Valfri åtkomst med lägsta behörighet
Om du föredrar att inte bevilja fullständig ClusterRole- och ClusterRoleBinding-läs-/skrivåtkomst till Chaos Studio-experimentidentiteten kan du manuellt skapa den nödvändiga rollen och bindningen för Chaos Mesh. Detta är nödvändigt för chaos mesh för att säkerställa att experimentet har behörighet att rikta in sig på det angivna klientnamnområdet.
Det finns två steg i den här valfria konfigurationen.
När du tilldelar behörigheter till experimentets hanterade identitet använder du en anpassad roll med en begränsad uppsättning behörigheter. De behörigheter som krävs är:
- Åtgärder:
- Microsoft.ContainerService/managedClusters/read
- Dataåtgärder:
- 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
- Åtgärder:
Distribuera följande YAML-konfiguration för att skapa rollen och bindningen. Läs mer om distributioner i AKS-dokumentationen: Distribuera ett AKS-kluster (Azure Kubernetes Service) med hjälp av 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