Account di servizio e chiavi

Questo documento descrive gli Google Cloud account di servizio e le chiavi necessari per creare cluster nell'implementazione di Google Distributed Cloud.

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

Prima di iniziare

Crea Google Cloud progetti.

Panoramica dei service account

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

  • Account di servizio di accesso ai componenti
  • Connetti-registra account di servizio
  • Account di servizio di logging e monitoraggio

A seconda delle funzionalità che vuoi attivare, potresti anche aver bisogno di alcuni service account facoltativi.

Informazioni sugli account di servizio e sui Google Cloud progetti

Quando crei un account di servizio, lo associ a un progetto Google Cloud . Questo progetto Google Cloud è chiamato progetto padre del service account. In questo documento, tutti i comandi gcloud iam service-accounts create utilizzano la variabile segnaposto PROJECT_ID, che è l'ID progetto del progetto padre del account di servizio.

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

logger@alice-123.iam.gserviceaccount.com

Quando concedi un ruolo Identity and Access Management (IAM) a un service account, concedi il ruolo a account di servizio#39;ultimo in un determinato progettoGoogle Cloud . Ciò segue il pattern generale di concessione di un ruolo a un'entità su una risorsa.

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

Puoi concedere un ruolo a un account di servizio in un progetto Google Cloud che non è il progetto padre del account di servizio oppure i progetti possono essere gli stessi. Per consentire questa flessibilità, in questo documento i comandi gcloud projects add-iam-policy-binding per l'account di servizio di accesso ai componenti, l'account di servizio connect-register e l'account di servizio logging-monitoring utilizzano la variabile segnaposto FLEET_HOST_PROJECT_ID. Questo è l'ID del progetto host del parco risorse. L'ID specificato come FLEET_HOST_PROJECT_ID nei comandi gcloud projects add-iam-policy-binding deve essere lo stesso.

Autorizzazioni per la concessione dei ruoli ai service account

A ogni service account devono essere concessi determinati ruoli nel progettoGoogle Cloud pertinente. Ad esempio, al account di servizio connect-register deve essere concesso il ruolo gkehub.editor nel progetto host del parco.

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

Se disponi delle autorizzazioni richieste, puoi concedere i ruoli personalmente. In caso contrario, qualcun altro della tua organizzazione deve concederti i ruoli.

Utilizzo di gkeadm per creare automaticamente service account

Questa pagina mostra come creare manualmente service account e concedere ruoli ai service account. In alternativa all'esecuzione manuale di questi passaggi, puoi utilizzare lo strumento a riga di comando gkeadm per creare alcuni service account e concedere ruoli quando crei una workstation amministrativa. Anche se consenti a gkeadm di creare service account, devi creare manualmente il account di servizio di accesso ai componenti e concedere i ruoli IAM richiesti, come descritto nella sezione successiva. Per saperne di più sui service account che gkeadm può creare, vedi Creazione della workstation amministrativa.

Account di servizio di accesso ai componenti

Google Distributed Cloud utilizza questo account di servizio per scaricare i componenti del cluster per tuo conto da Artifact Registry.

  1. Crea 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 principale del tuo account di servizio.

  2. Recupera l'indirizzo email dell'account di servizio di accesso ai componenti appena creato:

    gcloud iam service-accounts list \
        --project PROJECT_ID
    
  3. Crea una chiave JSON per il account di servizio di accesso ai componenti:

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

    Sostituisci COMPONENT_ACCESS_SERVICE_ACCOUNT_EMAIL con l'indirizzo email delaccount di serviziot di accesso ai componenti.

Concedi ruoli al account di servizio di accesso ai componenti

Al account di servizio di accesso ai componenti devono essere concessi i seguenti ruoli IAM sul tuo progetto. Questi ruoli sono necessari per consentire a Google Distributed Cloud 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:COMPONENT_ACCESS_SERVICE_ACCOUNT_EMAIL" \
    --role "roles/serviceusage.serviceUsageViewer"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:COMPONENT_ACCESS_SERVICE_ACCOUNT_EMAIL" \
    --role "roles/iam.roleViewer"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:COMPONENT_ACCESS_SERVICE_ACCOUNT_EMAIL" \
    --role "roles/iam.serviceAccountViewer"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:COMPONENT_ACCESS_SERVICE_ACCOUNT_EMAIL" \
    --role "roles/compute.viewer"

Sostituisci FLEET_HOST_PROJECT_ID con l'ID del progetto host del tuo parco veicoli. Può trattarsi dello stesso progetto in cui è stato creato l'account di servizio o di un progetto diverso. L'ID progetto che specifichi qui deve essere lo stesso ID che specifichi quando concedi ruoli IAM aaccount di serviziont connect-register e al service account logging-monitoring.

Connetti-registra account di servizio

Google Distributed Cloud utilizza questo account di servizio per registrare i cluster in una fleet.

  1. Crea un account di servizio connect-register:

    gcloud iam service-accounts create connect-register-sa \
        --display-name "Connect-register Service Account" \
        --project PROJECT_ID
    

    Sostituisci PROJECT_ID con l'ID del progettoGoogle Cloud che vuoi che sia il genitore del tuo account di servizio connect-register.

  2. Recupera l'indirizzo email del service account connect-register appena creato:

    gcloud iam service-accounts list \
        --project PROJECT_ID
    
  3. Crea una chiave JSON per il account di servizio connect-register:

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

    Sostituisci CONNECT_REGISTER_SERVICE_ACCOUNT_EMAIL con l'indirizzo email del tuoaccount di serviziot connect-register.

  4. Concedi il ruolo gkehub.editor al tuo account di servizio connect-register:

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

    L'ID progetto che specifichi qui deve corrispondere a quello che specifichi quando concedi i ruoli IAM al service account del servizio di accesso ai componenti e al account di servizio di logging e monitoraggio.

Account di servizio di logging e monitoraggio

Google Distributed Cloud utilizza questo account di servizio per esportare log e metriche dai cluster a Cloud Logging e Cloud Monitoring.

  1. Crea un account di servizio di logging e monitoraggio:

    gcloud iam service-accounts create logging-monitoring-sa \
        --display-name "Logging-monitoring Service Account" \
        --project=PROJECT_ID
    

    Sostituisci PROJECT_ID con l'ID del progettoGoogle Cloud che vuoi che sia il progetto padre del account di servizio di logging e monitoraggio.

  2. Recupera l'indirizzo email del service account di logging e monitoraggio appena creato:

    gcloud iam service-accounts list \
        --project PROJECT_ID
    
  3. Crea una chiave JSON per il account di servizio di logging e monitoraggio:

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

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

Concedi ruoli al tuo account di servizio di logging e monitoraggio

Al account di servizio di logging e monitoraggio devono essere concessi i seguenti ruoli sul tuo progetto:

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

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

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

L'ID progetto che specifichi qui deve essere lo stesso che specifichi quando concedi i ruoli IAM al account di servizio di accesso ai componenti e al account di servizio di registrazione e connessione.

Service account facoltativi

I service account descritti in questa sezione sono facoltativi.

Account di servizio di audit logging

Google Distributed Cloud utilizza questo account di servizio per inviare audit log di Kubernetes dal cluster a Cloud Audit Logs.

Se prevedi di creare cluster con cluster avanzato abilitato, (necessario per configurare i domini di topologia), utilizza l'account di servizio e la chiave di logging e monitoraggio per il logging di controllo anziché creare un altro service account.

  1. Crea 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 progettoGoogle Cloud che vuoi che sia il progetto padre del account di servizio di audit logging.

  2. Recupera l'indirizzo email del account di servizio di audit logging appena creato:

    gcloud iam service-accounts list \
        --project PROJECT_ID
    
  3. Crea una chiave JSON per il tuo account di servizio di logging di controllo:

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

    Sostituisci AUDIT_LOGGING_SERVICE_ACCOUNT_EMAIL con l'indirizzo email del service account del servizio di logging di controllo.

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

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 Autorizzazione binaria, consulta Autorizzazione binaria in GKE On-Prem.

Passaggi successivi

Creare una workstation di amministrazione