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, 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
- 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
al comandocreate-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 \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
- 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
- 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
al comandocreate-service-account
. -
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 cony
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env non-prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
- 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
- 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 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
- 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 my-project-apigee-cassandra.json templates values.yamlls ./apigee-telemetry
Chart.yaml my-project-apigee-metrics.json values.yaml my-project-apigee-logger.json templatesls ./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.yamlls ./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
- 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/
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
- 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
al comandocreate-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 \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
- 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
- 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
al comandocreate-service-account
. -
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 cony
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env non-prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
- 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
- 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
al comandocreate-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 \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
-
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
- 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
al comandocreate-service-account
. -
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 cony
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env non-prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
-
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
- 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
al comandocreate-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 \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
-
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
- 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
al comandocreate-service-account
. -
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 cony
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env non-prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
-
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.