Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wenn Sie Berechtigungen für verschiedene Teams einrichten, möchten Sie vielleicht Standardberechtigungen für bestimmte Teams festlegen und dann bei Bedarf bestimmten Benutzern privilegierten Zugriff gewähren. Mit Azure Kubernetes Service (AKS) und Microsoft Entra ID können Sie Privileged Identity Management (PIM) für Just-in-Time-Anforderungen (JIT) einrichten, um den Zugriff auf die Cluster-Kontrollebene sowie den SSH-Zugriff auf Knoten zu verwalten.
In diesem Artikel werden folgende Vorgehensweisen behandelt:
- Legen Sie Standardrollen fest, z. B. Gruppen, um auf AKS-Cluster und Clusterknoten basierend auf Microsoft Entra-Gruppenmitgliedschaften zuzugreifen oder Vorgänge auszuführen.
- Konfigurieren Sie grundlegende Rollen für den Zugriff auf AKS-Cluster und SSH-Zugriff auf Knoten.
- Selbstaktivieren Sie Rollen, um Just-in-Time-Zugriff auf AKS-Cluster und -Knoten zu erhalten.
- Legen Sie Genehmiger fest, um Genehmigungsanfragen für Just-in-Time-Zugriff zu genehmigen oder zu verweigern.
Hinweis
Microsoft Entra Privileged Identity Management (PIM) verfügt über Funktionalitäten von Microsoft Entra ID P2 oder Microsoft Entra ID Governance, die eine Premium P2 SKU erfordern. Weitere Informationen finden Sie unter Microsoft Entra ID Governance Lizenzierungsgrundlagen und Preisanleitung.
Voraussetzungen
Dieser Artikel geht davon aus, dass Sie einen bestehenden AKS-Cluster mit Microsoft Entra ID Integration haben. Wenn Sie keinen haben, lesen Sie bitte Erstellen Sie einen AKS-Cluster mit Microsoft Entra ID Integration.
Bei SSH-Zugriff auf Knoten wird in diesem Artikel davon ausgegangen, dass Sie Ihren AKS-Cluster mit Entra-ID-basiertem SSH konfiguriert haben. Falls nicht, lesen Sie "Ssh verwalten" für den sicheren Zugriff auf Azure Kubernetes Service (AKS)-Knoten.
Erstellen von Demogruppen in Microsoft Entra ID
In diesem Abschnitt erstellen wir vier Gruppen in der Microsoft Entra-ID:
-
Standard: Diese Gruppe hat nur-lesenden Zugriff (
Azure Kubernetes Service RBAC Reader) auf Ressourcen im AKS-Cluster. -
Admin: Diese Gruppe hat admin Zugriff (
Azure Kubernetes Service RBAC Admin) auf die Ressourcen im AKS-Cluster. -
Knotenzugriff: Diese Gruppe verfügt über Berechtigungen für SSH in Clusterknoten mithilfe der Entra-ID-Authentifizierung (
Virtual Machine User Login). - Genehmigende Person: Diese Gruppe verfügt über Berechtigungen zum Genehmigen oder Verweigern von Anforderungen für Just-in-Time-Zugriff auf den AKS-Cluster und Knoten.
Sie können nur die Gruppen Standard und Admin verwenden, anstatt eine separate Gruppe Genehmigter zu erstellen. Wenn Sie jedoch Genehmigungsberechtigungen in die Gruppe admin aufnehmen, kann das Member, das Just-in-Time Zugriff erhält, seine eigenen Anfragen und die Anfragen anderer genehmigen. Wir raten davon ab, diese Konfiguration in einer produktiven Umgebung zu verwenden, aber für Testzwecke ist sie nützlich.
Standardgruppe erstellen
Ermitteln Sie die Ressourcen-ID des AKS-Clusters mit dem
az aks show-Befehl.AKS_ID=$(az aks show \ --resource-group <resource-group-name> \ --name <cluster-name> \ --query id \ --output tsv)Ermitteln Sie die Ressourcengruppen-ID des AKS-Clusters mit dem
az group show-Befehl.RG_ID=$(az group show \ --resource-group <resource-group-name> \ --query id \ --output tsv)Erstellen Sie die Gruppe default mit dem
az ad group create-Befehl.DEFAULT_ID=$(az ad group create \ --display-name default \ --mail-nickname default \ --query id \ --output tsv)Erstellen Sie mit dem
az role assignment create-Befehl eine Azure-Rollenzuweisung für die Standard-Gruppe.Es gibt drei Rollen, die Sie der Standardgruppe je nach Ihren spezifischen Anforderungen zuweisen können:
-
Azure Kubernetes Service RBAC Reader: Zugewiesen im Bereich des AKS-Clusters und bietet einfachen schreibgeschützten Zugriff auf die meisten Ressourcen im Cluster. -
Reader: Zugewiesen im Bereich der Ressourcengruppe und bietet schreibgeschützten Zugriff auf Ressourcen in der Ressourcengruppe. -
Azure Kubernetes Service Cluster User Role: Zugewiesen im Bereich des AKS-Clusters und gewährt Zugriff auf den Kubeconfig-Kontext für das AKS-Cluster.
# Assign the Azure Kubernetes Service RBAC Reader role to the default group az role assignment create \ --role "Azure Kubernetes Service RBAC Reader" \ --assignee $DEFAULT_ID \ --scope $AKS_ID # Assign the Reader role to the default group az role assignment create \ --role "Reader" \ --assignee $DEFAULT_ID \ --scope $RG_ID # Assign the Azure Kubernetes Service Cluster User Role to the default group az role assignment create \ --role "Azure Kubernetes Service Cluster User Role" \ --assignee $DEFAULT_ID \ --scope $AKS_ID-
Admin-Gruppe erstellen
Erstellen Sie die Gruppe admin mit dem
az ad group create-Befehl.ADMIN_ID=$(az ad group create \ --display-name admin \ --mail-nickname admin \ --query id \ --output tsv)Weisen Sie der Gruppe admin mit dem
az role assignment create-Befehl die RolleAzure Kubernetes Service RBAC Adminzu.az role assignment create \ --role "Azure Kubernetes Service RBAC Admin" \ --assignee $ADMIN_ID \ --scope $AKS_ID
Hinweis
Wenn Sie möchten, dass Benutzer der Gruppe admin die Einstellungen des Knoten-Pools ändern, wie z. B. die manuelle Skalierung, müssen Sie mit dem folgenden Befehl eine Contributor-Rollenzuweisung für den Knoten-Pool des Clusters erstellen:
az role assignment create \
--role "Contributor" \
--assignee $ADMIN_ID \
--scope $AKS_ID/nodepools/<node-pool-name>
Beachten Sie, dass Sie damit nur die Berechtigung erhalten, von der AKS-Ressource aus ein- oder auszuskalieren. Wenn Sie die Skalierung von der Virtual Machine Scale Set-Ressource zulassen möchten, müssen Sie eine Zuordnung auf der Ebene des Virtual Machine Scale Sets erstellen.
Erstellen einer Gruppe von Genehmigern
Erstellen Sie die Gruppe Genehmiger mit dem
az ad group create-Befehl.APPROVER_ID=$(az ad group create \ --display-name approver \ --mail-nickname approver \ --query id \ --output tsv)
Erstellen einer Knotenzugriffsgruppe
Erstellen Sie die Knotenzugriffsgruppe mithilfe des
az ad group createBefehls.NODEACCESS_ID=$(az ad group create \ --display-name node-access \ --mail-nickname node-access \ --query id \ --output tsv)Rufen Sie die Ressourcen-ID der Knotenressourcengruppe (auch als Infrastrukturressourcengruppe bezeichnet) mithilfe des
az aks showBefehls ab.NODE_RG_ID=$(az aks show \ --resource-group <resource-group-name> \ --name <cluster-name> \ --query nodeResourceGroup \ --output tsv) NODE_RG_SCOPE=$(az group show \ --name $NODE_RG_ID \ --query id \ --output tsv)Weisen Sie die
Virtual Machine User LoginRolle der Knotenzugriffsgruppe mithilfe desaz role assignment createBefehls zu.az role assignment create \ --role "Virtual Machine User Login" \ --assignee $NODEACCESS_ID \ --scope $NODE_RG_SCOPEHinweis
Wenn Sie stattdessen Administratorzugriff auf Knoten gewähren möchten, verwenden Sie die
Virtual Machine Administrator LoginRolle.
Erstellen von Demobenutzer*innen in Microsoft Entra ID
In diesem Abschnitt erstellen wir zwei Benutzer in Microsoft Entra ID: einen normalen Benutzer mit nur der Standardrolle und einen privilegierten Benutzer, der Just-in-Time Anfragen des normalen Benutzers genehmigen oder ablehnen kann.
Erstellen Sie den normalen Benutzer mit dem
az ad user create-Befehl. Bei den Befehlen für die Kennwortvariablen werden die Werte ausgeblendet, damit sie nicht auf Ihrer Konsole angezeigt werden.DOMAIN=contoso.com read -sp 'Enter password for NUSER_ID: ' NUSERPASSWORD read -sp 'Enter password for PUSER_ID: ' PUSERPASSWORD NUSER_ID=$(az ad user create \ --display-name n01 \ --password ${NUSERPASSWORD} \ --user-principal-name n01@${DOMAIN} \ --query id \ --output tsv)Fügen Sie den normalen Benutzer mit dem
az ad group member add-Befehl zu der Standardgruppe hinzu.az ad group member add \ --group $DEFAULT_ID \ --member-id $NUSER_IDErstellen Sie den privilegierten Benutzer mit dem
az ad user create-Befehl.PUSER_ID=$(az ad user create \ --display-name p01 \ --password ${PUSERPASSWORD} \ --user-principal-name p01@${DOMAIN} \ --query id \ --output tsv)Fügen Sie den privilegierten Benutzer mit dem
az ad group member add-Befehl zur Gruppe der Genehmigten hinzu.az ad group member add \ --group $APPROVER_ID \ --member-id $PUSER_ID
Aktivieren Sie Privileged Identity Management (PIM) für die Administratorgruppe
In diesem Abschnitt erfahren Sie, wie Sie PIM für die Administratorgruppe aktivieren, um Just-in-Time-Zugriff auf die AKS-Clustersteuerungsebene bereitzustellen.
- Wählen Sie auf der Startseite des Azure-Portals die Option Microsoft Entra ID.
- Wählen Sie im Menü Dienst unter Verwalten die Option Gruppen und dann die Gruppe Admin.
- Wählen Sie im Menü Dienst unter Aktivität die Option Privileged Identity Management und anschließend die Option PIM für diese Gruppe aktivieren.
Legen Sie einen Genehmiger für die Administratorgruppe fest
Suchen Sie auf der Startseite des Azure-Portals nach Privileged Identity Management und wählen Sie es aus.
Wählen Sie im Menü Dienst unter Verwalten die Option Gruppen und dann die Gruppe Admin.
Wählen Sie im Menü des Dienstes unter Verwalten die Option Zuweisungen>Zuweisungen hinzufügen.
Wählen Sie auf der Registerkarte Mitgliedschaft der Seite Zuweisungen hinzufügenMitglied als ausgewählte Rolle und Standard als ausgewähltes Member und wählen Sie dann Weiter.
Wählen Sie auf der Registerkarte Einstellungen die Zuweisungsart Berechtigt und wählen Sie dann Zuweisen.
Wählen Sie im Menü des Dienstes unter Verwalten die Option Einstellungen>Mitglied>Bearbeiten.
Aktivieren Sie auf der Seite Rolleneinstellung bearbeiten - Member das Kontrollkästchen Zur Aktivierung eine Genehmigung erforderlich und fügen Sie die Gruppe Genehmiger als den ausgewählten Genehmiger hinzu.
Hinweis
Wenn Sie das Kontrollkästchen Zur Aktivierung eine Genehmigung verlangen nicht aktivieren, können die Benutzenden in der Gruppe Standard die Rolle selbst aktivieren, um ohne Genehmigung Just-in-Time Zugriff auf den AKS-Cluster zu erhalten. Der Benutzer in der Gruppe Genehmiger muss ein Mitglied der Gruppe sein. Selbst wenn Sie den Benutzer als Besitzer festlegen, kann er Just-in-Time-Anfragen nicht überprüfen, da der Besitzer der Gruppe nur über administrative Rechte für die Gruppe verfügt, nicht aber über die Zuweisung der Rolle. Sie können den Benutzer als Mitglied und Besitzer der gleichen Gruppe festlegen, ohne dass es zu Konflikten kommt.
Nehmen Sie alle weiteren erforderlichen Änderungen vor und wählen Sie dann Aktualisieren.
Weitere Informationen zur PIM-Konfiguration finden Sie unter Konfigurieren Sie PIM für Gruppen.
Privileged Identity Management (PIM) für die Knotenzugriffsgruppe aktivieren
In diesem Abschnitt wird gezeigt, wie Sie PIM für die Knotenzugriffsgruppe aktivieren, um just-in-time SSH-Zugriff auf Clusterknoten bereitzustellen.
- Wählen Sie auf der Startseite des Azure-Portals die Option Microsoft Entra ID.
- Wählen Sie im Menü "Dienst " unter "Verwalten" die Option "Gruppen" aus, und wählen Sie dann die Knotenzugriffsgruppe aus.
- Wählen Sie im Menü Dienst unter Aktivität die Option Privileged Identity Management und anschließend die Option PIM für diese Gruppe aktivieren.
Festlegen eines Genehmigers für die Knotenzugriffsgruppe
- Suchen Sie auf der Startseite des Azure-Portals nach Privileged Identity Management und wählen Sie es aus.
- Wählen Sie im Menü "Dienst " unter "Verwalten" die Option "Gruppen" aus, und wählen Sie dann die Knotenzugriffsgruppe aus.
- Wählen Sie im Menü des Dienstes unter Verwalten die Option Zuweisungen>Zuweisungen hinzufügen.
- Wählen Sie auf der Registerkarte Mitgliedschaft der Seite Zuweisungen hinzufügenMitglied als ausgewählte Rolle und Standard als ausgewähltes Member und wählen Sie dann Weiter.
- Wählen Sie auf der Registerkarte Einstellungen die Zuweisungsart Berechtigt und wählen Sie dann Zuweisen.
- Wählen Sie im Menü des Dienstes unter Verwalten die Option Einstellungen>Mitglied>Bearbeiten.
- Aktivieren Sie auf der Seite Rolleneinstellung bearbeiten - Member das Kontrollkästchen Zur Aktivierung eine Genehmigung erforderlich und fügen Sie die Gruppe Genehmiger als den ausgewählten Genehmiger hinzu.
- Nehmen Sie alle weiteren erforderlichen Änderungen vor und wählen Sie dann Aktualisieren.
Interaktion mit Cluster-Ressourcen unter Verwendung der Standardrolle
Jetzt können wir versuchen, mit dem Benutzer normal, der Mitglied der Gruppe Standard ist, auf den AKS-Cluster zuzugreifen.
Melden Sie sich beim Azure-Portal als normaler Benutzer mit dem
az login-Befehl an.az login --username n01@$DOMAIN --password ${NUSERPASSWORD}Microsoft empfiehlt, die sicherste Methode zu verwenden, die für die Anmeldung bei Azure verfügbar ist. Weitere Informationen finden Sie in den folgenden Artikeln:
Rufen Sie die Benutzeranmeldeinformationen für den Zugriff auf den Cluster mit dem Befehl
az aks get-credentialsab.az aks get-credentials --resource-group <resource-group-name> --name <cluster-name>Versuchen Sie, mithilfe des
kubectl get-Befehls auf die Cluster-Pods zuzugreifen.kubectl get pods --namespace kube-systemIhre Ausgabe sollte ähnlich aussehen wie die folgende Beispielausgabe, die die Pods im Namespace
kube-systemanzeigt:NAME READY STATUS RESTARTS AGE azure-ip-masq-agent-2rdd9 1/1 Running 0 30h azure-policy-767c9d9d9d-886rf 1/1 Running 0 31h cloud-node-manager-92t6h 1/1 Running 0 30h coredns-789789675-b2dhg 1/1 Running 0 31h coredns-autoscaler-77bbc46446-pgt92 1/1 Running 0 31h csi-azuredisk-node-lnzrf 3/3 Running 0 30h csi-azurefile-node-lhbxr 3/3 Running 0 31h konnectivity-agent-7645d94b-9wqct 1/1 Running 0 30h kube-proxy-lkx4w 1/1 Running 0 31h metrics-server-5955767688-lpbjb 2/2 Running 0 30hVersuchen Sie, mit dem
kubectl get-Befehl auf die Cluster Secrets zuzugreifen.kubectl get secrets --namespace kube-systemIhre Ausgabe sollte ähnlich aussehen wie die folgende Beispielausgabe, die eine Fehlermeldung anzeigt, weil der Benutzer keine Berechtigung für den Zugriff auf die Secrets hat:
Error from server (Forbidden): secrets is forbidden: User "[email protected]" cannot list resource "secrets" in API group "" in the namespace "kube-system": User does not have access to the resource in Azure. Update role assignment to allow access.Die Rolle
Azure Kubernetes Service RBAC Readerhat keine Berechtigung für den Zugriff auf die Secrets, daher wird dieser Fehler erwartet.
Just-in-Time-Zugriff auf den AKS-Cluster anfordern
In diesem Abschnitt erfahren Sie, wie Sie Just-in-Time-Zugriff als temporäres Azure Kubernetes Service RBAC Admin für den Zugriff auf die Steuerungsebene des Clusters anfordern. Führen Sie die Schritte unter Aktivieren Ihrer Gruppenmitgliedschaft oder des Besitzes in Privileged Identity Management aus. Wie Sie als Genehmigender Anfragen genehmigen oder ablehnen können, erfahren Sie unter Aktivierungsanfragen für Gruppenmitglieder und Besitzer genehmigen.
Anfordern des Just-in-Time-SSH-Zugriffs auf Clusterknoten
In diesem Abschnitt wird gezeigt, wie Sie just-in-time SSH-Zugriff auf Clusterknoten anfordern, indem Sie die Mitgliedschaft in der Knotenzugriffsgruppe vorübergehend aktivieren.
- Suchen Sie auf der Startseite des Azure-Portals nach Privileged Identity Management und wählen Sie es aus.
- Wählen Sie im Menü den Eintrag Meine Rollen>Gruppen aus.
- Suchen Sie die Knotenzugriffsgruppe in der Liste der berechtigten Aufgaben, und wählen Sie "Aktivieren" aus.
- Geben Sie eine Begründung für die Aktivierungsanforderung an, und wählen Sie "Aktivieren" aus.
- Wenn die Genehmigung erforderlich ist, warten Sie, bis der Genehmigende Ihre Anforderung genehmigt. Sie erhalten eine Benachrichtigung, wenn Ihre Anforderung genehmigt wurde.
- Nach der Aktivierung können Sie SSH zu Clusterknoten über die Entra-ID-Authentifizierung herstellen.
SSH in Clusterknoten mit Just-in-Time-Zugriff
Nachdem Ihr Just-in-Time-Zugriff auf die Gruppe Knoten-Zugriff aktiviert wurde, können Sie sich per SSH über die Entra ID-Authentifizierung in die Knoten des Clusters einloggen.
Installieren Sie die SSH-Erweiterung für Azure CLI:
az extension add --name sshRufen Sie die Liste der Knoten in Ihrem Cluster ab:
kubectl get nodesSSH in einen Knoten mit der Entra ID-Authentifizierung:
az ssh vm --resource-group <resource-group-name> --name <node-name>Melden Sie sich während des Authentifizierungsflusses mit Ihren Entra-ID-Anmeldeinformationen an, die jetzt über temporären Zugriff auf die Knotenzugriffsgruppe verfügen.
Nach erfolgreicher Authentifizierung werden Sie mit den Berechtigungen, die durch Ihre Rollenzuweisung gewährt werden, mit dem Knoten verbunden.
Hinweis
Wenn Sie Richtlinien für den bedingten Zugriff für SSH-Zugriff auf Knoten konfiguriert haben, müssen Sie diese Anforderungen während des Authentifizierungsflusses erfüllen.
Interaktion mit Cluster-Ressourcen mit der Admin-Rolle
Nachdem Sie vorübergehend die Rolle Azure Kubernetes Service RBAC Admin hinzugefügt haben, können Sie auf die Cluster-Ressourcen zugreifen, für die Admin-Berechtigungen erforderlich sind.
Entfernen Sie vorhandene gespeicherte Token mit dem folgenden
kubelogin-Befehl:kubelogin remove-tokensHinweis
Wenn Sie einen Fehler aufgrund fehlender Berechtigungen erhalten, melden Sie sich an, um die Berechtigungen mit dem
az login-Befehl zu aktualisieren.Versuchen Sie erneut, mit dem
kubectl get secrets-Befehl auf die Cluster Secrets zuzugreifen.kubectl get secrets --namespace kube-systemIhre Ausgabe sollte ähnlich aussehen wie die folgende Beispielausgabe, die die Secrets im Namespace
kube-systemzeigt:NAME TYPE DATA AGE bootstrap-token-sw3rck bootstrap.kubernetes.io/token 4 35h konnectivity-certs Opaque 3 35hDer Benutzer kann jetzt auf die Secrets zugreifen, weil er die Rolle
Azure Kubernetes Service RBAC Adminhat.
Überlegungen zur Tokenlebensdauer
Aufgrund der designbedingten Token-Lebensdauer kann die Aktivierungsdauer technisch gesehen nicht weniger als 60 Minuten betragen, wenn Sie Benutzern, die CLI-Tools wie kubectl oder kubelogin verwenden, eine Rolle zuweisen. Selbst wenn die Dauer auf weniger als 60 Minuten festgelegt ist, bleibt die tatsächliche Dauer zwischen 60 und 75 Minuten.
Wenn kubelogin versucht, Token von der Microsoft-Identitätsplattform zu erhalten, werden access_token und refresh_token zur weiteren Verwendung zurückgegeben. Die access_token stellt Anfragen an die API, und die refresh_token wird verwendet, um ein neues access_token zu erhalten, wenn das aktuelle abläuft. Das access_token kann nicht widerrufen werden, wenn es einmal generiert wurde, aber das refresh_token kann widerrufen werden. Wenn die refresh_token widerrufen wird, muss sich der Benutzende neu authentifizieren, um eine neue refresh_token zu erhalten. Um die refresh_token manuell zu widerrufen, können Sie Revoke-AzureADUserAllRefreshToken verwenden.
Nächste Schritte
Weitere Informationen finden Sie in den folgenden Artikeln: