AI Platform-Pipelines benötigen IAM-Rollen (Identity and Access Management), um Nutzer, Gruppen und Dienste zu autorisieren, wenn ML-Pipelines auf Google Cloud-Ressourcen zugreifen.
In diesem Dokument werden die Rollen beschrieben, die für Folgendes erforderlich sind:
- AI Platform-Pipelines einrichten
- AI Platform-Pipelines mit einem vom Nutzer verwalteten Dienstkonto ausführen
- Auf AI Platform-Pipelines als Nutzer zugreifen
Mehr über IAM-Konzepte und die Funktionsweise von IAM erfahren
Zum Einrichten von AI Platform-Pipelines erforderliche Rollen
Zum Bereitstellen von AI Platform-Pipelines benötigen Sie die Rollen "Betrachter" (roles/viewer
) und "Kubernetes Engine-Administrator" (roles/container.admin
) für das Projekt.
Die Rolle "Betrachter" gewährt Lesezugriff auf alle Ressourcen in einem Projekt. Die Rolle "Kubernetes Engine-Administrator" bietet vollständigen Zugriff auf Kubernetes-Cluster und Kubernetes API-Objekte.
Wenn Sie dem Prinzip der geringsten Berechtigung folgen möchten, richten Sie Ihren AI Platform Pipelines-Cluster für die Verwendung des detaillierten Zugriffs ein. Zum Einrichten des Clusters mit detailliertem Zugriff benötigen Sie auch die Rolle "Dienstkontoadministrator" (roles/iam.serviceAccountAdmin
) für das Projekt. Die Rolle "Dienstkontoadministrator" bietet Zugriff zum Erstellen und Konfigurieren von IAM-Dienstkonten.
Weitere Informationen zum Gewähren von Zugriff auf IAM-Rollen
Rolle | Berechtigungen |
---|---|
Betrachter (roles/viewer ) |
Berechtigungen für schreibgeschützte Aktionen, die sich nicht auf den Status auswirken, z. B. das Anzeigen (aber nicht das Ändern) vorhandener Ressourcen oder Daten in einem Projekt. |
Kubernetes Engine-Administrator( Berechtigung zum vollständigen Verwalten von Clustern und den zugehörigen Kubernetes API-Objekten.
Um ein Dienstkonto auf Knoten festzulegen, benötigen Sie auch die Rolle "Dienstkontonutzer" ( Ressourcen auf der niedrigsten Ebene, für die Sie diese Rolle zuweisen können:
|
|
Dienstkontoadministrator( Dienstkonten erstellen und verwalten Ressourcen auf der niedrigsten Ebene, für die Sie diese Rolle zuweisen können:
|
|
Rollen, die zum Ausführen von AI Platform-Pipelines mit einem vom Nutzer verwalteten Dienstkonto erforderlich sind
Die Pods auf einem Google Kubernetes Engine-Cluster (GKE) authentifizieren sich über das Dienstkonto des GKE-Clusters bei Google Cloud. Zum Vereinfachen der Einrichtung und Verwendung von AI Platform-Pipelines verwenden von AI Platform Pipelines erstellte GKE-Cluster das standardmäßige Compute Engine-Dienstkonto mit dem Zugriffsbereich https://www.googleapis.com/auth/cloud-platform
. Dieser Zugriffsbereich bietet uneingeschränkten Zugriff auf die Google Cloud-Ressourcen und APIs, die Sie in Ihrem Projekt aktiviert haben, wodurch die Arbeitslasten auf Ihrem Cluster möglicherweise übermäßig auf Google Cloud zugreifen können.
Damit Sie den Arbeitslasten, die auf Ihrem AI Platform Pipelines-Cluster ausgeführt werden, detaillierte Berechtigungen zuweisen können, erstellen Sie ein Dienstkonto für den Cluster und gewähren diesem Dienstkonto Zugriff auf die folgenden Rollen im Projekt:
- Monitoring-Betrachter: Die Rolle "Monitoring-Betrachter" (
roles/monitoring.viewer
) bietet Lesezugriff auf Monitoring-Daten und -Konfigurationen. - Monitoring-Messwert-Autor: Die Rolle "Monitoring-Messwert-Autor" (
roles/monitoring.metricWriter
) bietet Schreibzugriff, damit Ihr Cluster Messwerte schreiben kann. - Logautor: Mit der Rolle "Logautor" (
roles/logging.logWriter
) kann der Cluster Logeinträge schreiben. - Storage-Objekt-Betrachter: Wenn Sie benutzerdefinierte Container-Images für Ihre in Container Registry gespeicherten Pipelines erstellen möchten, gewähren Sie dem AI Platform-Pipelines-Cluster Zugriff auf die Rolle "Storage-Objekt-Betrachter" (
roles/storage.objectViewer
) im Projekt.
Außerdem müssen Sie Ihrem Dienstkonto Zugriff auf alle Google Cloud-Ressourcen oder APIs gewähren, die von Ihren ML-Pipelines verwendet werden.
- GKE-Cluster für die Verwendung eines vom Nutzer verwalteten Dienstkontos konfigurieren
- Weitere Informationen zu IAM-Rollen und Dienstkonten verwalten.
Rolle | Titel | Beschreibung | Berechtigungen |
---|---|---|---|
Monitoring-Betrachter( Lesezugriff für das Abrufen und Auflisten von Informationen zu allen Monitoring-Daten und -Konfigurationen. Ressourcen auf der niedrigsten Ebene, für die Sie diese Rolle zuweisen können:
|
|
||
Monitoring-Messwert-Autor( Schreibzugriff auf Messwerte. Dadurch erhalten Sie genau die Berechtigungen, die der Cloud Monitoring-Agent und andere Systeme, die Messwerte senden, benötigen. Ressourcen auf der niedrigsten Ebene, für die Sie diese Rolle zuweisen können:
|
|
||
Log-Autor( Berechtigung zum Schreiben von Log-Einträgen Ressourcen auf der niedrigsten Ebene, für die Sie diese Rolle zuweisen können:
|
|
||
Storage-Objekt-Betrachter( Berechtigung zum Aufrufen von Objekten und ihren Metadaten mit Ausnahme von ACLs Kann auch die Objekte in einem Bucket auflisten. Ressourcen auf der niedrigsten Ebene, für die Sie diese Rolle zuweisen können:
|
|
Für den Zugriff auf AI Platform-Pipelines als Nutzer erforderliche Rollen
Zum Zugriff auf einen AI Platform Pipelines-Cluster müssen jedem Nutzer die Rolle roles/container.clusterViewer
des Kubernetes Engine-Clusterbetrachters und die Rolle "Dienstkontonutzer" für das Dienstkonto des Google Kubernetes Engine-Clusters zugewiesen sein.
Rolle | Titel | Beschreibung | Berechtigungen |
---|---|---|---|
Kubernetes Engine-Clusterbetrachter( Berechtigung zum Abrufen und Auflisten von GKE-Clustern |
|
Im nächsten Abschnitt erfahren Sie, wie Sie Nutzern Zugriff auf die Rolle "Kubernetes Engine-Clusterbetrachter" und die Rolle "Dienstkontonutzer" gewähren.
Nutzern Zugriff auf AI Platform-Pipelines gewähren
Gehen Sie nach der folgenden Anleitung vor, um einem Nutzerkonto Zugriff auf Ihren AI Platform Pipelines-Cluster zu gewähren.
Öffnen Sie AI Platform Pipelines in der Google Cloud Console.
Suchen Sie den AI Platform Pipelines-Cluster. Notieren Sie sich den Cluster und die Zone für die nachfolgenden Schritte.
Öffnen Sie eine Cloud Shell-Sitzung.
Cloud Shell wird im unteren Bereich der Google Cloud Console in einem Frame geöffnet. Verwenden Sie Cloud Shell, um den Rest dieses Vorgangs abzuschließen.
Führen Sie den folgenden Befehl aus, um das Google Cloud-Standardprojekt für diese Cloud Shell-Sitzung festzulegen.
gcloud config set project PROJECT_ID
Ersetzen Sie PROJECT_ID durch Ihre Google Cloud-Projekt-ID.
Führen Sie den folgenden Befehl aus, um das Dienstkonto zu finden, das Ihr GKE-Cluster verwendet.
gcloud container clusters describe CLUSTER_NAME --zone ZONE \ --format="flattened(nodePools[].config.serviceAccount)"
Ersetzen Sie dabei Folgendes:
- CLUSTER_NAME: Name Ihres GKE-Clusters.
- ZONE: Zone, in der der Cluster erstellt wurde.
Die Antwort kann darauf hinweisen, dass Ihr Cluster ein Dienstkonto mit dem Namen
default
verwendet. Dieser Wert bezieht sich auf das Standarddienstkonto für Compute Engine. Führen Sie den folgenden Befehl aus, um den vollständigen Namen dieses Dienstkontos zu ermitteln.gcloud iam service-accounts list \ --filter "compute@developer.gserviceaccount.com"
Hier finden Sie weitere Informationen zum Compute Engine-Standarddienstkonto.
Gewähren Sie Ihrem Nutzerkonto die Rolle "Dienstkontonutzer" für das Dienstkonto Ihres GKE-Clusters.
gcloud iam service-accounts add-iam-policy-binding \ SERVICE_ACCOUNT_NAME \ --member=user:USERNAME \ --role=roles/iam.serviceAccountUser
Ersetzen Sie dabei Folgendes:
- SERVICE_ACCOUNT_NAME: Name des Dienstkontos Ihres GKE-Clusters, den Sie im vorherigen Schritt gefunden haben. Namen von Dienstkonten sind so formatiert: *@*.gserviceaccount.com.
- USERNAME: Ihr Nutzername in Google Cloud.
Gewähren Sie Ihrem Nutzerkonto Zugriff auf die Rolle "GKE-Clusterbetrachter" für das Projekt.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member user:USERNAME --role roles/container.clusterViewer
Ersetzen Sie dabei Folgendes:
- PROJECT_ID: ID Ihres Google Cloud-Projekts.
- USERNAME: Ihr Nutzername in Google Cloud.