Account di servizio e chiavi

Questo documento illustra gli account di servizio e le chiavi di Google Cloud necessari per creare cluster nell'implementazione di Cluster Anthos su VMware (GKE On-Prem).

Le istruzioni qui sono complete. Per un'introduzione più breve all'utilizzo di un account di servizio, consulta l'articolo Account di servizio (guida rapida).

Prima di iniziare

Creare progetti Google Cloud.

Panoramica degli account di servizio

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

  • Account di servizio accesso componenti
  • Account di servizio Connect-register
  • Account di servizio monitoraggio del logging

A seconda delle funzionalità che vuoi abilitare, potrebbero essere necessari 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 padre dell'account di servizio.

Puoi determinare il progetto padre di un account di servizio esaminando l'indirizzo email dell'account di servizio. Ad esempio, ecco l'indirizzo email dell'account di servizio chiamato logger. Il progetto padre è alice-123.

logger@alice-123.iam.gserviceaccount.com

Quando concedi un ruolo Identity and Access Management (IAM) a un account di servizio, lo concedi all'account di servizio su un determinato progetto Google Cloud. Segue il modello generale di concessione di un ruolo a un'identità su una risorsa.

Ad esempio, potresti 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 è l'identità, mentre il progetto Google Cloud è la risorsa.

È importante comprendere che puoi concedere un ruolo a un account di servizio su un progetto Google Cloud diverso da quello principale dell'account di servizio.

Autorizzazioni per la concessione dei 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 Connect-register deve essere concesso il ruolo gkehub.admin nel progetto host del parco risorse.

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

Se disponi delle autorizzazioni necessarie, puoi concedere i ruoli personalmente. In caso contrario, un altro membro dell'organizzazione deve concederti i ruoli.

Utilizzo di gkeadm per creare automaticamente gli account di servizio

Questa pagina mostra come creare manualmente gli 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 concedere ruoli, quando crei una workstation di amministrazione. Per ulteriori informazioni, vedi Creare la workstation di amministrazione.

Account di servizio accesso componenti

Cluster Anthos su VMware utilizza questo account di servizio per scaricare i componenti del cluster, per tuo conto, da Container Registry.

Per creare un account di servizio per l'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 che sia il progetto padre del tuo account di servizio.

Per creare una chiave JSON per l'account di servizio con 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 dell'accesso al componente.

Concessione di ruoli all'account di servizio con accesso ai componenti

I file di configurazione del cluster di amministrazione e dell'utente contengono vari campi che specificano un ID progetto.

Nel file di configurazione del cluster di amministrazione:

stackdriver:
  projectID: ""
...
cloudAuditLogging:
  projectid: ""

Nel file di configurazione del cluster utente:

stackdriver:
  projectID: ""
...
gkeConnect:
  projectID: ""
...
usageMetering:
  bigQueryProjectID: ""
...
cloudAuditLogging:
  projectid: ""

Gli ID progetto nei file di configurazione non devono essere distinti. Ad esempio, gkeConnect.projectID potrebbe essere uguale a cloudAuditLogging.projectID. Di fatto, tutti gli ID progetto nei file di configurazione potrebbero essere uguali.

Al tuo account di servizio dell'accesso ai componenti devono essere assegnati i seguenti ruoli IAM su ogni progetto Google Cloud specificato nei file di configurazione dei cluster utente e di amministrazione. Questi ruoli sono obbligatori per consentire ai cluster Anthos su VMware di eseguire controlli preflight:

  • serviceusage.serviceUsageViewer
  • iam.roleViewer
  • iam.serviceAccountViewer

Per ciascun progetto Google Cloud specificato nei file di configurazione del cluster, esegui questi comandi per concedere i ruoli richiesti al tuo account di servizio di accesso ai componenti:

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

Sostituisci quanto segue:

  • PROJECT_ID: l'ID di uno dei progetti Google Cloud specificati nei file di configurazione.

  • SERVICE_ACCOUNT_EMAIL: l'indirizzo email dell'account di servizio dell'accesso al componente.

Account di servizio Connect-register

Cluster Anthos su VMware utilizza questo account di servizio per registrare i tuoi cluster utente con Google Cloud.

Per creare un account di servizio Connect-register:

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

Sostituisci PROJECT_ID con l'ID del progetto Google Cloud che deve essere il principale del tuo account di servizio Connect-register.

Per creare una chiave JSON per il tuo account di servizio Connect-register:

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-register.

Al tuo account di servizio Connect-register deve essere concesso il ruolo gkehub.admin nel tuo progetto host del parco risorse. Questo è il progetto Google Cloud in cui vuoi visualizzare e gestire i cluster.

Per concedere il ruolo gkehub.admin al tuo account di servizio Connect-register:

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

Sostituisci PROJECT_ID con l'ID del progetto host del tuo parco risorse.

Account di servizio monitoraggio del logging

Cluster Anthos su VMware utilizza questo account di servizio per esportare i log e le 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 deve essere il padre del tuo account di servizio di monitoraggio dei log.

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

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

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

Al tuo account di servizio di monitoraggio dei log devono essere assegnati i seguenti ruoli sul progetto di logging-monitor. Questo è il progetto Google Cloud in cui vuoi visualizzare i log per i cluster.

  • stackdriver.resourceMetadata.writer
  • opsconfigmonitoring.resourceMetadata.writer
  • logging.logWriter
  • monitoring.metricWriter
  • monitoring.dashboardEditor

Per concedere i ruoli richiesti al tuo account di servizio per il monitoraggio dei log:

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

Sostituisci PROJECT_ID con l'ID del tuo progetto di monitoraggio del logging.

Account di servizio facoltativi

Account di servizio di misurazione dell'utilizzo

Cluster Anthos 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 misurazione dell'utilizzo:

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

Sostituisci PROJECT_ID con l'ID del progetto Google Cloud che deve essere il padre del tuo account di servizio di misurazione dell'utilizzo.

Per creare una chiave JSON per l'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.

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

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

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

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

Account di servizio di audit logging

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

Per creare un account di servizio per l'audit logging:

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

Sostituisci PROJECT_ID con l'ID del progetto Google Cloud che deve essere il principale del tuo account di servizio per l'audit logging.

Per creare una chiave JSON per il tuo account di servizio per l'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 per l'audit logging.

Non è necessario concedere alcun ruolo al tuo account di servizio per l'audit logging.

Account di servizio di Autorizzazione binaria

Cluster Anthos 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.