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.
$APIGEE_HELM_CHARTS_HOME
: la directory in cui hai scaricato i grafici Helm di Apigee, definiti nel passaggio 2: scarica i grafici Helm di Apigee.$PROJECT_ID
: l'ID del tuo progetto Google Cloud, definito in Parte 1: Configurazione del progetto e dell'organizzazione - Passaggio 1: abilita le API.
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
- Assicurati che la variabile di ambiente
PROJECT_ID
sia definita.echo $PROJECT_ID
Il
create-service-account tool uses the value of the
. Se non è definito, definiscilo con l'ID del tuo progetto Google Cloud o aggiungi il flagPROJECT_ID
environment variable--project-id PROJECT_ID
ai comandicreate-service-account
. -
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 cony
.$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
- Copia il file JSON
apigee-udca
nella directory dei graficiapigee-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/
- 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.yamlls ./apigee-telemetry
Chart.yaml PROJECT_ID-apigee-logger.json PROJECT_ID-apigee-metrics.json templates values.yamlls ./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.yamlls ./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
- Assicurati che la variabile di ambiente
PROJECT_ID
sia definita.echo $PROJECT_ID
Il
create-service-account tool uses the value of the
. Se non è definito, definiscilo con l'ID del tuo progetto Google Cloud o aggiungi il flagPROJECT_ID
environment variable--project-id PROJECT_ID
ai comandicreate-service-account
. -
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 cony
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env non-prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-datastore
- 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
- 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.