Freigeben über


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

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 Azure Kubernetes Service (AKS) anfordern.

Das Feature für den vertrauenswürdigen Zugriff 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.

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 die Funktion „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

Herstellen einer Clusterverbindung

Konfigurieren Sie kubectl, um mithilfe des Befehls „az aks get-credentials“ eine Verbindung mit Ihrem Cluster herzustellen.

export RESOURCE_GROUP_NAME="myResourceGroup"
export CLUSTER_NAME="myClusterName"

az aks get-credentials --resource-group ${RESOURCE_GROUP_NAME} --name ${CLUSTER_NAME} --overwrite-existing

Überprüfen Sie die Verbindung mit dem Cluster mithilfe des Befehls kubectl get.

kubectl get nodes

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.

Informationen zu den benötigten Rollen finden Sie in der Dokumentation für den Azure-Dienst, den Sie mit AKS verbinden möchten. Sie können auch den Befehl az aks trustedaccess role list --location <location> an der Azure-Befehlszeilenschnittstelle verwenden, um die Rollen auflisten, die für den Azure-Dienst verfügbar sind.

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.

export ROLE_BINDING_NAME="myRoleBindingName"
export SOURCE_RESOURCE_ID="mySourceResourceID"
export ROLE_NAME_1="myRoleName1"
export ROLE_NAME_2="myRoleName2"

az aks trustedaccess rolebinding create --resource-group ${RESOURCE_GROUP_NAME} --cluster-name ${CLUSTER_NAME} --name ${ROLE_BINDING_NAME} --source-resource-id ${SOURCE_RESOURCE_ID} --roles ${ROLE_NAME_1},${ROLE_NAME_2}

Ergebnisse:

{
  "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/${RESOURCE_GROUP_NAME}/providers/Microsoft.ContainerService/managedClusters/${CLUSTER_NAME}/trustedAccessRoleBindings/${ROLE_BINDING_NAME}",
  "name": "${ROLE_BINDING_NAME}",
  "provisioningState": "Succeeded",
  "resourceGroup": "${RESOURCE_GROUP_NAME}",
  "roles": [
    "${ROLE_NAME_1}",
    "${ROLE_NAME_2}"
  ],
  "sourceResourceId": "${SOURCE_RESOURCE_ID}",
  "systemData": null,
  "type": "Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings"
}

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

Bei einer bereits vorhandenen Rollenbindung mit zugeordnetem Quelldienst kann die Rollenbindung mithilfe des Befehls az aks trustedaccess rolebinding update --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME --name $ROLE_BINDING_NAME --roles $ROLE_NAME_3,$ROLE_NAME_4 mit neuen Rollen aktualisiert werden. Mit diesem Befehl wird die Rollenbindung mit den von Ihnen angegebenen neuen Rollen aktualisiert.

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.

Mit dem az aks trusted access rolebinding list Befehl können Sie die aktuelle Rollenbindung überprüfen.

Anzeigen einer Rollenbindung für den vertrauenswürdigen Zugriff

Zum Anzeigen einer bestimmten Rollenbindung für den vertrauenswürdigen Zugriff verwenden Sie den Befehl az aks trustedaccess rolebinding show --name $ROLE_BINDING_NAME --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME.

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

Verwenden Sie den Befehl az aks trustedaccess rolebinding list --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME, um alle Rollenbindungen für den vertrauenswürdigen Zugriff für einen Cluster aufzulisten.