Identität und Zugriff für das Projekt verwalten

Auf dieser Seite werden die Best Practices für die Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM) für den Application Operator (AO) auf der Air-Gap-Appliance von Google Distributed Cloud (GDC) beschrieben.

Ein Identitätsanbieter (IdP) ist eine Systementität, die Identitätsinformationen für Principals erstellt, verwaltet und pflegt. Der IdP bietet auch Authentifizierungsdienste für Anwendungen in einer Föderation oder einem verteilten Netzwerk.

Anmelden

In diesem Abschnitt wird beschrieben, wie Sie über die Web-Benutzeroberfläche oder die Befehlszeilenschnittstelle auf Ihre Arbeitslasten zugreifen.

In der Web-UI anmelden

Auf dieser Seite wird beschrieben, wie Sie auf Ihre Arbeitslasten und Ressourcen in der Air-Gap-Appliance von Google Distributed Cloud (GDC) zugreifen und sie verwalten. Darin wird beschrieben, wie Sie sich authentifizieren, kubeconfig-Dateien für einen Management API-Server und einen Kubernetes-Cluster generieren und Sitzungsaktivität verwalten. Wenn Sie diese Prozesse verstehen, können Sie sicher und zuverlässig auf Ihre Projekte und Arbeitslasten zugreifen.

Sie können über die GDC-Konsole oder die gdcloud CLI auf Ihre Arbeitslasten zugreifen.

Anmelden

So melden Sie sich in der GDC-Konsole oder in einem Cluster an:

Console

Öffnen Sie die folgende URL in einem neuen Browsertab, um auf die Benutzeroberfläche der GDC-Appliance ohne Internetverbindung zuzugreifen:

https://GDC_URL

Ersetzen Sie GDC_URL durch den Domainnamen, den Sie für den Zugriff auf GDC verwenden und der vom Infrastructure Operator (IO) bereitgestellt wird. Wenn Sie eine URL zum ersten Mal öffnen, werden Sie von GDC zur Anmeldeseite Ihres Identitätsanbieters weitergeleitet, wenn der Infrastruktur-Operator (IO) die Seite konfiguriert hat.

Die folgende Seite wird beispielsweise nach der Anmeldung in der Console für eine Organisation mit dem Namen „org-1“ angezeigt: Console mit dem Begrüßungsbildschirm für das Projekt „org-1“

Befehlszeile

Sie können sich in jedem Cluster anmelden, für den Sie die Berechtigung zum Zugriff haben. Der CLI-Anmeldevorgang ist für alle Cluster identisch. Sie müssen nur den Clusternamen und die zugehörige kubeconfig-Datei angeben und sich separat in jedem Cluster anmelden.

Bevor Sie sich anmelden, müssen Sie Folgendes tun:

  • Laden Sie die Binärdatei für die gdcloud CLI herunter und installieren Sie sie auf Ihrem System. Weitere Informationen finden Sie unter gcloud CLI herunterladen.
  • Richten Sie die Standardkonfiguration der gcloud CLI ein und initialisieren Sie sie. Achten Sie darauf, die richtige Organisations-URL festzulegen, die zum Abrufen des Anmeldekonfigurationsendpunkts verwendet wird. Weitere Informationen finden Sie unter gcloud CLI installieren.
  • Installieren Sie das Authentifizierungs-Plug-in gdcloud-k8s-auth-plugin. Weitere Informationen finden Sie unter Authentifizierung der gcloud CLI.

Führen Sie die folgenden Schritte aus, um sich bei einem Cluster anzumelden:

  1. Authentifizieren Sie Ihre gcloud CLI-Instanz, um sich anzumelden. Es gibt zwei Möglichkeiten zur Authentifizierung:

    • Standardanmeldung im Browser:Verwenden Sie diesen Authentifizierungsablauf, wenn Sie sich über einen Browser anmelden.

      gdcloud auth login
      
    • Anmeldung auf einem sekundären Gerät:Verwenden Sie diesen Authentifizierungsvorgang, wenn auf Ihrem primären Gerät kein Browser verfügbar ist. Bei diesem Ablauf wird die Anmeldung auf dem Hauptgerät ohne Browserzugriff gestartet und auf dem Zweitgerät mit Browserzugriff fortgesetzt.

      1. So starten Sie die Anmeldung auf Ihrem Hauptgerät ohne Browser:

        gdcloud auth login --no-browser
        

        Der Befehl auf dem primären Gerät gibt einen weiteren gdcloud-Befehl aus, den Sie in Schritt c auf dem sekundären Gerät ausführen müssen.

      2. Wiederholen Sie Schritt 1 von Bei einem Cluster anmelden, um das Zertifikat auf das sekundäre Gerät herunterzuladen.

      3. Schließen Sie die Anmeldung auf dem sekundären Gerät ab, indem Sie den Befehl eingeben, der auf dem primären Gerät in Schritt a angezeigt wird.

    Dadurch wird ein Browser geöffnet, in dem Sie sich beim konfigurierten Identitätsanbieter (IdP) anmelden können. Geben Sie den Nutzer und das Passwort an, die Sie bei der ersten Einrichtung der gcloud CLI festgelegt haben, um sich anzumelden.

  2. Exportieren Sie die Datei mit Ihrer Nutzeridentität kubeconfig als Variable:

    export KUBECONFIG=/tmp/admin-kubeconfig-with-user-identity.yaml
    
  3. Generieren Sie eine kubeconfig-Datei mit Ihrer Nutzeridentität:

    gdcloud clusters get-credentials CLUSTER_NAME
    

    Eine kubeconfig-Datei wird mit Ihrer Nutzeridentität generiert. Die folgende YAML-Datei zeigt ein Beispiel:

    apiVersion: v1
    clusters:
    - cluster:
        certificate-authority-data: <REDACTED>
        server: https://10.200.0.32:443
      name: cluster-name
    contexts:
    - context:
        cluster: cluster-name
        user: cluster-name-anthos-default-user
      name: cluster-name-cluster-name-anthos-default-user
    current-context: cluster-name-cluster-name-anthos-default-user
    kind: Config
    preferences: {}
    users:
    - name: cluster-name-anthos-default-user
      user:
        exec:
            apiVersion: client.authentication.k8s.io/v1
            args:
            - --audience=root-admin
            command: gdcloud-k8s-auth-plugin
            env: null
            installHint: Run 'gdcloud components install gdcloud-k8s-auth-plugin' to use plugin
            interactiveMode: Never
            provideClusterInfo: false
    
  4. So prüfen Sie, ob Sie auf den Cluster zugreifen können: Melden Sie sich mit der generierten kubeconfig-Datei mit einer Nutzeridentität an:

    kubectl --kubeconfig /tmp/admin-kubeconfig-with-user-identity.yaml version
    

Abmelden

So melden Sie sich von der GDC Console ab:

Console

Klicken Sie in der Menüleiste auf  Abmelden.

Befehlszeile

Von der CLI abmelden:

gdcloud auth revoke

kubeconfig-Datei manuell generieren

Wenn Sie Ressourcen mit der kubectl-Befehlszeile verwalten, indem Sie KRM-APIs direkt aufrufen, müssen Sie die kubeconfig-Datei für den Cluster generieren, der Ihre Ressource hostet. Das hängt vom Ressourcentyp ab, den Sie verwalten. In der Dokumentation der Ressource finden Sie Informationen zur benötigten kubeconfig-Datei.

Führen Sie die entsprechende Einrichtung basierend auf Ihrem Ressourcentyp durch.

Verwaltungs-API-Serverressourcen

Führen Sie die folgenden Schritte aus, um die kubeconfig-Datei für den Management API-Server zu generieren:

  1. Legen Sie die Umgebungsvariable MANAGEMENT_API_SERVER fest:

    export MANAGEMENT_API_SERVER="root-admin"
    
  2. Generieren Sie die kubeconfig-Datei des Management API-Servers und validieren Sie die Anmeldedaten:

    export KUBECONFIG=${HOME}/${MANAGEMENT_API_SERVER:?}-kubeconfig.yaml
    rm ${KUBECONFIG:?}
    gdcloud clusters get-credentials ${MANAGEMENT_API_SERVER:?}
    [[ $(kubectl config current-context) == *${MANAGEMENT_API_SERVER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
    

    Mit dem Befehl rm ${KUBECONFIG:?} wird die vorhandene kubeconfig-Datei im Home-Verzeichnis entfernt. Wenn Sie eine neue kubeconfig-Datei generieren, wird die vorhandene Datei überschrieben. Wenn Sie die vorhandene Datei nicht überschreiben oder entfernen möchten, sichern Sie sie an einem anderen sicheren Ort.

Kubernetes-Clusterressourcen

Führen Sie die folgenden Schritte aus, um die kubeconfig-Datei für den Bare Metal-Kubernetes-Cluster zu generieren:

  1. Legen Sie die Umgebungsvariable KUBERNETES_CLUSTER fest:

    export KUBERNETES_CLUSTER="root-infra"
    
  2. Generieren Sie die kubeconfig-Datei für den Kubernetes-Cluster und validieren Sie die Anmeldedaten:

    export KUBECONFIG=${HOME}/${KUBERNETES_CLUSTER:?}-kubeconfig.yaml
    rm ${KUBECONFIG:?}
    gdcloud clusters get-credentials ${KUBERNETES_CLUSTER:?}
    [[ $(kubectl config current-context) == *${KUBERNETES_CLUSTER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
    

    Mit dem Befehl rm ${KUBECONFIG:?} wird die vorhandene kubeconfig-Datei im Home-Verzeichnis entfernt. Wenn Sie eine neue kubeconfig-Datei generieren, wird die vorhandene Datei überschrieben. Wenn Sie die vorhandene Datei nicht überschreiben oder entfernen möchten, sichern Sie sie an einem anderen sicheren Ort.

Abmeldung bei Inaktivität

Nach 15 Minuten oder mehr Inaktivität in einer Sitzung werden Sie von der GDC-Konsole und der gdcloud-CLI abgemeldet. Bei GDC gilt eine Sitzung als inaktiv, wenn während einer offenen Sitzung keine aktiven Aktionen von Ihnen erfolgen, z. B. keine Maus- oder Tastaturbewegungen. Eine aktive Sitzung kann bis zu zwölf Stunden dauern, wenn Nutzeraktivitäten gemessen werden.

Console

Bei Inaktivität während einer Sitzung werden Sie aus der GDC-Konsole abgemeldet. Zwei Minuten bevor Sie aufgrund von Inaktivität von der GDC-Konsole abgemeldet werden, wird ein Dialogfeld angezeigt, in dem Sie vor der Abmeldung gewarnt werden:

Die Console-Benutzeroberfläche zeigt ein Dialogfeld mit einem Timer von 99 Sekunden an, bevor der Nutzer aufgrund von Inaktivität abgemeldet wird.

Nachdem Sie aufgrund von Inaktivität abgemeldet wurden, wird der folgende Bildschirm angezeigt:

Console-Benutzeroberfläche mit Anmeldebildschirm und Banner mit Text zur Abmeldung: „Sie wurden vom System abgemeldet, weil Ihre Sitzung zu lange inaktiv war. Melden Sie sich noch einmal an oder wenden Sie sich an Ihren Administrator, um Hilfe zu erhalten.

Wenn Sie sich wieder in der GDC-Konsole anmelden möchten, wählen Sie Ihren Identitätsanbieter aus und geben Sie Ihre Anmeldedaten ein. Wenn Sie einen Dienst wie das Monitoring-Dashboard verwenden und Sie aufgrund von Inaktivität aus der GDC-Konsole abgemeldet werden, melden Sie sich wieder an, um Zugriff zu erhalten.

Befehlszeile

Bei Inaktivität während der Sitzung werden Sie von der gcloud CLI abgemeldet. Nachdem Sie sich mit der gcloud CLI abgemeldet haben und versuchen, einen Befehl auszuführen, erhalten Sie einen Autorisierungsfehler:

Error: error when creating kube client: unable to create k8sclient: Unauthorized

Wenn Sie sich wieder in der gcloud CLI anmelden möchten, folgen Sie der CLI-Anleitung unter Anmelden.

kubectl

Die gdcloud CLI lässt Ihre kubeconfig-Dateien nach Inaktivität der Sitzung ablaufen. Wenn Sie versuchen, einen kubectl-Befehl nach einer Inaktivitätsphase auszuführen, erhalten Sie einen Autorisierungsfehler:

error: You must be logged in to the server (Unauthorized)

Wenn Sie sich wieder anmelden und Ihre kubeconfig-Datei verwenden möchten, folgen Sie der Anleitung unter Anmelden. Bei jedem Sitzungs-Timeout müssen Sie Ihre kubeconfig-Dateien neu generieren.

IAM-Zulassungsrichtlinien festlegen

Beschreibungen vordefinierter Rollen

Ein Anwendungsoperator (Application Operator, AO) ist Mitglied des Entwicklungsteams in der Organisation des Plattformadministrators (Platform Administrator, PA). AOs interagieren mit Ressourcen auf Projektebene. Sie können Teammitgliedern die folgenden vordefinierten Rollen zuweisen:

  • Projekt-IAM-Administrator:Verwaltet die IAM-Zulassungsrichtlinien von Projekten.
  • AI OCR Developer: Zugriff auf den Dienst zur optischen Zeichenerkennung, um Text in Bildern zu erkennen.
  • AI Speech Developer: Zugriff auf den Speech-to-Text-Dienst zur Spracherkennung und Audiotranskription.
  • AI Translation Developer: Zugriff auf den Vertex AI Translation-Dienst zum Übersetzen von Text.
  • Artifact Management Admin: Hat Administratorzugriff auf Ressourcen in allen Harbor-Projekten im Projekt-Namespace.
  • Artifact Management Editor: Hat Lese- und Schreibzugriff auf Ressourcen in allen Harbor-Projekten im Projekt-Namespace.
  • Certificate Authority Service-Administrator: Hat Zugriff zum Verwalten von Zertifizierungsstellen und Zertifikatsanfragen in seinem Projekt.
  • Certificate Service Admin (Administrator des Zertifikatdienstes): Hat Zugriff zum Verwalten von Zertifikaten und Zertifikatausstellern in seinem Projekt.
  • Dashboard Editor (Dashboard-Bearbeiter): Hat Lese- und Schreibzugriff auf benutzerdefinierte Dashboard-Ressourcen.
  • Dashboard-Betrachter: Hat Lesezugriff auf benutzerdefinierte Dashboard-Ressourcen.
  • Harbor-Instanzadministrator: Hat vollständigen Zugriff zum Verwalten von Harbor-Instanzen in einem Projekt.
  • Harbor Instance Viewer: Hat schreibgeschützten Zugriff zum Anzeigen von Harbor-Instanzen in einem Projekt.
  • Harbor Project Creator: Hat Zugriff zum Verwalten von Harbor-Instanzprojekten.
  • K8s Network Policy Admin: Verwaltet Netzwerkrichtlinien in Kubernetes-Clustern.
  • LoggingRule Creator: Erstellt benutzerdefinierte LoggingRule-Ressourcen im Projekt-Namespace.
  • LoggingRule Editor: Bearbeitet benutzerdefinierte LoggingRule-Ressourcen im Projekt-Namespace.
  • LoggingRule Viewer: Zeigt benutzerdefinierte LoggingRule-Ressourcen im Projekt-Namespace an.
  • LoggingTarget Creator: Erstellt benutzerdefinierte LoggingTarget-Ressourcen im Namespace des Projekts.
  • LoggingTarget Editor: Bearbeitet benutzerdefinierte LoggingTarget-Ressourcen im Projekt-Namespace.
  • LoggingTarget Viewer: Zeigt LoggingTarget-benutzerdefinierte Ressourcen im Projekt-Namespace an.
  • Load Balancer Admin: Hat Lese- und Schreibberechtigungen für alle Load-Balancer-Ressourcen im Projekt-Namespace.
  • MonitoringRule Editor (Bearbeiter von Monitoring-Regeln): Hat Lese- und Schreibzugriff auf MonitoringRule-Ressourcen.
  • MonitoringRule Viewer (Betrachter von MonitoringRule): Hat schreibgeschützten Zugriff auf benutzerdefinierte MonitoringRule-Ressourcen.
  • MonitoringTarget Editor (MonitoringTarget-Bearbeiter): Hat Lese- und Schreibzugriff auf MonitoringTarget-Benutzerressourcen.
  • MonitoringTarget Viewer: Hat Lesezugriff auf MonitoringTarget-Benutzerressourcen.
  • NAT Viewer (NAT-Betrachter): Hat Lesezugriff auf Deployments in Kubernetes-Clustern.
  • Namespace-Administrator: Verwaltet alle Ressourcen im Projekt-Namespace.
  • ObservabilityPipeline Editor: Hat Lese- und Schreibzugriff auf benutzerdefinierte ObservabilityPipeine-Ressourcen.
  • ObservabilityPipeline Viewer (Betrachter für ObservabilityPipeline): Hat schreibgeschützten Zugriff auf benutzerdefinierte ObservabilityPipeline-Ressourcen.
  • Project Bucket Admin (Projekt-Bucket-Administrator): Verwaltet die Speicher-Buckets und Objekte in Buckets.
  • Project Bucket Object Admin (Projekt-Bucket-Objektadministrator): Hat Lesezugriff auf Buckets in einem Projekt und Lese-/Schreibzugriff auf die Objekte in diesen Buckets.
  • Project Bucket Object Viewer (Betrachter von Projekt-Bucket-Objekten): Hat Lesezugriff auf Buckets in einem Projekt und die Objekte in diesen Buckets.
  • Project Cortex Alertmanager Editor: Gewährt Berechtigungen zum Bearbeiten der Cortex Alertmanager-Instanz im Projekt-Namespace.
  • Project Cortex Alertmanager Viewer: Gewährt Berechtigungen für den Zugriff auf die Cortex Alertmanager-Instanz im Projekt-Namespace.
  • Project Cortex Prometheus Viewer: Gewährt Berechtigungen für den Zugriff auf die Cortex Prometheus-Instanz im Projekt-Namespace.
  • Project Grafana Viewer: Greift auf die Grafana-Instanz im Projekt-Namespace des Flottenadministratorclusters zu.
  • Project NetworkPolicy Admin:Verwaltet die Projekt-NetworkPolicies im Projekt-Namespace.
  • Projektbetrachter:Hat schreibgeschützten Zugriff auf alle Ressourcen in Projekt-Namespaces.
  • Project VirtualMachine Admin: Verwaltet VMs im Projekt-Namespace.
  • Project VirtualMachine Image Admin: Verwaltet VM-Images im Projekt-Namespace.
  • Secret Admin: Verwaltet Kubernetes-Secrets in Projekten.
  • Secret Viewer: Zeigt Kubernetes-Secrets in Projekten an.
  • Service Configuration Admin: Hat Lese- und Schreibzugriff auf Dienstkonfigurationen in einem Projekt-Namespace.
  • Service Configuration Viewer: Hat Lesezugriff auf Dienstkonfigurationen in einem Projekt-Namespace.
  • Volume Replication Admin (Administrator für Volume-Replikation): Verwaltet Ressourcen für die Volume-Replikation.
  • Workbench Notebooks-Administrator: Lese- und Schreibzugriff auf alle Notebook-Ressourcen in einem Projektnamespace.
  • Workbench Notebooks Viewer: Lesezugriff auf alle Notebook-Ressourcen in einem Projektnamespace und Zugriff auf die Vertex AI Workbench-Benutzeroberfläche.
  • Workload Viewer (Arbeitslastbetrachter): Hat Lesezugriff auf Arbeitslasten in einem Projekt.

Häufige Rollen

Die folgenden vordefinierten allgemeinen Rollen gelten für alle authentifizierten Nutzer:

  • AI Platform-Betrachter: Gewährt Berechtigungen zum Aufrufen vortrainierter Dienste.
  • DNS Suffix Viewer: Greift auf die Konfigurationszuordnung für das DNS-Suffix (Domain Name Service) zu.
  • Flow Log Admin (Flow-Log-Administrator): Hat Lese- und Schreibzugriff auf alle Flow-Log-Ressourcen.
  • Flow Log Viewer (Flow-Log-Betrachter): Hat Lesezugriff auf alle Flow-Log-Ressourcen.
  • Project Discovery Viewer: Hat Lesezugriff für alle authentifizierten Nutzer auf die Projektansicht.
  • Public Image Viewer: Hat Lesezugriff für alle authentifizierten Nutzer auf die öffentlichen VM-Images im Namespace vm-images.
  • System Artifact Registry anthos-creds secret Monitor: Hat schreibgeschützten Zugriff auf Secrets im Namespace anthos-creds.
  • System Artifact Registry gpc-system secret Monitor: Hat schreibgeschützten Zugriff auf Secrets im Namespace gpc-system.
  • System Artifact Registry harbor-system secret Monitor: Hat schreibgeschützten Zugriff auf Secrets im Namespace harbor-system.
  • Virtual Machine Type Viewer: Hat Lesezugriff auf virtuelle Maschinentypen auf Clusterebene.
  • VM Type Viewer: Hat Lesezugriff auf die vordefinierten VM-Typen in den Administratorclustern.

Rollendefinitionen

In den Tabellen in diesem Abschnitt werden verschiedene vordefinierte Rollen und ihre Berechtigungen beschrieben. Die Tabellen enthalten die folgenden Spalten:

  • Name:Der Name einer Rolle, die in der Benutzeroberfläche angezeigt wird.
  • Name der Kubernetes-Ressource:Der Name der entsprechenden benutzerdefinierten Kubernetes-Ressource.
  • Ebene:Gibt an, ob diese Rolle auf die Organisation oder ein Projekt beschränkt ist.
  • Typ:Der Typ dieser Rolle. Mögliche Werte sind beispielsweise Role, ProjectRole, ClusterRole oder ProjectClusterRole.
  • Bindungstyp:Der Bindungstyp, den Sie auf diese Rolle anwenden müssen.
  • Berechtigungen für den Management API-Server oder den Kubernetes-Cluster:Die Berechtigungen, die diese Rolle für den Management API-Server oder den Kubernetes-Cluster hat. Einige mögliche Werte sind „Lesen“, „Schreiben“, „Lesen und Schreiben“ oder „Nicht zutreffend“ (N/A).
  • Wird eskaliert an:Gibt an, ob diese Rolle an andere Rollen eskaliert wird.

AO-Persona, vordefinierte Identitäts- und Zugriffsrollen

AO-Persona
Name Kubernetes-Ressourcenname Erster Administrator Level Typ
Projekt-IAM-Administrator project-iam-admin Wahr Projekt Role
AI OCR Developer ai-ocr-developer Falsch Projekt Role
AI Platform-Betrachter ai-platform-viewer Falsch Projekt Role
AI Speech-Entwickler ai-speech-developer Falsch Projekt Role
AI Translation-Entwickler ai-translation-developer Falsch Projekt Role
Administrator für die Artefaktverwaltung artifact-management-admin Falsch Projekt Role
Artifact Management Editor artifact-management-editor Falsch Projekt Role
Certificate Authority Service-Administrator certificate-authority-service-admin Falsch Projekt Role
Zertifikatsdienstadministrator certificate-service-admin Falsch Projekt Role
Dashboard-Editor dashboard-editor Falsch Projekt Role
Dashboard-Betrachter dashboard-viewer Falsch Projekt Role
Harbor-Instanzadministrator harbor-instance-admin Falsch Projekt Role
Harbor Instance Viewer harbor-instance-viewer Falsch Projekt Role
Harbor-Projektersteller harbor-project-creator Falsch Projekt Role
K8s Network Policy Admin k8s-networkpolicy-admin Falsch Projekt ProjectRole
Lastenausgleichsmodul-Administrator load-balancer-admin Falsch Projekt ProjectRole
LoggingRule Creator loggingrule-creator Falsch Projekt Role
LoggingRule Editor loggingrule-editor Falsch Projekt Role
LoggingRule Viewer loggingrule-viewer Falsch Projekt Role
LoggingTarget Creator loggingtarget-creator Falsch Projekt Role
LoggingTarget-Bearbeiter loggingtarget-editor Falsch Projekt Role
LoggingTarget Viewer loggingtarget-viewer Falsch Projekt Role
MonitoringRule Editor monitoringrule-editor Falsch Projekt Role
MonitoringRule Viewer monitoringrule-viewer Falsch Projekt Role
MonitoringTarget Editor monitoringtarget-editor Falsch Projekt Role
MonitoringTarget Viewer monitoringtarget-viewer Falsch Projekt Role
Namespace-Administrator namespace-admin Falsch Projekt ProjectRole
NAT-Betrachter nat-viewer Falsch Projekt ProjectRole
ObservabilityPipeline Editor observabilitypipeline-editor Falsch Projekt Role
ObservabilityPipeline-Betrachter observabilitypipeline-viewer Falsch Projekt Role
Project Bucket Admin project-bucket-admin Falsch Projekt Role
Projekt-Bucket-Objekt-Administrator project-bucket-object-admin Falsch Projekt Role
Project Bucket Object Viewer project-bucket-object-viewer Falsch Projekt Role
Project Cortex Alertmanager Editor project-cortex-alertmanager-editor Falsch Projekt Role
Project Cortex Alertmanager Viewer project-cortex-alertmanager-viewer Falsch Projekt Role
Project Cortex Prometheus Viewer project-cortex-prometheus-viewer Falsch Projekt Role
Grafana-Betrachter für Projekte project-grafana-viewer Falsch Projekt Role
Projektadministrator für NetworkPolicy project-networkpolicy-admin Falsch Projekt Role
Projektbetrachter project-viewer Falsch Projekt Role
Projekt-VirtualMachine-Administrator project-vm-admin Falsch Projekt Role
Administrator für VirtualMachine-Images für Projekte project-vm-image-admin Falsch Projekt Role
Secret-Administrator secret-admin Falsch Projekt Role
Secret-Betrachter secret-viewer Falsch Projekt Role
Administrator für Dienstkonfiguration service-configuration-admin Falsch Projekt Role
Betrachter von Dienstkonfigurationen service-configuration-viewer Falsch Projekt Role
Workbench Notebooks-Administrator workbench-notebooks-admin Falsch Projekt Role
Administrator für die Volume-Replikation app-volume-replication-admin Falsch Cluster Role
Workbench-Notebooks-Betrachter workbench-notebooks-viewer Falsch Projekt Role
Workload Viewer workload-viewer Falsch Projekt Role

AO-Persona, vordefinierte Identitäts- und Zugriffsrollen

AO-Persona
Name Bindungstyp Serverberechtigungen für die Management API Berechtigungen für Kubernetes-Cluster Eskaliert an
Projekt-IAM-Administrator RoleBinding
  • RoleBinding, ClusterRoleBinding, Role, ClusterRole, ProjectRole, ProjectClusterRole, ProjectRoleBinding und ProjectClusterRoleBinding:Erstellen, lesen, aktualisieren, löschen und binden
  • ProjectServiceAccount:Erstellen, lesen, aktualisieren und löschen
  • Projekt-Namespace auflisten
Alle anderen AO-Rollen
AI OCR Developer RoleBinding OCR-Ressourcen:Lesen und Schreiben
AI Speech-Entwickler RoleBinding Sprachressourcen:Lesen und Schreiben
AI Translation-Entwickler RoleBinding Übersetzungsressourcen:Lesen und Schreiben
Administrator für die Artefaktverwaltung RoleBinding HarborProjects:Administrator, erstellen, lesen, schreiben, löschen und ansehen
Artifact Management Editor RoleBinding HarborProjects:Lesen, Schreiben und Ansehen
Certificate Authority Service-Administrator RoleBinding Zertifizierungsstellen und Zertifikatsanfragen:Abrufen, Auflisten, Beobachten, Aktualisieren, Erstellen, Löschen und Patchen
Zertifikatsdienstadministrator RoleBinding Zertifikate und Zertifikataussteller:get, list, watch, update, create, delete und patch
Dashboard-Editor RoleBinding Benutzerdefinierte Dashboard-Ressourcen:Abrufen, Lesen, Erstellen, Aktualisieren, Löschen und Patchen
Dashboard-Betrachter RoleBinding Dashboard:Abrufen und lesen
Harbor-Instanzadministrator RoleBinding Harbor-Instanzen:Erstellen, lesen, aktualisieren, löschen und patchen
Harbor Instance Viewer RoleBinding Harbor-Instanzen:Lesen
Harbor-Projektersteller RoleBinding Harbor-Instanzprojekte:Erstellen, abrufen und beobachten
K8s NetworkPolicy-Administrator ProjectRoleBinding NetworkPolicy-Ressourcen: Erstellen, lesen, abrufen, aktualisieren, löschen und patchen
Lastenausgleichsmodul-Administrator RoleBinding
  • Backend:Get, watch, list, create, patch, update und delete
  • HealthCheck:Get, watch, list, create, patch, update und delete
  • BackendService:Get, watch, list, create, patch, update und delete
  • ForwardingRuleExternal:Get, watch, list, create, patch, update und delete
  • ForwardingRuleInternal:Get, watch, list, create, patch, update und delete
LoggingRule Creator RoleBinding Benutzerdefinierte RessourcenLoggingRule:Erstellen, lesen, aktualisieren, löschen und patchen
LoggingRule Editor RoleBinding Benutzerdefinierte RessourcenLoggingRule:Erstellen, lesen, aktualisieren, löschen und patchen
LoggingRule Viewer RoleBinding Benutzerdefinierte LoggingRule-Ressourcen:Lesen
LoggingTarget Creator RoleBinding Benutzerdefinierte RessourcenLoggingTarget:Erstellen, lesen, aktualisieren, löschen und patchen
LoggingTarget-Bearbeiter RoleBinding Benutzerdefinierte RessourcenLoggingTarget:Erstellen, lesen, aktualisieren, löschen und patchen
LoggingTarget Viewer RoleBinding Benutzerdefinierte LoggingTarget-Ressourcen:Lesen
MonitoringRule Editor RoleBinding Benutzerdefinierte RessourcenMonitoringRule:Erstellen, lesen, aktualisieren, löschen und patchen
MonitoringRule Viewer RoleBinding Benutzerdefinierte MonitoringRule-Ressourcen:Lesen
MonitoringTarget Editor RoleBinding Benutzerdefinierte RessourcenMonitoringTarget:Erstellen, lesen, aktualisieren, löschen und patchen
MonitoringTarget Viewer RoleBinding Benutzerdefinierte MonitoringTarget-Ressourcen:Lesen
Namespace-Administrator ProjectRoleBinding Alle Ressourcen:Lese- und Schreibzugriff im Projekt-Namespace
NAT-Betrachter ProjectRoleBinding Deployments: Abrufen und lesen
ObservabilityPipeline Editor RoleBinding ObservabilityPipeline-Ressourcen:Get, Read, Create, Update, Delete und Patch
ObservabilityPipeline-Betrachter RoleBinding ObservabilityPipeline-Ressourcen:Abrufen und lesen
Project Bucket Admin RoleBinding Bucket:Lese- und Schreibzugriff im Projekt-Namespace
Projekt-Bucket-Objekt-Administrator RoleBinding
  • Bucket:Lesen
  • Objekte:Lesen und Schreiben
Project Bucket Object Viewer RoleBinding Bucket und Objekte:Lesen
Project Cortex Alertmanager Editor RoleBinding Cortex-System und Cortex Alertmanager:Lesen und Schreiben
Project Cortex Alertmanager Viewer RoleBinding Cortex-System und Cortex Alertmanager:
Project Cortex Prometheus Viewer RoleBinding Cortex-System und Cortex Prometheus:Lesen
Grafana-Betrachter für Projekte RoleBinding Grafana-System und Grafana:Lesen und Schreiben
Projektadministrator für NetworkPolicy RoleBinding Projektnetzwerkrichtlinien:Lesen und Schreiben im Projekt-Namespace
Projektbetrachter RoleBinding Alle Ressourcen im Projekt-Namespace:Lesen
Projekt-VirtualMachine-Administrator RoleBinding
  • Virtuelle Maschinen, Laufwerke, Zugriffsanfragen, externer Zugriff, Sicherungsanfragen, Sicherungen, Wiederherstellungsanfragen, Anfragen zum Löschen von Sicherungen, Wiederherstellungen und Anfragen zum Zurücksetzen von Passwörtern:Lesen, Erstellen, Aktualisieren und Löschen
  • Neustart der virtuellen Maschine:
  • VM-Images, Sicherungspläne und Sicherungsplanvorlagen:Lesen
Administrator für VirtualMachine-Images für Projekte RoleBinding
  • VM-Images:Lesen
  • VM-Image-Importe:Lesen und Schreiben
Secret-Administrator RoleBinding Kubernetes-Secrets:Lesen, erstellen, aktualisieren, löschen und patchen
Secret-Betrachter RoleBinding Kubernetes-Secrets:Lesen
Administrator für Dienstkonfiguration RoleBinding ServiceConfigurations:Lesen und Schreiben
Betrachter von Dienstkonfigurationen RoleBinding ServiceConfigurations:Gelesen
Administrator für die Volume-Replikation ClusterRoleBinding Volume failovers, volume relationship replicas:create, get, list, watch, delete
Workbench Notebooks-Administrator RoleBinding
  • Benutzerdefinierte Notebook-Ressourcen (CR) im Projekt-Namespace:Erstellen, lesen, aktualisieren und löschen
  • ClusterInfo-Objekte:Lesen
Workbench-Notebooks-Betrachter RoleBinding
  • Benutzerdefinierte Notebook-Ressourcen (CR) im Projekt-Namespace:Lesen
Workload Viewer ProjectRoleBinding
  • Benutzerdefinierte Pod-Ressourcen im Projekt-Namespace:Lesen
  • Benutzerdefinierte Deployment-Ressourcen im Projekt-Namespace: Lesen

Häufig verwendete vordefinierte Identitäts- und Zugriffsrollen

Häufige Rollen
Name Kubernetes-Ressourcenname Erster Administrator Level Typ
AI Platform-Betrachter ai-platform-viewer Falsch Projekt Role
DNS Suffix Viewer dnssuffix-viewer Falsch Organisation Role
Flow Log-Administrator flowlog-admin Falsch Organisation ClusterRole
Flow-Log-Viewer flowlog-viewer Falsch Projekt ClusterRole
Betrachter für Projekterkennung projectdiscovery-viewer Falsch Projekt ClusterRole
Öffentliche Bildanzeige public-image-viewer Falsch Organisation Role
System-Artifact Registry-Secret „anthos-creds“ überwachen sar-anthos-creds-secret-monitor Falsch Organisation Role
System Artifact Registry gpc-system secret Monitor sar-gpc-system-secret-monitor Falsch Organisation Role
System-Secret „harbor-system“ für Artifact Registry-Monitor sar-harbor-system-secret-monitor Falsch Organisation Role
Virtual Machine Type Viewer virtualmachinetype-viewer Falsch Organisation OrganizationRole
VM-Typ-Betrachter vmtype-viewer Falsch Organisation Role

Häufig verwendete vordefinierte Identitäts- und Zugriffsrollen

Häufige Rollen
Name Bindungstyp Berechtigungen für Administratorcluster Berechtigungen für Kubernetes-Cluster Eskaliert an
AI Platform-Betrachter RoleBinding Vortrainierte Dienste:Lesen
DNS Suffix Viewer ClusterRoleBinding DNS-Suffix-Konfigurationszuordnungen:Lesen
Flow Log-Administrator ClusterRoleBinding Ressourcen für Ablaufprotokolle:Abrufen und Lesen Ressourcen für Ablaufprotokolle:Abrufen und Lesen
Flow-Log-Viewer ClusterRoleBinding Flow-Log-Ressourcen:Erstellen, abrufen, lesen, patchen, aktualisieren und löschen Flow-Log-Ressourcen:Erstellen, abrufen, lesen, patchen, aktualisieren und löschen
Betrachter für Projekterkennung ClusterRoleBinding Projekte:Lesen
Öffentliche Bildanzeige RoleBinding VM-Images:Lesen
System-Artifact Registry-Secret „anthos-creds“ überwachen RoleBinding anthos-creds Secrets:Abrufen und lesen anthos-creds Secrets:Abrufen und lesen
System Artifact Registry gpc-system secret Monitor RoleBinding gpc-system Secrets:Abrufen und lesen gpc-system Secrets:Abrufen und lesen
System-Secret „harbor-system“ für Artifact Registry-Monitor RoleBinding harbor-system Secrets:Abrufen und lesen harbor-system Secrets:Abrufen und lesen
Virtual Machine Type Viewer OrganizationRoleBinding VM-Typen:Lesen
VM-Typ-Betrachter ClusterRoleBinding VM-Typen:Lesen

Es gibt zwei Möglichkeiten, Zugriff auf Ressourcen zu gewähren:

Rollenbindungen mit der Befehlszeile einrichten

AO-Zugriff im Administratorcluster

Im Gegensatz zu Infrastrukturbetreibern (Infrastructure Operators, IO) und Plattformadministratoren (Platform Administrators, PA) bindet GDC Anwendungsbetreiber (Application Operators, AO) über eine RoleBinding an eine Project anstelle einer ClusterRoleBinding.

So gewähren Sie einem AO Zugriff auf den Administratorcluster:

  1. Exportieren Sie die E‑Mail-Adresse, die Sie für den Zugriff auf AO verwenden. Beispiel: ao-alice@example.com

    export AO_EMAIL=AO_EMAIL
    
  2. Erstellen Sie eine Rollenbindung, um den Zugriff als ${AO_EMAIL}-Projekt-IAM-Administrator im Namespace iam-test zu gewähren:

    kubectl create --kubeconfig PA_KUBECONFIG \
    rolebinding $AO_EMAIL-project-iam-admin \
    --role=project-iam-admin --user=$AO_EMAIL \
    --namespace=iam-test
    

    Die Rolle project-iam-admin ist eine vordefinierte Rolle für GDC. Der Kubernetes-Namespace iam-test entspricht dem Projekt iam-test im Administratorcluster.

  3. Prüfen Sie, ob das AO-Konto Berechtigungen zum Erstellen von Rollenbindungen im Namespace iam-test hat:

    kubectl --kubeconfig AO_KUBECONFIG auth can-i create rolebinding -n iam-test
    

    Die folgende Ausgabe wird angezeigt:

    yes
    
  4. Erstellen Sie eine Rollenbindung, um ${AO_EMAIL} den Zugriff als Projektbetrachter im Namespace bar zu gewähren:

    kubectl create --kubeconfig PA_KUBECONFIG \
    rolebinding $AO_EMAIL-project-viewer \
    --role=project-viewer --user=$AO_EMAIL \
    --namespace=bar
    

    Die Rolle project-viewer ist eine voreingestellte Rolle für GDC. Der Kubernetes-Namespace bar entspricht dem Projekt bar im Administratorcluster der Organisation.

  5. Prüfen Sie, ob das AO-Konto keine Berechtigungen zum Erstellen von Rollenbindungen im Namespace bar hat:

    kubectl --kubeconfig AO_KUBECONFIG auth can-i create rolebinding -n bar
    

    Die folgende Ausgabe wird angezeigt:

    no
    
  6. Optional: Löschen Sie die Rollenbindung, um die dem AO-Konto gewährte Berechtigung zu widerrufen:

    kubectl --kubeconfig PA_KUBECONFIG delete rolebinding $AO_EMAIL-project-iam-admin -n iam-test
    

AO-Zugriff in Nutzerclustern

Ein AO verwendet ProjectRole- und ProjectRoleBinding-Ressourcen, um Namespace-Zugriff auf Nutzercluster zu erhalten. PAs können der AO jedoch organisationsweite Berechtigungen in Nutzerclustern mithilfe der voreingestellten Ressourcen OrganizationRole und ProjectRoleBinding erteilen.

Führen Sie die folgenden Schritte aus, um AOs Zugriff auf Nutzercluster zu gewähren:

Um Zugriff auf Nutzercluster zu gewähren, benötigen Sie die Rolle „Projekt-IAM-Administrator“.

  1. Erstellen Sie eine ProjectRoleBinding-Ressource, um Administratorzugriff auf den Namespace ${AO_EMAIL} in allen Nutzerclustern im Namespace iam-test zu gewähren:

    kubectl --kubeconfig AO_KUBECONFIG apply -f - <<EOF
    apiVersion: resourcemanager.gdc.goog/v1
    kind: ProjectRoleBinding
    metadata:
      name: ${AO_EMAIL%@*}-namespace-admin
      namespace: iam-test
    spec:
      roleRef:
        apiGroup: resourcemanager.gdc.goog
        kind: ProjectRole
        name: namespace-admin
      subjects:
      - apiGroup: rbac.authorization.k8s.io
        kind: User
        name: ${AO_EMAIL}
    EOF
    
  2. Folgen Sie der Anleitung im Abschnitt Mit der CLI und kubectl anmelden, um Nutzeranmeldedaten für den Nutzercluster abzurufen und in der Variablen AO_USER_CLUSTER_KUBECONFIG zu exportieren:

    export AO_USER_CLUSTER_KUBECONFIG=GENERATED_KUBECONFIG
    
  3. Prüfen Sie, ob das AO-Konto Berechtigungen zum Erstellen von Deployments im Namespace iam-test hat:

    kubectl --kubeconfig ${AO_USER_CLUSTER_KUBECONFIG} auth can-i create deployment -n iam-test
    

    Die folgende Ausgabe wird angezeigt:

    yes
    
  4. Optional: Löschen Sie die Projektrollenbindungen, um die dem Test-AO-Konto gewährte Berechtigung zu widerrufen:

    kubectl --kubeconfig ${AO_USER_CLUSTER_KUBECONFIG} delete projectrolebinding ${AO_EMAIL%@*}-namespace-admin -n iam-test
    

Projektweite Rollenbindungen über die Benutzeroberfläche einrichten

Ein Anwendungsoperator fügt dem Projekt andere Anwendungsoperatoren hinzu, damit diese Zugriff auf Projektressourcen haben.

Bitten Sie Ihren Projekt-IAM-Administrator, Ihnen die Rolle „Projekt-IAM-Administrator“ zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Einrichten von Rollenbindungen benötigen.

Führen Sie die folgenden Schritte aus, um Rollenbindungen einzurichten:

  1. Melden Sie sich in der Konsole der GDC-Appliance an, die nicht mit dem Internet verbunden ist.
  2. Wählen Sie ein Projekt aus.
  3. Klicken Sie im Navigationsmenü auf Zugriffsverwaltung.
  4. Klicken Sie auf Mitglied hinzufügen.
  5. Wählen Sie in der Liste Identitätsanbieter einen Identitätsanbieter aus.
  6. Wählen Sie aus, ob Sie einzelne Nutzer oder Gruppen hinzufügen möchten.
  7. Geben Sie im Feld Nutzername oder Gruppenalias den Nutzernamen, die E-Mail-Adresse oder den Alias ein.
  8. Wählen Sie in der Liste Rolle die Rolle aus, die Sie dem Nutzer oder der Gruppe zuweisen möchten, z. B. Projektbetrachter.
  9. Klicken Sie auf Hinzufügen.

Rollenbindungen über die Benutzeroberfläche entfernen

Wenn der Zugriff nicht mehr erforderlich ist, entfernen Sie ein Mitglied und seine zugehörigen Rollen, Berechtigungen und Zugriffsebenen.

So entfernen Sie Mitglieder:

  1. Melden Sie sich in der Konsole der GDC-Appliance an, die nicht mit dem Internet verbunden ist.
  2. Wählen Sie ein Projekt aus.
  3. Klicken Sie im Navigationsmenü auf Zugriffsverwaltung.
  4. Wählen Sie in der Liste Autorisierte Mitglieder ein Mitglied aus.
  5. Klicken Sie auf Mitglied entfernen.
  6. Wenn Sie dazu aufgefordert werden, klicken Sie zur Bestätigung auf Mitglied entfernen.