Questa pagina descrive come applicare il principio del privilegio minimo concedendo l'accesso a risorse di Compute Engine specifiche anziché a una risorsa principale come un progetto, una cartella o un'organizzazione.
Puoi concedere l'accesso a una risorsa impostando una policy IAM (Identity and Access Management) sulla risorsa. La policy vincola uno o più membri, ad esempio un utente o un service account, a uno o più ruoli. Ogni ruolo contiene un elenco di autorizzazioni che consentono al membro di interagire con la risorsa.
Se concedi l'accesso a una risorsa principale (ad esempio a un progetto), concedi implicitamente l'accesso a tutte le sue risorse secondarie (ad esempio a tutte le VM del progetto). Per limitare l'accesso alle risorse, imposta le policy IAM sulle risorse di livello inferiore, se possibile, anziché a livello di progetto o superiore.
Per informazioni generali su come concedere, modificare e revocare l'accesso alle risorse non correlate a Compute Engine, ad esempio per concedere l'accesso a un progetto Trusted Cloud by S3NS , consulta la documentazione IAM relativa a Concessione, modifica e revoca dell'accesso alle risorse.
Prima di iniziare
- Consulta la panoramica di IAM.
- Leggi la panoramica del controllo dell'accesso di Compute Engine.
- Acquisisci familiarità con i ruoli IAM per Compute Engine .
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è
il processo mediante il quale la tua identità viene verificata per l'accesso a servizi e API di Trusted Cloud by S3NS .
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Trusted Cloud console to access Trusted Cloud by S3NS services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, and then sign in to the gcloud CLI with your federated identity. After signing in, initialize the Google Cloud CLI by running the following command:
gcloud init
- Set a default region and zone.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.
Install the Google Cloud CLI, and then sign in to the gcloud CLI with your federated identity. After signing in, initialize the Google Cloud CLI by running the following command:
gcloud init
Per saperne di più, consulta Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Trusted Cloud .
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per gestire l'accesso alle risorse di Compute Engine, chiedi all'amministratore di concederti il ruolo IAM Compute Admin (
roles/compute.admin
) sulla risorsa. Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.Questo ruolo predefinito contiene le autorizzazioni necessarie per gestire l'accesso alle risorse di Compute Engine. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per gestire l'accesso alle risorse di Compute Engine sono necessarie le seguenti autorizzazioni:
-
Per concedere o revocare l'accesso alle risorse:
-
compute.projects.get
sul progetto -
compute.RESOURCE_TYPE.get
sulla risorsa -
compute.RESOURCE_TYPE.getIamPolicy
sulla risorsa -
compute.RESOURCE_TYPE.setIamPolicy
sulla risorsa
-
-
Per testare le autorizzazioni chiamante:
compute.RESOURCE_TYPE.getIamPolicy
sulla risorsaSostituisci RESOURCE_TYPE con la risorsa per cui vuoi gestire l'accesso. Ad esempio
instances
,instanceTemplates
oimages
.
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Risorse supportate
Per visualizzare un elenco delle risorse di Compute Engine che supportano il controllo dell'accesso a livello di risorsa, consulta Tipi di risorse che accettano le policy IAM e filtra per Compute Engine.
Per le altre risorse di Compute Engine che non supportano il controllo dell'accesso a livello di risorsa, devi gestire l'accesso a queste risorse a livello di progetto, cartella o organizzazione. Per informazioni su organizzazioni, cartelle o progetti, consulta Gerarchia delle risorse.
Concessione dell'accesso alle risorse di Compute Engine
Un'entità, ad esempio un utente o un service account, può accedere alle risorse di Compute Engine. Un'identità è una proprietà di un'entità. L'identità di un'entità è in genere rappresentata da un indirizzo email associato all'account.
Prima di concedere un ruolo IAM a un'entità per una risorsa, controlla quali ruoli sono disponibili per una determinata risorsa. Per ulteriori informazioni, consulta Visualizzazione dei ruoli assegnabili sulle risorse.
Per concedere l'autorizzazione di accesso a risorse di Compute Engine specifiche, imposta una policy IAM sulla risorsa.
Console
- Nella console Trusted Cloud , vai alla pagina della risorsa per cui
vuoi aggiungere le autorizzazioni.
- Per le istanze, vai alla pagina Istanze VM.
- Per i dischi zonali e regionali, vai alla pagina Dischi.
- Per gli snapshot, vai alla pagina Snapshot.
- Per le immagini, vai alla pagina Immagini.
- Per i template di istanza, vai alla pagina Template di istanza.
- Per le immagini macchina, vai alla pagina Immagini macchina.
- Per le prenotazioni, vai alla pagina Prenotazioni.
- Per i nodi single-tenant, vai alla pagina Nodi single-tenant.
- Seleziona le caselle di controllo accanto alle risorse che vuoi aggiornare.
- Completa i seguenti passaggi in base alla pagina della risorsa.
- Per le istanze VM, fai clic su Autorizzazioni.
- Per tutte le altre risorse, completa i seguenti passaggi:
- Controlla se il riquadro informazioni è visibile. Se non è visibile, fai clic su Mostra riquadro informazioni.
- Seleziona la scheda Autorizzazioni.
- Fai clic su Aggiungi entità.
- Aggiungi l'identità dell'entità e seleziona il ruolo richiesto.
- Per salvare le modifiche, fai clic su Salva.
gcloud
Per concedere un ruolo a un'entità in una risorsa, utilizza il sottocomando
add-iam-policy-binding
della risorsa con i flag--member
e--role
.gcloud compute RESOURCE_TYPE add-iam-policy-binding RESOURCE_NAME \ --member='PRINCIPAL' \ --role='ROLE'
Sostituisci quanto segue:
RESOURCE_TYPE
: il tipo di risorsa. I valori validi includono:disks
images
instances
instance-templates
machine-images
reservations
sole-tenancy node-groups
sole-tenancy node-templates
snapshots
RESOURCE_NAME
: il nome della risorsa. Ad esempio,my_instance
.PRINCIPAL
: un'identità valida per l'entità a cui vuoi concedere il ruolo. Deve essere nel formatouser|group|serviceAccount:EMAIL_ADDRESS
odomain:DOMAIN_ADDRESS
. Ad esempio:user:test-user@gmail.com
group:admins@example.com
serviceAccount:test123@example.domain.com
domain:example.domain.com
ROLE
: il ruolo da assegnare a questa entità.
Se concedi l'accesso a una risorsa in anteprima, utilizza un comando
gcloud beta compute
.REST
Per modificare una policy IAM tramite l'API, segui questi passaggi:
Leggi la policy esistente con il metodo
getIamPolicy
della risorsa corrispondente. Ad esempio, la seguente richiesta HTTP legge la policy IAM di una VM:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME:getIamPolicy
Sostituisci quanto segue:
PROJECT_ID
: l'ID progetto del progetto a cui appartiene questa VM.ZONE
: la zona della VM. Per le risorse regionali o globali, sostituiscizones/ZONE
conregions/REGION
oglobal
.VM_NAME
: il nome dell'istanza VM.
Compute Engine restituisce la policy corrente nella risposta.
Modifica la policy con un editor di testo per aggiungere o rimuovere le entità e i relativi ruoli associati. Ad esempio, per concedere il ruolo
compute.admin
a email@example.com, aggiungi la seguente nuova associazione alla policy:{ "members": [ "user:email@example.com" ], "role":"roles/compute.admin" }
Scrivi la policy aggiornata con
setIamPolicy()
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME:setIamPolicy
Sostituisci quanto segue:
PROJECT_ID
: l'ID progetto del progetto a cui appartiene questa VM.ZONE
: la zona della VM. Per le risorse regionali o globali, sostituiscizones/ZONE
conregions/REGION
oglobal
.VM_NAME
: il nome dell'istanza VM.
Nel corpo della richiesta, fornisci la policy IAM aggiornata del passaggio precedente.
Revocare l'accesso alle risorse
Come best practice, se le entità non hanno più bisogno di accedere alle tue risorse di Compute Engine, revoca il loro accesso.
Console
- Nella console Trusted Cloud , vai alla pagina della risorsa per cui
vuoi aggiungere le autorizzazioni.
- Per le istanze, vai alla pagina Istanze VM.
- Per i dischi zonali e regionali, vai alla pagina Dischi.
- Per gli snapshot, vai alla pagina Snapshot.
- Per le immagini, vai alla pagina Immagini.
- Per i gruppi di istanze, vai alla pagina Gruppi di istanze.
- Per i template di istanza, vai alla pagina Template di istanza.
- Per le immagini macchina, vai alla pagina Immagini macchina.
- Per le prenotazioni, vai alla pagina Prenotazioni.
- Per i nodi single-tenant, vai alla pagina Nodi single-tenant.
- Seleziona le caselle di controllo accanto alle risorse che vuoi aggiornare.
- Completa i seguenti passaggi in base alla pagina della risorsa.
- Per le istanze VM, fai clic su Autorizzazioni.
- Per tutte le altre risorse, completa i seguenti passaggi:
- Controlla se il riquadro informazioni è visibile. Se non è visibile, fai clic su Mostra riquadro informazioni.
- Seleziona la scheda Autorizzazioni.
- Fai clic sulla scheda del ruolo da cui vuoi rimuovere le entità. La scheda si espande e mostra gli utenti con quel ruolo per quella risorsa.
- Per rimuovere un'entità da quel ruolo, fai clic su Elimina.
gcloud
Per rimuovere un ruolo da un'entità per una risorsa, utilizza il sottocomando
remove-iam-policy-binding
della risorsa con i flag--member
e--role
.gcloud compute RESOURCE_TYPE remove-iam-policy-binding RESOURCE_NAME \ --member='MEMBER' \ --role='ROLE'
Sostituisci quanto segue:
RESOURCE_TYPE
: il tipo di risorsa. I valori validi includono:disks
images
instances
instance-templates
machine-images
reservations
sole-tenancy node-groups
sole-tenancy node-templates
snapshots
RESOURCE_NAME
: il nome della risorsa. Ad esempio,my_instance
.PRINCIPAL
: un'identità valida per l'entità. Deve essere nel formatouser|group|serviceAccount:EMAIL_ADDRESS
odomain:DOMAIN_ADDRESS
. Ad esempio:user:test-user@gmail.com
group:admins@example.com
serviceAccount:test123@example.domain.com
domain:example.domain.com
ROLE
: il ruolo da cui vuoi rimuovere l'entità.
Se stai revocando l'accesso a una risorsa in anteprima, utilizza un comando
gcloud beta compute
.REST
Per modificare una policy IAM direttamente tramite l'API, segui questi passaggi:
Leggi la policy esistente con il metodo
getIamPolicy
della risorsa corrispondente. Ad esempio, la seguente richiesta HTTP legge la policy IAM di una VM:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME:getIamPolicy
Sostituisci quanto segue:
PROJECT_ID
: l'ID progetto del progetto a cui appartiene questa VM.ZONE
: la zona della VM. Per le risorse regionali o globali, sostituiscizones/ZONE
conregions/REGION
oglobal
.VM_NAME
: il nome dell'istanza VM.
Compute Engine restituisce la policy corrente nella risposta.
Modifica la policy con un editor di testo per rimuovere i membri dai ruoli associati. Ad esempio, rimuovi email@example.com dal ruolo
compute.admin
:{ "members": [ "user:owner@example.com" ], "role":"roles/compute.admin" }
Scrivi la policy aggiornata con
setIamPolicy()
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME:setIamPolicy
Sostituisci quanto segue:
PROJECT_ID
: l'ID progetto del progetto a cui appartiene questa VM.ZONE
: la zona della VM. Per le risorse regionali o globali, sostituiscizones/ZONE
conregions/REGION
oglobal
.VM_NAME
: il nome dell'istanza VM.
Nel corpo della richiesta, fornisci la policy IAM aggiornata del passaggio precedente.
Verificare se un chiamante dispone delle autorizzazioni
Se non sai quali autorizzazioni ha un'identità, utilizza il metodo dell'API
testIamPermissions
per controllare quali autorizzazioni sono disponibili per un'identità.Il metodo prende un URL della risorsa e un insieme di autorizzazioni come parametri di input e restituisce l'insieme di autorizzazioni consentite al chiamante. Puoi utilizzare questo metodo su qualsiasi risorsa supportata.
In genere,
testIamPermissions
è destinato all'integrazione con il tuo software proprietario, ad esempio una Graphic User Interface personalizzata. Generalmente non chiamitestIamPermissions
se utilizzi Trusted Cloud direttamente per gestire le autorizzazioni.Ad esempio, se stai creando una GUI sull'API Compute Engine e la tua GUI ha un pulsante "Avvia" che avvia un'istanza, puoi chiamare
compute.instances.testIamPermissions()
per determinare se il pulsante deve essere attivato o disattivato.Per verificare se un chiamante dispone di autorizzazioni specifiche per una risorsa:
Invia una richiesta alla risorsa e includi nel corpo della richiesta un elenco di autorizzazioni da verificare.
Ad esempio, in un'istanza, potresti verificare la presenza di
compute.instances.start
,compute.instances.stop
ecompute.instances.delete
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/testIamPermissions { "permissions": [ "compute.instances.start", "compute.instances.stop", "compute.instances.delete" ] }
La richiesta restituisce le autorizzazioni abilitate per il chiamante.
{ "permissions": [ "compute.instances.start", "compute.instances.stop" ] }
Modificare l'accesso alle risorse per più membri
Se vuoi modificare l'accesso alle risorse di Compute Engine per più membri contemporaneamente, consulta i consigli su come modificare una policy IAM in modo programmatico.
Passaggi successivi
- Scopri come gestire l'accesso alle immagini personalizzate con IAM.
- Scopri di più sui service account.
- Scopri di più sui ruoli IAM di Compute Engine.
- Scopri di più sulle autorizzazioni incluse nei ruoli IAM predefiniti di Compute Engine.
- Scopri come creare e gestire i ruoli personalizzati.
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-08-08 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-08-08 UTC."],[[["This document details how to apply the principle of least privilege by granting access to specific Compute Engine resources instead of broad parent resources like projects, folders, or organizations."],["Access to resources is managed by setting Identity and Access Management (IAM) policies on the resource, binding members to roles that contain specific permissions."],["To manage permissions, you must have the `Compute Admin` IAM role or a custom role with the necessary permissions, including those to get and set IAM policies on the respective resources."],["The guide provides instructions for granting and revoking access to Compute Engine resources using the Google Cloud console, `gcloud` command-line tool, and REST API."],["You can test whether a caller has the necessary permissions for certain actions on a resource by using the `testIamPermissions` API method."]]],[]] -