Freigeben über


Verwenden Azure RBAC mit Azure Kubernetes Fleet Manager

Dieser Artikel enthält eine Übersicht über die Azure RBAC-Rollen, die Sie mit Azure Kubernetes Fleet Manager verwenden können.

Azure rollenbasierte Zugriffssteuerung (Azure RBAC) ist ein Autorisierungssystem, das auf Azure Resource Manager basiert, das eine differenzierte Zugriffsverwaltung für Azure Ressourcen bereitstellt.

Azure Resource Manager

Diese Rollen gewähren Zugriff auf Azure Resource Manager (ARM)-Flottenressourcen und Unterressourcen und gelten für Flottenmanager mit und ohne Hubcluster.

Rollenname BESCHREIBUNG Verwendung
Azure Kubernetes Fleet Manager-Mitwirkender Gewährt Lese- und Schreibzugriff auf Azure Ressourcen, die von Azure Kubernetes Fleet Manager bereitgestellt werden, darunter Flotten, Flottenmitglieder, Flottenaktualisierungsstrategien, Flottenaktualisierungsstrategien, Flottenaktualisierungsläufe und vieles mehr. Verwenden Sie diese Rolle, um Mitwirkendenberechtigungen zu gewähren, die ausschließlich für Fleet Manager ARM-Ressourcen und Unterressourcen gelten. Diese Rolle kann z. B. einem Azure Administrator zugewiesen werden, der mit der Definition und Wartung von Fleet Manager-Ressourcen beauftragt wurde.
Azure Kubernetes Fleet Manager Hub Cluster Benutzerrolle Gewährt schreibgeschützten Zugriff auf den Fleet Manager-Hubcluster und die kubeconfig Datei zum Herstellen einer Verbindung mit dem Fleet Manager-Hubcluster. Hier können Sie Fleet Manager-Ressourcen anzeigen und den kubeconfig eines Fleet Manager-Hubclusters herunterladen, um Konfigurationen und Workloads zu überprüfen, ohne Änderungen vorzunehmen.

Kubernetes-Datenebene

Sie können Fleet Manager‑Datenebenenrollen entweder auf Flottenebene oder auf Ebene eines einzelnen verwalteten Flotten-Namespace zuweisen.

Es gibt zwei Arten von Datenebenenrollen: RBAC-Rollen für Fleet Manager und RBAC-Rollen für Member-Cluster. RBAC-Rollen für Fleet Manager gewähren nur Zugriff auf Kubernetes-Objekte innerhalb des Flotten-verwalteten Hubclusters. RBAC-Rollen für Mitgliedscluster gewähren Zugriff nur auf Kubernetes-Objekte in Mitgliedsclustern innerhalb einer Flotte. Die Anwendung einer RBAC-Rolle für Mitgliedscluster im Bereich des verwalteten Namespace wendet diese Rolle auf den verwalteten Namespace auf allen Mitgliedern der übergeordneten Flotte an, unabhängig davon, ob der verwaltete Namespace auf dieses Mitglied übertragen wird.

Wenn ein Cluster einer Flotte als Mitgliedscluster beitritt, erhalten Benutzer alle Berechtigungen für den Cluster, die bereits im übergeordneten Flottenbereich erteilt wurden. Wenn ein Mitgliedscluster eine Flotte verlässt, verliert der Benutzer diese Berechtigungen für diesen Cluster. Beispielsweise kann ein Benutzer, dem die Rolle Azure Kubernetes Fleet Manager RBAC Cluster Admin for Member Clusters im Flottenbereich zugewiesen wurde, Namespaces nur für alle Mitgliedscluster erstellen, während diese Cluster in der Flotte verbleiben.

Wenn eine Rolle auf einen verwalteten Namespacebereich angewendet wird und dieser verwaltete Namespace gelöscht wird, wird die Rollenzuweisung ebenfalls gelöscht. Wenn der verwaltete Namespace neu erstellt wird, wird die Rollenzuweisung nicht automatisch neu erstellt und muss manuell neu erstellt werden.

Hinweis

Diese RBAC-Rollen werden für Arc-fähige Mitgliedscluster in einer Flotte derzeit nicht unterstützt. Darüber hinaus wird die Zugriffssteuerung für bestimmte benutzerdefinierte Kubernetes-Ressourcen (CRs) für diese Azure RBAC-Rollen nicht unterstützt.

Fleet Manager-Hubcluster

Die folgenden Rollen werden verwendet, um mit Kubernetes-Ressourcen in einem Fleet Manager-Hubcluster zu interagieren.

Rollenname BESCHREIBUNG Verwendung
Azure Kubernetes Fleet Manager RBAC Cluster Admin Gewährt Lese-/Schreibzugriff auf alle Kubernetes-Ressourcen im Flotten-verwalteten Hubcluster. Verwenden Sie diese Rolle, um Zugriff auf alle Kubernetes-Objekte (einschließlich CRDs) im Namespace- oder Clusterbereich zu gewähren.
Azure Kubernetes Fleet Manager RBAC Admin Gewährt Lese- und Schreibzugriff auf Kubernetes-Ressourcen innerhalb eines Namespaces im flottenverwalteten Hubcluster. Stellt Schreibberechtigungen für die meisten Objekte in einem Namespace bereit, mit Ausnahme des ResourceQuota Objekts und des Namespaceobjekts selbst. Die Anwendung dieser Rolle im Clusterumfang ermöglicht den Zugriff auf alle Namespaces. Verwenden Sie diese Rolle, um die Fähigkeit zu gewähren, ausgewählte Kubernetes-Objekte (einschließlich Rollen und Rollenbindungen) auf Namespace- oder Cluster-Ebene zu verwalten. Beispielsweise zur Verwendung durch ein Projektteam, das für Objekte in einem bestimmten Namespace verantwortlich ist.
Azure Kubernetes Fleet Manager RBAC-Schreiber Gewährt Lese- und Schreibzugriff auf die meisten Kubernetes-Ressourcen innerhalb eines Namespaces im flottenverwalteten Hubcluster. Diese Rolle lässt das Anzeigen oder Ändern von Rollen oder Rollenbindungen nicht zu. Diese Rolle ermöglicht jedoch den Zugriff auf Geheimnisse als beliebiges ServiceAccount im Namespace, sodass sie verwendet werden kann, um die API-Zugriffsebenen für ein beliebiges ServiceAccount im Namespace zu erhalten. Die Anwendung dieser Rolle im Clusterumfang ermöglicht den Zugriff auf alle Namespaces. Verwenden Sie diese Rolle, um die Fähigkeit zu gewähren, ausgewählte Kubernetes-Objekte entweder im Namespace- oder Clusterbereich zu schreiben. Beispielsweise zur Verwendung durch ein Projektteam, das für Objekte in einem bestimmten Namespace verantwortlich ist.
Azure Kubernetes Fleet Manager RBAC Reader Gewährt schreibgeschützten Zugriff auf die meisten Kubernetes-Ressourcen innerhalb eines Namespaces im flottenverwalteten Hubcluster. Es ist nicht möglich, Rollen oder Rollenbindungen anzuzeigen. Diese Rolle lässt das Anzeigen von Geheimnissen nicht zu, da das Lesen des Inhalts von Geheimnissen den Zugriff auf ServiceAccount-Anmeldeinformationen im Namespace ermöglicht, was den API-Zugriff als beliebiger ServiceAccount im Namespace ermöglichen würde (eine Form von Berechtigungsausweitung). Die Anwendung dieser Rolle im Clusterumfang ermöglicht den Zugriff auf alle Namespaces. Verwenden Sie diese Rolle, um die Funktion zum Lesen ausgewählter nicht sensibler Kubernetes-Objekte im Namespace- oder Clusterbereich zu gewähren. Sie können diese Rolle z. B. zu Überprüfungszwecken erteilen.

Fleet Manager-Mitgliedercluster

Die folgenden Rollen werden verwendet, um mit Kubernetes-Ressourcen in Fleet Manager-Mitgliedsclustern zu interagieren, wenn verwaltete Flottennamespaces verwendet werden.

Rollenname BESCHREIBUNG Verwendung
Azure Kubernetes Fleet Manager RBAC-Cluster-Admin für Mitgliedscluster Vollständiger Lese-/Schreibzugriff auf alle Kubernetes-Ressourcen auf den Mitgliedsclustern in einer Flotte. Verwenden Sie diese Rolle, um allen Ressourcen in Mitgliedsclustern vollzugriff zu gewähren. Beispielsweise ein Plattformadministrator, der auf mehrere Namespaces in Mitgliedsclustern zugreifen muss.
Azure Kubernetes Fleet Manager RBAC Admin für Mitgliedscluster Lese- und Schreibzugriff auf Kubernetes-Ressourcen im Namespace im Mitglieds-Cluster. Verwenden Sie diese Rolle, um ausgewählte Kubernetes-Objekte (einschließlich Rollen und Rollenbindungen) im Namespacebereich für Flottenmitglieder zu verwalten. Beispielsweise zur Verwendung durch ein Projektteam, das für Objekte in einem bestimmten Namespace verantwortlich ist.
RBAC-Writer von Azure Kubernetes Fleet Manager für Mitgliedscluster Lese- und Schreibzugriff auf die meisten Kubernetes-Ressourcen im Namespace. Rollen oder Rollenbindungen können nicht angezeigt oder geändert werden. Kann Secrets lesen (daher kann jedes ServiceAccount im Namespace angenommen werden). Verwenden Sie diese Rolle, um für ein Flottenmitglied ausgewählte Kubernetes-Objekte in einen Namespace zu schreiben. Beispielsweise zur Verwendung durch ein Projektteam, das für Objekte in einem bestimmten Namespace verantwortlich ist.
Azure Kubernetes Fleet Manager RBAC Reader für Mitgliedscluster Schreibgeschützter Zugriff auf die meisten Objekte im Namenspace des Mitgliedsclusters. Rollen und Rollenbindungen können nicht angezeigt werden. Geheime Schlüssel können nicht angezeigt werden (verhindert die Eskalation von Berechtigungen über ServiceAccount Anmeldeinformationen). Verwenden Sie diese Rolle, um die Funktion zum Lesen ausgewählter nicht sensibler Kubernetes-Objekte im Namespacebereich für Flottenmitglieder zu gewähren.

Privater Hubcluster

Wenn Sie Fleet Manager mit einem privaten Hubcluster verwenden, müssen Sie die folgende Azure RBAC-Konfiguration hinzufügen, damit Fleet Manager die Konfiguration steuern und Updates auf den verwalteten Hubcluster anwenden kann.

Private Hubcluster erfordern eine Rollenzuweisung Netzwerkmitwirkender im Subnetz des virtuellen Netzwerks, das als Agent-Subnetz (Knoten) konfiguriert ist. Die Rollenzuweisung verwendet den Azure-Dienstprinzipal von Fleet Manager, dessen Objekt-ID für verschiedene Entra-Mandanten variiert.

Hinweis

Diese Rollenzuweisung wird beim Erstellen eines Flottenmanagers mit einem privaten Hubcluster nicht benötigt, da der Befehl az fleet create Azure CLI die Rollenzuweisung automatisch erstellt.

  1. Rufen Sie den Azure Ressourcenbezeichner des Azure Virtual Network Subnetzes ab, an das Ihr Fleet Manager-Hubcluster angefügt ist. Verwenden Sie geeignete Werte für die Platzhalter.

    SUBNET_ID=$(az network vnet subnet show --subscription <subscription-id> --resource-group <virtual-network-rg> --vnet-name <virtual-network> -n <subnet-name> -o tsv --query id)
    
  2. Rufen Sie die Dienstprinzipalobjekt-ID des Fleet Managers in Azure für Ihre Umgebung ab.

    FLEET_RP_ID=$(az ad sp list --display-name "Azure Kubernetes Service - Fleet RP" --query "[].{id:id}" --output tsv)
    
  3. Weisen Sie dem Flotten-Ressourcenanbieter die Rolle „Netzwerkmitwirkender“ zu und legen Sie den Geltungsbereich auf den Ressourcenbezeichner des Subnetzes fest.

    az role assignment create --assignee "${FLEET_RP_ID}" --role "Network Contributor" --scope "${SUBNET_ID}"
    
  4. Bestätigen Sie die Zuweisung mithilfe des folgenden Befehls.

    az role assignment list --assignee "${FLEET_RP_ID}" --scope "${SUBNET_ID}"
    

Beispiele für Rollenzuweisungen

Sie können Azure RBAC-Rollen mithilfe der Azure CLI erteilen. So erstellen Sie z. B. eine Rollenzuweisung auf Flottenebene.

IDENTITY=$(az ad signed-in-user show --output tsv --query id)
FLEET_ID=$(az fleet show --resource-group $GROUP --name $FLEET --output tsv --query id)

az role assignment create \
    --role 'Azure Kubernetes Fleet Manager RBAC Reader' \
    --assignee "$IDENTITY" \
    --scope "$FLEET_ID"

Sie können Rollenzuweisungen auch auf einen einzelnen verwalteten Namespace beschränken, indem Sie den Flotten-ID-Bereich mit /managedNamespaces/<managed-namespace> ergänzen. So erstellen Sie z. B. eine Rollenzuweisung auf verwalteter Namespaceebene für namespace example-ns:

IDENTITY=$(az ad signed-in-user show --output tsv --query id)
FLEET_ID=$(az fleet show --resource-group $GROUP --name $FLEET --output tsv --query id)
MANAGED_NAMESPACE_NAME="example-ns"

az role assignment create --role 'Azure Kubernetes Fleet Manager RBAC Reader' --assignee "$IDENTITY" --scope "$FLEET_ID"/managedNamespaces/"$MANAGED_NAMESPACE_NAME"