Account di servizio e chiavi

Questo documento illustra gli account di servizio e le chiavi Google Cloud necessari per creare i cluster nell'implementazione di GKE on VMware.

Le istruzioni riportate qui sono complete. Per un'introduzione più breve all'utilizzo di un account di servizio, consulta Configurare un'infrastruttura minima.

Prima di iniziare

Creare progetti Google Cloud.

Panoramica degli account di servizio

Prima di creare i cluster di amministrazione e utente, devi disporre di questi account di servizio:

  • Account di servizio accesso con componenti
  • Connetti account di servizio registrato
  • Account di servizio di monitoraggio di Logging

A seconda delle funzionalità che vuoi abilitare, potrebbero essere necessari anche alcuni account di servizio facoltativi.

Informazioni sugli account di servizio e sui progetti Google Cloud

Quando crei un account di servizio, lo associ a un progetto Google Cloud. Questo progetto Google Cloud è chiamato progetto principale dell'account di servizio.

Puoi determinare il progetto principale di un account di servizio controllando l'indirizzo email dell'account di servizio. Ad esempio, questo è l'indirizzo email di un account di servizio denominato logger. Il progetto principale è alice-123.

logger@alice-123.iam.gserviceaccount.com

Quando concedi un ruolo Identity and Access Management (IAM) a un account di servizio, concedi il ruolo all'account di servizio in un determinato progetto Google Cloud. Questo segue il modello generale di concedere un ruolo a un principio su una risorsa.

Ad esempio, puoi concedere il ruolo bigquery.dataEditor all'account di servizio logger@alice-123.iam.gserviceaccount.com nel progetto bob-456. In questo caso, l'account di servizio è il principio e il progetto Google Cloud è la risorsa.

È importante capire che puoi concedere un ruolo a un account di servizio in un progetto Google Cloud che non è il progetto padre dell'account di servizio.

Autorizzazioni per concedere i ruoli agli account di servizio

A ogni account di servizio devono essere assegnati determinati ruoli nel progetto Google Cloud pertinente. Ad esempio, all'account di servizio della registrazione della connessione deve essere concesso il ruolo gkehub.editor nel progetto host del parco risorse.

Per concedere i ruoli in un progetto Google Cloud, devi disporre di determinate autorizzazioni per il progetto. Per maggiori dettagli, consulta roles/resourcemanager.projectIamAdmin in Informazioni sui ruoli.

Se disponi delle autorizzazioni necessarie, puoi concedere i ruoli personalmente. In caso contrario, i ruoli dovranno essere concessi da un altro utente dell'organizzazione.

Utilizzo di gkeadm per creare automaticamente account di servizio

Questa pagina mostra come creare manualmente account di servizio e concedere ruoli agli account di servizio. In alternativa a questi passaggi manualmente, puoi fare in modo che gkeadm crei alcuni account di servizio e conceda ruoli al posto tuo quando crei una workstation di amministrazione. Per maggiori informazioni, consulta la pagina relativa alla creazione della workstation di amministrazione.

Account di servizio accesso con componenti

GKE su VMware usa questo account di servizio per scaricare i componenti del cluster, per tuo conto, da Container Registry.

Per creare un account di servizio di accesso ai componenti:

gcloud iam service-accounts create component-access-sa \
    --display-name "Component Access Service Account" \
    --project PROJECT_ID

Sostituisci PROJECT_ID con l'ID del progetto Google Cloud che vuoi impostare come progetto padre del tuo account di servizio.

Per creare una chiave JSON per il tuo account di servizio di accesso ai componenti:

gcloud iam service-accounts keys create component-access-key.json \
   --iam-account SERVICE_ACCOUNT_EMAIL

Sostituisci SERVICE_ACCOUNT_EMAIL con l'indirizzo email del tuo account di servizio Accesso ai componenti.

Concessione di ruoli all'account di servizio Accesso ai componenti

All'account di servizio di accesso ai componenti devono essere concessi i seguenti ruoli IAM nel progetto host del parco risorse. Questi ruoli sono necessari per consentire a GKE su VMware di eseguire i controlli preflight:

  • serviceusage.serviceUsageViewer
  • iam.roleViewer
  • iam.serviceAccountViewer
  • compute.viewer

Per concedere i ruoli:

gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \
    --role "roles/serviceusage.serviceUsageViewer"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \
    --role "roles/iam.roleViewer"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \
    --role "roles/iam.serviceAccountViewer"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \
    --role "roles/compute.viewer"

Sostituisci quanto segue:

  • FLEET_HOST_PROJECT_ID: l'ID del progetto host del parco risorse.

  • SERVICE_ACCOUNT_EMAIL: l'indirizzo email del tuo account di servizio Accesso ai componenti.

Connetti account di servizio registrato

GKE su VMware utilizza questo account di servizio per registrare i tuoi cluster in un parco risorse.

Per creare un account di servizio Connect-Registration:

gcloud iam service-accounts create connect-register-sa \
    --project PROJECT_ID

Sostituisci PROJECT_ID con l'ID del progetto Google Cloud che vuoi impostare come padre dell'account di servizio registrato per la connessione.

Per creare una chiave JSON per il tuo account di servizio connect-registra:

gcloud iam service-accounts keys create connect-register-key.json \
   --iam-account SERVICE_ACCOUNT_EMAIL

Sostituisci SERVICE_ACCOUNT_EMAIL con l'indirizzo email del tuo account di servizio Connect-registra.

All'account di servizio della registrazione della connessione deve essere concesso il ruolo gkehub.editor nel progetto host del parco risorse.

Per concedere il ruolo gkehub.editor al tuo account di servizio registrato nella connessione:

gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \
    --role "roles/gkehub.editor"

Account di servizio di monitoraggio di Logging

GKE su VMware utilizza questo account di servizio per esportare log e metriche dai cluster a Cloud Logging e Cloud Monitoring.

Per creare un account di servizio di monitoraggio del logging:

gcloud iam service-accounts create logging-monitoring-sa \
    --project=PROJECT_ID

Sostituisci PROJECT_ID con l'ID del progetto Google Cloud che vuoi impostare come padre dell'account di servizio di monitoraggio del logging.

Per creare una chiave JSON per il tuo account di servizio di logging-monitoraggio:

gcloud iam service-accounts keys create logging-monitoring-key.json \
    --iam-account SERVICE_ACCOUNT_EMAIL

All'account di servizio di monitoraggio di logging devono essere concessi i seguenti ruoli nel progetto host del parco risorse:

  • opsconfigmonitoring.resourceMetadata.writer
  • logging.logWriter
  • monitoring.metricWriter
  • monitoring.dashboardEditor
  • kubernetesmetadata.publisher

Per concedere i ruoli richiesti al tuo account di servizio di logging-monitoraggio:

gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \
    --role "roles/opsconfigmonitoring.resourceMetadata.writer"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \
    --role "roles/logging.logWriter"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \
    --role "roles/monitoring.metricWriter"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \
    --role "roles/monitoring.dashboardEditor"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \
    --role "roles/kubernetesmetadata.publisher"

Sostituisci SERVICE_ACCOUNT_EMAIL con l'indirizzo email del tuo account di servizio di monitoraggio del logging.

Account di servizio facoltativi

Account di servizio di audit logging

GKE su VMware utilizza questo account di servizio per inviare gli audit log di Kubernetes dal cluster a Cloud Audit Logs.

Per creare un account di servizio di audit logging:

gcloud iam service-accounts create audit-logging-sa \
    --project PROJECT_ID

Sostituisci PROJECT_ID con l'ID del progetto Google Cloud che vuoi impostare come padre dell'account di servizio di audit logging.

Per creare una chiave JSON per l'account di servizio di audit logging:

gcloud iam service-accounts keys create audit-logging-key.json \
   --iam-account SERVICE_ACCOUNT_EMAIL

Sostituisci SERVICE_ACCOUNT_EMAIL con l'indirizzo email del tuo account di servizio di audit logging.

Non è necessario concedere alcun ruolo all'account di servizio di audit logging.

Account di servizio di misurazione dell'utilizzo

GKE su VMware utilizza questo account di servizio per archiviare i dati sull'utilizzo in un set di dati BigQuery.

Per creare un account di servizio di monitoraggio dell'utilizzo:

gcloud iam service-accounts create usage-metering-sa \
    --project PROJECT_ID

Sostituisci PROJECT_ID con l'ID del progetto Google Cloud che vuoi impostare come padre dell'account di servizio di misurazione dell'utilizzo.

Per creare una chiave JSON per il tuo account di servizio di misurazione dell'utilizzo:

gcloud iam service-accounts keys create usage-metering-key.json \
   --iam-account SERVICE_ACCOUNT_EMAIL

Sostituisci SERVICE_ACCOUNT_EMAIL con l'indirizzo email del tuo account di servizio di misurazione dell'utilizzo.

All'account di servizio di misurazione dell'utilizzo deve essere concesso il ruolo bigquery.dataEditor nel progetto di misurazione dell'utilizzo. Questo è il progetto Google Cloud in cui vuoi visualizzare i dati sull'utilizzo per il cluster utente.

Per concedere il ruolo bigquery.dataEditor all'account di servizio di misurazione dell'utilizzo:

gcloud projects add-iam-policy-binding USAGE_METERING_PROJECT_ID \
    --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \
    --role "roles/bigquery.dataEditor"

Sostituisci USAGE_METERING_PROJECT_ID con l'ID del tuo progetto di misurazione dell'utilizzo.

Account di servizio di Autorizzazione binaria

GKE su VMware utilizza questo account di servizio per chiamare l'API Binary Authorization.

Per informazioni sulla creazione di un account di servizio di Autorizzazione binaria, consulta Autorizzazione binaria in GKE On-Prem.

Passaggi successivi

Crea una workstation di amministrazione.