Panoramica del controllo dell'accesso

Per impostazione predefinita, tutti i progetti Google Cloud hanno un solo utente: l'autore del progetto originale. Nessun altro utente ha accesso al progetto e, di conseguenza, può accedere alle risorse Compute Engine, finché un utente non viene aggiunto come membro del progetto o non è associato a una risorsa specifica. Questa pagina descrive i modi in cui puoi aggiungere nuovi utenti al tuo progetto e come impostare il controllo dell'accesso alle risorse Compute Engine utilizzando Identity and Access Management (IAM).

Per informazioni su come fornire l'accesso alle applicazioni in esecuzione sulle tue istanze Compute Engine, consulta Come viene determinata l'autorizzazione.

Opzioni di controllo dell'accesso per gli utenti

Per consentire agli utenti di creare e gestire le tue risorse Compute Engine, puoi aggiungere gli utenti come membri del team al tuo progetto o a risorse specifiche e concedere loro le autorizzazioni utilizzando i ruoli IAM.

Un membro del team può essere un singolo utente con un Account Google valido, un gruppo Google, un account di servizio o un dominio Google Workspace. Quando aggiungi un membro del team a un progetto o a una risorsa, specifichi i ruoli da concedergli. IAM offre tre tipi di ruoli: ruoli predefiniti, ruoli di base e ruoli personalizzati.

Le risorse ereditano i criteri delle risorse padre nella gerarchia delle risorse di Google Cloud. Il criterio effettivo per una risorsa è l'unione del criterio impostato a livello di risorsa e del criterio ereditato dalla risorsa padre.

Ruoli Compute Engine predefiniti

I ruoli predefiniti concedono un insieme di autorizzazioni correlate. Compute Engine offre i seguenti ruoli predefiniti:

Titolo del ruolo Funzionalità Utente di destinazione
Utente immagine Compute Engine

Autorizzazione per elencare e utilizzare le immagini di un altro progetto. Concedi a un membro questo ruolo insieme a un altro in modo che possa utilizzare le immagini di un altro progetto per creare una nuova risorsa. Ad esempio, concedi questo ruolo e il ruolo Amministratore istanze in modo che un membro possa utilizzare immagini di un altro progetto per creare istanze VM e dischi permanenti.

Se stai creando gruppi di istanze gestite o se utilizzi Deployment Manager per creare istanze VM, potrebbe essere necessario concedere questo ruolo all'account di servizio API di Google del progetto prima di poter utilizzare immagini di altri progetti.

  • Account di servizio
  • Amministratori di sistema
  • Sviluppatori
Amministratore istanze Compute Engine (v1)

Controllo completo di istanze, gruppi di istanze, dischi, snapshot e immagini di Compute Engine. Accesso in sola lettura a tutte le risorse di networking di Compute Engine.

Se il membro gestisce le istanze VM configurate per l'esecuzione come account di servizio, devi anche concedere il ruolo roles/iam.serviceAccountUser in modo che possa assegnare account di servizio alle istanze VM.

  • Amministratori di sistema
  • Sviluppatori
Ruolo di amministratore Compute Engine

Controllo completo di tutte le risorse Compute Engine. Se l'utente gestisce istanze VM configurate per l'esecuzione come account di servizio, devi anche concedere il ruolo roles/iam.serviceAccountUser.

  • Amministratori di sistema
  • Sviluppatori
Amministratore di rete Compute Engine

Autorizzazioni per creare, modificare ed eliminare le risorse di networking, ad eccezione delle regole firewall e dei certificati SSL. Il ruolo Amministratore di rete consente l'accesso di sola lettura a regole firewall, certificati SSL e istanze (per visualizzare i relativi indirizzi IP temporanei). Il ruolo Amministratore di rete non consente a un membro di creare, avviare, arrestare o eliminare istanze.

Amministratori rete
Amministratore sicurezza Compute Engine

Autorizzazioni per creare, modificare ed eliminare regole firewall e certificati SSL.

Amministratori sicurezza
Amministratore bilanciatore del carico Compute Enginebeta

Autorizzazioni per creare, modificare ed eliminare i bilanciatori del carico e le risorse associate.

Amministratori del bilanciatore del carico
Utente account di servizio Compute Engine

Autorizzazione per creare istanze che utilizzano account di servizio e autorizzazione per collegare un disco e impostare i metadati su un'istanza già configurata per l'esecuzione come account di servizio.

Non concedere questo ruolo autonomamente perché non fornisce autorizzazioni all'API Compute Engine. Devi concedere a un membro questo ruolo e un altro ruolo, ad esempio il ruolo di amministratore dell'istanza.

  • Amministratori di sistema
  • Sviluppatori
Ruolo Visualizzatore Compute Engine

Accesso in sola lettura per recuperare ed elencare le risorse Compute Engine, senza poter leggere i dati archiviati al loro interno. Ad esempio, un account con questo ruolo potrebbe eseguire l'inventario di tutti i dischi di un progetto, ma non può leggere i dati su questi dischi.

Amministratori di sistema
Utente di rete Compute Engine

Autorizzazioni per utilizzare una rete VPC condivisa. In particolare, concedi questo ruolo ai proprietari dei servizi che devono utilizzare le risorse nel progetto host. Una volta concessi, i proprietari dei servizi possono utilizzare le subnet e le reti appartenenti al progetto host. Ad esempio, un utente di rete può creare un'istanza VM che appartiene a una rete host VPC condivisa, ma non può eliminare o creare nuove reti nel progetto host.

  • Amministratori di sistema
  • Sviluppatori
Visualizzatore rete Compute Engine

Accesso in sola lettura a tutte le risorse di networking. Ad esempio, se disponi di un software che controlla la tua configurazione di rete, puoi concedere all'account di servizio del software il ruolo Visualizzatore rete.

  • Amministratori rete
  • Amministratori di sistema
  • Sviluppatori
  • Account di servizio
Spazio di archiviazione Compute Enginebeta

Autorizzazioni per creare, modificare ed eliminare dischi, immagini e snapshot.

Ad esempio, se nella tua azienda le immagini vengono gestite da una persona a cui non vuoi assegnare il ruolo di Editor nel progetto, concedi questo ruolo al suo account.

  • Amministratori di sistema
  • Sviluppatori
Amministratore VPC condiviso di Compute Engine

Autorizzazioni per amministrare i progetti host VPC condivisi, abilitando in particolare i progetti host e associando i progetti di servizio alla rete del progetto host. Questo ruolo può essere concesso solo a livello di organizzazione.

Creatori di progetti

Per visualizzare un elenco dei metodi dell'API a cui un ruolo specifico concede l'autorizzazione, consulta la documentazione sui ruoli IAM di Compute Engine.

Matrice dei ruoli predefinita

La seguente tabella offre un confronto completo delle funzionalità di ciascun ruolo di Compute Engine.

Capacità Amministratore istanza (v1) Utente immagine Utente della rete Visualizzatore rete Amministratore di rete Amministratore della sicurezza Amministratore spazio di archiviazione Amministratore VPC condiviso Amministratore Compute Visualizzatore Compute Amministratore bilanciatore del carico
Creare o eliminare istanze VM *
SSH nelle istanze VM * *
Elenca o recupera le istanze VM
Crea o elimina immagini, dischi e snapshot
Elenca o recupera immagini
Crea o elimina gruppi di istanze *
Elenca o recupera gruppi di istanze
Creazione e gestione dei bilanciatori del carico
Creare e gestire le VPN
Visualizza risorse di rete/subnet
Visualizza le regole firewall
Crea e gestisci firewall e certificati SSL per i firewall,
per i certificati SSL
Creare e gestire progetti host VPC condivisi
Usa reti e subnet in un progetto host VPC condiviso
Creazione e gestione di reti e subnet

*Se l'istanza VM può essere eseguita come account di servizio, concedi anche il ruolo utente all'account di servizio.

Per visualizzare un elenco dei metodi dell'API a cui un ruolo specifico concede l'autorizzazione, consulta la documentazione sui ruoli IAM di Compute Engine.

Ruoli IAM di base

I ruoli IAM di base vengono mappati direttamente ai ruoli legacy di proprietario, editor e visualizzatore del progetto. In genere, è consigliabile utilizzare i ruoli predefiniti, ove possibile. Tuttavia, in alcuni casi, dove IAM non è ancora supportato, potrebbe essere necessario utilizzare un ruolo di base per concedere le autorizzazioni corrette.

Titolo del ruolo Autorizzazioni
Owner Tutti i privilegi di visualizzatore e editor, oltre alla possibilità di modificare le impostazioni di fatturazione, gestire controllo dell'accesso ed eliminare un progetto.
Editor Tutti i privilegi di visualizzatore, oltre alla possibilità di creare, modificare ed eliminare le risorse.
Viewer Autorizzazioni di sola lettura per tutte le risorse; nessuna autorizzazione per modificare le risorse.

Per saperne di più sui ruoli di base, leggi la documentazione relativa ai ruoli di base.

Se i ruoli predefiniti o di base non soddisfano le tue esigenze, puoi creare ruoli personalizzati.

Criteri IAM per le risorse Compute Engine

Puoi concedere l'accesso alle risorse Compute Engine, ad esempio istanze VM, immagini e dischi, collegando i criteri IAM direttamente a queste risorse. Un criterio IAM consente di gestire i ruoli IAM delle risorse anziché o in aggiunta alla gestione dei ruoli a livello di progetto. In questo modo, puoi applicare il principio del privilegio minimo, ovvero concedere l'accesso solo alle risorse specifiche necessarie ai collaboratori per svolgere il proprio lavoro.

Con i criteri IAM per le risorse Compute Engine, le organizzazioni possono:

  • Concedere agli utenti l'accesso a un sottoinsieme specifico di risorse. Supponiamo che Alice debba gestire un sottoinsieme di istanze in un progetto. Con i criteri IAM a livello di istanza, le concedi il ruolo compute.instanceAdmin.v1 solo su quelle istanze. Se hai concesso ad Alice lo stesso ruolo nel progetto, allora avrà l'autorizzazione per modificare tutte le istanze nel progetto.
  • Consenti agli amministratori di concedere l'accesso. Gli amministratori possono concedere ad altre persone l'accesso a istanze, dischi e immagini senza dover essere proprietari esperti del progetto. Supponiamo che Roberto sia uno sviluppatore a cui è stato concesso il ruolo compute.storageAdmin per un'immagine specifica. Può condividere l'immagine con i membri del suo team concedendo loro il ruolo compute.imageUser sull'immagine. Senza i criteri IAM per le risorse Compute Engine, Bob non può condividere l'immagine con i membri del suo team, a meno che non diventi il proprietario del progetto perché dovrebbe modificare il criterio IAM del progetto.

Le risorse ereditano anche i criteri delle risorse padre. Se imposti un criterio a livello di progetto, questo viene ereditato da tutte le risorse figlio. Il criterio effettivo per una risorsa è l'unione del criterio impostato a livello di risorsa e del criterio ereditato dai livelli superiori nella gerarchia. Per ulteriori informazioni, consulta la gerarchia dei criteri IAM.

Criteri dell'organizzazione

Se sei un membro di Google Workspace, il tuo progetto potrebbe far parte di una risorsa organizzazione. Una risorsa organizzazione è il supernodo nella gerarchia delle risorse di Google Cloud strettamente associato a un account Google Workspace. Dopo aver creato una risorsa Organizzazione per un dominio Google Workspace, tutti i progetti Google Cloud creati dai membri del dominio appartengono alla risorsa Organizzazione.

Un'organizzazione può implementare i criteri dell'organizzazione, che limitano le configurazioni consentite nell'intera gerarchia di risorse Google Cloud. Per Compute Engine, puoi implementare i seguenti criteri:

Per impostare i Criteri dell'organizzazione, devi aver ricevuto il ruolo orgpolicy.policyAdmin per l'organizzazione. Puoi anche impostare override specifici per progetto in caso di eccezioni al criterio.

Per saperne di più sulle organizzazioni, leggi la documentazione relativa alle organizzazioni.

Per ulteriori informazioni sui criteri dell'organizzazione, leggi la documentazione sui criteri dell'organizzazione.

Concessione agli utenti dell'accesso SSH alle istanze VM

Per consentire a un utente di connettersi a un'istanza VM utilizzando SSH senza concedergli la possibilità di gestire le risorse Compute Engine, aggiungi la chiave pubblica dell'utente al progetto oppure aggiungi la chiave pubblica di un utente a un'istanza specifica. Con questo metodo, puoi evitare di aggiungere un utente come membro del progetto, ma concedergli l'accesso a istanze specifiche.

Per ulteriori informazioni su SSH e sulla gestione delle chiavi SSH, consulta la panoramica sulle chiavi SSH.

Tieni presente che, se concedi il ruolo roles/compute.instanceAdmin.v1 a un membro del progetto, quest'ultimo può connettersi automaticamente alle istanze tramite SSH, purché l'istanza non sia configurata per l'esecuzione come account di servizio. Se l'istanza è configurata per l'esecuzione come account di servizio, devi concedere anche il ruolo roles/iam.serviceAccountUser prima che il membro possa connettersi all'istanza.

Se aggiungi un membro come proprietario o editor del progetto, anche quest'ultimo avrà automaticamente accesso SSH alle istanze VM nel progetto.

Controllo dell'accesso per le app in esecuzione su istanze VM

Se esegui il codice dell'app sulle istanze e l'app deve eseguire l'autenticazione con altre API Google Cloud, puoi creare account di servizio e assegnare a questi account di servizio ruoli IAM specifici per l'autenticazione in altre API Google Cloud per tuo conto. Un account di servizio è un account speciale che non ha credenziali utente ed è ideale per le interazioni server-server.

Per saperne di più sugli account di servizio, leggi la documentazione relativa agli account di servizio.

Identità dei carichi di lavoro gestite per i carichi di lavoro di Compute Engine

Puoi configurare il provisioning automatico e la gestione del ciclo di vita dei certificati X.509 da Certificate Authority Service (CA Service) utilizzando identità dei carichi di lavoro gestiti. I certificati di identità per i carichi di lavoro gestiti vengono emessi da CA Service, un servizio Google Cloud scalabile e a disponibilità elevata che consente di semplificare e automatizzare il deployment, la gestione e la sicurezza dei servizi CA mantenendo il controllo delle chiavi private.

Con le identità dei carichi di lavoro gestiti, puoi trarre vantaggio da mTLS per VM, gestito da Compute Engine. La funzionalità mTLS per VM utilizza i certificati X.509 emessi quando crei una VM. I certificati mTLS vengono ruotati automaticamente, quindi non devi più preoccuparti di gestirli.

Le identità dei carichi di lavoro gestiti forniscono una base per abilitare comunicazioni con autenticazione e crittografia reciprocamente tra due VM di Compute Engine. Ad esempio, quando utilizzi identità di carichi di lavoro gestiti, il servizio A in esecuzione su una VM comunica con il servizio B in esecuzione in un canale diverso su un canale criptato stabilito tramite mTLS.

Per informazioni sulla configurazione delle identità dei carichi di lavoro gestiti, consulta Autenticare i carichi di lavoro in altri carichi di lavoro tramite mTLS.

Che cosa succede dopo?