create-service-account

create-serice-account-Übersicht

create-serice-account ist ein Befehlszeilentool, das mit Apigee Hybrid bereitgestellt wird. Es erstellt Google Cloud- Dienstkonten mit Rollen, die es einzelnen Apigee Hybridkomponenten ermöglichen, autorisierte API-Aufrufe durchzuführen und die verknüpften 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.

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.

Dateispeicherort

Sie finden das create-service-account-Tool im folgenden Verzeichnis:

$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/

Prüfen, ob das create-service-account-Tool ausführbar ist

Prüfen Sie, ob Sie create-service-account ausführen können. Wenn Sie gerade die Apigee Helm-Diagramme heruntergeladen haben, befinden sich die Befehlszeilentools möglicherweise nicht in einem ausführbaren Modus. Wechseln Sie in das Verzeichnis, in dem create-service-account installiert ist, und prüfen Sie, ob es ausführbar ist. Führen Sie es dazu mit --help aus:

./create-service-account --help

Wenn in der Ausgabe permission denied angegeben ist, müssen Sie die Datei ausführbar machen, z. B. mit chmod in Linux, MacOS oder UNIX oder im Windows Explorer oder mit dem Befehl icacls in Windows Beispiel:

chmod +x ./create-service-account

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 E-Mail 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 E-Mail Zertifikatsdatei
apigee-non-prod roles/apigee.analyticsAgent
roles/apigee.runtimeAgent
roles/apigee.synchronizerManager
roles/apigeeconnect.Agent
roles/logging.logWriter
roles/monitoring.metricWriter
roles/storage.objectAdmin
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 create-service-account die Dienstkontodateien in das Verzeichnis service-accounts/ innerhalb des Verzeichnisses, in dem sich create-service-account befindet.

--env
-e
prod
non-prod
Gibt an, ob Sie Dienstkonten für eine Produktionsumgebung (prod) oder eine Nicht-Produktionsumgebung (non-prod) erstellen.
  • --env prod erstellt Dienstkonten für hybride Produktionsumgebungen.

    In einer Produktionsumgebung wird empfohlen, dass Sie für jeden Apigee-Dienst ein einziges Dienstkonto haben. Mit jeder erstellten Rolle ist eine einzelne IAM-Rolle verknüpft.

    create-service-account -env prod erstellt alle Dienstkonten, die von Apigee Hybrid verwendet werden, es sei denn, Sie geben ein bestimmtes Dienstkonto mit --profile an.

  • --env non-prod erstellt ein einzelnes Dienstkonto mit allen daran angebundenen IAM-Rollen. Dies ist nützlich für Nicht-Produktionsumgebungen wie eine Test- oder Demoinstallation.

    Das Dienstkonto heißt apigee-non-prod, sofern Sie keinen Namen mit dem Flag --name angeben.

Wenn Sie create-service-account ohne --env ausführen, werden Sie aufgefordert, prod oder non-prod einzugeben.

--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 create-service-account --profile apigee-logger --name my-logger ausführen (in diesem Beispiel ist Ihr aktuelles Cloud-Projekt my-hybrid-project), erstellt create-service-account ein Konto bei:

  • Name: my-logger
  • E-Mail-Adresse: my-logger@my-hybrid-project.iam.gserviceaccount.com
  • Zertifikatsdatei: my-hybrid-project-my-logger.json

Wenn Sie --name nicht angeben, verwendet create-service-account den Namen des Profils für den Namen des Dienstkontos oder "apigee-non-prod", wenn Sie --env non-prod angeben.

‑‑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 --name können Sie einen Namen für das Dienstkonto angeben.

Erfordert --env prod.

‑‑project‑id
-i
project id Die Projekt-ID des Google Cloud-Projekts, in dem Sie die Dienstkonten erstellen.

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 Projekt-ID angeben, verwendet create-service-account die ID des Projekts in der aktuellen gcloud-Konfiguration.

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.