Konfigurieren von Livedaten in Container Insights
Zum Anzeigen von Livedaten von AKS-Clustern (Azure Kubernetes Service) mit Container Insights konfigurieren Sie die Authentifizierung mit Berechtigung für den Zugriff auf Ihre Kubernetes-Daten. Diese Sicherheitskonfiguration ermöglicht den Echtzeitzugriff auf Ihre Daten über die Kubernetes-API direkt im Azure-Portal.
Diese Funktion unterstützt die folgenden Methoden, um den Zugriff auf Protokolle, Ereignisse und Metriken zu steuern:
- AKS ohne aktivierte Autorisierung per rollenbasierter Zugriffssteuerung (Role-Based Access Control, RBAC) in Kubernetes
- Mit Kubernetes RBAC-Autorisierung aktivierter AKS
- Mit Clusterrollenbindung clusterMonitoringUser konfigurierter AKS
- AKS-fähig mit Microsoft Entra SAML-basiertem einmaligem Anmelden
Diese Anweisungen erfordern Administratorzugriff auf Ihren Kubernetes-Cluster. Wenn Sie die Verwendung von Microsoft Entra ID für die Benutzerauthentifizierung konfigurieren, benötigen Sie auch Administratorzugriff auf Microsoft Entra ID.
In diesem Artikel wird erläutert, wie Sie die Authentifizierung konfigurieren, um den Zugriff auf die Funktion für Livedaten vom Cluster zu steuern:
- AKS-Cluster mit aktivierter Kubernetes-RBAC
- Microsoft Entra-integrierter AKS-Cluster
Authentifizierungsmodell
Das Feature für Livedaten verwendet die Kubernetes-API, die dem Befehlszeilentool kubectl
entspricht. Die Kubernetes-API-Endpunkte verwenden ein selbstsigniertes Zertifikat, das von Ihrem Browser nicht überprüft werden kann. Dieses Feature verwendet einen internen Proxy, um das Zertifikat mit dem AKS-Dienst zu überprüfen und einen vertrauenswürdigen Datenverkehr sicherzustellen.
Sie werden im Azure-Portal aufgefordert, Ihre Anmeldeinformationen für einen Microsoft Entra ID-Cluster zu überprüfen. Dazu werden Sie während der Clustererstellung (und wie in diesem Artikel bei der erneuten Konfiguration) zur Einrichtung der Clientregistrierung weitergeleitet. Dieses Verhalten ähnelt dem für kubectl
erforderlichen Authentifizierungsprozess.
Hinweis
Die Autorisierung für Ihren Cluster wird von Kubernetes und dem Sicherheitsmodell verwaltet, mit dem er konfiguriert ist. Benutzer*innen, die auf dieses Feature zugreifen, benötigen die Berechtigung zum Herunterladen der Kubernetes-Konfiguration (kubeconfig), ähnlich der Ausführung von az aks get-credentials -n {your cluster name} -g {your resource group}
.
Diese Konfigurationsdatei enthält das Autorisierungs- und Authentifizierungstoken für die Benutzerrolle für Azure Kubernetes Service-Cluster für AKS-Cluster mit aktivierter Azure-RBAC und AKS-Cluster ohne aktivierte Kubernetes-RBAC-Autorisierung. Sie enthält Informationen über Microsoft Entra ID sowie Details zur Clientregistrierung, wenn AKS mit auf SAML basiertem SSO in Microsoft Entra ID aktiviert ist.
Benutzer*innen dieses Features müssen für den Cluster über die Benutzerrolle für Azure Kubernetes Service-Cluster verfügen, um kubeconfig
herunterladen und dieses Feature verwenden zu können. Benutzer*innen müssen nicht über den Zugriff für Mitwirkende auf den Cluster verfügen, um dieses Feature zu nutzen.
Verwenden von clusterMonitoringUser mit RBAC-fähigen Kubernetes-Clustern
Um zu vermeiden, dass zusätzliche Konfigurationsänderungen erforderlich sind, damit die Kubernetes-Benutzerrollenbindung clusterUser nach Aktivierung der Kubernetes-RBAC-Autorisierung auf die Funktion für Livedaten zugreifen kann, hat AKS eine neue Kubernetes-Clusterrollenbindung mit dem Namen clusterMonitoringUser hinzugefügt. Diese Clusterrollenbindung verfügt standardmäßig über alle erforderlichen Berechtigungen für den Zugriff auf die Kubernetes-API und die Endpunkte, um das Feature für Livedaten zu nutzen.
Damit die Funktion für Livedaten mit dieser neuen Benutzerrolle verwendet werden kann, müssen Sie Mitglied einer der Rollen Azure Kubernetes Service-Clusterbenutzer oder Mitwirkender für die AKS-Clusterressource sein. Container Insights ist bei Aktivierung standardmäßig für die Authentifizierung mit clusterMonitoringUser
konfiguriert. Ist die Rollenbindung clusterMonitoringUser
in einem Cluster nicht vorhanden, wird stattdessen clusterUser für die Authentifizierung verwendet. Die Rolle „Mitwirkender“ ermöglicht Ihnen den Zugriff auf clusterMonitoringUser
(sofern vorhanden), und mit „Azure Kubernetes Service-Clusterbenutzer“ können Sie auf clusterUser zugreifen. Jede dieser beiden Rollen bietet ausreichenden Zugriff für die Verwendung dieses Features.
AKS hat diese neue Rollenbindung im Januar 2020 veröffentlicht, daher verfügen Cluster, die vor Januar 2020 erstellt wurden, nicht darüber. Wenn Sie einen Cluster haben, der vor dem Januar 2020 erstellt wurde, kann die neue Rollenbindung clusterMonitoringUser einem vorhandenen Cluster hinzugefügt werden, indem Sie einen PUT-Vorgang für den Cluster ausführen. Sie können auch einen anderen Vorgang ausführen, mit dem ein PUT-Vorgang für den Cluster ausgeführt wird, z. B. durch Aktualisieren der Clusterversion.
Kubernetes-Cluster ohne aktiviertes Kubernetes RBAC
Wenn Sie über einen Kubernetes-Cluster verfügen, der nicht mit der Kubernetes-RBAC-Autorisierung konfiguriert oder mit einmaligem Anmelden von Microsoft Entra integriert ist, müssen Sie diese Schritte nicht auszuführen. Sie verfügen in einer Nicht-RBAC-Konfiguration standardmäßig bereits über Administratorberechtigungen.
Konfigurieren der Kubernetes RBAC-Autorisierung
Wenn Sie die Kubernetes-RBAC-Autorisierung aktivieren, werden clusterUser und clusterAdmin für den Zugriff auf die Kubernetes-API verwendet. Diese Konfiguration ähnelt dem Ausführen von az aks get-credentials -n {cluster_name} -g {rg_name}
ohne die Verwaltungsoption. Aus diesem Grund muss clusterUser Zugriff auf die Endpunkte in der Kubernetes-API zugewiesen werden.
Die folgenden Beispielschritte zeigen, wie Sie über diese YAML-Konfigurationsvorlage die Clusterrollenbindung konfigurieren.
Kopieren Sie die YAML-Datei, fügen Sie sie anschließend ein, und speichern Sie sie 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
Führen Sie zum Aktualisieren Ihrer Konfiguration den Befehl
kubectl apply -f LogReaderRBAC.yaml
aus.
Hinweis
Wenn Sie eine frühere Version der Datei LogReaderRBAC.yaml auf Ihren Cluster angewandt haben, aktualisieren Sie sie. Dazu kopieren Sie den in Schritt 1 oben gezeigten neuen Code und fügen ihn ein. Führen Sie dann den in Schritt 2 gezeigten Befehl aus, um ihn auf Ihren Cluster anzuwenden.
Integrierte Microsoft Entra-Authentifizierung konfigurieren
Ein AKS-Cluster, der zur Verwendung von Microsoft Entra ID für die Benutzerauthentifizierung konfiguriert ist, verwendet die Anmeldeinformationen der Person, die auf dieses Feature zugreift. Bei dieser Konfiguration können Sie sich mit Ihrem Microsoft Entra-Authentifizierungstoken bei einem AKS-Cluster anmelden.
Die Microsoft Entra-Clientregistrierung muss neu konfiguriert werden, damit das Azure-Portal die Autorisierungsseiten als vertrauenswürdige Umleitungs-URL umleiten kann. Benutzern aus Microsoft Entra ID wird dann der direkte Zugriff auf dieselben Kubernetes-API-Endpunkte über ClusterRoles und ClusterRoleBindings gewährt.
Weitere Informationen zur Einrichtung für erweiterte Sicherheit in Kubernetes finden Sie in der Kubernetes-Dokumentation.
Hinweis
Wenn Sie einen neuen RBAC-fähigen Kubernetes-Cluster erstellen, lesen Sie Integrieren von Microsoft Entra ID in Azure Kubernetes Service, und folgen Sie den Schritten zum Konfigurieren der Microsoft Entra-Authentifizierung. Während der Schritte zum Erstellen der Clientanwendung werden in einem Hinweis in diesem Abschnitt zwei Umleitungs-URLs hervorgehoben, die Sie für Container Insights erstellen müssen, die den in Schritt 3 angegebenen Containern entsprechen.
Neukonfiguration der Clientregistrierung
Suchen Sie die Clientregistrierung für Ihren Kubernetes-Cluster in Microsoft Entra ID unter Microsoft Entra ID>App-Registrierungen im Azure-Portal.
Wählen Sie im linken Bereich Authentifizierung aus.
Fügen Sie dieser Liste zwei Umleitungs-URLs als Web-Anwendungstypen hinzu. Der Wert der ersten Basis-URL sollte
https://afd.hosting.portal.azure.net/monitoring/Content/iframe/infrainsights.app/web/base-libs/auth/auth.html
lauten. Der Wert der zweiten Basis-URL solltehttps://monitoring.hosting.portal.azure.net/monitoring/Content/iframe/infrainsights.app/web/base-libs/auth/auth.html
lauten.Hinweis
Wenn Sie dieses Feature in der Region Microsoft Azure operated by 21Vianet verwenden, sollte der Wert der ersten Basis-URL
https://afd.hosting.azureportal.chinaloudapi.cn/monitoring/Content/iframe/infrainsights.app/web/base-libs/auth/auth.html
lauten. Der Wert der zweiten Basis-URL solltehttps://monitoring.hosting.azureportal.chinaloudapi.cn/monitoring/Content/iframe/infrainsights.app/web/base-libs/auth/auth.html
lauten.Nachdem Sie die Umleitungs-URLs registriert haben, wählen Sie unter Implizite Genehmigung die Optionen Zugriffstoken und ID-Token aus. Speichern Sie anschließend die Änderungen.
Sie können die Authentifizierung mit Microsoft Entra ID für einmaliges Anmelden nur während der ersten Bereitstellung eines neuen AKS-Clusters konfigurieren. Sie können einmaliges Anmelden nicht für einen bereits bereitgestellten AKS-Cluster konfigurieren.
Wichtig
Wenn Sie Microsoft Entra ID mit dem aktualisierten URI erneut für die Benutzerauthentifizierung konfiguriert haben, löschen Sie den Cache Ihres Browsers, um sicherzustellen, dass das aktualisierte Authentifizierungstoken heruntergeladen und angewandt wird.
Erteilen einer Berechtigung
Jedem Microsoft Entra-Konto muss die Berechtigung für die entsprechenden APIs in Kubernetes erteilt werden, um auf das Feature für Livedaten zugreifen zu können. Die entsprechenden Schritte für das Microsoft Entra-Konto ähneln den Schritten, die im Abschnitt Kubernetes-RBAC-Authentifizierung beschrieben sind. Bevor Sie die YAML-Konfigurationsvorlage auf Ihren Cluster anwenden, ersetzen Sie clusterUser unter ClusterRoleBinding durch die oder den gewünschten Benutzer*in.
Wichtig
Wenn sich die oder der Benutzer*in, für die/den die Kubernetes-RBAC-Bindung gewährt wird, im selben Microsoft Entra-Mandanten befindet, sollten Sie die Berechtigungen nach dem userPrincipalName
zuweisen. Befindet sich die/der Benutzer*in in einem anderen Microsoft Entra-Mandanten, müssen Sie die objectId
-Eigenschaft abfragen und verwenden.
Weitere Unterstützung beim Konfigurieren von ClusterRoleBinding für Ihren AKS-Cluster finden Sie unter Erstellen einer Kubernetes-RBAC-Bindung.
Nächste Schritte
Nachdem Sie die Authentifizierung eingerichtet haben, können Sie Metriken sowie Ereignisse und Protokolle von Ihrem Cluster in Echtzeit anzeigen.