Einrichten von sicherem Zugriff für Azure-Ressourcen in Azure Kubernetes Service mithilfe von vertrauenswürdigem Zugriff

Viele Azure-Dienste, die in Azure Kubernetes Service (AKS) integriert sind, benötigen Zugriff auf den Kubernetes-API-Server. Damit diesen Diensten kein Administratorzugriff gewährt werden muss und Ihre AKS-Cluster nicht für Netzwerkzugriff öffentlich gemacht werden müssen, können Sie das AKS-Feature „Vertrauenswürdiger Zugriff“ verwenden.

Dieses Feature gewährt Diensten sicheren Zugriff auf den AKS-API-Server. Hierbei wird das Azure-Back-End verwendet, ohne dass ein privater Endpunkt erforderlich ist. Anstatt auf Identitäten mit Microsoft Entra-Berechtigungen zurückzugreifen, kann dieses Feature Ihre systemseitig zugewiesene verwaltete Identität verwenden, um sich bei den verwalteten Diensten und Anwendungen zu authentifizieren, die Sie mit Ihren AKS-Clustern verwenden möchten.

In diesem Artikel erfahren Sie, wie Sie für Ihre Azure-Dienste mithilfe des vertrauenswürdigen Zugriffs sicheren Zugriff auf Ihren Kubernetes-API-Server in AKS einrichten.

Hinweis

Die API für vertrauenswürdigen Zugriff ist allgemein verfügbar. Wir bieten zwar GA-Support (General Availability, allgemeine Verfügbarkeit) für die Azure CLI, sie befindet sich aber weiterhin in der Vorschauphase und erfordert die Verwendung der Erweiterung „aks-preview“.

Übersicht über das Feature „Vertrauenswürdiger Zugriff“

Vertrauenswürdiger Zugriff kann in folgenden Szenarien hilfreich sein:

  • Wenn ein autorisierter IP-Adressbereich festgelegt ist oder sich in einem privaten Cluster befindet, muss ggf. ein Zugriffsmodell für private Endpunkte implementiert werden, damit Azure-Dienste auf den Kubernetes-API-Server zugreifen können.

  • Die Gewährung von Administratorzugriff auf die Kubernetes-API für einen Azure-Dienst entspricht nicht der bewährten Methode für Zugriff mit geringsten Rechten und kann eine Rechteausweitung oder die Offenlegung von Anmeldeinformationen zur Folge haben. Beispielsweise müssen Sie möglicherweise Dienst-zu-Dienst-Berechtigungen mit umfangreichen Rechten implementieren, was bei Überprüfungen nicht ideal ist.

Mithilfe des vertrauenswürdigen Zugriffs können Sie Ihrer systemseitig zugewiesenen verwalteten Identität von zulässigen Ressourcen mithilfe einer als Rollenbindung bezeichneten Azure-Ressource explizit Zugriff auf Ihre AKS-Cluster gewähren. Ihre Azure-Ressourcen greifen über das regionale AKS-Gateway mittels Authentifizierung über systemseitig zugewiesenen verwalteten Identitäten auf AKS-Cluster zu. Die entsprechenden Kubernetes-Berechtigungen werden über eine als Rolle bezeichnete Azure-Ressource zugewiesen. Über vertrauenswürdigen Zugriff können Sie auf AKS-Cluster mit verschiedenen Konfigurationen zugreifen. Hierzu zählen unter anderem private Cluster, Cluster mit deaktivierten lokalen Konten, Microsoft Entra-Cluster und autorisierte IP-Adressbereichscluster.

Voraussetzungen

Erstellen eines AKS-Clusters

Erstellen Sie einen AKS-Cluster in dem Abonnement, in dem sich die Azure-Ressource befindet, die auf den Cluster zugreifen soll.

Auswählen der erforderlichen Rollen für den vertrauenswürdigen Zugriff

Die auszuwählenden Rollen hängen von den Azure-Diensten ab, die auf den AKS-Cluster zugreifen sollen. Azure-Dienste helfen bei der Erstellung von Rollen und Rollenbindungen, die die Verbindung zwischen dem Azure-Dienst und AKS herstellen.

Erstellen einer Rollenbindung für den vertrauenswürdigen Zugriff

Nachdem Sie überprüft haben, welche Rolle verwendet werden soll, können Sie die Azure CLI verwenden, um eine Rollenbindung für vertrauenswürdigen Zugriff in einem AKS-Cluster zu erstellen. Die Rollenbindung ordnet die von Ihnen ausgewählte Rolle dem Azure-Dienst zu.

# Create a Trusted Access role binding in an AKS cluster

az aks trustedaccess rolebinding create  --resource-group <AKS resource group> --cluster-name <AKS cluster name> -n <role binding name> -s <connected service resource ID> --roles <roleName1, roleName2>

Ein Beispiel:

# Sample command

az aks trustedaccess rolebinding create \
-g myResourceGroup \
--cluster-name myAKSCluster -n test-binding \
--source-resource-id /subscriptions/000-000-000-000-000/resourceGroups/myResourceGroup/providers/Microsoft.MachineLearningServices/workspaces/MyMachineLearning \
--roles Microsoft.Compute/virtualMachineScaleSets/test-node-reader,Microsoft.Compute/virtualMachineScaleSets/test-admin

Aktualisieren einer bereits vorhandenen Rollenbindung für den vertrauenswürdigen Zugriff

Bei einer bereits vorhandenen Rollenbindung mit zugeordnetem Quelldienst kann die Rollenbindung mit neuen Rollen aktualisiert werden.

Hinweis

Der Add-On-Manager aktualisiert Cluster alle fünf Minuten. Daher kann es bis zu fünf Minuten dauern, bis die neue Rollenbindung wirksam wird. Bis dahin wird weiterhin die alte Rollenbindung verwendet.

Sie können az aks trusted access rolebinding list --name <role binding name> --resource-group <resource group> verwenden, um die aktuelle Rollenbindung zu überprüfen.

# Update the RoleBinding command

az aks trustedaccess rolebinding update --resource-group <AKS resource group> --cluster-name <AKS cluster name> -n <existing role binding name>  --roles <newRoleName1, newRoleName2>

Ein Beispiel:

# Update the RoleBinding command with sample resource group, cluster, and roles

az aks trustedaccess rolebinding update \
--resource-group myResourceGroup \
--cluster-name myAKSCluster -n test-binding \
--roles Microsoft.Compute/virtualMachineScaleSets/test-node-reader,Microsoft.Compute/virtualMachineScaleSets/test-admin

Anzeigen einer Rollenbindung für den vertrauenswürdigen Zugriff

Verwenden Sie den Befehl az aks trustedaccess rolebinding show, um eine bestimmte Rollenbindung für den vertrauenswürdigen Zugriff anzuzeigen:

az aks trustedaccess rolebinding show --name <role binding name> --resource-group <AKS resource group> --cluster-name <AKS cluster name>

Auflisten aller Rollenbindungen für den vertrauenswürdigen Zugriff für einen Cluster

Verwenden Sie den Befehl az aks trustedaccess rolebinding list, um alle Rollenbindungen für den vertrauenswürdigen Zugriff für einen Cluster aufzulisten:

az aks trustedaccess rolebinding list --resource-group <AKS resource group> --cluster-name <AKS cluster name>

Löschen einer Rollenbindung für den vertrauenswürdigen Zugriff für einen Cluster

Warnung

Beim Löschen einer Rollenbindung für den vertrauenswürdigen Zugriff wird die Verbindung zwischen dem Azure-Dienst und dem AKS-Cluster getrennt.

Verwenden Sie den Befehl az aks trustedaccess rolebinding delete, um eine Rollenbindung für den vertrauenswürdigen Zugriff zu löschen:

az aks trustedaccess rolebinding delete --name <role binding name> --resource-group <AKS resource group> --cluster-name <AKS cluster name>