In diesem Dokument werden die Google Cloud Dienstkonten und -Schlüssel erläutert, die Sie zum Erstellen von Clustern in Ihrer Google Distributed Cloud-Implementierung benötigen.
Diese Anleitung ist vollständig. Eine kürzere Einführung in die Verwendung eines Dienstkontos finden Sie unter Minimale Infrastruktur einrichten.
Hinweise
Projekte Google Cloud erstellen.
Übersicht über Dienstkonten
Bevor Sie Ihre Administrator- und Nutzercluster erstellen, benötigen Sie folgende Dienstkonten:
- Komponenten-Zugriff-Dienstkonto
- Connect-Register-Dienstkonto
- Logging-Monitoring-Dienstkonto
Je nachdem welche Features Sie aktivieren möchten, benötigen Sie möglicherweise auch einige optionale Dienstkonten.
Informationen zu Dienstkonten und Google Cloud Projekten
Wenn Sie ein Dienstkonto erstellen, verknüpfen Sie es mit einem Google Cloud -Projekt.
Dieses Google Cloud Projekt wird als übergeordnetes Projekt des Dienstkontos bezeichnet. In diesem Dokument wird in allen gcloud iam service-accounts create
-Befehlen die Platzhaltervariable PROJECT_ID
verwendet, die die Projekt-ID des übergeordneten Projekts des Dienstkontos ist.
Sie können das übergeordnete Projekt eines Dienstkontos anhand der E-Mail-Adresse des Dienstkontos ermitteln. Im Folgenden ist beispielsweise die E-Mail-Adresse eines Dienstkontos mit dem Namen logger
dargestellt. Das übergeordnete Projekt ist alice-123
.
logger@alice-123.iam.gserviceaccount.com
Wenn Sie einem Dienstkonto eine Rolle der Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM) zuweisen, wird die Rolle dem Dienstkonto in einem bestimmtenGoogle Cloud -Projekt zugewiesen. Dies entspricht dem allgemeinen Muster für das Zuweisen einer Rolle zu einem Prinzip in einer Ressource.
Beispielsweise können Sie dem Dienstkonto logger@alice-123.iam.gserviceaccount.com
im Projekt bob-456
die Rolle bigquery.dataEditor
zuweisen. In diesem Fall ist das Dienstkonto das Hauptkonto und das Projekt Google Cloud die Ressource.
Sie können einem Dienstkonto eine Rolle in einem Google Cloud Projekt zuweisen, das nicht das übergeordnete Projekt des Dienstkontos ist. Die Projekte können aber auch identisch sein. Um diese Flexibilität zu ermöglichen, wird in diesem Dokument in den gcloud projects add-iam-policy-binding
-Befehlen für das Dienstkonto für den Komponentenzugriff, das Dienstkonto für Connect-Registrierung und das Dienstkonto für Logging und Monitoring die Platzhaltervariable FLEET_HOST_PROJECT_ID
verwendet. Dies ist die ID des Flottenhostprojekts.
Die ID, die Sie als FLEET_HOST_PROJECT_ID
in den gcloud projects add-iam-policy-binding
-Befehlen angeben, muss identisch sein.
Berechtigungen zum Zuweisen von Rollen für Dienstkonten
Jedem Dienstkonto müssen bestimmte Rollen im entsprechendenGoogle Cloud -Projekt zugewiesen sein. Beispielsweise muss Ihrem Connect-Register-Dienstkonto die Rolle gkehub.editor
im Flotten-Hostprojekt zugewiesen sein.
Wenn Sie Rollen für ein Google Cloud Projekt zuweisen möchten, benötigen Sie bestimmte Berechtigungen für das Projekt. Weitere Informationen finden Sie unter roles/resourcemanager.projectIamAdmin
Informationen zu Rollen.
Wenn Sie die erforderlichen Berechtigungen haben, können Sie die Rollen selbst zuweisen. Andernfalls muss eine andere Person in Ihrer Organisation die Rollen für Sie zuweisen.
Dienstkonten mit gkeadm
automatisch erstellen
Auf dieser Seite wird gezeigt, wie Sie Dienstkonten manuell erstellen und Rollen zuweisen können. Als Alternative zur manuellen Ausführung dieser Schritte können Sie das gkeadm
-Befehlszeilentool einige der Dienstkonten erstellen und Rollen zuweisen lassen, wenn Sie eine Administrator-Workstation erstellen. Auch wenn Sie gkeadm
Dienstkonten erstellen lassen, müssen Sie das Dienstkonto für den Komponentenzugriff manuell erstellen und die erforderlichen IAM-Rollen zuweisen, wie im nächsten Abschnitt beschrieben. Weitere Informationen zu den Dienstkonten, die gkeadm
erstellen kann, finden Sie unter Administrator-Workstation erstellen.
Komponenten-Zugriff-Dienstkonto
Google Distributed Cloud verwendet dieses Dienstkonto, um Clusterkomponenten in Ihrem Namen aus Artifact Registry herunterzuladen.
So erstellen Sie ein Dienstkonto für den Komponentenzugriff:
gcloud iam service-accounts create component-access-sa \ --display-name "Component Access Service Account" \ --project PROJECT_ID
Ersetzen Sie
PROJECT_ID
durch die ID des Google Cloud Projekts, das das übergeordnete Projekt Ihres Dienstkontos sein soll.Rufen Sie die E-Mail-Adresse des neu erstellten Dienstkontos für den Komponentenzugriff ab:
gcloud iam service-accounts list \ --project PROJECT_ID
Erstellen Sie einen JSON-Schlüssel für das Dienstkonto für den Komponentenzugriff:
gcloud iam service-accounts keys create component-access-key.json \ --iam-account COMPONENT_ACCESS_SERVICE_ACCOUNT_EMAIL
Ersetzen Sie
COMPONENT_ACCESS_SERVICE_ACCOUNT_EMAIL
durch die E-Mail-Adresse des Dienstkontos für den Komponentenzugriff.
Dienstkonto für den Komponentenzugriff Rollen zuweisen
Dem Dienstkonto für den Komponentenzugriff müssen in Ihrem Projekt die folgenden IAM-Rollen zugewiesen sein. Diese Rollen sind erforderlich, damit Google Distributed Cloud Preflight-Prüfungen ausführen kann:
serviceusage.serviceUsageViewer
iam.roleViewer
iam.serviceAccountViewer
compute.viewer
So weisen Sie die Rollen zu:
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:COMPONENT_ACCESS_SERVICE_ACCOUNT_EMAIL" \ --role "roles/serviceusage.serviceUsageViewer" gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:COMPONENT_ACCESS_SERVICE_ACCOUNT_EMAIL" \ --role "roles/iam.roleViewer" gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:COMPONENT_ACCESS_SERVICE_ACCOUNT_EMAIL" \ --role "roles/iam.serviceAccountViewer" gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:COMPONENT_ACCESS_SERVICE_ACCOUNT_EMAIL" \ --role "roles/compute.viewer"
Ersetzen Sie FLEET_HOST_PROJECT_ID
durch die ID des Flotten-Hostprojekts. Das kann dasselbe Projekt sein, in dem das Dienstkonto erstellt wurde, oder ein anderes Projekt. Die hier angegebene Projekt-ID muss mit der ID übereinstimmen, die Sie beim Zuweisen von IAM-Rollen an das Connect-Register-Dienstkonto und das Logging-Monitoring-Dienstkonto angeben.
Connect-Register-Dienstkonto
Google Distributed Cloud verwendet dieses Dienstkonto, um Ihre Cluster bei einer Flotte zu registrieren.
Erstellen Sie ein Connect-Register-Dienstkonto:
gcloud iam service-accounts create connect-register-sa \ --display-name "Connect-register Service Account" \ --project PROJECT_ID
Ersetzen Sie
PROJECT_ID
durch die ID desGoogle Cloud -Projekts, das dem Connect-Register-Dienstkonto übergeordnet sein soll.Rufen Sie die E-Mail-Adresse des neu erstellten Connect-Register-Dienstkontos ab:
gcloud iam service-accounts list \ --project PROJECT_ID
So erstellen Sie einen JSON-Schlüssel für Ihr Connect-Register-Dienstkonto:
gcloud iam service-accounts keys create connect-register-key.json \ --iam-account CONNECT_REGISTER_SERVICE_ACCOUNT_EMAIL
Ersetzen Sie
CONNECT_REGISTER_SERVICE_ACCOUNT_EMAIL
durch die E-Mail-Adresse Ihres Connect Register-Dienstkontos.Weisen Sie Ihrem Connect-Register-Dienstkonto die Rolle
gkehub.editor
zu:gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:CONNECT_REGISTER_SERVICE_ACCOUNT_EMAIL" \ --role "roles/gkehub.editor"
Die hier angegebene Projekt-ID muss mit der ID übereinstimmen, die Sie beim Zuweisen von IAM-Rollen an das Dienstkonto für den Komponentenzugriff und das Logging-Monitoring-Dienstkonto angeben.
Logging-Monitoring-Dienstkonto
Google Distributed Cloud verwendet dieses Dienstkonto, um Logs und Messwerte von Clustern nach Cloud Logging und Cloud Monitoring zu exportieren.
Erstellen Sie ein Logging-Monitoring-Dienstkonto:
gcloud iam service-accounts create logging-monitoring-sa \ --display-name "Logging-monitoring Service Account" \ --project=PROJECT_ID
Ersetzen Sie
PROJECT_ID
durch die ID desGoogle Cloud -Projekts, das dem Logging-Monitoring-Dienstkonto übergeordnet sein soll.Rufen Sie die E-Mail-Adresse des neu erstellten Logging-Monitoring-Dienstkontos ab:
gcloud iam service-accounts list \ --project PROJECT_ID
Erstellen Sie einen JSON-Schlüssel für Ihr Logging-Monitoring-Dienstkonto:
gcloud iam service-accounts keys create logging-monitoring-key.json \ --iam-account LOGGING_MONITORING_SERVICE_ACCOUNT_EMAIL
Ersetzen Sie
LOGGING_MONITORING_SERVICE_ACCOUNT_EMAIL
durch die E-Mail-Adresse Ihres Logging-Monitoring-Dienstkontos.
Dem Logging-Monitoring-Dienstkonto Rollen zuweisen
Ihrem Logging-Monitoring-Dienstkonto müssen in Ihrem Projekt die folgenden Rollen zugewiesen sein:
opsconfigmonitoring.resourceMetadata.writer
logging.logWriter
monitoring.metricWriter
monitoring.dashboardEditor
kubernetesmetadata.publisher
So weisen Sie Ihrem Logging-Monitoring-Dienstkonto die erforderlichen Rollen zu:
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:LOGGING_MONITORING_SERVICE_ACCOUNT_EMAIL" \ --role "roles/opsconfigmonitoring.resourceMetadata.writer" gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:LOGGING_MONITORING_SERVICE_ACCOUNT_EMAIL" \ --role "roles/logging.logWriter" gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:LOGGING_MONITORING_SERVICE_ACCOUNT_EMAIL" \ --role "roles/monitoring.metricWriter" gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:LOGGING_MONITORING_SERVICE_ACCOUNT_EMAIL" \ --role "roles/monitoring.dashboardEditor" gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:LOGGING_MONITORING_SERVICE_ACCOUNT_EMAIL" \ --role "roles/kubernetesmetadata.publisher"
Die hier angegebene Projekt-ID muss mit der ID übereinstimmen, die Sie angeben, wenn Sie dem Dienstkonto für den Komponentenzugriff und dem Dienstkonto für die Verbindung/Registrierung IAM-Rollen zuweisen.
Optionale Dienstkonten
Die in diesem Abschnitt beschriebenen Dienstkonten sind optional.
Audit-Logging-Dienstkonto
Google Distributed Cloud verwendet dieses Dienstkonto, um Kubernetes-Audit-Logs aus Ihrem Cluster in Cloud-Audit-Logs zu senden.
Wenn Sie Cluster mit erweitertem Cluster erstellen möchten (was für die Einrichtung von Topologiedomänen erforderlich ist), verwenden Sie das Logging-Monitoring-Dienstkonto und den Schlüssel für das Audit-Logging, anstatt ein weiteres Dienstkonto zu erstellen.
Audit-Logging-Dienstkonto erstellen:
gcloud iam service-accounts create audit-logging-sa \ --project PROJECT_ID
Ersetzen Sie
PROJECT_ID
durch die ID desGoogle Cloud -Projekts, das dem Audit-Logging-Dienstkonto übergeordnet sein soll.Rufen Sie die E-Mail-Adresse des neu erstellten Audit-Logging-Dienstkontos ab:
gcloud iam service-accounts list \ --project PROJECT_ID
Erstellen Sie einen JSON-Schlüssel für Ihr Audit-Logging-Dienstkonto:
gcloud iam service-accounts keys create audit-logging-key.json \ --iam-account AUDIT_LOGGING_SERVICE_ACCOUNT_EMAIL
Ersetzen Sie
AUDIT_LOGGING_SERVICE_ACCOUNT_EMAIL
durch die E-Mail-Adresse Ihres Audit-Logging-Dienstkontos.
Sie müssen Ihrem Audit-Logging-Dienstkonto keine Rollen zuweisen.
Dienstkonto für Binärautorisierung
Google Distributed Cloud verwendet dieses Dienstkonto, um die Binary Authorization API abzurufen.
Weitere Informationen zum Erstellen eines Dienstkontos für die Binärautorisierung finden Sie unter Binärautorisierung in GKE On-Prem.
Nächste Schritte
Administrator-Workstation erstellen