Panoramica
Questo passaggio spiega come creare gli account di servizio Google Cloud necessari per Apigee hybrid per operare e assegnare loro i ruoli IAM appropriati.
Questa procedura utilizza le due seguenti variabili di ambiente definite in 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 in Passaggio 2: scarica i grafici Helm di Apigee.$PROJECT_ID
: l'ID del tuo progetto Google Cloud, definito in Parte 1: configurazione di progetto e organizzazione - Passaggio 1: abilita le API.
Ambienti di produzione e non di produzione
Questa guida fa riferimento ai contenuti Produzione ("Produzione") e Non di produzione ("Non di produzione") e le installazioni di app. Un'installazione in produzione è ottimizzata per una maggiore capacità di utilizzo, o scalabilità. Un'installazione non di produzione utilizza meno risorse ed è principalmente destinata a scopi didattici e dimostrativi.
Quando crei e configuri gli account di servizio per Apigee hybrid, è importante conoscere il tipo di installazione che hai scelto come target.
Per le installazioni di produzione, ti consigliamo di creare un account di servizio separato per ogni componente Apigee ibrido. Ad esempio, runtime, mart, metriche, udca e così via hanno ciascuno il proprio account di servizio.
Per le installazioni non di produzione, puoi creare un singolo account di servizio che si applichi a tutti i componenti.
Per scoprire di più sugli account di servizio utilizzati da Apigee e sui ruoli che vengono assegnati, consulta Account di servizio e ruoli utilizzati dai componenti ibride.
Autenticazione degli account di servizio
Apigee hybrid supporta tre metodi di autenticazione degli account di servizio Google:
Workload Identity su AKS, EKS o GKE
Per le installazioni ibride di Apigee su GKE, Google Cloud offre un'opzione denominata Workload Identity per autenticare il runtime ibrido componenti. Questa opzione non utilizza i file dei certificati scaricati per autenticare gli account di servizio, ma associa gli account di servizio Google Cloud che crei in questo passaggio agli account di servizio Kubernetes nel cluster Kubernetes. Consulta Attivare Workload Identity su GKE o Attivare la federazione delle identità per i carichi di lavoro su AKS ed EKS
Crea gli account di servizio
Apigee Hybrid utilizza i seguenti account di servizio:
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-runtime |
Nessun ruolo richiesto | apigee-env |
apigee-synchronizer |
Gestore sincronizzatore Apigee | apigee-env |
apigee-udca |
Apigee Analytics Agent | apigee-org apigee-env |
apigee-watcher |
Apigee Runtime Agent | apigee-org |
Non prod
Service account | Ruoli IAM | Grafico Helm di Apigee |
---|---|---|
apigee-non-prod |
Amministratore oggetti Storage Writer log Agente Apigee Connect Writer metriche Monitoring Gestore sincronizzatore Apigee Agente Apigee Analytics Agente di runtime Apigee |
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 gli account di servizio, assegna i ruoli IAM a ciascun account e scarica i file del certificato in formato JSON per ciascun 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 il seguente comando:
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account --help
Se l'output indica permission denied
, devi rendere il file eseguibile, 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 gli account di servizio
Poiché Helm non supporta i riferimenti ai file esterni alla directory del grafico, dovrai creare ogni file del 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
- Assicurati che la variabile di ambiente
PROJECT_ID
sia definita.echo $PROJECT_ID
L'elemento
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 gli account di servizio con i comandi seguenti, dove
$APIGEE_HELM_CHARTS_HOME
è il percorso in cui hai scaricato i grafici Apigee Helm. È possibile che ti venga richiesto di creare ogni account di servizio. Rispondiy
.$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
- Copia il file JSON
apigee-udca
nella directory del graficoapigee-env
. È necessario sia per le operazioni a livello di organizzazione sia per quelle a livello di 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 il file
contenuti della directory di ciascun grafico. L'output dovrebbe essere simile al seguente:
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-watcher.json values.yamlls ./apigee-env
Chart.yaml PROJECT_ID-apigee-runtime.json PROJECT_ID-apigee-synchronizer.json templates values.yaml
Non prod
- Assicurati che la variabile di ambiente
PROJECT_ID
sia definita.echo $PROJECT_ID
L'elemento
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 l'account di servizio con il seguente comando, dove
$APIGEE_HELM_CHARTS_HOME
è il percorso in cui hai scaricato i grafici Helm di Apigee. Ti potrebbe essere richiesto per creare ciascun 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 dell'account di servizio nelle altre directory del grafico a cui far riferimento:
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/
Per ulteriori informazioni sugli account di servizio e sullo strumento create-service-account
, consulta:
Ora hai creato gli account di servizio e hai assegnato i ruoli richiesti da Apigee hybrid componenti. Quindi, crea i certificati TLS richiesti dal gateway ibrido in entrata.