Questo documento illustra le chiavi e gli account di servizio di Google Cloud necessari per creare i cluster nell'implementazione di Google Distributed Cloud.
Le istruzioni sono complete. Per un'introduzione più breve all'utilizzo di un account di servizio, consulta Configurare l'infrastruttura minima.
Prima di iniziare
Panoramica degli account di servizio
Prima di creare i cluster di amministrazione e utente, devi disporre dei seguenti account di servizio:
- Account di servizio di accesso ai componenti
- Connetti e registra l'account di servizio
- Account di servizio di monitoraggio dei log
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 padre dell'account di servizio.
Puoi determinare il progetto padre di un account di servizio osservando l'indirizzo email
dell'account di servizio. Ad esempio, ecco l'indirizzo email
di un account di servizio chiamato logger
. Il progetto principale è alice-123
.
logger@alice-123.iam.gserviceaccount.com
Quando concedi un ruolo di Identity and Access Management (IAM) a un account di servizio, lo concedi all'account di servizio in un particolare progetto Google Cloud. Questo segue il pattern generale di assegnazione di 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 la concessione dei ruoli agli account di servizio
A ciascuno dei tuoi 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.editor
nel progetto host del parco risorse.
Per concedere ruoli in un progetto Google Cloud, devi
avere determinate autorizzazioni per il progetto. Per maggiori dettagli, consulta
roles/resourcemanager.projectIamAdmin
nella sezione
Informazioni sui ruoli.
Se disponi delle autorizzazioni necessarie, puoi concedere i ruoli autonomamente. In caso contrario, i ruoli devono essere concessi da qualcun altro nella tua organizzazione.
Utilizzo di gkeadm
per creare automaticamente account di servizio
Questa pagina mostra come creare manualmente gli account di servizio e concedere ruoli agli account di servizio. In alternativa a eseguire questi passaggi manualmente, puoi fare in modo che gkeadm
crei alcuni account di servizio e concedi i ruoli per te quando crei una workstation di amministrazione. Per maggiori informazioni, consulta Creazione della workstation di amministrazione.
Account di servizio di accesso ai componenti
Google Distributed Cloud utilizza questo account di servizio per scaricare per tuo conto i componenti del cluster 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 che sia il progetto padre del tuo account di servizio.
Per creare una chiave JSON per l'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 di accesso ai componenti.
Concessione di ruoli all'account di servizio di 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 Google Distributed Cloud di eseguire 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 di accesso ai componenti.
Connetti e registra l'account di servizio
Google Distributed Cloud utilizza questo account di servizio per registrare i tuoi cluster in un parco risorse.
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 vuoi che sia padre dell'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.
All'account di servizio connect-register deve essere concesso il ruolo gkehub.editor
nel progetto host del parco risorse.
Per concedere il ruolo gkehub.editor
al tuo account di servizio connect-register:
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/gkehub.editor"
Account di servizio di monitoraggio dei log
Google Distributed Cloud 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 dei log:
gcloud iam service-accounts create logging-monitoring-sa \ --project=PROJECT_ID
Sostituisci PROJECT_ID con l'ID del progetto Google Cloud che vuoi come padre dell'account di servizio di monitoraggio dei log.
Per creare una chiave JSON per il tuo account di servizio di monitoraggio dei log:
gcloud iam service-accounts keys create logging-monitoring-key.json \ --iam-account SERVICE_ACCOUNT_EMAIL
All'account di servizio di monitoraggio dei log 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 all'account di servizio di monitoraggio dei log:
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
Google Distributed Cloud utilizza questo account di servizio per inviare audit log Kubernetes dal tuo 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 vuoi che sia padre del tuo account di servizio di audit logging.
Per creare una chiave JSON per il tuo 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
Google Distributed Cloud 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 vuoi fungere da padre del tuo 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
al tuo 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
Google Distributed Cloud 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.