Konfigurera livedata i containerinsikter

Om du vill visa livedata med containerinsikter från AKS-kluster (Azure Kubernetes Service) konfigurerar du autentisering för att bevilja behörighet att komma åt dina Kubernetes-data. Den här säkerhetskonfigurationen ger realtidsåtkomst till dina data via Kubernetes API direkt i Azure-portalen.

Den här funktionen stöder följande metoder för att styra åtkomsten till loggar, händelser och mått:

  • AKS utan Rollbaserad åtkomstkontroll (RBAC) för Kubernetes aktiverad
  • AKS aktiverat med Kubernetes RBAC-auktorisering
    • AKS konfigurerat med klusterrollbindningsklustretÖvervakaAnvändare
  • AKS aktiverat med Microsoft Entra SAML-baserad enkel inloggning

Dessa instruktioner kräver administrativ åtkomst till ditt Kubernetes-kluster. Om du konfigurerar att använda Microsoft Entra-ID för användarautentisering behöver du även administrativ åtkomst till Microsoft Entra-ID.

Den här artikeln beskriver hur du konfigurerar autentisering för att styra åtkomsten till livedatafunktionen från klustret:

  • Kubernetes RBAC-aktiverat AKS-kluster
  • Microsoft Entra-integrerat AKS-kluster

Autentiseringsmodell

Live Data-funktionen använder Kubernetes-API:et, som är identiskt med kubectl kommandoradsverktyget. Kubernetes API-slutpunkter använder ett självsignerat certifikat som webbläsaren inte kan verifiera. Den här funktionen använder en intern proxy för att verifiera certifikatet med AKS-tjänsten, vilket säkerställer att trafiken är betrodd.

Azure-portalen uppmanar dig att verifiera dina inloggningsuppgifter för ett Microsoft Entra-ID-kluster. Den omdirigerar dig till klientregistreringskonfigurationen när klustret skapas (och konfigureras om i den här artikeln). Det här beteendet liknar den autentiseringsprocess som krävs av kubectl.

Kommentar

Auktorisering till klustret hanteras av Kubernetes och säkerhetsmodellen som den har konfigurerats med. Användare som har åtkomst till den här funktionen kräver behörighet att ladda ned Kubernetes-konfigurationen (kubeconfig), som liknar att köra az aks get-credentials -n {your cluster name} -g {your resource group}.

Den här konfigurationsfilen innehåller auktoriserings- och autentiseringstoken för Azure Kubernetes Service-klusteranvändarrollen, om Azure RBAC är aktiverat och AKS-kluster utan Kubernetes RBAC-auktorisering aktiverat. Den innehåller information om Microsoft Entra-ID och klientregistreringsinformation när AKS är aktiverat med Microsoft Entra SAML-baserad enkel inloggning.

Användare av den här funktionen kräver att Azure Kubernetes-klusteranvändarrollen får åtkomst till klustret för att ladda ned och använda den kubeconfig här funktionen. Användarna behöver inte deltagaråtkomst till klustret för att använda den här funktionen.

Använda clusterMonitoringUser med Kubernetes RBAC-aktiverade kluster

För att eliminera behovet av att tillämpa fler konfigurationsändringar för att tillåta Kubernetes-användarrollbindningsklusterAnvändaråtkomst till Live Data-funktionen efter aktivering av Kubernetes RBAC-auktorisering, har AKS lagt till en ny Kubernetes-klusterrollbindning som kallas clusterMonitoringUser. Den här klusterrollbindningen har alla nödvändiga behörigheter direkt för att få åtkomst till Kubernetes-API:et och slutpunkterna för användning av livedatafunktionen.

Om du vill använda livedatafunktionen med den här nya användaren måste du vara medlem i Azure Kubernetes Service-klusteranvändaren eller deltagarrollen i AKS-klusterresursen. Containerinsikter, när de är aktiverade, konfigureras för att autentisera med hjälp clusterMonitoringUser av som standard. Om rollbindningen clusterMonitoringUser inte finns i ett kluster används clusterUser för autentisering i stället. Deltagare ger dig åtkomst till clusterMonitoringUser (om den finns) och Azure Kubernetes Service Cluster User ger dig åtkomst till clusterUser. Någon av dessa två roller ger tillräcklig åtkomst för att använda den här funktionen.

AKS släppte den här nya rollbindningen i januari 2020, så kluster som skapats före januari 2020 saknar den. Om du har ett kluster som skapades före januari 2020 kan det nya klustretMonitoringUser läggas till i ett befintligt kluster genom att utföra en PUT-åtgärd i klustret. Eller så kan du utföra andra åtgärder i klustret som utför en PUT-åtgärd i klustret, till exempel uppdatering av klusterversionen.

Kubernetes-kluster utan Kubernetes RBAC aktiverat

Om du har ett Kubernetes-kluster som inte har konfigurerats med Kubernetes RBAC-auktorisering eller integrerat med enkel inloggning med Microsoft Entra behöver du inte följa de här stegen. Du har redan administratörsbehörigheter som standard i en icke-RBAC-konfiguration.

Konfigurera Kubernetes RBAC-auktorisering

När du aktiverar Kubernetes RBAC-auktorisering används clusterUser och clusterAdmin för att komma åt Kubernetes API. Den här konfigurationen liknar att köras az aks get-credentials -n {cluster_name} -g {rg_name} utan det administrativa alternativet. Därför måste clusterUser beviljas åtkomst till slutpunkterna i Kubernetes-API:et.

Följande exempelsteg visar hur du konfigurerar klusterrollbindning från den här YAML-konfigurationsmallen.

  1. Kopiera och klistra in YAML-filen och spara den som 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. Om du vill uppdatera konfigurationen kör du kommandot kubectl apply -f LogReaderRBAC.yaml.

Kommentar

Om du har tillämpat en tidigare version av Filen LogReaderRBAC.yaml på klustret uppdaterar du den genom att kopiera och klistra in den nya koden som visas i steg 1. Kör sedan kommandot som visas i steg 2 för att tillämpa det på klustret.

Konfigurera Microsoft Entra-integrerad autentisering

Ett AKS-kluster som konfigurerats för att använda Microsoft Entra-ID för användarautentisering använder inloggningsuppgifterna för den person som har åtkomst till den här funktionen. I den här konfigurationen kan du logga in på ett AKS-kluster med hjälp av din Microsoft Entra-autentiseringstoken.

Microsoft Entra-klientregistrering måste konfigureras om så att Azure-portalen kan omdirigera auktoriseringssidor som en betrodd omdirigerings-URL. Användare från Microsoft Entra-ID beviljas sedan åtkomst direkt till samma Kubernetes API-slutpunkter via ClusterRoles och ClusterRoleBindings.

Mer information om avancerad säkerhetskonfiguration i Kubernetes finns i Kubernetes-dokumentationen.

Kommentar

Om du skapar ett nytt Kubernetes RBAC-aktiverat kluster kan du läsa Integrera Microsoft Entra-ID med Azure Kubernetes Service och följa stegen för att konfigurera Microsoft Entra-autentisering. Under stegen för att skapa klientprogrammet markeras de två omdirigerings-URL:er som du behöver skapa för containerinsikter som matchar de som anges i steg 3.

Omkonfiguration av klientregistrering

  1. Leta upp klientregistreringen för ditt Kubernetes-kluster i Microsoft Entra-ID under Microsoft Entra-ID> Appregistreringar i Azure-portalen.

  2. Välj Autentisering i den vänstra rutan.

  3. Lägg till två omdirigerings-URL:er i den här listan som webbprogramtyper . Det första bas-URL-värdet ska vara https://afd.hosting.portal.azure.net/monitoring/Content/iframe/infrainsights.app/web/base-libs/auth/auth.html. Det andra bas-URL-värdet ska vara https://monitoring.hosting.portal.azure.net/monitoring/Content/iframe/infrainsights.app/web/base-libs/auth/auth.html.

    Kommentar

    Om du använder den här funktionen i Microsoft Azure som drivs av 21Vianet ska det första bas-URL-värdet vara https://afd.hosting.azureportal.chinaloudapi.cn/monitoring/Content/iframe/infrainsights.app/web/base-libs/auth/auth.html. Det andra bas-URL-värdet ska vara https://monitoring.hosting.azureportal.chinaloudapi.cn/monitoring/Content/iframe/infrainsights.app/web/base-libs/auth/auth.html.

  4. När du har registrerat omdirigerings-URL:erna går du till Implicit beviljande och väljer alternativen Åtkomsttoken och ID-token. Spara sedan ändringarna.

Du kan konfigurera autentisering med Microsoft Entra-ID för enkel inloggning endast under den första distributionen av ett nytt AKS-kluster. Du kan inte konfigurera enkel inloggning för ett AKS-kluster som redan har distribuerats.

Viktigt!

Om du har konfigurerat om Microsoft Entra-ID för användarautentisering med hjälp av den uppdaterade URI:n rensar du webbläsarens cacheminne för att säkerställa att den uppdaterade autentiseringstoken laddas ned och tillämpas.

Bevilja behörighet

Varje Microsoft Entra-konto måste beviljas behörighet till lämpliga API:er i Kubernetes för att få åtkomst till livedatafunktionen. Stegen för att bevilja Microsoft Entra-kontot liknar de steg som beskrivs i avsnittet Kubernetes RBAC-autentisering . Innan du tillämpar YAML-konfigurationsmallen på klustret ersätter du clusterUser under ClusterRoleBinding med önskad användare.

Viktigt!

Om användaren som du beviljar Kubernetes RBAC-bindningen för finns i samma Microsoft Entra-klientorganisation tilldelar du behörigheter baserat på userPrincipalName. Om användaren finns i en annan Microsoft Entra-klientorganisation frågar du efter och använder objectId egenskapen .

Mer hjälp med att konfigurera AKS-klustret ClusterRoleBinding finns i Skapa Kubernetes RBAC-bindning.

Nästa steg

Nu när du har konfigurerat autentisering kan du visa mått och händelser och loggar i realtid från klustret.