Erstellt GCP (Google Cloud Platform)-Dienstkonten mit Rollen, die es einzelnen Apigee Hybridkomponenten ermöglichen, autorisierte API-Aufrufe durchzuführen und die zugehörigen Dienstkonto-Schlüsseldateien herunterzuladen. Sie können die von diesem Befehl generierten Dienstkonto-Schlüsseldateien in Ihrer Konfigurationsdatei verwenden.
create-service-account
erstellt ein oder mehrere Dienstkonten in Ihrem aktuellen Google Cloud-Projekt oder im angegebenen Projekt und weist die richtige IAM-Rolle dem Dienstkonto zu und lädt die Zertifikatsdatei für das Dienstkonto in ein Verzeichnis auf Ihrem lokalen Computer herunter.
Das create-service-account
-Tool befindet sich im Verzeichnis HYBRID_ROOT_DIR/tools
.
Weitere Informationen zu Dienstkonten und die vollständige Liste der Dienstkonten, die für Produktionsumgebungen empfohlen werden, finden Sie hier:
Sie können Dienstkonten auch in der Google Cloud Console erstellen. Weitere Informationen finden Sie unter Dienstkonten erstellen und verwalten.
Voraussetzungen
Rolle
Für das create-service-account
-Tool muss die gcloud
-Befehlszeile installiert sein. Nutzer, die das Dienstprogramm aufrufen, sollten die Rolle Service Account Admin
haben.
Projekt
Dienstkonten sind an ein bestimmtes Google Cloud-Projekt gebunden. create-service-account
erstellt Dienstkonten in Ihrem aktuellen Projekt oder in dem von Ihnen angegebenen Projekt und bindet die IAM-Rollen an die Dienstkonten in diesem Projekt. create-service-account
verwendet die Projekt-ID auch als Teil des Dienstkonto-Schlüsseldateienamens und der E-Mail-Adresse. Wenn Ihr Projekt beispielsweise den Namen my-hybrid-project hat, erhält die Dienstkontoschlüsseldatei von Apigee Logger den Namen my-hybrid-project-apigee-logger.json
und die E-Mail-Adresse des Dienstkontos lautet apigee-logger@my-hybrid-project.iam.gserviceaccount.com
.
Sie können ein Projekt angeben, indem Sie eine Umgebungsvariable PROJECT_ID
definieren oder das Flag --project-id
verwenden. create-service-account
liest den Wert der Umgebungsvariablen PROJECT_ID
. Wenn sie nicht vorhanden ist, können Sie das Flag --project-id
verwenden.
Wenn Sie keine Cloud-Projekt-ID angeben, verwendet create-service-account
das Projekt in Ihrer aktuellen gcloud-Projektkonfiguration.
Mit dem folgenden Befehl können Sie die aktuelle gcloud
-Projektkonfiguration prüfen:
gcloud config list project
Wenn Sie die aktuelle Projekt-ID ändern müssen, verwenden Sie den folgenden Befehl:
gcloud config set project PROJECT_ID
Dabei gilt: PROJECT_ID ist die ID Ihres aktuellen Cloud-Projekts. Eine Anleitung zum Erstellen eines Cloud-Projekts finden Sie unter Schritt 2: Google Cloud-Projekt erstellen.
create-service-account
verwenden
Die folgenden Beispiele zeigen, wie create-service-account
für gängige Apigee-Hybrid-Einrichtungsaufgaben verwendet wird.
Dienstkonten für eine Produktionsumgebung erstellen
In einer Hybridumgebung in einer Produktionsumgebung empfiehlt Apigee, für jede Komponente ein separates Dienstkonto zu verwenden. Verwenden Sie den folgenden Befehl, um alle Dienstkonten für die Hybrid-Komponenten mit ihren Standardnamen im Standardverzeichnis zu erstellen.
./tools/create-service-account --env prod
Es werden die folgenden Dienstkonten mit den Zertifikatsdateien erstellt, die in das Verzeichnis ./tools/service-accounts
heruntergeladen wurden:
Dienstkonto | IAM-Rolle | Zertifikatsdatei | |
---|---|---|---|
apigee-cassandra |
roles/storage.objectAdmin |
apigee-cassandra@PROJECT_ID.iam.gserviceaccount.com |
PROJECT_ID-apigee-cassandra.json |
apigee-logger |
roles/logging.logWriter |
apigee-logger@PROJECT_ID.iam.gserviceaccount.com |
PROJECT_ID-apigee-logger.json |
apigee-mart |
roles/apigeeconnect.Agent |
apigee-mart@PROJECT_ID.iam.gserviceaccount.com |
PROJECT_ID-apigee-mart.json |
apigee-metrics |
roles/monitoring.metricWriter |
apigee-metrics@PROJECT_ID.iam.gserviceaccount.com |
PROJECT_ID-apigee-metrics.json |
apigee-runtime |
Keine Rolle zugewiesen | apigee-runtime@PROJECT_ID.iam.gserviceaccount.com |
PROJECT_ID-apigee-runtime.json |
apigee-synchronizer |
roles/apigee.synchronizerManager |
apigee-synchronizer@PROJECT_ID.iam.gserviceaccount.com |
PROJECT_ID-apigee-synchronizer.json |
apigee-udca |
roles/apigee.analyticsAgent |
apigee-udca@PROJECT_ID.iam.gserviceaccount.com |
PROJECT_ID-apigee-udca.json |
apigee-watcher |
roles/apigee.runtimeAgent |
apigee-watcher@PROJECT_ID.iam.gserviceaccount.com |
PROJECT_ID-apigee-watcher.json |
Einzelnes Dienstkonto für eine Nicht-Produktionsumgebung erstellen
Für Umgebungen, die keine Produktionsumgebungen sind, z. B. eine Test- oder Demoumgebung, können Sie ein einzelnes Dienstkonto mit dem Namen "apigee-non-prod" erstellen, das Sie für alle Komponenten verwenden können. Diesem Dienstkonto werden alle IAM-Rollen aus dem vorherigen Beispiel zugewiesen.
./tools/create-service-account --env non-prod
Dadurch wird ein einzelnes Dienstkonto mit dem Namen apigee-non-prod erstellt und die Zertifikatsdatei in das Verzeichnis ./tools/service-accounts
heruntergeladen:
Dienstkonto | IAM-Rollen | Zertifikatsdatei | |
---|---|---|---|
apigee-non-prod |
roles/apigee.analyticsAgent |
apigee-non-prod@PROJECT_ID.iam.gserviceaccount.com |
PROJECT_ID-apigee-non-prod.json |
create-service-account syntax
Das create-service-account
-Tool verwendet die folgende Syntax:
create-service-account [flags]
In der folgenden Tabelle sind die Flags create-service-account
aufgeführt:
Flag | Werte | Beschreibung |
---|---|---|
--dir -d |
Verzeichnisname | Gibt ein Ausgabeverzeichnis für die Dienstkontoschlüsseldateien an. Wenn das Verzeichnis nicht vorhanden ist, wird es von create-service-account erstellt. Wenn das Verzeichnis bereits vorhanden ist, überschreibt create-service-account alle Dateien im Verzeichnis, die denselben Namen wie die erstellten Schlüsseldateien haben.
Wenn Sie kein Ausgabeverzeichnis angeben, schreibt |
--env -e |
prod non-prod |
Gibt an, ob Sie Dienstkonten für eine Produktionsumgebung (prod ) oder eine Nicht-Produktionsumgebung (non-prod ) erstellen.
Wenn Sie |
--help -h |
– | Zeigt den Hilfetext an. |
--name -n |
Name des Dienstkontos | Legt einen Namen für das Dienstkonto fest. --name gilt nur für ein einzelnes Dienstkonto, das entweder mit --profile oder --env non-prod angegeben wird.
Der Name ist auch im Namen der Zertifikatsdatei und der E-Mail-Adresse für das Dienstkonto enthalten. Wenn Sie beispielsweise
Wenn Sie |
‑‑profile -p |
apigee‑cassandra apigee‑logger apigee‑mart apigee‑metrics apigee‑runtime apigee‑synchronizer apigee‑udca apigee‑watcher |
Gibt nur für Produktionsumgebungen ein einzelnes Dienstkonto an, das erstellt werden soll.
Mit dem Flag
Erfordert |
‑‑project‑id -i |
project id | Die Projekt-ID des Google Cloud-Projekts, in dem Sie die Dienstkonten erstellen.
Wenn Sie keine Projekt-ID angeben, verwendet |
Weitere Informationen zu den von Apigee Hybrid verwendeten Dienstkonten finden Sie unter Informationen zu Dienstkonten.
Sie können Dienstkonten auch in der Google Cloud Console erstellen. Weitere Informationen finden Sie unter Dienstkonten erstellen und verwalten.