Schritt 4: Dienstkonten erstellen

Überblick

In diesem Schritt wird erläutert, wie Sie die Google Cloud-Dienstkonten erstellen, die für das Funktionieren von Apigee Hybrid erforderlich sind, und ihnen die entsprechenden IAM-Rollen zuweisen.

In diesem Verfahren werden die folgenden zwei Umgebungsvariablen verwendet, die in Schritt 2: Apigee Helm-Diagramme herunterladen definiert sind. Diese Variablen sind optional. Wenn Sie sie nicht definiert haben, ersetzen Sie für jede Variable in den Codebeispielen den entsprechenden Verzeichnispfad.

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.

Dienstkonten authentifizieren

Apigee Hybrid unterstützt drei Methoden zur Authentifizierung von Google-Dienstkonten:

Workload Identity in AKS, EKS oder 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

Apigee Hybrid verwendet die folgenden Dienstkonten:

Prod

Dienstkonto IAM-Rollen Apigee Helm-Diagramm
apigee-cassandra Storage-Objekt-Administrator apigee-datastore
apigee-logger Log-Autor apigee-telemetry
apigee-mart Apigee Connect Agent apigee-org
apigee-metrics Monitoring-Messwert-Autor apigee-telemetry
apigee-runtime Keine Rolle erforderlich apigee-env
apigee-synchronizer Apigee Synchronizer Manager apigee-env
apigee-udca Apigee Analytics-Agent apigee-org
apigee-watcher Apigee-Laufzeit-Agent apigee-org

Non-prod

Dienstkonto IAM-Rollen Apigee Helm-Diagramm
apigee-non-prod Storage-Objekt-Administrator
Log-Autor
Apigee Connect-Agent
Monitoring-Messwert-Autor
Apigee Synchronizer-Manager
Apigee Analytics Agent
Apigee-Laufzeit-Agent
apigee-datastore
apigee-telemetry
apigee-org
apigee-env

Das create-service-account-Tool

Apigee stellt das Tool create-service-account im Verzeichnis apigee-operator/etc/tools bereit:

$APIGEE_HELM_CHARTS_HOME/
    └── apigee-operator/
        └── etc/
            └── tools/
                └── create-service-account

Dieses Tool erstellt die Dienstkonten, weist jedem Konto die IAM-Rollen zu und lädt die Zertifikatsdateien im JSON-Format für jedes Konto herunter.

Prüfen Sie, ob Sie create-service-account ausführen können. Wenn Sie gerade die Diagramme heruntergeladen haben, befindet sich die Datei create-service-account möglicherweise nicht in einem ausführbaren Modus. Führen Sie im Verzeichnis APIGEE_HELM_CHARTS_HOME den folgenden Befehl aus:

$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/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 $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account

Dienstkonten erstellen

Da Helm keine Referenzdateien außerhalb des Diagrammverzeichnisses unterstützt, erstellen Sie jede Dienstkontozertifikatdatei im Diagrammverzeichnis für die entsprechende Hybridkomponente.

Wählen Sie für die nächsten Schritte aus, ob Sie eine Produktions- oder eine Nicht-Produktionsinstallation konfigurieren.

Prod

  1. Prüfen Sie, ob die Umgebungsvariable PROJECT_ID definiert ist.
    echo $PROJECT_ID

    Das Feld create-service-account tool uses the value of thePROJECT_ID environment variable . Ist sie nicht definiert, definieren Sie sie entweder mit der ID Ihrer Google Cloud-Projekt-ID oder fügen Sie den create-service-account-Befehlen das Flag --project-id my_project_id hinzu.

  2. Erstellen Sie die Dienstkonten mit den folgenden Befehlen, wobei $APIGEE_HELM_CHARTS_HOME der Pfad ist, in den Sie die Apigee Helm-Diagramme heruntergeladen haben. Sie werden möglicherweise aufgefordert, jedes Dienstkonto zu erstellen. Antworten Sie mit y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-cassandra \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-datastore
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-logger \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-telemetry
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-mart \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-metrics \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-telemetry
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-runtime \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-env
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-synchronizer \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-env
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-udca \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-watcher \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
  3. Prüfen Sie, ob die Dienstkontodateien in den richtigen Verzeichnissen erstellt wurden. Prüfen Sie dazu den Inhalt der Verzeichnisse der einzelnen Diagramme. Die Ausgabe sollte so aussehen:
    ls ./apigee-datastore
    Chart.yaml  my_project_id-apigee-cassandra.json  templates  values.yaml
    
    ls ./apigee-telemetry
    Chart.yaml  my_project_id-apigee-logger.json  my_project_id-apigee-metrics.json  templates  values.yaml
    
    ls ./apigee-org
    Chart.yaml                      my_project_id-apigee-udca.json     templates
    my_project_id-apigee-mart.json  my_project_id-apigee-watcher.json  values.yaml
    
    ls ./apigee-env
    Chart.yaml  my_project_id-apigee-runtime.json  my_project_id-apigee-synchronizer.json  templates  values.yaml
    

Non-prod

  1. Prüfen Sie, ob die Umgebungsvariable PROJECT_ID definiert ist.
    echo $PROJECT_ID

    Das Feld create-service-account tool uses the value of thePROJECT_ID environment variable . Ist sie nicht definiert, definieren Sie sie entweder mit der ID Ihrer Google Cloud-Projekt-ID oder fügen Sie den create-service-account-Befehlen das Flag --project-id my_project_id hinzu.

  2. Erstellen Sie das Dienstkonto mit dem folgenden Befehl, wobei $APIGEE_HELM_CHARTS_HOME der Pfad ist, unter den Sie die Apigee Helm-Diagramme heruntergeladen haben. Sie werden möglicherweise aufgefordert, jedes Dienstkonto zu erstellen. Antworten Sie mit y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env non-prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-datastore
  3. Prüfen Sie den Namen der Dienstkontodatei, die im Verzeichnis apigee-datastore erstellt wurde:
    ls $APIGEE_HELM_CHARTS_HOME/apigee-datastore
    Chart.yaml  my_project_id-apigee-non-prod.json  templates  values.yaml
  4. Kopieren Sie die Dienstkontodatei in die anderen Diagrammverzeichnisse, die darauf verweisen müssen:
    cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME.json $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
    cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME.json $APIGEE_HELM_CHARTS_HOME/apigee-org/
    cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME.json $APIGEE_HELM_CHARTS_HOME/apigee-env/

Weitere Informationen zu Dienstkonten und zum create-service-account-Tool finden Sie unter:

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.

Nächster Schritt

1 2 3 4 (WEITER) Schritt 5: TLS-Zertifikate erstellen 6 7 8 9 10 11 12