Passaggio 4: crea gli account di servizio

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 consentono ai componenti ibridi di comunicare effettuando chiamate API autorizzate.

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, e scalabilità. Un'installazione non di produzione utilizza meno risorse ed è destinata principalmente all'apprendimento e dimostrativi.

Quando crei e configuri account di servizio per Apigee hybrid, è importante conoscere il tipo di installazione scelto come target.

Per le installazioni di produzione, ti consigliamo di creare un account di servizio separato per ogni Componente ibrido Apigee. Ad esempio, runtime, mart, metriche, udca e così via, ognuno ha il proprio l'account di servizio.

Per le installazioni non di produzione, puoi creare un singolo account di servizio applicabile tutti i componenti.

Per saperne 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 chiamata identità del carico di lavoro per autenticare il runtime ibrido componenti. Questa opzione non utilizza i file dei certificati scaricati per autenticare il servizio , associa invece gli account di servizio Google Cloud che crei in questo passaggio con gli 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 il tuo modello ibrido installazione:

  • 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 il carico di lavoro Identity, utilizzare lo strumento fornito da Apigee, create-service-account, per creare il servizio , assegnare i ruoli agli account di servizio e creare e scaricare i file l'account di servizio con un solo comando. Segui le procedure in
    Creare account di servizio utilizzando create-service-account.
  • Console Google Cloud o gcloud: se stai installando Apigee hybrid su GKE e prevedi di utilizzare Workload Identity, la Google Cloud Console o gcloud a creare gli account di servizio senza scaricare i file dei certificati. Segui le procedure in
    Crea account di servizio nella Google Cloud Console o con gcloud.

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.

  1. 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 in gli account di servizio nel progetto corretto.

    echo $HYBRID_FILES
    echo $PROJECT_ID
  2. 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'istanza di produzione e scarica i file chiave per gli account di servizio nell' 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, che lo crea senza ulteriori prompt.

    Se invece viene visualizzato il messaggio e la richiesta seguenti, 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.
    
  3. Verifica che la chiave dell'account di servizio sia stata creata utilizzando il seguente comando. Sei responsabile dell'archiviazione le tue 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

Crea gli account di servizio nella Google Cloud Console o con gcloud

Se prevedi di utilizzare l'identità dei carichi di lavoro su GKE per l'autenticazione componenti di runtime ibridi, non è necessario creare e scaricare file di certificato account di servizio. Pertanto, non utilizzare lo strumento create-service-account. Invece, crea 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 Crea servizio 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
  • Agente di analisi Apigee
  • Agente Apigee Connect
  • Agente di runtime Apigee
  • Gestore sincronizzatore Apigee
  • Logs Writer
  • Monitoring Metric Writer
  • Storage Object Admin

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 Agente Apigee Connect
apigee-metrics Monitoring Metric Writer
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:

  1. Crea l'account di servizio apigee-non-prod:
    gcloud iam service-accounts create apigee-non-prod \
      --display-name="apigee-non-prod" \
      --project=$PROJECT_ID
  2. 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"
  3. 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 i ruoli IAM corrispondenti ruolo.

  1. 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"
  2. 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"
  3. 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"
  4. 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"
  5. Account di servizio apigee-runtime:
    gcloud iam service-accounts create apigee-runtime \
      --display-name="apigee-runtime" \
      --project=$PROJECT_ID
  6. 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"
  7. 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"
  8. 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 scoprire di più sulla creazione di account di servizio con gcloud, consulta Crea account di servizio.

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.

1 2 3 4 (SUCCESSIVO) Passaggio 5: crea i certificati TLS 6 7 8 9 10 11