Creazione criteri di autorizzazione IAM


Questa pagina spiega come creare Identity and Access Management (IAM). di autorizzare i criteri per l'autorizzazione in Google Kubernetes Engine (GKE).

Panoramica

Ogni chiamata API Google Cloud, GKE e Kubernetes richiede che l'account che ha effettuato la richiesta dispone delle autorizzazioni necessarie. Per impostazione predefinita, nessuno ad eccezione del fatto che puoi accedere al progetto o alle relative risorse. Puoi utilizzare IAM per gestire chi può accedere al tuo progetto e quali sono che possono eseguire. Le autorizzazioni IAM operano insieme RBAC di Kubernetes, fornisce controlli dell'accesso granulari per oggetti specifici all'interno di un cluster nello spazio dei nomi. IAM si concentra maggiormente sulle autorizzazioni del progetto a livello di organizzazione e di livello, sebbene offra diversi ruoli predefiniti in GKE.

Per concedere a utenti e account di servizio l'accesso al tuo progetto Google Cloud: puoi aggiungerli come membri del team di progetto, quindi assegna i ruoli ai membri del team. I ruoli definiscono Risorse Google Cloud a cui un account può accedere e a quali operazioni può accedere eseguire il deployment.

In GKE, puoi anche utilizzare IAM per gestire quali utenti e account di servizio possono accedere ai cluster ed eseguire operazioni al loro interno.

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti attività:

  • Attiva l'API Google Kubernetes Engine.
  • Abilita l'API Google Kubernetes Engine .
  • Se vuoi utilizzare Google Cloud CLI per questa attività, install e poi initialize con gcloud CLI. Se hai già installato gcloud CLI, scarica la versione più recente eseguendo gcloud components update.

Interazione con Kubernetes RBAC

Kubernetes ha un meccanismo di controllo dell'accesso integrato, controllo controllo dell'accesso basato sui ruoli (RBAC). RBAC controlla l'accesso a livello di cluster e spazio dei nomi, mentre IAM a livello di progetto.

IAM e RBAC possono interagire. Un'entità deve avere un numero sufficiente di Autorizzazioni RBAC e IAM per lavorare con le risorse nel tuo cluster.

Ruoli IAM

Le seguenti sezioni descrivono i ruoli IAM disponibili in in Google Cloud.

Ruoli GKE predefiniti

IAM fornisce ruoli predefiniti che concedono l'accesso a risorse Google Cloud specifiche e impediscono accesso non autorizzato ad altre risorse.

IAM offre i seguenti ruoli predefiniti per GKE.

Role Title Description Lowest resource
roles/container.admin Kubernetes Engine Admin

Provides access to full management of clusters and their Kubernetes API objects.

To set a service account on nodes, you must also have the Service Account User role (roles/iam.serviceAccountUser) on the user-managed service account that your nodes will use.

  • Project
roles/container.clusterAdmin Kubernetes Engine Cluster Admin

Provides access to management of clusters.

To set a service account on nodes, you must also have the Service Account User role (roles/iam.serviceAccountUser) on the user-managed service account that your nodes will use.

  • Project
roles/container.clusterViewer Kubernetes Engine Cluster Viewer

Provides access to get and list GKE clusters.

roles/container.defaultNodeServiceAccount Kubernetes Engine Default Node Service Account Beta Least privilege role to use as the default service account for GKE Nodes.
roles/container.developer Kubernetes Engine Developer

Provides access to Kubernetes API objects inside clusters.

  • Project
roles/container.hostServiceAgentUser Kubernetes Engine Host Service Agent User

Allows the Kubernetes Engine service account in the host project to configure shared network resources for cluster management. Also gives access to inspect the firewall rules in the host project.

roles/container.viewer Kubernetes Engine Viewer

Provides read-only access to resources within GKE clusters, such as nodes, pods, and GKE API objects.

  • Project

Per un elenco completo delle singole autorizzazioni in ciascun ruolo, fai riferimento a Ruoli di Google Kubernetes Engine. Puoi anche visualizzare le autorizzazioni in ciascun ruolo IAM utilizzando il con gcloud CLI o la console Google Cloud. Per istruzioni, consulta Visualizza le autorizzazioni concesse dai ruoli IAM.

Ruoli IAM di base

I ruoli IAM di base concedono agli utenti un accesso globale a livello di progetto a tutti dell'accesso a specifiche risorse Google Cloud. Per proteggere il progetto e i cluster, usa Ruoli predefiniti, quando possibile.

Per scoprire di più sui ruoli di base, consulta Ruoli di base nella piattaforma IAM documentazione.

Ruolo Utente account di servizio

Utente account di servizio concede a un account utente Google Cloud l'autorizzazione a eseguire azioni anche se sono state eseguite da un account di servizio.

  • La concessione del ruolo iam.serviceAccountUser a un utente per un progetto consente di ottenere all'utente tutti i ruoli concessi a tutti gli account di servizio nel progetto inclusi gli account di servizio che potrebbero essere creati in futuro.

  • Concessione del ruolo iam.serviceAccountUser a un utente per un servizio specifico fornisce a un utente tutti i ruoli concessi a quell'account di servizio.

Questo ruolo include le seguenti autorizzazioni:

  • iam.serviceAccounts.actAs
  • iam.serviceAccounts.get
  • iam.serviceAccounts.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list

Per ulteriori informazioni sul ruolo ServiceAccountUser, consulta ServiceAccountUser nella documentazione di IAM.

Il comando seguente mostra la sintassi per concedere il ruolo Utente account di servizio:

gcloud iam service-accounts add-iam-policy-binding \
  SA_NAME@PROJECT_ID.iam.gserviceaccount.com \
  --member=user:USER \
  --role=roles/iam.serviceAccountUser

Sostituisci quanto segue:

  • SA_NAME: il nome dell'account di servizio.
  • PROJECT_ID: l'ID del tuo progetto Google Cloud.
  • USER: l'indirizzo email dell'utente.

Ruolo Utente agente di servizi host

Il ruolo Utente agente di servizi host viene utilizzato solo in Cluster VPC condivisi. Questo include le seguenti autorizzazioni:

  • compute.firewalls.get
  • container.hostServiceAgent.*
  • dns.networks.bindDNSResponsePolicy
  • dns.networks.bindPrivateDNSPolicy
  • dns.networks.bindPrivateDNSZone

Ruoli personalizzati

Se i ruoli predefiniti non soddisfano le tue esigenze, puoi creare ruoli personalizzati con le autorizzazioni per definire.

Per scoprire come creare e assegnare ruoli personalizzati, consulta: Creazione e gestione di ruoli personalizzati.

Visualizza le autorizzazioni concesse dai ruoli IAM

Puoi visualizzare le autorizzazioni concesse da ciascun ruolo utilizzando gcloud CLI o la console Google Cloud.

gcloud

Per visualizzare le autorizzazioni concesse da un ruolo specifico, esegui questo comando: :

gcloud iam roles describe roles/ROLE

Sostituisci ROLE con un ruolo IAM. I ruoli GKE hanno il prefisso roles/container, ad esempio gcloud iam roles describe roles/container.admin.

Console

Per visualizzare le autorizzazioni concesse da un ruolo specifico, procedi nel seguente modo passaggi:

  1. Vai alla sezione Ruoli della dashboard IAM e Amministratore sulla console Google Cloud.

    Vai a IAM e Amministratore

  2. Per visualizzare i ruoli per GKE, nel campo Filtra tabella, inserisci Kubernetes Engine.

  3. Seleziona il ruolo che vuoi visualizzare. La descrizione del ruolo e un elenco le autorizzazioni assegnate.

Gestione dei ruoli IAM

Scopri come gestire i ruoli e le autorizzazioni IAM per l'utente umano consulta le Concessione, modifica e revoca dell'accesso ai membri del progetto nella documentazione di IAM.

Per gli account di servizio, consulta Concessione di ruoli agli account di servizio.

Esempi

Ecco alcuni esempi di come funziona IAM con GKE:

  • Un nuovo dipendente è entrato in un'azienda. Devono essere aggiunti progetto Google Cloud, ma devono visualizzare solo i cluster del progetto e altre risorse Google Cloud. Il proprietario del progetto assegna loro il ruolo Visualizzatore Compute a livello di progetto. Questo ruolo fornisce accesso di sola lettura per recuperare ed elencare i nodi, che sono alle risorse di Compute Engine.
  • Il dipendente sta lavorando nelle operazioni e deve aggiornare un cluster gcloud o la console Google Cloud. Questa operazione richiede container.clusters.update, quindi il proprietario del progetto gli assegna Ruolo Amministratore cluster Kubernetes Engine. Il dipendente ora dispone delle autorizzazioni concesso dai ruoli Amministratore cluster di Kubernetes Engine e Visualizzatore Compute Engine.
  • Il dipendente deve cercare di capire perché un deployment ha problemi. Loro devi eseguire kubectl get pods per vedere i pod in esecuzione nel cluster. La di un dipendente ha già il ruolo Visualizzatore Compute, che non è sufficiente per che elenca i pod. Il dipendente deve avere il ruolo Visualizzatore Kubernetes Engine.
  • Il dipendente deve creare un nuovo cluster. Il proprietario del progetto concede dipendente con il ruolo Utente account di servizio PROJECT_NUMBER-compute@developer.gserviceaccount.com di account di servizio, in modo che l'account del dipendente possa accedere Account di servizio predefinito di Compute Engine. Questo account di servizio ha Ruolo Editor, che fornisce un ampio set di autorizzazioni.

Passaggi successivi