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
  • 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.

  1. 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
    
  2. 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

  1. Suchen Sie die Clientregistrierung für Ihren Kubernetes-Cluster in Microsoft Entra ID unter Microsoft Entra ID>App-Registrierungen im Azure-Portal.

  2. Wählen Sie im linken Bereich Authentifizierung aus.

  3. 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 sollte https://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 sollte https://monitoring.hosting.azureportal.chinaloudapi.cn/monitoring/Content/iframe/infrainsights.app/web/base-libs/auth/auth.html lauten.

  4. 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.