Livegegevens configureren in Container Insights
Als u livegegevens wilt weergeven met Container Insights van AKS-clusters (Azure Kubernetes Service), configureert u verificatie om toegang te verlenen tot uw Kubernetes-gegevens. Deze beveiligingsconfiguratie maakt realtime toegang tot uw gegevens mogelijk via de Kubernetes-API rechtstreeks in Azure Portal.
Deze functie ondersteunt de volgende methoden voor het beheren van de toegang tot logboeken, gebeurtenissen en metrische gegevens:
- AKS zonder RBAC-autorisatie (Op rollen gebaseerd toegangsbeheer) van Kubernetes ingeschakeld
- AKS ingeschakeld met Kubernetes RBAC-autorisatie
- AKS geconfigureerd met de clusterrolbinding clusterMonitoringUser
- AKS ingeschakeld met eenmalige aanmelding op basis van Microsoft Entra SAML
Voor deze instructies is beheerderstoegang tot uw Kubernetes-cluster vereist. Als u Microsoft Entra ID configureert voor gebruikersverificatie, hebt u ook beheerderstoegang tot Microsoft Entra-id nodig.
In dit artikel wordt uitgelegd hoe u verificatie configureert voor het beheren van de toegang tot de functie Live Data vanuit het cluster:
- AKS-cluster met Kubernetes RBAC-functionaliteit
- Geïntegreerd AKS-cluster van Microsoft Entra
Verificatiemodel
De functie Live Data maakt gebruik van de Kubernetes-API, die identiek is aan het kubectl
opdrachtregelprogramma. De Kubernetes-API-eindpunten maken gebruik van een zelfondertekend certificaat, dat uw browser niet kan valideren. Deze functie maakt gebruik van een interne proxy om het certificaat te valideren met de AKS-service, zodat het verkeer wordt vertrouwd.
In Azure Portal wordt u gevraagd uw aanmeldingsreferenties voor een Microsoft Entra ID-cluster te valideren. U wordt omgeleid naar de installatie van de clientregistratie tijdens het maken van het cluster (en opnieuw geconfigureerd in dit artikel). Dit gedrag is vergelijkbaar met het verificatieproces dat is vereist voor kubectl
.
Notitie
Autorisatie voor uw cluster wordt beheerd door Kubernetes en het beveiligingsmodel waarmee het is geconfigureerd. Gebruikers die toegang hebben tot deze functie, hebben toestemming nodig om de Kubernetes-configuratie (kubeconfig) te downloaden. Dit is vergelijkbaar met de uitvoering az aks get-credentials -n {your cluster name} -g {your resource group}
.
Dit configuratiebestand bevat het autorisatie- en verificatietoken voor de gebruikersrol Azure Kubernetes Service-cluster, in het geval van Azure RBAC-clusters en AKS-clusters zonder Kubernetes RBAC-autorisatie ingeschakeld. Het bevat informatie over Microsoft Entra ID en clientregistratiegegevens wanneer AKS is ingeschakeld met eenmalige aanmelding op basis van Microsoft Entra SAML.
Voor gebruikers van deze functie is de Gebruikersrol van het Azure Kubernetes-cluster vereist om toegang te krijgen tot het cluster om deze kubeconfig
functie te downloaden en te gebruiken. Gebruikers hebben geen inzendertoegang tot het cluster nodig om deze functie te kunnen gebruiken.
ClusterMonitoringUser gebruiken met Kubernetes RBAC-clusters
Om te voorkomen dat u meer configuratiewijzigingen moet toepassen om de Kubernetes-gebruikersrolbinding clusterUser toegang te geven tot de functie Live Data nadat Kubernetes RBAC-autorisatie is ingeschakeld, heeft AKS een nieuwe Kubernetes-clusterrolbinding met de naam clusterMonitoringUser toegevoegd. Deze clusterrolbinding beschikt over alle benodigde machtigingen om toegang te krijgen tot de Kubernetes-API en de eindpunten voor het gebruik van de functie Live Data.
Als u de functie Live Data met deze nieuwe gebruiker wilt gebruiken, moet u lid zijn van de rol Azure Kubernetes Service-clustergebruiker of -inzender op de AKS-clusterresource. Container insights, indien ingeschakeld, is geconfigureerd voor verificatie met behulp van clusterMonitoringUser
standaard. Als de clusterMonitoringUser
rolbinding niet bestaat in een cluster, wordt clusterUser gebruikt voor verificatie. Inzender geeft u toegang tot clusterMonitoringUser
(indien aanwezig) en azure Kubernetes Service-clustergebruiker geeft u toegang tot clusterUser. Elk van deze twee rollen biedt voldoende toegang om deze functie te gebruiken.
AKS heeft deze nieuwe rolbinding uitgebracht in januari 2020, dus clusters die vóór januari 2020 zijn gemaakt, hebben deze niet. Als u een cluster hebt dat vóór januari 2020 is gemaakt, kan de nieuwe clusterMonitoringUser worden toegevoegd aan een bestaand cluster door een PUT-bewerking uit te voeren op het cluster. U kunt ook elke andere bewerking uitvoeren op het cluster waarmee een PUT-bewerking op het cluster wordt uitgevoerd, zoals het bijwerken van de clusterversie.
Kubernetes-cluster zonder Kubernetes RBAC ingeschakeld
Als u een Kubernetes-cluster hebt dat niet is geconfigureerd met Kubernetes RBAC-autorisatie of geïntegreerd met eenmalige aanmelding van Microsoft Entra, hoeft u deze stappen niet uit te voeren. U hebt al beheerdersmachtigingen standaard in een niet-RBAC-configuratie.
Kubernetes RBAC-autorisatie configureren
Wanneer u Kubernetes RBAC-autorisatie inschakelt, worden clusterUser en clusterAdmin gebruikt voor toegang tot de Kubernetes-API. Deze configuratie is vergelijkbaar met uitvoeren az aks get-credentials -n {cluster_name} -g {rg_name}
zonder de beheeroptie. Daarom moet clusterUser toegang krijgen tot de eindpunten in de Kubernetes-API.
In de volgende voorbeeldstappen ziet u hoe u clusterrolbinding configureert vanuit deze YAML-configuratiesjabloon.
Kopieer en plak het YAML-bestand en sla het op als LogReaderRBAC.yaml.
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: containerHealth-log-reader rules: - apiGroups: ["", "metrics.k8s.io", "extensions", "apps"] resources: - "pods/log" - "events" - "nodes" - "pods" - "deployments" - "replicasets" verbs: ["get", "list"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: containerHealth-read-logs-global roleRef: kind: ClusterRole name: containerHealth-log-reader apiGroup: rbac.authorization.k8s.io subjects: - kind: User name: clusterUser apiGroup: rbac.authorization.k8s.io
Voer de opdracht
kubectl apply -f LogReaderRBAC.yaml
uit om uw configuratie bij te werken.
Notitie
Als u een eerdere versie van het LogReaderRBAC.yaml-bestand hebt toegepast op uw cluster, werkt u het bij door de nieuwe code te kopiëren en plakken die wordt weergegeven in stap 1. Voer vervolgens de opdracht uit die wordt weergegeven in stap 2 om deze toe te passen op uw cluster.
Geïntegreerde Microsoft Entra-verificatie configureren
Een AKS-cluster dat is geconfigureerd voor het gebruik van Microsoft Entra ID voor gebruikersverificatie, gebruikt de aanmeldingsreferenties van de persoon die toegang heeft tot deze functie. In deze configuratie kunt u zich aanmelden bij een AKS-cluster met behulp van uw Microsoft Entra-verificatietoken.
Registratie van Microsoft Entra-clients moet opnieuw worden geconfigureerd om de Azure-portal toe te staan autorisatiepagina's om te leiden als een vertrouwde omleidings-URL. Gebruikers van Microsoft Entra ID krijgen vervolgens rechtstreeks toegang tot dezelfde Kubernetes-API-eindpunten via ClusterRoles en ClusterRoleBindings.
Raadpleeg de Kubernetes-documentatie voor meer informatie over geavanceerde beveiligingsinstellingen in Kubernetes.
Notitie
Als u een nieuw Kubernetes RBAC-cluster maakt, raadpleegt u Microsoft Entra-id integreren met Azure Kubernetes Service en volgt u de stappen voor het configureren van Microsoft Entra-verificatie. Tijdens de stappen voor het maken van de clienttoepassing markeert een opmerking in deze sectie de twee omleidings-URL's die u moet maken voor Container Insights die overeenkomen met de url's die zijn opgegeven in stap 3.
Herconfiguratie van clientregistratie
Zoek de clientregistratie voor uw Kubernetes-cluster in Microsoft Entra-id onder Microsoft Entra-id> App-registraties in Azure Portal.
Selecteer Verificatie in het linkerdeelvenster.
Voeg twee omleidings-URL's toe aan deze lijst als webtoepassingstypen . De eerste basis-URL-waarde moet zijn
https://afd.hosting.portal.azure.net/monitoring/Content/iframe/infrainsights.app/web/base-libs/auth/auth.html
. De tweede basis-URL-waarde moet zijnhttps://monitoring.hosting.portal.azure.net/monitoring/Content/iframe/infrainsights.app/web/base-libs/auth/auth.html
.Notitie
Als u deze functie gebruikt in Microsoft Azure beheerd door 21Vianet, moet de eerste basis-URL-waarde zijn
https://afd.hosting.azureportal.chinaloudapi.cn/monitoring/Content/iframe/infrainsights.app/web/base-libs/auth/auth.html
. De tweede basis-URL-waarde moet zijnhttps://monitoring.hosting.azureportal.chinaloudapi.cn/monitoring/Content/iframe/infrainsights.app/web/base-libs/auth/auth.html
.Nadat u de omleidings-URL's hebt geregistreerd, selecteert u onder Impliciete toekenning de opties toegangstokens en id-tokens. Sla de wijzigingen vervolgens op.
U kunt verificatie met Microsoft Entra ID alleen configureren voor eenmalige aanmelding tijdens de eerste implementatie van een nieuw AKS-cluster. U kunt eenmalige aanmelding niet configureren voor een AKS-cluster dat al is geïmplementeerd.
Belangrijk
Als u Microsoft Entra-id opnieuw hebt geconfigureerd voor gebruikersverificatie met behulp van de bijgewerkte URI, wist u de cache van uw browser om ervoor te zorgen dat het bijgewerkte verificatietoken wordt gedownload en toegepast.
Toestemming
Aan elk Microsoft Entra-account moet toestemming worden verleend voor de juiste API's in Kubernetes om toegang te krijgen tot de functie Live Data. De stappen voor het verlenen van het Microsoft Entra-account zijn vergelijkbaar met de stappen die worden beschreven in de sectie Kubernetes RBAC-verificatie . Voordat u de YAML-configuratiesjabloon toepast op uw cluster, vervangt u clusterUser onder ClusterRoleBinding door de gewenste gebruiker.
Belangrijk
Als de gebruiker waarvoor u de Kubernetes RBAC-binding verleent zich in dezelfde Microsoft Entra-tenant bevindt, wijst u machtigingen toe op userPrincipalName
basis van . Als de gebruiker zich in een andere Microsoft Entra-tenant bevindt, moet u de objectId
eigenschap opvragen en gebruiken.
Zie Kubernetes RBAC-binding maken voor meer hulp bij het configureren van uw AKS-cluster ClusterRoleBinding.
Volgende stappen
Nu u verificatie hebt ingesteld, kunt u metrische gegevens en gebeurtenissen en logboeken in realtime vanuit uw cluster bekijken.