Microsoft Entra-verificatie gebruiken met Chaos Studio AKS-fouten
Overzicht
Azure Chaos Studio kan worden geïntegreerd met Chaos Mesh om fouten uit te voeren in AKS-clusters (Azure Kubernetes Service), zoals het verwijderen van pods, CPU-stress, netwerkonderbreking en meer. U kunt twee verschillende typen verificatie gebruiken om deze fouten uit te voeren, afhankelijk van uw configuratie en voorkeuren, lokale accounts of door AKS beheerde Microsoft Entra-verificatie:
- Lokale Kubernetes-accounts worden opgeslagen op de Kubernetes API-server en kunnen worden gebruikt voor het verifiëren en autoriseren van aanvragen voor het cluster. Meer informatie over lokale accounts vindt u op deze pagina: Lokale accounts beheren.
- Met AKS-beheerde Microsoft Entra-verificatie kunt u zich aanmelden en machtigingen voor uw cluster beheren met behulp van Microsoft Entra-referenties en Azure RBAC. Meer informatie over het inschakelen van door AKS beheerde Microsoft Entra-verificatie.
Notitie
Lokale accountmachtigingen verlenen toegang zolang de referenties zich op de clientcomputer bevinden, terwijl AKS-beheerde Microsoft Entra-verificatie meer toewijzing en beheer van machtigingen toestaat. Meer informatie over deze best practice: Best practices voor clusterbeveiliging en upgrades.
Chaos Studio ondersteunt voorheen alleen chaos mesh met lokale accounts, maar versie 2.2 van alle AKS-fouten ondersteunen nu zowel lokale accounts als Microsoft Entra-verificatie.
Waarschuwing
Als u een runtimefout Object reference not set to an instance of an object
ziet, is dit een bekende fout met de fouten in versie 2.2. Er wordt naar verwachting begin januari 2025 een oplossing geïmplementeerd. Dit gebeurt wanneer u de nieuwe AKS Chaos Mesh-foutversie (2.2) op een cluster gebruikt waarvoor lokale accounts zijn ingeschakeld. De tijdelijke oplossing is het gebruik van de v2.1-fouten, die zijn gemarkeerd als (afgeschaft) in de gebruikersinterface of een AKS-cluster gebruiken waarvoor Entra-verificatie is ingeschakeld.
Doelen bijwerken
Doelen (Microsoft.Chaos/targets
) vertegenwoordigen een andere Azure-resource in het resourcemodel van Chaos Studio, zodat u eenvoudig kunt bepalen of een bepaalde resource is ingeschakeld voor foutinjectie en welke fouten ermee kunnen worden uitgevoerd. In dit geval vertegenwoordigt het doel een AKS-cluster dat u wilt beïnvloeden.
Als u onboarding uitvoert voor een AKS-cluster als een nieuw Chaos Studio-doel in Azure Portal, zijn de nieuwe foutversies automatisch beschikbaar.
Als u de nieuwe foutversie op een bestaand AKS-doel wilt gebruiken, moet u het doel bijwerken. U kunt dit op twee manieren doen:
- Schakel de doelresource uit en schakel deze opnieuw in.
- Als u dit wilt doen in Azure Portal, gaat u naar het deelvenster Doelen in de Interface van de Chaos Studio-portal, selecteert u de relevante AKS-cluster(s) en selecteert u Doelen uitschakelen. Wacht 1-2 minuten of voor een bevestigingsmelding, selecteer doelen>inschakelen service-direct doelen inschakelen en doorloop het scherm Controleren en maken.
- Werk de ingeschakelde mogelijkheden bij.
- Als u dit wilt doen in Azure Portal, gaat u naar het deelvenster Doelen in Chaos Studio, zoekt u de AKS-clusters, selecteert u Acties beheren en controleert u of alle mogelijkheden zijn ingeschakeld. Selecteer Opslaan om de update te voltooien.
Als u de API of opdrachtregel gebruikt, volgt u de instructies in Een chaos-experiment maken dat gebruikmaakt van een Chaos Mesh-fout met de Azure CLI om ervoor te zorgen dat de nieuwste beschikbare mogelijkheden zijn ingeschakeld.
Een nieuw experiment maken
Wanneer u een nieuw experiment maakt dat gebruikmaakt van AKS Chaos Mesh-fouten in Azure Portal, ziet u mogelijk twee versies van elke fout, zoals 'AKS Chaos Mesh DNS Chaos' en 'AKS Chaos Mesh DNS Chaos (afgeschaft)'. Selecteer de eerste optie, niet de afgeschafte optie.
Als u uw AKS-cluster niet ziet als mogelijk doel nadat u de fout hebt geselecteerd, moet u mogelijk de nieuwe foutversie inschakelen op het cluster. Ga naar de pagina Doelen, zoek uw AKS-cluster en selecteer Acties beheren en zorg ervoor dat alle mogelijkheden zijn geselecteerd voordat u Opslaan selecteert.
Volg het experiment Een chaos-experiment maken dat gebruikmaakt van een Chaos Mesh-fout om AKS-pods te doden met de zelfstudie over Azure Portal om een experiment te maken.
Een bestaand experiment bijwerken
Volg een van deze twee methoden om uw bestaande experiment bij te werken.
- Open een experiment met ten minste één AKS Chaos Mesh-fout.
- Selecteer Bewerken bij de fout en kopieer de
jsonSpec
parameterwaarde naar het Klembord. - Open de vervolgkeuzelijst voor foutselectie en selecteer de versie van de gewenste fout zonder de
(deprecated)
markering. - Plak het
jsonSpec
vanaf het klembord in het parameterveld. - Sla de fout en het experiment op.
Machtigingen
Chaos Studio heeft toestemming nodig om fouten op uw resources uit te voeren.
Wanneer u een experiment maakt in Azure Portal, kunt u desgewenst aangepaste rollen maken en toewijzen inschakelen selecteren om Chaos Studio te laten proberen de benodigde machtigingen toe te wijzen aan de beheerde identiteit van het experiment.
Als u ervoor kiest om geen aangepaste rol te maken of als u azure Portal niet gebruikt, moet u een van de volgende handelingen uitvoeren nadat u uw experiment hebt gemaakt:
- Wijs handmatig de azure Kubernetes Service RBAC-beheerders - en Azure Kubernetes Service-clustergebruikersrollen toe aan de door het experiment beheerde identiteit (door het systeem toegewezen of door de gebruiker toegewezen).
- Handmatig een aangepaste rol maken, zodat de volledige lijst met bewerkingen die nodig zijn voor RBAC-bewerkingen.
- Handmatig een aangepaste rol maken die een gedeeltelijke lijst met benodigde bewerkingen toestaat en een aangepast YAML-bestand implementeren. Dit proces wordt beschreven in optionele toegang met minimale bevoegdheden.
RBAC-bewerkingen
De volgende RBAC-bewerkingen worden gebruikt voor AKS Chaos Mesh-fouten:
- Acties:
- Microsoft.ContainerService/managedClusters/read
- Gegevensacties:
- 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
Optionele toegang met minimale bevoegdheden
Als u liever geen volledige ClusterRole- en ClusterRoleBinding-lees-/schrijftoegang verleent tot de Chaos Studio-experimentidentiteit, kunt u handmatig de benodigde rol en binding voor Chaos Mesh maken. Dit is nodig voor Chaos Mesh om ervoor te zorgen dat het experiment gemachtigd is om de opgegeven tenantnaamruimte te targeten.
Er zijn twee stappen voor deze optionele configuratie.
Wanneer u machtigingen toewijst aan de beheerde identiteit van het experiment, gebruikt u een aangepaste rol met een beperkte set machtigingen. De vereiste machtigingen zijn:
- Acties:
- Microsoft.ContainerService/managedClusters/read
- Gegevensacties:
- 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
- Acties:
Implementeer de volgende YAML-configuratie om de rol en binding te maken. Meer informatie over implementaties in de AKS-documentatie: Een AKS-cluster (Azure Kubernetes Service) implementeren met behulp van 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