Passaggio 4: crea gli account di servizio

Panoramica

Questo passaggio spiega come creare i service account Google Cloud necessari per il funzionamento di Apigee Hybrid e assegnare loro i ruoli IAM appropriati.

Questa procedura utilizza le due variabili di ambiente seguenti definite nel passaggio 2: scarica i grafici Helm di Apigee. Queste variabili sono facoltative. Se non le hai definite, sostituisci il percorso della directory appropriato per ogni variabile negli esempi di codice.

Ambienti di produzione e non di produzione

Questa guida si riferisce alle installazioni di produzione ("Prod") e non di produzione ("Non-prod"). Un'installazione di produzione è ottimizzata per una maggiore capacità di utilizzo, archiviazione e scalabilità. Un'installazione non di produzione utilizza meno risorse ed è destinata principalmente all'apprendimento e a scopi dimostrativi.

Quando crei e configuri i service account per Apigee hybrid, è importante tenere presente il tipo di installazione a cui ti rivolgi.

Per le installazioni di produzione, ti consigliamo di creare un account di servizio separato per ogni componente di Apigee Hybrid. Ad esempio, ogni componente di runtime, mart, metrics, mint, udca e così via ha unaccount di serviziot dedicato.

Per le installazioni non di produzione, puoi creare un singolo account di servizio che si applichi a tutti i componenti.

Per saperne di più sui service account utilizzati da Apigee e sui ruoli assegnati, consulta Service account e ruoli utilizzati dai componenti ibridi.

Autenticazione dei service account

Apigee hybrid supporta i seguenti metodi di autenticazione degli account di servizio Google:

  • Secret Kubernetes
  • File della chiave JSON dell'account di servizio ("file JSON" nelle schede di selezione nella sezione seguente).
  • Vault
  • Workload Identity Federation for GKE ("WIF for GKE" nelle schede di selezione nella sezione seguente).
  • Federazione delle identità per i workload su altre piattaforme ("WIF su altre piattaforme" nelle schede di selezione della sezione seguente).

Nella sezione seguente, scegli la procedura per il tipo di autenticazione che intendi utilizzare.

Crea i service account

Apigee Hybrid utilizza i seguenti service account:

Produzione

Service account Ruoli IAM Grafico Helm di Apigee
apigee-cassandra Storage Object Admin apigee-datastore
apigee-logger Logs Writer apigee-telemetry
apigee-mart Apigee Connect Agent apigee-org
apigee-metrics Monitoring Metric Writer apigee-telemetry
apigee-mint-task-scheduler
(obbligatorio solo se utilizzi la monetizzazione per Apigee hybrid)
Nessun ruolo richiesto apigee-org
apigee-runtime Nessun ruolo richiesto apigee-env
apigee-synchronizer Gestore sincronizzatore Apigee
Storage Object Admin
apigee-env
apigee-udca Apigee Analytics Agent apigee-org
apigee-env
apigee-watcher Apigee Runtime Agent apigee-org

Non di produzione

Service account Ruoli IAM Grafico Helm di Apigee
apigee-non-prod Amministratore oggetti Storage
Logs Writer
Agente Apigee Connect
Monitoring Metric Writer
Gestore sincronizzatore Apigee
Agente Apigee Analytics
Agente Apigee Runtime
apigee-datastore
apigee-telemetry
apigee-org
apigee-env

Lo strumento create-service-account

Apigee fornisce uno strumento, create-service-account, nella directory apigee-operator/etc/tools:

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

Questo strumento crea i service account, assegna i ruoli IAM a ogni account e scarica i file dei certificati in formato JSON per ogni account.

Verifica di poter eseguire create-service-account. Se hai appena scaricato i grafici, il file create-service-account potrebbe non essere in modalità eseguibile. Nella directory APIGEE_HELM_CHARTS_HOME esegui questo comando:

$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account --help

Se l'output indica permission denied, devi rendere eseguibile il file, ad esempio con chmod in Linux, macOS o UNIX o in Esplora risorse di Windows o con il comando icacls in Windows. Ad esempio:

chmod +x $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account

Crea i service account

Scegli la procedura per il metodo di autenticazione del account di servizio che intendi utilizzare nell'installazione. Per ulteriori informazioni, vedi Metodi di autenticazione del service account in Apigee Hybrid.

Secret Kubernetes

Per preparare i file della chiave del account di servizio da archiviare in Kubernetes Secrets, puoi utilizzare lo strumento create-service-account per creare i file della chiave del account di servizio con il flag --dir per creare una directory per i file della chiave.

Produzione

  1. Assicurati che la variabile di ambiente PROJECT_ID sia definita.
    echo $PROJECT_ID

    Il create-service-account tool uses the value of thePROJECT_ID environment variable . Se non è definito, definiscilo con l'ID del tuo progetto Google Cloud o aggiungi il flag --project-id PROJECT_ID al comando create-service-account.

  2. Crea i service account con i seguenti comandi, dove $APIGEE_HELM_CHARTS_HOME è il percorso in cui hai scaricato i grafici Helm di Apigee. Potrebbe esserti chiesto di creare ogni account di servizio. Rispondi con y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. Verifica che i file dell'account di servizio siano stati creati controllando i contenuti della directory service-accounts. L'output dovrebbe avere il seguente aspetto:
    ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
    my-project-apigee-cassandra.json            my-project-apigee-runtime.json
    my-project-apigee-logger.json               my-project-apigee-synchronizer.json
    my-project-apigee-mart.json                 my-project-apigee-udca.json
    my-project-apigee-metrics.json              my-project-apigee-watcher.json
    my-project-apigee-mint-task-scheduler.json

Non di produzione

  1. Assicurati che la variabile di ambiente PROJECT_ID sia definita.
    echo $PROJECT_ID

    Il create-service-account tool uses the value of thePROJECT_ID environment variable . Se non è definito, definiscilo con l'ID del tuo progetto Google Cloud o aggiungi il flag --project-id PROJECT_ID al comando create-service-account.

  2. Crea i service account con il seguente comando, dove $APIGEE_HELM_CHARTS_HOME è il percorso in cui hai scaricato i grafici Helm di Apigee. Potrebbe esserti chiesto di creare l'account di servizio. Rispondi con y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env non-prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. Verifica che il file dell'account di servizio sia stato creato controllando i contenuti della directory service-accounts. L'output dovrebbe avere il seguente aspetto:
    ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
    my-project-apigee-non-prod.json

File JSON

Poiché Helm non supporta il riferimento a file esterni alla directory del grafico, creerai ogni file di certificato dell'account di servizio nella directory del grafico per il componente ibrido corrispondente.

Per i passaggi successivi, scegli se stai configurando un'installazione di produzione o non di produzione.

Produzione

  1. Assicurati che la variabile di ambiente PROJECT_ID sia definita.
    echo $PROJECT_ID

    Il create-service-account tool uses the value of thePROJECT_ID environment variable . Se non è definito, definiscilo con l'ID del tuo progetto Google Cloud o aggiungi il flag --project-id PROJECT_ID ai comandi create-service-account.

  2. Crea i service account con i seguenti comandi, dove $APIGEE_HELM_CHARTS_HOME è il percorso in cui hai scaricato i grafici Helm di Apigee. Potrebbe esserti chiesto di creare ogni account di servizio. Rispondi con 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-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

    Se stai attivando la monetizzazione per Apigee hybrid (Apigee hybrid v1.15.1 e versioni successive):

    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-mint-task-scheduler \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
    
  3. Copia il file JSON apigee-udca nella directory dei grafici apigee-env. È necessario sia per le operazioni con ambito organizzazione sia per quelle con ambito ambiente.
    cp $APIGEE_HELM_CHARTS_HOME/apigee-org/$PROJECT_ID-apigee-udca.json $APIGEE_HELM_CHARTS_HOME/apigee-env/
  4. Verifica che i file dell'account di servizio siano stati creati nelle directory corrette controllando i contenuti di ciascuna directory del grafico. L'output dovrebbe avere il seguente aspetto:
    ls ./apigee-datastore
    Chart.yaml  my-project-apigee-cassandra.json  templates  values.yaml
    
    ls ./apigee-telemetry
    Chart.yaml                     my-project-apigee-metrics.json  values.yaml
    my-project-apigee-logger.json  templates
    
    ls ./apigee-org
    Chart.yaml                                  my-project-apigee-udca.json
    my-project-apigee-mart.json                 my-project-apigee-watcher.json
    my-project-apigee-mint-task-scheduler.json  values.yaml
    
    ls ./apigee-env
    Chart.yaml                      my-project-apigee-synchronizer.json  templates
    my-project-apigee-runtime.json  my-project-apigee-udca.json          values.yaml
    

Non di produzione

  1. Assicurati che la variabile di ambiente PROJECT_ID sia definita.
    echo $PROJECT_ID

    Il create-service-account tool uses the value of thePROJECT_ID environment variable . Se non è definito, definiscilo con l'ID del tuo progetto Google Cloud o aggiungi il flag --project-id PROJECT_ID ai comandi create-service-account.

  2. Crea il account di servizio con il seguente comando, dove $APIGEE_HELM_CHARTS_HOME è il percorso in cui hai scaricato i grafici Helm di Apigee. Potrebbe esserti chiesto di creare ogni account di servizio. Rispondi con y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env non-prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-datastore
  3. Verifica il nome del file dell'account di servizio creato nella directory apigee-datastore:
    ls $APIGEE_HELM_CHARTS_HOME/apigee-datastore
    Chart.yaml  PROJECT_ID-apigee-non-prod.json  templates  values.yaml
  4. Copia il file del account di servizio nelle altre directory dei grafici che dovranno farvi riferimento:
    cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
    cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME $APIGEE_HELM_CHARTS_HOME/apigee-org/
    cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME $APIGEE_HELM_CHARTS_HOME/apigee-env/

Vault

Per preparare i file della chiave del account di servizio da archiviare in Vault, puoi utilizzare lo strumento create-service-account per creare i file della chiave delaccount di serviziot con il flag --dir per creare una directory per i file della chiave.

Produzione

  1. Assicurati che la variabile di ambiente PROJECT_ID sia definita.
    echo $PROJECT_ID

    Il create-service-account tool uses the value of thePROJECT_ID environment variable . Se non è definito, definiscilo con l'ID del tuo progetto Google Cloud o aggiungi il flag --project-id PROJECT_ID al comando create-service-account.

  2. Crea i service account con i seguenti comandi, dove $APIGEE_HELM_CHARTS_HOME è il percorso in cui hai scaricato i grafici Helm di Apigee. Potrebbe esserti chiesto di creare ogni account di servizio. Rispondi con y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. Verifica che i file dell'account di servizio siano stati creati controllando i contenuti della directory service-accounts. L'output dovrebbe avere il seguente aspetto:
    ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
    my-project-apigee-cassandra.json            my-project-apigee-runtime.json
    my-project-apigee-logger.json               my-project-apigee-synchronizer.json
    my-project-apigee-mart.json                 my-project-apigee-udca.json
    my-project-apigee-metrics.json              my-project-apigee-watcher.json
    my-project-apigee-mint-task-scheduler.json
    

Non di produzione

  1. Assicurati che la variabile di ambiente PROJECT_ID sia definita.
    echo $PROJECT_ID

    Il create-service-account tool uses the value of thePROJECT_ID environment variable . Se non è definito, definiscilo con l'ID del tuo progetto Google Cloud o aggiungi il flag --project-id PROJECT_ID al comando create-service-account.

  2. Crea i service account con il seguente comando, dove $APIGEE_HELM_CHARTS_HOME è il percorso in cui hai scaricato i grafici Helm di Apigee. Potrebbe esserti chiesto di creare l'account di servizio. Rispondi con y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env non-prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. Verifica che il file dell'account di servizio sia stato creato controllando i contenuti della directory service-accounts. L'output dovrebbe avere il seguente aspetto:
    ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
    my-project-apigee-non-prod.json

WIF per GKE

Crea i service account per l'installazione con i seguenti comandi:

Produzione

  1. Assicurati che la variabile di ambiente PROJECT_ID sia definita.
    echo $PROJECT_ID

    Il create-service-account tool uses the value of thePROJECT_ID environment variable . Se non è definito, definiscilo con l'ID del tuo progetto Google Cloud o aggiungi il flag --project-id PROJECT_ID al comando create-service-account.

  2. Crea i service account con i seguenti comandi, dove $APIGEE_HELM_CHARTS_HOME è il percorso in cui hai scaricato i grafici Helm di Apigee. Potrebbe esserti chiesto di creare ogni account di servizio. Rispondi con y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. Verifica la creazione dei service account Google con il seguente comando:
    gcloud iam service-accounts list --project $PROJECT_ID

    L'output dovrebbe essere simile al seguente:

    DISPLAY NAME                EMAIL                                                          DISABLED
    apigee-cassandra            apigee-cassandra@my-project.iam.gserviceaccount.com            False
    apigee-mart                 apigee-mart@my-project.iam.gserviceaccount.com                 False
    apigee-metrics              apigee-metrics@my-project.iam.gserviceaccount.com              False
    apigee-mint-task-scheduler  apigee-mint-task-scheduler@my-project.iam.gserviceaccount.com  False
    apigee-runtime              apigee-runtime@my-project.iam.gserviceaccount.com              False
    apigee-synchronizer         apigee-synchronizer@my-project.iam.gserviceaccount.com         False
    apigee-udca                 apigee-udca@my-project.iam.gserviceaccount.com                 False
    apigee-watcher              apigee-watcher@my-project.iam.gserviceaccount.com              False
    

Non di produzione

  1. Assicurati che la variabile di ambiente PROJECT_ID sia definita.
    echo $PROJECT_ID

    Il create-service-account tool uses the value of thePROJECT_ID environment variable . Se non è definito, definiscilo con l'ID del tuo progetto Google Cloud o aggiungi il flag --project-id PROJECT_ID al comando create-service-account.

  2. Crea i service account con il seguente comando, dove $APIGEE_HELM_CHARTS_HOME è il percorso in cui hai scaricato i grafici Helm di Apigee. Potrebbe esserti chiesto di creare l'account di servizio. Rispondi con y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env non-prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. Verifica la creazione dei service account Google con il seguente comando:
    gcloud iam service-accounts list --project $PROJECT_ID

    L'output dovrebbe essere simile al seguente:

    DISPLAY NAME         EMAIL                                                   DISABLED
    apigee-non-prod      apigee-non-prod@my-project.iam.gserviceaccount.com      False
    

(Facoltativo) Non avrai bisogno dei file della chiave del account di servizio per Workload Identity Federation for GKE. Al termine, puoi eliminare la directory service-accounts.

WIF su altre piattaforme

Crea i service account per l'installazione con i seguenti comandi:

Produzione

  1. Assicurati che la variabile di ambiente PROJECT_ID sia definita.
    echo $PROJECT_ID

    Il create-service-account tool uses the value of thePROJECT_ID environment variable . Se non è definito, definiscilo con l'ID del tuo progetto Google Cloud o aggiungi il flag --project-id PROJECT_ID al comando create-service-account.

  2. Crea i service account con i seguenti comandi, dove $APIGEE_HELM_CHARTS_HOME è il percorso in cui hai scaricato i grafici Helm di Apigee. Potrebbe esserti chiesto di creare ogni account di servizio. Rispondi con y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. Verifica la creazione dei service account Google con il seguente comando:
    gcloud iam service-accounts list --project $PROJECT_ID

    L'output dovrebbe essere simile al seguente:

    DISPLAY NAME                EMAIL                                                          DISABLED
    apigee-cassandra            apigee-cassandra@my-project.iam.gserviceaccount.com            False
    apigee-mart                 apigee-mart@my-project.iam.gserviceaccount.com                 False
    apigee-metrics              apigee-metrics@my-project.iam.gserviceaccount.com              False
    apigee-mint-task-scheduler  apigee-mint-task-scheduler@my-project.iam.gserviceaccount.com  False
    apigee-runtime              apigee-runtime@my-project.iam.gserviceaccount.com              False
    apigee-synchronizer         apigee-synchronizer@my-project.iam.gserviceaccount.com         False
    apigee-udca                 apigee-udca@my-project.iam.gserviceaccount.com                 False
    apigee-watcher              apigee-watcher@my-project.iam.gserviceaccount.com              False
    

Non di produzione

  1. Assicurati che la variabile di ambiente PROJECT_ID sia definita.
    echo $PROJECT_ID

    Il create-service-account tool uses the value of thePROJECT_ID environment variable . Se non è definito, definiscilo con l'ID del tuo progetto Google Cloud o aggiungi il flag --project-id PROJECT_ID al comando create-service-account.

  2. Crea i service account con il seguente comando, dove $APIGEE_HELM_CHARTS_HOME è il percorso in cui hai scaricato i grafici Helm di Apigee. Potrebbe esserti chiesto di creare l'account di servizio. Rispondi con y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env non-prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. Verifica la creazione dei service account Google con il seguente comando:
    gcloud iam service-accounts list --project $PROJECT_ID

    L'output dovrebbe essere simile al seguente:

    DISPLAY NAME         EMAIL                                                   DISABLED
    apigee-non-prod      apigee-non-prod@my-project.iam.gserviceaccount.com      False
    

(Facoltativo) Non avrai bisogno dei file della chiave del account di servizio per Workload Identity Federation for GKE. Al termine, puoi eliminare la directory service-accounts.

Per saperne di più sui service account e sullo strumento create-service-account, consulta:

Ora hai creato i service account e assegnato i ruoli necessari ai componenti di Apigee Hybrid. Successivamente, crea i certificati TLS richiesti dal gateway in entrata ibrido.

Passaggio successivo

1 2 3 4 (AVANTI) Passaggio 5: configura l'account di servizio account 6 7 8 9 10 11