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
- 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.
- 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.
Ange
CLUSTER_NAME
ochRESOURCE_GROUP
SUBSCRIPTION_ID
variabler.CLUSTER_NAME="myNexusK8sCluster" RESOURCE_GROUP="myResourceGroup" SUBSCRIPTION_ID=<set the correct subscription_id>
Fråga hanterad resursgrupp med
az
och lagra iMANAGED_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)
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 &
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".
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.Anteckna microsoft Entra-gruppobjektets ID som genererades när du skapade.
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 tilldelarview
rollen till medlemmarna i den angivna Microsoft Entra-gruppen.Kontrollera att rollbindningen har skapats.
kubectl get clusterrolebinding nexus-read-only-users
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.