Questa pagina descrive come esercitare il principio del privilegio minimo concedere l'accesso a specifici Compute Engine resources anziché concedere l'accesso a una risorsa padre come un un progetto, una cartella o un'organizzazione.
Per concedere l'accesso a una risorsa, devi impostare Criterio IAM (Identity and Access Management) sulla risorsa. Il criterio vincola uno o più membri, ad esempio un utente o un account di servizio, a uno o più ruoli. Ogni ruolo contiene un elenco delle autorizzazioni che consentono al membro di interagire con la risorsa.
Se concedi l'accesso a un risorsa padre (ad esempio, a un progetto), concedi implicitamente l'accesso a tutti i suoi di risorse (ad esempio, tutte le VM in quel progetto). Per limitare l'accesso a di risorse, impostano criteri IAM su risorse di livello inferiore anziché a livello di progetto o di livello superiore.
Per informazioni generali su come concedere, modificare e revocare l'accesso a non correlate a Compute Engine, ad esempio per concedere l'accesso un progetto Google Cloud, consulta la documentazione IAM per Concessione, modifica e revoca dell'accesso alle risorse.
Prima di iniziare
- Consulta la panoramica di IAM.
- Leggi la panoramica sul controllo dell'accesso di Compute Engine.
- Acquisisci familiarità con Ruoli IAM per Compute Engine .
-
Se non l'hai già fatto, configura l'autenticazione.
Autenticazione è
la procedura di verifica dell'identità per l'accesso ai servizi e alle API di Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione
Compute Engine come segue.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
Per concedere o revocare l'accesso alle risorse:
-
compute.projects.get
del progetto -
compute.RESOURCE_TYPE.get
sulla risorsa -
compute.RESOURCE_TYPE.getIamPolicy
sulla risorsa -
compute.RESOURCE_TYPE.setIamPolicy
sulla risorsa
-
-
Per testare le autorizzazioni del chiamante:
compute.RESOURCE_TYPE.getIamPolicy
sulla risorsaSostituisci RESOURCE_TYPE con la risorsa di cui vuoi gestire l'accesso. Ad esempio
instances
,instanceTemplates
oimages
. - Nella console Google Cloud, vai alla rispettiva pagina delle risorse per la quale
vuoi aggiungere le autorizzazioni.
- Per le istanze, vai alla pagina Istanze VM.
- Per i dischi a livello di zona e di regione, vai alla pagina Dischi.
- Per gli snapshot, vai alla pagina Snapshot.
- Per le immagini, vai alla pagina Immagini.
- Per i modelli di istanza, vai alla pagina Modelli 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 delle risorse.
- Per le istanze VM, fai clic su Autorizzazioni.
- Per tutte le altre risorse, completa i seguenti passaggi:
- Controlla se il riquadro informativo è visibile. Se non è visibile, fai clic su Mostra riquadro informazioni.
- Seleziona la scheda Autorizzazioni.
- Fai clic su Aggiungi entità.
- Aggiungi l'identità per l'entità e seleziona il ruolo richiesto.
- Per salvare le modifiche, fai clic su Salva.
RESOURCE_TYPE
: tipo di risorsa. Valori validi include: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à che vuoi concedere al 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à.Leggi il criterio esistente con il rispettivo
getIamPolicy
della risorsa . Ad esempio, la seguente richiesta HTTP legge Criterio 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 del progetto a cui appartiene questa VM.ZONE
: la zona della VM. Per regione risorse globali, sostituiscizones/ZONE
conregions/REGION
oglobal
.VM_NAME
: il nome dell'istanza VM.
Compute Engine restituisce il criterio attuale nella risposta.
Modifica il criterio con un editor di testo per aggiungere o rimuovere entità e i relativi ruoli associati. Ad esempio, per concedere il ruolo
compute.admin
a email@example.com, aggiungi la nuova associazione seguente al criterio:{ "members": [ "user:email@example.com" ], "role":"roles/compute.admin" }
Scrivi il criterio aggiornato 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 del progetto a cui appartiene questa VM.ZONE
: la zona della VM. Per regione risorse globali, sostituiscizones/ZONE
conregions/REGION
oglobal
.VM_NAME
: il nome dell'istanza VM.
Nel corpo della richiesta, fornisci i dati IAM aggiornati del passaggio precedente.
- Nella console Google Cloud, vai alla rispettiva pagina delle risorse per la quale
vuoi aggiungere le autorizzazioni.
- Per le istanze, vai alla pagina Istanze VM.
- Per i dischi a livello di zona e di regione, 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 modelli di istanza, vai alla pagina Modelli 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 delle risorse.
- Per le istanze VM, fai clic su Autorizzazioni.
- Per tutte le altre risorse, completa i seguenti passaggi:
- Controlla se il riquadro informativo è 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à. Questo espande e mostra gli utenti con quel ruolo per quella risorsa.
- Per rimuovere un'entità da quel ruolo, fai clic su Elimina.
RESOURCE_TYPE
: tipo di risorsa. Valori validi include:disks
images
instances
instance-templates
machine-images
reservations
sole-tenancy node-groups
sole-tenancy node-templates
snapshots
RESOURCE_NAME
: 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
: ruolo da cui vuoi rimuovere l'entità.Leggi il criterio esistente con il rispettivo
getIamPolicy
della risorsa . Ad esempio, la seguente richiesta HTTP legge Criterio 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 del progetto a cui appartiene questa VM.ZONE
: la zona della VM. Per regione risorse globali, sostituiscizones/ZONE
conregions/REGION
oglobal
.VM_NAME
: il nome dell'istanza VM.
Compute Engine restituisce il criterio attuale nella risposta.
Modifica il criterio con un editor di testo per rimuovere membri dal ruoli associati. Ad esempio, rimuovi email@example.com da il ruolo
compute.admin
:{ "members": [ "user:owner@example.com" ], "role":"roles/compute.admin" }
Scrivi il criterio aggiornato 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 del progetto a cui appartiene questa VM.ZONE
: la zona della VM. Per regione risorse globali, sostituiscizones/ZONE
conregions/REGION
oglobal
.VM_NAME
: il nome dell'istanza VM.
Nel corpo della richiesta, fornisci i dati IAM aggiornati del passaggio precedente.
Invia una richiesta alla risorsa e includi nel corpo della richiesta un elenco autorizzazioni da controllare.
Ad esempio, in un'istanza, potresti cercare
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" ] }
- Scopri come gestire l'accesso alle immagini personalizzate con IAM.
- Scopri di più sugli account di servizio.
- Scopri di più sui ruoli IAM di Compute Engine.
- Scopri di più sulle autorizzazioni incluse negli Ruoli IAM di Compute Engine.
- Scopri come creare e gestire i ruoli personalizzati.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Per ulteriori informazioni, vedi Esegui l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per gestire l'accesso alle risorse Compute Engine, chiedi all'amministratore di concederti Ruolo IAM Amministratore computing (
roles/compute.admin
) per la risorsa. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.Questo ruolo predefinito contiene le autorizzazioni necessarie per gestire l'accesso alle risorse Compute Engine. Per vedere le autorizzazioni esatte obbligatorie, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per gestire l'accesso alle risorse Compute Engine, sono necessarie le seguenti autorizzazioni:
Potresti anche riuscire a ottenere queste autorizzazioni con ruoli personalizzati altri ruoli predefiniti.
Risorse supportate
Per visualizzare un elenco di risorse Compute Engine che supportano il livello di risorsa controllo dell'accesso, consulta Tipi di risorse che accettano i criteri IAM e filtra per Compute Engine.
Per le altre risorse Compute Engine che non supportano il livello di risorsa e il controllo dell'accesso, devi gestire l'accesso a queste risorse nel progetto, a livello di cartella o di organizzazione. Per informazioni su organizzazioni, cartelle o progetti, vedi Gerarchia delle risorse.
Concessione dell'accesso alle risorse Compute Engine
Un'entità, ad esempio un account utente o di servizio, può accedere a Compute Engine Google Cloud. Un'identità è una proprietà di un'entità. Il ruolo di un'entità L'identità è in genere rappresentata da un indirizzo email associato all'account.
Prima di concedere un ruolo IAM a un'entità per una risorsa, per controllare quali ruoli sono disponibili per una determinata risorsa. Per ulteriori informazioni le informazioni, vedi Visualizzazione dei ruoli assegnabili nelle risorse.
Per concedere l'autorizzazione ad accedere a risorse Compute Engine specifiche, e impostare un criterio IAM per la risorsa.
Console
gcloud
Per concedere un ruolo a un'entità su una risorsa, utilizza il metodo sottocomando
add-iam-policy-binding
con i flag--member
e--role
.gcloud compute RESOURCE_TYPE add-iam-policy-binding RESOURCE_NAME \ --member='PRINCIPAL' \ --role='ROLE'
Sostituisci quanto segue:
Se concedi l'accesso a una risorsa in anteprima, usa un comando
gcloud beta compute
.REST
Per modificare un criterio IAM tramite l'API, procedi nel seguente modo: seguenti:
Revoca dell'accesso alle risorse
Come best practice, quando le entità non hanno più bisogno di accedere revoca l'accesso alle risorse Compute Engine.
Console
gcloud
Per rimuovere un ruolo da un'entità per una risorsa, utilizza il comando sottocomando
remove-iam-policy-binding
con--member
e--role
e i flag facoltativi.gcloud compute RESOURCE_TYPE remove-iam-policy-binding RESOURCE_NAME \ --member='MEMBER' \ --role='ROLE'
Sostituisci quanto segue:
Se stai revocando l'accesso a una risorsa in anteprima, usa un comando
gcloud beta compute
.REST
Per modificare un criterio IAM direttamente tramite l'API, procedi nel seguente modo: seguenti:
Verificare se un chiamante dispone delle autorizzazioni
Se non sai di quali autorizzazioni dispone un'identità, utilizza la
testIamPermissions
metodo API per verificare 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 concesse al chiamante. Puoi utilizzare questo su una qualsiasi delle risorse supportate.
In genere,
testIamPermissions
è pensato per l'integrazione software proprietari, come una Graphic User Interface personalizzata. Tu in genere non chiamanotestIamPermissions
se utilizzi Google Cloud direttamente per gestire le autorizzazioni.Ad esempio, se crei una GUI sull'API Compute Engine e la tua GUI abbia un che avvia un'istanza, puoi chiamare
compute.instances.testIamPermissions()
per stabilire se il pulsante deve possono essere attivate o disattivate.Per verificare se un chiamante ha autorizzazioni specifiche per una risorsa:
Modifica dell'accesso alle risorse per più membri
Se vuoi modificare l'accesso alle risorse Compute Engine per più risorse contemporaneamente, esaminare i consigli su come modificare un criterio IAM in modo programmatico.
Passaggi successivi
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 2024-08-22 UTC.
[{ "type": "thumb-down", "id": "hardToUnderstand", "label":"Hard to understand" },{ "type": "thumb-down", "id": "incorrectInformationOrSampleCode", "label":"Incorrect information or sample code" },{ "type": "thumb-down", "id": "missingTheInformationSamplesINeed", "label":"Missing the information/samples I need" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problema di traduzione" },{ "type": "thumb-down", "id": "otherDown", "label":"Altra" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Facile da capire" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Il problema è stato risolto" },{ "type": "thumb-up", "id": "otherUp", "label":"Altra" }] -