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, runtime, mart, metrics, mint, udca e così via hanno ciascuno il proprio account di serviziot.

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 tre metodi di autenticazione degli account di servizio Google:

Workload Identity su AKS, EKS o GKE

Per le installazioni di Apigee hybrid su GKE, Google Cloud offre un'opzione chiamata Workload Identity per autenticare i componenti di runtime ibrido. Questa opzione non utilizza i file di certificato scaricati per autenticare i service account. Associa invece i service account Google Cloud creati in questo passaggio ai service account Kubernetes nel cluster Kubernetes. Consulta Attivazione di Workload Identity su GKE o Attivazione della federazione delle identità per i carichi di lavoro su AKS ed EKS

Crea i service account

Apigee Hybrid utilizza i seguenti service account:

Prod

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
(v1.14.3 e versioni successive)
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

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.

Prod

  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 attivi la monetizzazione per Apigee hybrid (Apigee hybrid v1.14.3 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  PROJECT_ID-apigee-cassandra.json  templates  values.yaml
    
    ls ./apigee-telemetry
    Chart.yaml  PROJECT_ID-apigee-logger.json  PROJECT_ID-apigee-metrics.json  templates  values.yaml
    
    ls ./apigee-org
    Chart.yaml                      PROJECT_ID-apigee-udca.json     templates
    PROJECT_ID-apigee-mart.json  PROJECT_ID-apigee-mint-task-scheduler.json  PROJECT_ID-apigee-watcher.json  values.yaml
    
    ls ./apigee-env
    Chart.yaml  PROJECT_ID-apigee-runtime.json  PROJECT_ID-apigee-synchronizer.json my_project_id-apigee-udca.json  templates  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/

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: crea i certificati TLS 6 7 8 9 10 11