Questo passaggio spiega come creare gli account di servizio Google Cloud necessari per il funzionamento di Apigee Hybrid.
Panoramica
Apigee Hybrid utilizza service account Google Cloud per consentire ai componenti ibridi di comunicare effettuando chiamate API autorizzate.
Ambienti di produzione e non di produzione
Questa guida fa riferimento alle installazioni di produzione ("Prod") e non di produzione ("Non-prod"). Un'installazione di produzione è ottimizzata per una maggiore capacità di utilizzo, spazio di 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, metriche, udca e così via ottengono 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 scoprire di più sui service account utilizzati da Apigee e sui ruoli assegnati, consulta Service account e ruoli utilizzati dai componenti ibridi.
Workload Identity su GKE
Per le installazioni ibride di Apigee 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.
Workload Identity è disponibile solo sulle installazioni GKE.
Crea i service account
Utilizza le seguenti procedure per creare i service account Google Cloud per l'installazione ibrida:
- Lo strumento
create-service-account:se stai installando Apigee hybrid su una piattaforma diversa da GKE o se stai eseguendo l'installazione su GKE ma non vuoi utilizzare l'identità del workload, utilizza lo strumento fornito da Apigee,create-service-account, per creare i service account, assegnare i ruoli ai service account e creare e scaricare i file delle chiavi per il service account in un unico comando. Segui le procedure descritte in
Creare service account utilizzandocreate-service-account. - Google Cloud console o
gcloud: se stai installando Apigee hybrid su GKE e prevedi di utilizzare Workload Identity, utilizza Google Cloud console ogcloudper creare i service account senza scaricare i file di certificato. Segui le procedure descritte in
Creare service account in Google Cloud console o congcloud.
Crea service account utilizzando create-service-account
Utilizza lo strumento create-service-account nelle seguenti circostanze:
- Stai eseguendo l'installazione su una piattaforma diversa da GKE
- Stai eseguendo l'installazione su GKE, ma non prevedi di utilizzare l'identità del workload.
Altrimenti, vai a Creare account di servizio in Google Cloud console o con gcloud.
- Assicurati che le variabili di ambiente HYBRID_FILES e PROJECT_ID siano impostate.
PROJECT_ID deve essere impostato sull'ID progetto Google Cloud, perché lo strumento
create-service-accountlegge la variabile di ambiente PROJECT_ID per creare gli account di servizio nel progetto corretto.echo $HYBRID_FILES
echo $PROJECT_ID - Crea il account di servizio con il seguente comando:
Non di produzione
Questo comando crea un singolo account di servizio denominato
apigee-non-prodda utilizzare in un'installazione non di produzione e scarica il file della chiave per il account di servizio nella directory$HYBRID_FILES/service-accounts.$HYBRID_FILES/tools/create-service-account --env non-prod --dir $HYBRID_FILES/service-accounts
Produzione
Questo comando crea tutti i service account individuali per un'installazione di produzione e scarica i file delle chiavi per i service account nella directory
$HYBRID_FILES/service-accounts.$HYBRID_FILES/tools/create-service-account --env prod --dir $HYBRID_FILES/service-accounts
Se visualizzi il seguente prompt, inserisci y:
[INFO]: gcloud configured project ID is project_id. Enter: y to proceed with creating service account in project: project_id Enter: n to abort.
Se è la prima volta che crei un determinato account di servizio, lo strumento lo crea senza ulteriori richieste.
Se, invece, visualizzi il seguente messaggio e prompt, inserisci y per generare nuove chiavi:
[INFO]: Service account apigee-non-prod@project_id.iam.gserviceaccount.com already exists. ... [INFO]: The service account might have keys associated with it. It is recommended to use existing keys. Press: y to generate new keys.(this does not deactivate existing keys) Press: n to skip generating new keys.
-
Verifica che la chiave del account di servizio sia stata creata utilizzando il seguente comando. Sei responsabile di conservare queste
chiavi private in modo sicuro. I nomi dei file delle chiavi hanno come prefisso il nome del tuo progetto Google Cloud.
ls $HYBRID_FILES/service-accounts
Il risultato dovrebbe essere simile al seguente:
project_id-apigee-non-prod.json
- Per scoprire di più su
create-service-accounte su tutte le sue opzioni, consultacreate-service-account. - Per scoprire di più sui concetti correlati di Google Cloud, consulta Creazione e gestione dei service account e Creazione e gestione account di servizio account.
Crea service account in Google Cloud console o con gcloud
Se prevedi di utilizzare Workload Identity su GKE per autenticare i componenti di runtime ibrido, non è necessario creare e scaricare i file di certificato per i service account. Pertanto, non utilizzare lo strumento create-service-account. Crea invece i service account in Google Cloud console o con l'API IAM in gcloud.
In caso contrario, vai a Creare service account utilizzando create-service-account.
Console
Segui le istruzioni riportate in Creare service account per creare i seguenti service account e assegnare loro i seguenti ruoli:
Non prod
Per le installazioni non di produzione:
| Nome account di servizio | Ruoli IAM |
|---|---|
apigee-non-prod |
|
Produzione
Per le installazioni di produzione:
| Installazioni di produzione | |
|---|---|
| Nome account di servizio | Ruoli IAM |
apigee-cassandra |
Storage Object Admin |
apigee-logger |
Logs Writer |
apigee-mart |
Apigee Connect Agent |
apigee-metrics |
Monitoring Metric Writer |
apigee-runtime |
Nessun ruolo richiesto |
apigee-synchronizer |
Apigee Synchronizer Manager |
apigee-udca |
Apigee Analytics Agent |
apigee-watcher |
Apigee Runtime Agent |
gcloud
Utilizza i seguenti comandi per creare i service account e assegnare i ruoli IAM.
Non prod
Per le installazioni non di produzione:
- Crea il account di servizio
apigee-non-prod:gcloud iam service-accounts create apigee-non-prod \ --display-name="apigee-non-prod" \ --project=$PROJECT_ID
- Assegna i ruoli IAM al account di servizio:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/storage.objectAdmin"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/logging.logWriter"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigeeconnect.Agent"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.synchronizerManager"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.analyticsAgent"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.runtimeAgent"
- Verifica le associazioni di ruoli:
gcloud projects get-iam-policy ${PROJECT_ID} \ --flatten="bindings[].members" \ --format='table(bindings.role)' \ --filter="bindings.members:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com"
Produzione
Per le installazioni di produzione:
Utilizza i seguenti comandi per creare ogni account di servizio e assegnare il ruolo IAM corrispondente.
apigee-cassandraaccount di servizio:gcloud iam service-accounts create apigee-cassandra \ --display-name="apigee-cassandra" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-cassandra@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/storage.objectAdmin"
apigee-loggeraccount di servizio:gcloud iam service-accounts create apigee-logger \ --display-name="apigee-logger" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-logger@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/logging.logWriter"
apigee-martaccount di servizio:gcloud iam service-accounts create apigee-mart \ --display-name="apigee-mart" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-mart@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigeeconnect.Agent"
apigee-metricsaccount di servizio:gcloud iam service-accounts create apigee-metrics \ --display-name="apigee-metrics" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-metrics@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter"
apigee-runtimeaccount di servizio:gcloud iam service-accounts create apigee-runtime \ --display-name="apigee-runtime" \ --project=$PROJECT_ID
apigee-synchronizeraccount di servizio:gcloud iam service-accounts create apigee-synchronizer \ --display-name="apigee-synchronizer" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-synchronizer@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.synchronizerManager"
apigee-udcaaccount di servizio:gcloud iam service-accounts create apigee-udca \ --display-name="apigee-udca" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-udca@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.analyticsAgent"
apigee-watcheraccount di servizio:gcloud iam service-accounts create apigee-watcher \ --display-name="apigee-watcher" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-watcher@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.runtimeAgent"
Per saperne di più sulla creazione di service account con gcloud, consulta
Creare service account.
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.
1 2 3 4 (NEXT) Step 5: Create TLS certificates 6 7 8 9 10 11