In diesem Schritt wird erläutert, wie Sie die Google Cloud-Dienstkonten erstellen, die für das Funktionieren von Apigee Hybrid erforderlich sind.
Übersicht
Apigee Hybrid verwendet Google Cloud-Dienstkonten, um die Kommunikation zwischen Hybrid-Komponenten über autorisierte API-Aufrufe zu ermöglichen.
Produktions- und Nicht-Produktionsumgebungen
Dieser Leitfaden bezieht sich auf Produktions- („Prod“) und Nicht-Produktionsinstallationen („Non-prod“). Eine Produktionsinstallation ist auf höhere Nutzungskapazität, Speicher und Skalierbarkeit ausgelegt. Eine Nicht-Produktionsinstallation verwendet weniger Ressourcen und dient hauptsächlich zu Lern- und Demonstrationszwecken.
Wenn Sie Dienstkonten für Apigee Hybrid erstellen und konfigurieren, müssen Sie die Art der Installation berücksichtigen, auf die Sie abzielen.
Für Produktionsinstallationen empfehlen wir, für jede Apigee Hybrid-Komponente ein separates Dienstkonto zu erstellen. Beispielsweise erhalten Laufzeit, MART, Messwerte, UDCA usw. jeweils ein eigenes Dienstkonto.
Für Nicht-Produktionsinstallationen können Sie ein einzelnes Dienstkonto erstellen, das für alle Komponenten gilt.
Weitere Informationen zu den von Apigee verwendeten Dienstkonten und den ihnen zugewiesenen Rollen finden Sie unter Dienstkonten und Rollen, die von Hybrid-Komponenten verwendet werden.
Workload Identity in GKE
Für Apigee Hybrid-Installationen in GKE bietet Google Cloud eine Option namens Workload Identity zur Authentifizierung von Hybrid-Laufzeitkomponenten. Bei dieser Option werden keine heruntergeladene Zertifikatsdateien verwendet, um die Dienstkonten zu authentifizieren. Stattdessen werden die in diesem Schritt erstellten Google Cloud-Dienstkonten den Kubernetes-Dienstkonten im Kubernetes-Cluster zugeordnet.
Workload Identity ist nur bei GKE-Installationen verfügbar.
Dienstkonten erstellen
Gehen Sie folgendermaßen vor, um die Google Cloud-Dienstkonten für Ihre Hybridinstallation zu erstellen:
- Das Tool
create-service-account
: Wenn Sie Apigee Hybrid auf einer anderen Plattform als GKE installieren oder wenn Sie es auf GKE installieren, aber keine Workload Identity verwenden möchten, verwenden Sie das von Apigee bereitgestellte Toolcreate-service-account
, um die Dienstkonten zu erstellen, die Rollen den Dienstkonten zuzuweisen und die Schlüsseldateien für das Dienstkonto in einem einzigen Befehl zu erstellen und herunterzuladen. Folgen Sie den Schritten unter
Dienstkonten mitcreate-service-account
erstellen. - Google Cloud Console oder
gcloud
: Wenn Sie Apigee Hybrid auf GKE installieren und planen, die Workload Identity zu verwenden, verwenden Sie die Google Cloud Console odergcloud
, um die Dienstkonten zu erstellen, ohne die Zertifikatsdateien herunterzuladen. Folgen Sie den Schritten unter
Dienstkonten in der Google Cloud Console oder mitgcloud
erstellen.
Dienstkonten mit create-service-account
erstellen
In folgenden Fällen sollten Sie das Tool create-service-account
verwenden:
- Sie führen die Installation auf einer anderen Plattform als GKE aus
- Sie führen die Installation auf GKE aus, verwenden jedoch keine Workload Identity.
Andernfalls fahren Sie mit Dienstkonten in der Google Cloud Console oder mit gcloud
erstellen fort.
- Achten Sie darauf, dass die Umgebungsvariablen HYBRID_FILES und HYBRID_FILES festgelegt sind.
PROJECT_ID muss auf Ihre Google Cloud-Projekt-ID eingestellt sein, da das
create-service-account
-Tool die Umgebungsvariable PROJECT_ID liest, um die Dienstkonten im richtigen Projekt zu erstellen.echo $HYBRID_FILES
echo $PROJECT_ID
- Erstellen Sie das Dienstkonto mit dem folgenden Befehl:
Non-prod
Mit diesem Befehl wird ein einzelnes Dienstkonto mit dem Namen
apigee-non-prod
für die Verwendung in einer Nicht-Produktionsinstallation erstellt. Außerdem wird die Schlüsseldatei für das Dienstkonto in das Verzeichnis$HYBRID_FILES/service-accounts
heruntergeladen.$HYBRID_FILES/tools/create-service-account --env non-prod --dir $HYBRID_FILES/service-accounts
Produktion
Mit diesem Befehl werden alle einzelnen Dienstkonten für eine Produktionsinstallation erstellt und die Schlüsseldateien für die Dienstkonten in das Verzeichnis
$HYBRID_FILES/service-accounts
heruntergeladen.$HYBRID_FILES/tools/create-service-account --env prod --dir $HYBRID_FILES/service-accounts
Wenn die folgende Eingabeaufforderung angezeigt wird, geben Sie y ein:
[INFO]: gcloud configured project ID is project_id. Enter: y to proceed with creating service account in project: project_id Enter: n to abort.
Wenn Sie zum ersten Mal ein bestimmtes Dienstkonto erstellen, wird es vom Tool ohne weitere Aufforderungen erstellt.
Wenn jedoch die folgende Meldung und Eingabeaufforderung angezeigt wird, geben Sie y ein, um neue Schlüssel zu generieren:
[INFO]: Service account apigee-non-prod@project_id.iam.gserviceaccount.com already exists. ... [INFO]: The service account might have keys associated with it. It is recommended to use existing keys. Press: y to generate new keys.(this does not deactivate existing keys) Press: n to skip generating new keys.
-
Prüfen Sie mit dem folgenden Befehl, ob der Dienstkontoschlüssel erstellt wurde. Sie sind dafür verantwortlich, diese privaten Schlüssel sicher zu speichern. Den Schlüsselnamen ist der Name Ihres Google Cloud-Projekts vorangestellt.
ls $HYBRID_FILES/service-accounts
Das Ergebnis sollte ungefähr so aussehen:
project_id-apigee-non-prod.json
- Weitere Informationen zu
create-service-account
und allen möglichen Optionen finden Sie untercreate-service-account
. - Weitere Informationen zu den verknüpften Google Cloud-Konzepten finden Sie unter Dienstkonten erstellen und verwalten und Dienstkontoschlüssel erstellen und verwalten.
Dienstkonten in der Google Cloud Console oder mit gcloud
erstellen
Wenn Sie Workload Identity in GKE zur Authentifizierung von Hybridlaufzeitkomponenten verwenden möchten, müssen Sie keine Zertifikatsdateien für die Dienstkonten erstellen und herunterladen. Verwenden Sie daher nicht das Tool create-service-account
. Erstellen Sie stattdessen die Dienstkonten in der Google Cloud Console oder mit der IAM API in gcloud
.
Andernfalls fahren Sie mit Dienstkonten mit create-service-account
erstellen fort.
Console
Folgen Sie der Anleitung unter Dienstkonten erstellen, um die folgenden Dienstkonten zu erstellen und ihnen die folgenden Rollen zuzuweisen:
Non-prod
Für Nicht-Produktionsinstallationen:
Name des Dienstkontos | IAM-Rollen |
---|---|
apigee-non-prod |
|
Produktion
Für Produktionsinstallationen:
Produktionsinstallationen | |
---|---|
Name des Dienstkontos | IAM-Rollen |
apigee-cassandra |
Storage-Objekt-Administrator |
apigee-logger |
Log-Autor |
apigee-mart |
Apigee Connect Agent |
apigee-metrics |
Monitoring-Messwert-Autor |
apigee-runtime |
Keine Rolle erforderlich |
apigee-synchronizer |
Apigee Synchronizer Manager |
apigee-udca |
Apigee Analytics-Agent |
apigee-watcher |
Apigee-Laufzeit-Agent |
gcloud
Verwenden Sie die folgenden Befehle, um die Dienstkonten zu erstellen und die IAM-Rollen zuzuweisen.
Non-prod
Für Nicht-Produktionsinstallationen:
- Erstellen Sie das Dienstkonto
apigee-non-prod
:gcloud iam service-accounts create apigee-non-prod \ --display-name="apigee-non-prod" \ --project=$PROJECT_ID
- Weisen Sie dem Dienstkonto die IAM-Rollen zu:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/storage.objectAdmin"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/logging.logWriter"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigeeconnect.Agent"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.synchronizerManager"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.analyticsAgent"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.runtimeAgent"
- Prüfen Sie die Rollenbindungen:
gcloud projects get-iam-policy ${PROJECT_ID} \ --flatten="bindings[].members" \ --format='table(bindings.role)' \ --filter="bindings.members:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com"
Produktion
Für Produktionsinstallationen:
Verwenden Sie die folgenden Befehle, um jedes Dienstkonto zu erstellen und die entsprechende IAM-Rolle zuzuweisen.
- Dienstkonto
apigee-cassandra
:gcloud iam service-accounts create apigee-cassandra \ --display-name="apigee-cassandra" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-cassandra@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/storage.objectAdmin"
- Dienstkonto
apigee-logger
:gcloud iam service-accounts create apigee-logger \ --display-name="apigee-logger" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-logger@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/logging.logWriter"
- Dienstkonto
apigee-mart
:gcloud iam service-accounts create apigee-mart \ --display-name="apigee-mart" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-mart@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigeeconnect.Agent"
- Dienstkonto
apigee-metrics
:gcloud iam service-accounts create apigee-metrics \ --display-name="apigee-metrics" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-metrics@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter"
- Dienstkonto
apigee-runtime
:gcloud iam service-accounts create apigee-runtime \ --display-name="apigee-runtime" \ --project=$PROJECT_ID
- Dienstkonto
apigee-synchronizer
:gcloud iam service-accounts create apigee-synchronizer \ --display-name="apigee-synchronizer" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-synchronizer@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.synchronizerManager"
- Dienstkonto
apigee-udca
:gcloud iam service-accounts create apigee-udca \ --display-name="apigee-udca" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-udca@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.analyticsAgent"
- Dienstkonto
apigee-watcher
:gcloud iam service-accounts create apigee-watcher \ --display-name="apigee-watcher" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-watcher@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.runtimeAgent"
Weitere Informationen zum Erstellen von Dienstkonten mit gcloud
finden Sie unter Dienstkonten erstellen.
Sie haben jetzt Dienstkonten erstellt und die Rollen zugewiesen, die die Apigee Hybrid-Komponenten benötigen. Im nächsten Schritt erstellen Sie die für das Hybrid-Ingress-Gateway erforderlichen TLS-Zertifikate.
1 2 3 4 (WEITER) Schritt 5: TLS-Zertifikate erstellen 6 7 8 9 10 11