Dela via


Rollbaserad åtkomstkontroll i Azure Operator Nexus Kubernetes-kluster

Den här artikeln innehåller en omfattande guide om hur du hanterar åtkomst till Nexus Kubernetes-kluster med hjälp av Microsoft Entra-ID. Mer specifikt fokuserar vi på rollbaserad åtkomstkontroll, som gör att du kan bevilja behörigheter till användare baserat på deras roller eller ansvarsområden i din organisation.

Innan du börjar

  1. Börja med att skapa en Microsoft Entra-grupp för dina klusteradministratörer och tilldela medlemmar till den. Med Microsoft Entra-ID kan åtkomst beviljas till gruppen som helhet, i stället för att hantera behörigheter för varje användare individuellt.
  2. Använd grupp-ID:t som du skapade som värde för "adminGroupObjectIds" när du skapade Nexus Kubernetes-klustret för att säkerställa att medlemmarna i gruppen får behörighet att hantera klustret. I snabbstartsguiden finns anvisningar om hur du skapar och kommer åt Nexus Kubernetes-klustret.

Administratörsåtkomst till klustret

Nexus skapar en Kubernetes-klusterrollbindning med standardrollen cluster-admin Kubernetes och de Microsoft Entra-grupper som du angav som adminGroupObjectIds. Klusteradministratörerna har fullständig åtkomst till klustret och kan utföra alla åtgärder i klustret. Klusteradministratörerna kan också bevilja åtkomst till andra användare genom att tilldela dem till lämplig Microsoft Entra-grupp.

Kommentar

När du skapar ett Nexus Kubernetes-kluster skapar Nexus automatiskt en hanterad resursgrupp som är dedikerad till att lagra klusterresurserna. Inom den här gruppen upprättas den Arc-anslutna klusterresursen.

För att få åtkomst till klustret måste du konfigurera klustret att ansluta kubeconfig. När du har loggat in på Azure CLI med relevant Microsoft Entra-entitet kan du få de kubeconfig nödvändiga för att kommunicera med klustret var som helst, även utanför brandväggen som omger det.

  1. Ange CLUSTER_NAMEoch RESOURCE_GROUPSUBSCRIPTION_ID variabler.

    CLUSTER_NAME="myNexusK8sCluster"
    RESOURCE_GROUP="myResourceGroup"
    SUBSCRIPTION_ID=<set the correct subscription_id>
    
  2. Fråga hanterad resursgrupp med az och lagra i MANAGED_RESOURCE_GROUP

     az account set -s $SUBSCRIPTION_ID
     MANAGED_RESOURCE_GROUP=$(az networkcloud kubernetescluster show -n $CLUSTER_NAME -g $RESOURCE_GROUP --output tsv --query managedResourceGroupConfiguration.name)
    
  3. Följande kommando startar en connectedk8s-proxy som gör att du kan ansluta till Kubernetes API-servern för det angivna Nexus Kubernetes-klustret.

    az connectedk8s proxy -n $CLUSTER_NAME  -g $MANAGED_RESOURCE_GROUP &
    
  4. Använd kubectl för att skicka begäranden till klustret:

    kubectl get pods -A
    

    Nu bör du se ett svar från klustret som innehåller listan över alla noder.

Kommentar

Om du ser felmeddelandet "Det gick inte att publicera åtkomsttoken till klientproxyFailed för att ansluta till MSI" kan du behöva utföra en az login för att autentisera igen med Azure.

Rollbaserad åtkomstkontroll

Som administratör kan du tillhandahålla rollbaserad åtkomstkontroll till klustret genom att skapa en rollbindning med Microsoft Entra-gruppobjekt-ID. För användare som bara behöver "visa"-behörigheter kan du utföra uppgiften genom att lägga till dem i en Microsoft Entra-grupp som är kopplad till rollen "vy".

  1. Skapa en Microsoft Entra-grupp för användare som behöver "visa" åtkomst med hänvisning till kubernetes-standardrollen med namnet view. Den här rollen är bara ett exempel, och om det behövs kan du skapa anpassade roller och använda dem i stället. Mer information om användarinriktade roller i Kubernetes finns i den officiella dokumentationen på Kubernetes rollbaserade åtkomstroller.

  2. Anteckna microsoft Entra-gruppobjektets ID som genererades när du skapade.

  3. Använd kubectl-kommandot för att skapa en clusterrolebinding med rollen "view" och associera den med Microsoft Entra-gruppen. Ersätt AZURE_AD_GROUP_OBJECT_ID med objekt-ID:t för din Microsoft Entra-grupp.

    kubectl create clusterrolebinding nexus-read-only-users --clusterrole view --group=AZURE_AD_GROUP_OBJECT_ID
    

    Det här kommandot skapar en klusterrollbindning med namnet nexus-read-only-users som tilldelar view rollen till medlemmarna i den angivna Microsoft Entra-gruppen.

  4. Kontrollera att rollbindningen har skapats.

    kubectl get clusterrolebinding nexus-read-only-users
    
  5. Nu har användarna i Microsoft Entra-gruppen "visa" åtkomst till klustret. De kan komma åt klustret med hjälp av az connectedk8s proxy för att visa resurserna, men kan inte göra några ändringar

Nästa steg

Du kan finjustera åtkomstkontrollen ytterligare genom att skapa anpassade roller med specifika behörigheter. Skapandet av dessa roller omfattar kubernetes-inbyggda rollbindnings- eller ClusterRoleBinding-resurser. Du kan läsa den officiella Kubernetes-dokumentationen för detaljerad vägledning om hur du skapar fler anpassade roller och rollbindningar enligt dina behov.