Zugriff auf Standardcluster verwalten

In diesem Dokument wird beschrieben, wie Sie Berechtigungen für Standardcluster in Google Distributed Cloud (GDC) mit Air Gap mit der gdcloud CLI verwalten. Standardcluster sind projektbezogene, konfigurierbare Kubernetes-Umgebungen mit minimalen Standarddiensten, die mehr Flexibilität und Kontrolle für benutzerdefinierte Arbeitslasten bieten.

Weitere Informationen zu Standardclustern und anderen Clustertypen finden Sie unter Kubernetes-Clusterkonfigurationen.

Dieses Dokument richtet sich an Zielgruppen in der Gruppe der Anwendungsoperatoren, z. B. Entwickler oder Data Scientists, die Ressourcen in GDC-Projekten verwalten und schützen müssen. Weitere Informationen finden Sie unter Dokumentation zu Zielgruppen für GDC mit Air Gap.

Hinweis

Bevor Sie den Zugriff auf Standardcluster verwalten können, müssen Sie die erforderlichen Berechtigungen haben und Ihre Umgebung vorbereiten.

IAM-Rollen anfordern

Wenden Sie sich an Ihren IAM-Administrator der Organisation, um die folgenden Rollen anzufordern, die Sie für die Ausführung der jeweiligen Aufgaben benötigen:

  • Projekt-IAM-Administrator (project-iam-admin): Erstellen, aktualisieren und löschen Sie Rollenbindungen für Standardcluster in einem Projekt.
  • Standard-Clusteradministrator (standard-cluster-admin): Er kann Rollenbindungen in einem bestimmten Standardcluster erstellen, aktualisieren und löschen.

Umgebung vorbereiten

Berechtigungen für den Standardclusterzugriff erteilen

Ein Nutzer mit der Rolle „Projekt-IAM-Administrator“ (project-iam-admin) kann anderen Nutzern die erforderlichen Rollen für die Verwaltung des Zugriffs in Standardclustern zuweisen:

  1. Mit Ihrem konfigurierten Identitätsanbieter anmelden

  2. Weisen Sie dem Nutzer die Rolle „Standard Cluster Admin“ (standard-cluster-admin) für das Projekt zu. Mit diesem Befehl wird der Nutzer an die Rolle gebunden, sodass er den Zugriff im Standardcluster verwalten kann.

    Weitere Informationen zu den Rollen finden Sie unter Beschreibungen vordefinierter Rollen und Rollendefinitionen für Projekte.

    gdcloud projects add-iam-policy-binding PROJECT \
      --role=ROLE \
      --member=user:USER_ACCOUNT
    

    Ersetzen Sie die folgenden Variablen:

    • PROJECT: der Name des Projekts, in dem der Standardcluster vorhanden ist.
    • ROLE: Der Name der Rolle, die Sie zuweisen möchten, z. B. standard-cluster-admin.
    • USER_ACCOUNT: Das Nutzerkonto, dem Sie die Rolle zuweisen möchten, einschließlich des mit Ihrer Organisation verknüpften Identitätsanbieter-Präfixes (z. B. idpprefix-user@example.com). Das verwendete Präfix hängt von der IdP-Konfiguration Ihrer Organisation ab. Weitere Informationen finden Sie unter Mit einem Identitätsanbieter verbinden.

    Im folgenden Beispiel wird user@example.com die Rolle „Standard-Clusteradministrator“ zugewiesen. Dabei wird davon ausgegangen, dass das Identitätsanbieterpräfix für das Projekt foo fop- ist:

    gdcloud projects add-iam-policy-binding foo \
      --role=standard-cluster-admin \
      --member=user:fop-user@example.com
    

Zugriff im Standardcluster verwalten

Ein Nutzer mit der Rolle „Standard Cluster Admin“ (standard-cluster-admin) kann den Zugriff in einem Standardcluster gewähren:

  1. Mit Ihrem konfigurierten Identitätsanbieter anmelden

  2. Generieren Sie mit dem Flag --standard eine kubeconfig-Datei für einen Standardcluster. Dieses Flag ist erforderlich, um auf einen Standardcluster auszurichten.

    export KUBECONFIG=KUBECONFIG_FILE
    gdcloud clusters get-credentials STANDARD_CLUSTER_NAME --standard --project=PROJECT
    

    Ersetzen Sie die folgenden Variablen:

    • KUBECONFIG_FILE: der Pfad zur kubeconfig-Datei, z. B. standard-cluster-kubeconfig.yaml.
    • STANDARD_CLUSTER_NAME: Der Name des Standardclusters.
    • PROJECT: der Name des Projekts, in dem der Standardcluster vorhanden ist.
  3. Definieren Sie Berechtigungen im Standardcluster mit kubectl.

    Nutzer mit standard-cluster-admin-Berechtigungen können benutzerdefinierte Role- und ClusterRole-Objekte erstellen. Um diese Berechtigungen zu gewähren, können sie die entsprechenden Rolebinding- und ClusterRoleBinding-Objekte erstellen, um die Rollen an bestimmte Subjekte wie Nutzer oder Dienstkonten zu binden.

    Im folgenden Beispiel wird mit kubectl ein benutzerdefiniertes Role mit dem Namen test-role im Namespace test erstellt:

    kubectl apply -f - <<EOF
    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: test-role
      namespace: test
    rules:
    - apiGroups:
      - ""
      resources:
      - configmaps
      verbs:
      - get
    EOF
    

    Im folgenden Beispiel wird die RoleBinding für die Role mit dem Namen test-role im Namespace test erstellt. Damit werden Berechtigungen für den Nutzer alice@example.com mit dem Identitätsanbieterpräfix fop- sowie für eine ServiceAccount mit dem Namen my-service-account im Namespace default gewährt:

    kubectl apply -f - <<EOF
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: test-role-binding
      namespace: test
    subjects:
    - kind: User
      name: fop-alice@example.com
      apiGroup: rbac.authorization.k8s.io
    - kind: ServiceAccount
      name: my-service-account
      namespace: default
    roleRef:
      kind: Role
      name: test-role
      apiGroup: rbac.authorization.k8s.io
    EOF