Questo passaggio spiega come creare gli account di servizio Google Cloud necessari per il funzionamento di Apigee hybrid.
Panoramica
Apigee hybrid utilizza gli account di servizio 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 di produzione"). Un'installazione in produzione è ottimizzata per una maggiore capacità di utilizzo, spazio di archiviazione e scalabilità. Un'installazione non di produzione utilizza meno risorse ed è principalmente a scopo di apprendimento e dimostrazione.
Quando crei e configuri account di servizio per Apigee hybrid, è importante conoscere il tipo di installazione che hai scelto come target.
Per le installazioni di produzione, consigliamo di creare un account di servizio separato per ogni componente ibrido Apigee. 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 valido per tutti i componenti.
Per scoprire di più sugli account di servizio utilizzati da Apigee e sui ruoli loro assegnati, vedi Account di servizio e ruoli utilizzati da componenti ibridi.
Workload Identity su GKE
Per le installazioni ibride di Apigee su GKE, Google Cloud offre un'opzione denominata identità del carico di lavoro per autenticare i componenti di runtime ibridi. Questa opzione non utilizza i file dei certificati scaricati per autenticare gli account di servizio, ma associa gli account di servizio Google Cloud creati in questo passaggio agli account di servizio Kubernetes nel cluster Kubernetes.
Workload Identity è disponibile solo nelle installazioni GKE.
Crea gli account di servizio
Utilizza le seguenti procedure per creare gli account di servizio Google Cloud per la tua installazione ibrida:
- Lo strumento
create-service-account
:se stai installando Apigee hybrid su una piattaforma diversa da GKE o se esegui l'installazione su GKE, ma non vuoi utilizzare Workload Identity, utilizza lo strumento fornito da Apigee,create-service-account
, per creare gli account di servizio, assegnare i ruoli agli account di servizio e creare e scaricare i file chiave per l'account di servizio con un solo comando. Segui le procedure descritte in
Creare account di servizio 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 ogcloud
per creare gli account di servizio senza scaricare i file dei certificati. Segui le procedure descritte in
Creare account di servizio nella Google Cloud Console o congcloud
.
Crea account di servizio 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 Workload Identity.
In caso contrario, passa a Creare account di servizio nella 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-account
legge la variabile di ambiente PROJECT_ID per creare gli account di servizio nel progetto corretto.echo $HYBRID_FILES
echo $PROJECT_ID
- Crea l'account di servizio con il comando seguente:
Non di produzione
Questo comando crea un singolo account di servizio denominato
apigee-non-prod
da utilizzare in un'installazione non di produzione e scarica il file della chiave per l'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 singoli account di servizio per un'installazione di production e scarica i file chiave per gli account di servizio nella directory
$HYBRID_FILES/service-accounts
.$HYBRID_FILES/tools/create-service-account --env prod --dir $HYBRID_FILES/service-accounts
Se viene visualizzato questo 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, tuttavia, vengono visualizzati 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 dell'account di servizio sia stata creata utilizzando il seguente comando. Sei responsabile di conservare queste chiavi private in modo sicuro. I nomi file della chiave sono preceduti dal prefisso del nome del 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-account
e su tutte le sue opzioni, vedicreate-service-account
. - Per saperne di più sui concetti di Google Cloud correlati, consulta Creazione e gestione degli account di servizio e Creazione e gestione delle chiavi degli account di servizio.
Crea account di servizio nella Google Cloud Console o con gcloud
Se prevedi di utilizzare l'identità dei carichi di lavoro su GKE per autenticare i componenti di runtime ibridi, non devi creare e scaricare file di certificato per gli account di servizio. Pertanto, non utilizzare lo strumento create-service-account
. Crea invece gli account di servizio nella Google Cloud Console o con l'API IAM in gcloud
.
In caso contrario, passa a Creare account di servizio utilizzando create-service-account
.
Console
Segui le istruzioni in Creare account di servizio per creare i seguenti account di servizio e assegnare loro i ruoli seguenti:
Non di produzione
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 |
Amministratore oggetti Storage |
apigee-logger |
Writer log |
apigee-mart |
Agente Apigee Connect |
apigee-metrics |
Writer metriche Monitoring |
apigee-runtime |
Nessun ruolo richiesto |
apigee-synchronizer |
Gestore sincronizzatore Apigee |
apigee-udca |
Agente di analisi Apigee |
apigee-watcher |
Agente di runtime Apigee |
gcloud
Utilizza i comandi seguenti per creare gli account di servizio e assegnare i ruoli IAM.
Non di produzione
Per le installazioni non di produzione:
- Crea l'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 all'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 comandi seguenti per creare ciascun account di servizio e assegnare il ruolo IAM corrispondente.
- Account di servizio
apigee-cassandra
: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"
- Account di servizio
apigee-logger
: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"
- Account di servizio
apigee-mart
: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"
- Account di servizio
apigee-metrics
: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"
- Account di servizio
apigee-runtime
:gcloud iam service-accounts create apigee-runtime \ --display-name="apigee-runtime" \ --project=$PROJECT_ID
- Account di servizio
apigee-synchronizer
: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"
- Account di servizio
apigee-udca
: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"
- Account di servizio
apigee-watcher
: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 account di servizio con gcloud
, vedi
Creare account di servizio.
Ora hai creato gli account di servizio e assegnato i ruoli richiesti dai componenti ibridi Apigee. Quindi, crea i certificati TLS richiesti dal gateway ibrido in entrata.
<br-2-0 <br-1 <br-1 <br-1 <br-1 <br-1 <br-1 <br-1 <br-1 <br- class="1-0-1 <br- class="1-0-1 <br- class="1-0-1 <br- class="1-0-1 1 1