Questa pagina descrive come creare e gestire i ruoli personalizzati di Identity and Access Management (IAM). La gestione dei ruoli include la modifica, la disattivazione, l'elenco, l'eliminazione e il ripristino dei ruoli.
Prima di iniziare
Abilita l'API IAM.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo dei servizi (
roles/serviceusage.serviceUsageAdmin), che include l'autorizzazioneserviceusage.services.enable. Scopri come concedere i ruoli.Configurare l'autenticazione.
Seleziona la scheda relativa a come intendi utilizzare i campioni in questa pagina:
Console
Quando utilizzi la console Google Cloud per accedere ai servizi Google Cloud e alle API, non devi configurare l'autenticazione.
gcloud
Nella console Google Cloud , attiva Cloud Shell.
Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
C#
Per utilizzare gli esempi di .NET in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Se utilizzi una shell locale, crea credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Non è necessario eseguire questa operazione se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud .
C++
Per utilizzare gli esempi di C++ in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Se utilizzi una shell locale, crea credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Non è necessario eseguire questa operazione se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud .
Go
Per utilizzare gli esempi di Go in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Se utilizzi una shell locale, crea credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Non è necessario eseguire questa operazione se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud .
Java
Per utilizzare gli esempi Java in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Se utilizzi una shell locale, crea credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Non è necessario eseguire questa operazione se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud .
Python
Per utilizzare gli esempi di Python in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Se utilizzi una shell locale, crea credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Non è necessario eseguire questa operazione se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud .
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.
Installa Google Cloud CLI.
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Google Cloud .
-
Comprendi la Google Cloud gerarchia delle risorse.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per creare e gestire ruoli personalizzati, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Per gestire i ruoli per un progetto:
Amministratore ruoli (
roles/iam.roleAdmin) sul progetto per cui vuoi gestire i ruoli -
Per gestire i ruoli per un'organizzazione:
Amministratore ruoli organizzazione (
roles/iam.organizationRoleAdmin) nell'organizzazione per cui vuoi gestire i ruoli
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Visualizzare le autorizzazioni disponibili per progetti, cartelle e organizzazioni
Puoi creare ruoli personalizzati per un'intera organizzazione o per un progetto specifico all'interno dell'organizzazione. Le autorizzazioni disponibili per i ruoli personalizzati dipendono da dove crei il ruolo. Ad esempio, se un'autorizzazione può essere utilizzata solo a livello di organizzazione, non puoi includerla in un ruolo personalizzato a livello di progetto.
Per verificare quali autorizzazioni sono disponibili per i ruoli personalizzati a livello di organizzazione e di progetto, puoi utilizzare gcloud CLI o l'API Identity and Access Management per elencare le autorizzazioni disponibili in un'organizzazione o un progetto specifico. Ad esempio, puoi ottenere tutte le autorizzazioni disponibili per i ruoli personalizzati creati nel tuo progetto.
Alcune autorizzazioni potrebbero non essere visibili o utilizzabili in un ruolo personalizzato, anche se sono supportate nei ruoli personalizzati. Ad esempio, un'autorizzazione potrebbe non essere disponibile per l'uso nei ruoli personalizzati se non hai abilitato l'API per il servizio.
Per scoprire di più sulle autorizzazioni che puoi aggiungere ai ruoli personalizzati, vedi Autorizzazioni supportate.
gcloud
-
Nella console Google Cloud , attiva Cloud Shell.
Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
-
Utilizza il comando
gcloud iam list-testable-permissionsper ottenere un elenco delle autorizzazioni disponibili per i ruoli personalizzati in un progetto o un'organizzazione specifici. La risposta elenca le autorizzazioni che puoi utilizzare nei ruoli personalizzati per quel progetto o organizzazione.Per elencare le autorizzazioni disponibili nei ruoli personalizzati per un progetto o un'organizzazione, esegui questo comando:
gcloud iam list-testable-permissions FULL_RESOURCE_NAME \ --filter="customRolesSupportLevel!=NOT_SUPPORTED"Sostituisci
FULL_RESOURCE_NAMEcon uno dei seguenti valori:-
Progetto:
//cloudresourcemanager.googleapis.com/projects/PROJECT_ID(ad esempio,//cloudresourcemanager.googleapis.com/projects/my-project) -
Organizzazione:
//cloudresourcemanager.googleapis.com/organizations/NUMERIC_ID(ad esempio,//cloudresourcemanager.googleapis.com/organizations/123456789012)
I risultati indicano se ogni autorizzazione è supportata nei ruoli personalizzati. Le autorizzazioni che non hanno un campo
customRolesSupportLevelsono completamente supportate.Il comando
list-testable-permissionspotrebbe restituire centinaia di risultati. Questo esempio parziale mostra il formato di ogni risultato:--- name: appengine.applications.create stage: GA --- customRolesSupportLevel: TESTING name: appengine.applications.disable stage: GA --- name: appengine.applications.get stage: GA --- name: appengine.applications.update stage: GA --- name: appengine.instances.delete stage: GA --- name: appengine.instances.get stage: GA ---
-
C++
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM C++.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
C#
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM C#.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Go
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Go.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Java.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Python.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
REST
Il metodo
permissions.queryTestablePermissions
elenca le autorizzazioni disponibili in un'organizzazione o un progetto.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
FULL_RESOURCE_NAME: un URI composto dal nome del servizio e dal percorso della risorsa. Per esempi, consulta Nomi completi delle risorse.PAGE_SIZE: (Facoltativo) Il numero di autorizzazioni da includere nella risposta. Il valore predefinito è 100 e il valore massimo è 1000. Se il numero di autorizzazioni è maggiore delle dimensioni della pagina, la risposta contiene un token di paginazione che puoi utilizzare per recuperare la pagina successiva dei risultati.NEXT_PAGE_TOKEN: (Facoltativo) Il token di paginazione restituito in una risposta precedente da questo metodo. Se specificato, l'elenco delle autorizzazioni testabili inizierà dal punto in cui è terminata la risposta precedente.
Metodo HTTP e URL:
POST https://iam.googleapis.com/v1/permissions:queryTestablePermissions
Corpo JSON della richiesta:
{
"fullResourceName": "FULL_RESOURCE_NAME"
"pageSize": PAGE_SIZE,
"pageToken": "NEXT_PAGE_TOKEN"
}
Per inviare la richiesta, espandi una di queste opzioni:
La risposta contiene l'elenco delle autorizzazioni.
{
"permissions": [
{
"name": "iam.serviceAccountKeys.create",
"stage": "GA"
},
{
"name": "iam.serviceAccountKeys.delete",
"stage": "GA"
},
{
"name": "iam.serviceAccountKeys.get",
"stage": "GA"
}
],
"nextPageToken": "CgoHBajEfjUDQyABEPaIv5vIiMDTVhgDIhtpYW0uc2VydmljZUFjY291bnRLZXlzLmxpc3Q"
}
Recupera i metadati del ruolo
Prima di creare un ruolo personalizzato, ti consigliamo di recuperare i metadati per i ruoli predefiniti e personalizzati. I metadati del ruolo includono l'ID ruolo e le autorizzazioni contenute nel ruolo. Puoi visualizzare i metadati utilizzando la consoleGoogle Cloud o l'API IAM.
Per visualizzare i metadati del ruolo, utilizza uno dei metodi riportati di seguito:
Console
Nella console Google Cloud , vai alla pagina Ruoli.
Seleziona la tua organizzazione o il tuo progetto dall'elenco a discesa nella parte superiore della pagina.
Seleziona la casella di controllo per uno o più ruoli per visualizzare le autorizzazioni del ruolo. Il riquadro a destra mostra le autorizzazioni contenute nei ruoli, se presenti.
Le icone nella colonna Tipo indicano se si tratta di un ruolo personalizzato o di un ruolo predefinito
Se vuoi trovare tutti i ruoli che includono un'autorizzazione specifica, digita il nome dell'autorizzazione nella casella Filtro in alto nell'elenco Ruoli.
gcloud
-
Nella console Google Cloud , attiva Cloud Shell.
Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
-
Utilizza il comando
gcloud iam roles describeper visualizzare i metadati per i ruoli predefiniti e personalizzati.Per visualizzare i metadati di un ruolo predefinito, esegui questo comando:
gcloud iam roles describe ROLE_ID
ROLE_IDè l'ID del ruolo. I ruoli predefiniti includono il prefissorolenei relativi ID, ad esempioroles/iam.roleViewer.L'esempio seguente mostra l'output del comando
describequando viene eseguito sul ruolo predefinitoroles/iam.roleViewer:gcloud iam roles describe roles/iam.roleViewerdescription: Read access to all custom roles in the project. etag: AA== includedPermissions: - iam.roles.get - iam.roles.list - resourcemanager.projects.get - resourcemanager.projects.getIamPolicy name: roles/iam.roleViewer stage: GA title: Role Viewer
Per visualizzare i metadati di un ruolo personalizzato, esegui uno dei seguenti comandi:
-
Per visualizzare i metadati di un ruolo personalizzato creato a livello di organizzazione, esegui il comando seguente:
gcloud iam roles describe --organization=ORGANIZATION_ID ROLE_ID
-
Per visualizzare i metadati di un ruolo personalizzato creato a livello di progetto, esegui il seguente comando:
gcloud iam roles describe --project=PROJECT_ID ROLE_ID
Ogni valore segnaposto è descritto di seguito:
-
ORGANIZATION_IDè l'ID numerico dell'organizzazione, ad esempio123456789012. -
PROJECT_IDè il nome del progetto, ad esempiomy-project. -
ROLE_IDè l'ID del ruolo, esclusi eventuali prefissi comeprojects/,organizations/oroles/. Ad esempio,myCompanyAdmin.
Per saperne di più, consulta la documentazione di riferimento per
gcloud iam roles describe. -
C++
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM C++.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
C#
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM C#.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Go
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Go.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Java.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Python.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
REST
Il metodo
roles.get
recupera la definizione di un ruolo.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
ROLE_NAME: il nome completo del ruolo, inclusi i prefissiorganizations/,projects/oroles/. Ad esempio,organizations/123456789012/roles/myCompanyAdmin.
Metodo HTTP e URL:
GET https://iam.googleapis.com/v1/ROLE_NAME
Per inviare la richiesta, espandi una di queste opzioni:
La risposta contiene la definizione del ruolo.
{
"name": "projects/my-project/roles/customRole",
"title": "My Custom Role",
"description": "My custom role description.",
"includedPermissions": [
"storage.buckets.get",
"storage.buckets.list"
],
"etag": "BwWiPg2fmDE="
}
Creare un ruolo personalizzato
Puoi creare un ruolo personalizzato a livello di progetto o organizzazione.
Un ruolo personalizzato a livello di organizzazione può includere qualsiasi autorizzazione IAM supportata nei ruoli personalizzati. Un ruolo personalizzato a livello di progetto può contenere qualsiasi autorizzazione supportata ad eccezione di quelle che possono essere utilizzate solo a livello di organizzazione o cartella, ad esempio resourcemanager.organizations.get. Se provi ad aggiungere queste autorizzazioni a un ruolo personalizzato a livello di progetto, viene visualizzato un messaggio di errore:
Console
Viene visualizzato il seguente messaggio di avviso: "Non applicabile ai ruoli personalizzati a livello di progetto". L'autorizzazione verrà deselezionata automaticamente dall'elenco delle autorizzazioni incluse e potrai procedere con la creazione del ruolo.
gcloud
Viene restituito il seguente messaggio di errore: INVALID_ARGUMENT: Permission PERMISSION is not
valid. Il ruolo personalizzato non verrà creato finché non rimuoverai
l'autorizzazione dalla definizione del ruolo e non riproverai
l'operazione.
API REST
Viene restituito il seguente messaggio di errore:
Permission PERMISSION is not valid, insieme a un
codice di errore HTTP 400 e uno stato INVALID_ARGUMENT. Il ruolo personalizzato non verrà creato finché non avrai rimosso l'autorizzazione dalla definizione del ruolo e non avrai riprovato l'operazione.
Ogni ruolo personalizzato può contenere fino a 3000 autorizzazioni. Inoltre, la dimensione totale massima di titolo, descrizione e nomi autorizzazione per un ruolo personalizzato è 64 kB. Se devi
creare un ruolo personalizzato più grande, puoi dividere le autorizzazioni in
più ruoli personalizzati. Scegli titoli di ruolo che mostrino la relazione tra i
ruoli personalizzati, ad esempio Custom Admin (1 of 2) e Custom Admin (2 of 2).
Ogni ruolo personalizzato può avere una fase di lancio. La maggior parte delle fasi di lancio sono informative
e ti aiutano a tenere traccia della disponibilità di ogni ruolo per un utilizzo diffuso.
Inoltre, la fase di lancio DISABLED ti consente di disattivare un ruolo personalizzato. Per saperne di più sulle fasi di lancio, consulta Test e deployment.
Console
Alcuni ruoli predefiniti contengono autorizzazioni ritirate o autorizzazioni che non sono altrimenti consentite nei ruoli personalizzati. Se provi a creare un ruolo personalizzato basato su uno di questi ruoli predefiniti, il ruolo personalizzato ometterà le autorizzazioni ritirate e con limitazioni.
Per creare un nuovo ruolo personalizzato da zero:
Nella console Google Cloud , vai alla pagina Ruoli.
Utilizza l'elenco a discesa nella parte superiore della pagina per selezionare l'organizzazione o il progetto in cui vuoi creare un ruolo.
Fai clic su Crea ruolo.
Inserisci un Titolo, una Descrizione, un ID e una Fase di lancio del ruolo per il ruolo. L'ID ruolo non può essere modificato dopo la creazione del ruolo.
Fai clic su Aggiungi autorizzazioni.
Seleziona le autorizzazioni da includere nel ruolo e fai clic su Aggiungi autorizzazioni. Utilizza gli elenchi a discesa Tutti i servizi e Tutti i tipi per filtrare e selezionare le autorizzazioni per servizi e tipi.
Creazione di un ruolo personalizzato basato su un ruolo predefinito esistente:
- Nella console Google Cloud , vai alla pagina Ruoli.
- Seleziona l'organizzazione o il progetto in cui vuoi creare un ruolo.
- Seleziona i ruoli su cui vuoi basare il nuovo ruolo personalizzato.
- Fai clic su Crea ruolo da selezione.
- Inserisci un Titolo, una Descrizione, un ID e una Fase di lancio del ruolo per il ruolo. L'ID ruolo non può essere modificato dopo la creazione del ruolo.
- Deseleziona le autorizzazioni che vuoi escludere dal ruolo.
- Fai clic su Aggiungi autorizzazioni per includere le autorizzazioni.
- Fai clic su Crea.
gcloud
-
Nella console Google Cloud , attiva Cloud Shell.
Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
-
Utilizza il comando
gcloud iam roles createper creare nuovi ruoli personalizzati. Puoi utilizzare questo comando in due modi:-
Fornendo un file YAML che contiene la definizione del ruolo
-
Utilizzando i flag per specificare la definizione del ruolo
Quando crei un ruolo personalizzato, devi specificare se si applica a livello di organizzazione o di progetto utilizzando i flag
--organization=ORGANIZATION_IDo--project=PROJECT_ID. Ogni esempio riportato di seguito crea un ruolo personalizzato a livello di progetto.Un ruolo personalizzato può contenere solo autorizzazioni supportate nei ruoli personalizzati. Se il ruolo personalizzato contiene altre autorizzazioni, il comando non va a buon fine.
Per creare un ruolo personalizzato utilizzando un file YAML:
Crea un file YAML che contenga la definizione del tuo ruolo personalizzato. Il file deve essere strutturato nel seguente modo:
title: ROLE_TITLE description: ROLE_DESCRIPTION stage: LAUNCH_STAGE includedPermissions: - PERMISSION_1 - PERMISSION_2
Ogni valore segnaposto è descritto di seguito:
-
ROLE_TITLEè un titolo descrittivo per il ruolo, ad esempio"My Company Admin". -
ROLE_DESCRIPTIONè una breve descrizione del ruolo, ad esempio"My custom role description". -
LAUNCH_STAGEindica la fase di un ruolo nel ciclo di vita del lancio, ad esempioALPHA,BETAoGA. -
PERMISSION_1ePERMISSION_2sono autorizzazioni da includere nel ruolo personalizzato, ad esempioiam.roles.get. Non puoi utilizzare caratteri jolly (*) nei nomi delle autorizzazioni.
Salva il file YAML, quindi esegui uno dei seguenti comandi:
-
Per creare un ruolo personalizzato a livello di organizzazione, esegui il seguente comando:
gcloud iam roles create ROLE_ID--organization=ORGANIZATION_ID \ --file=YAML_FILE_PATH -
Per creare un ruolo personalizzato a livello di progetto, esegui questo comando:
gcloud iam roles create ROLE_ID --project=PROJECT_ID \ --file=YAML_FILE_PATH
Ogni valore segnaposto è descritto di seguito:
-
ROLE_IDè il nome del ruolo, ad esempiomyCompanyAdmin. -
ORGANIZATION_IDè l'ID numerico dell'organizzazione, ad esempio123456789012. -
PROJECT_IDè il nome del progetto, ad esempiomy-project. -
YAML_FILE_PATHè il percorso della posizione del file YAML che contiene la definizione del ruolo personalizzato.
Esempi
Il seguente file YAML di esempio mostra come creare una definizione di ruolo:
title: "My Company Admin" description: "My custom role description." stage: "ALPHA" includedPermissions: - iam.roles.get - iam.roles.list
L'esempio seguente mostra come creare un ruolo a livello di organizzazione utilizzando il file YAML:
gcloud iam roles create myCompanyAdmin --organization=123456789012 \ --file=my-role-definition.yamlSe il ruolo è stato creato correttamente, l'output del comando è simile al seguente:
Created role [myCompanyAdmin]. description: My custom role description. etag: BwVkBX0sQD0= includedPermissions: - iam.roles.get - iam.roles.list name: organizations/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
Il seguente esempio mostra come creare un ruolo a livello di progetto utilizzando il file YAML:
gcloud iam roles create myCompanyAdmin --project=my-project \ --file=my-role-definition.yamlSe il ruolo è stato creato correttamente, l'output del comando è simile al seguente:
Created role [myCompanyAdmin]. description: My custom role description. etag: BwVkBX0sQD0= includedPermissions: - iam.roles.get - iam.roles.list name: projects/my-project/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
Per creare un ruolo personalizzato utilizzando i flag:
Esegui uno dei seguenti comandi:
-
Per creare un ruolo personalizzato a livello di organizzazione, esegui il seguente comando:
gcloud iam roles create ROLE_ID--organization=ORGANIZATION_ID \ --title=ROLE_TITLE --description=ROLE_DESCRIPTION \ --permissions="PERMISSIONS_LIST" --stage=LAUNCH_STAGE -
Per creare un ruolo personalizzato a livello di progetto, esegui questo comando:
gcloud iam roles create ROLE_ID --project=PROJECT_ID \ --title=ROLE_TITLE --description=ROLE_DESCRIPTION \ --permissions="PERMISSIONS_LIST" --stage=LAUNCH_STAGE
Ogni valore segnaposto è descritto di seguito:
-
ROLE_IDè il nome del ruolo, ad esempiomyCompanyAdmin. -
ORGANIZATION_IDè l'ID numerico dell'organizzazione, ad esempio123456789012. -
PROJECT_IDè il nome del progetto, ad esempiomy-project. -
ROLE_TITLEè un titolo descrittivo per il ruolo, ad esempio"My Company Admin". -
ROLE_DESCRIPTIONè una breve descrizione del ruolo, ad esempio"My custom role description.". -
PERMISSIONS_LISTcontiene un elenco separato da virgole di autorizzazioni che vuoi includere nel ruolo personalizzato. Ad esempio:iam.roles.get,iam.roles.list. Non puoi utilizzare caratteri jolly (*) nei nomi delle autorizzazioni. -
LAUNCH_STAGEindica la fase di un ruolo nel ciclo di vita del lancio, ad esempioALPHA,BETAoGA.
Esempi
L'esempio seguente mostra come creare un ruolo a livello di organizzazione utilizzando i flag:
gcloud iam roles create myCompanyAdmin --organization=123456789012 \ --title="My Company Admin" --description="My custom role description." \ --permissions="iam.roles.get,iam.roles.list" --stage=ALPHASe il ruolo è stato creato correttamente, l'output del comando è simile al seguente:
Created role [myCompanyAdmin]. description: My custom role description. etag: BwVkBX0sQD0= includedPermissions: - iam.roles.get - iam.roles.list name: organizations/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
Il seguente esempio mostra come creare un ruolo a livello di progetto utilizzando i flag:
gcloud iam roles create myCompanyAdmin --project=my-project \ --title="My Company Admin" --description="My custom role description." \ --permissions="iam.roles.get,iam.roles.list" --stage=ALPHASe il ruolo è stato creato correttamente, l'output del comando è simile al seguente:
Created role [myCompanyAdmin]. description: My custom role description. etag: BwVkBX0sQD0= includedPermissions: - iam.roles.get - iam.roles.list name: projects/my-project/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
-
C++
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM C++.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
C#
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM C#.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Go
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Go.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Java.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Python.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
REST
Il metodo
roles.create
crea un ruolo personalizzato in un progetto o un'organizzazione.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
RESOURCE_TYPE: il tipo di risorsa di cui vuoi gestire i ruoli personalizzati. Utilizza il valoreprojectsoorganizations.RESOURCE_ID: L'ID progetto o l'ID organizzazione di cui vuoi gestire i ruoli personalizzati. Gli ID progetto sono stringhe alfanumeriche, comemy-project. Gli ID organizzazione sono numerici, ad esempio123456789012.ROLE_ID: il nome del ruolo, ad esempiomyCompanyAdmin.ROLE_TITLE: il titolo leggibile del ruolo. Ad esempio,My Company Admin.ROLE_DESCRIPTION: una descrizione del ruolo. Ad esempio,"The company admin role allows company admins to access important resources".-
PERMISSION_1ePERMISSION_2: le autorizzazioni che vuoi includere nel ruolo. Ad esempio,storage.objects.update. Non puoi utilizzare caratteri jolly (*) nei nomi delle autorizzazioni.Un ruolo personalizzato può contenere solo autorizzazioni supportate nei ruoli personalizzati. Se il ruolo personalizzato contiene altre autorizzazioni, la richiesta non va a buon fine.
LAUNCH_STAGE: La fase di lancio attuale del ruolo. Questo campo può contenere uno dei seguenti valori:EAP,ALPHA,BETA,GA,DEPRECATEDoDISABLED.
Metodo HTTP e URL:
POST https://iam.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/roles
Corpo JSON della richiesta:
{
"roleId": "ROLE_ID",
"role": {
"title": "ROLE_TITLE",
"description": "ROLE_DESCRIPTION",
"includedPermissions": [
"PERMISSION_1",
"PERMISSION_2"
],
"stage": "LAUNCH_STAGE"
}
}
Per inviare la richiesta, espandi una di queste opzioni:
La risposta contiene il ruolo che hai creato.
{
"name": "projects/myProject/roles/myCompanyAdmin",
"title": "My Company Admin",
"description": "My custom role description.",
"includedPermissions": [
"iam.roles.get",
"iam.roles.list"
],
"etag": "BwWox/JbaZw="
}
Modificare un ruolo personalizzato esistente
Un pattern comune per l'aggiornamento dei metadati di una risorsa, ad esempio un ruolo personalizzato, è il pattern read-modify-write. Con questo pattern, leggi lo stato attuale del ruolo, aggiorni i dati localmente e poi invii i dati modificati per la scrittura.
Il pattern read-modify-write può causare un conflitto se due o più processi indipendenti
tentano la sequenza contemporaneamente. Ad esempio, se due proprietari di un progetto tentano di apportare modifiche in conflitto a un ruolo contemporaneamente, alcune modifiche potrebbero non andare a buon fine. IAM risolve questo problema utilizzando una proprietà etag nei
ruoli personalizzati. Questa proprietà viene utilizzata per verificare se il ruolo personalizzato è cambiato
dall'ultima richiesta. Quando invii una richiesta a IAM con un valore
etag, IAM confronta il valore etag nella richiesta con il
valore etag esistente associato al ruolo personalizzato. Scrive la modifica solo
se i valori ETag corrispondono.
Quando aggiorni un ruolo, recuperalo prima utilizzando roles.get(), aggiornalo
e poi scrivi il ruolo aggiornato utilizzando roles.patch(). Utilizza il valore etag quando
imposti il ruolo solo se il ruolo corrispondente in roles.get() contiene un
valore etag.
Console
Nella console Google Cloud , vai alla pagina Ruoli.
Utilizza l'elenco a discesa nella parte superiore della pagina per selezionare il progetto o l'organizzazione che contiene il ruolo da modificare.
Fai clic su un ruolo personalizzato.
Fai clic su Modifica ruolo.
Per aggiornare i metadati del ruolo, modifica il Titolo, la Descrizione o la Fase di lancio del ruolo.
Per aggiornare le autorizzazioni del ruolo:
- Fai clic su Aggiungi autorizzazioni per aggiungere nuove autorizzazioni al ruolo.
- Deseleziona le autorizzazioni per rimuoverle dal ruolo.
Fai clic su Aggiorna per salvare il ruolo modificato.
gcloud
-
Nella console Google Cloud , attiva Cloud Shell.
Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
-
Utilizza il comando
gcloud iam roles updateper aggiornare i ruoli personalizzati. Puoi utilizzare questo comando in due modi:-
Fornendo un file YAML che contiene la definizione del ruolo aggiornata
-
Utilizzando i flag per specificare la definizione del ruolo aggiornata
Quando aggiorni un ruolo personalizzato, devi specificare se si applica a livello di organizzazione o di progetto utilizzando i flag
--organization=ORGANIZATION_IDo--project=PROJECT_ID. Ogni esempio riportato di seguito crea un ruolo personalizzato a livello di progetto.Per aggiornare un ruolo personalizzato utilizzando un file YAML:
Recupera la definizione corrente del ruolo eseguendo uno dei seguenti comandi:
-
Per ottenere la definizione del ruolo di un ruolo personalizzato a livello di organizzazione, esegui il comando seguente:
gcloud iam roles describe ROLE_ID --organization=ORGANIZATION_ID
-
Per ottenere la definizione del ruolo di un ruolo personalizzato a livello di progetto, esegui il comando seguente:
gcloud iam roles describe ROLE_ID --project=PROJECT_ID
Ogni valore segnaposto è descritto di seguito:
-
ROLE_IDè il nome del ruolo da aggiornare, ad esempiomyCompanyAdmin. -
ORGANIZATION_IDè l'ID numerico dell'organizzazione, ad esempio123456789012. -
PROJECT_IDè il nome del progetto, ad esempiomy-project.
Il comando
describerestituisce la definizione del ruolo e include un valoreetagche identifica in modo univoco la versione corrente del ruolo. Il valoreetagdeve essere fornito nella definizione del ruolo aggiornata per garantire che le modifiche simultanee ai ruoli non vengano sovrascritte.Il comando
describerestituisce il seguente output:description: ROLE_DESCRIPTION etag: ETAG includedPermissions: - PERMISSION_1 - PERMISSION_2 name: ROLE_NAME stage: LAUNCH_STAGE title: ROLE_TITLE
Ogni valore segnaposto è descritto di seguito:
-
ROLE_DESCRIPTIONè una breve descrizione del ruolo, ad esempio"My custom role description". -
ETAGè l'identificatore univoco della versione attuale del ruolo, ad esempioBwVkBkbfr70=. -
PERMISSION_1ePERMISSION_2sono autorizzazioni da includere nel ruolo personalizzato, ad esempioiam.roles.get. Non puoi utilizzare caratteri jolly (*) nei nomi delle autorizzazioni. -
ROLE_NAMEè il nome completo del ruolo, inclusi eventuali prefissiorganizations/,projects/oroles/. Ad esempio,organizations/123456789012/roles/myCompanyAdmin. -
LAUNCH_STAGEindica la fase di un ruolo nel ciclo di vita del lancio, ad esempioALPHA,BETAoGA. -
ROLE_TITLEè un titolo descrittivo per il ruolo, ad esempio"My Company Admin".
Per aggiornare il ruolo, includi la definizione del ruolo generata in un file YAML o aggiorna il file YAML originale con il valore
etaggenerato.Considera il seguente file YAML di esempio, che contiene l'output del comando
describeper un ruolo a livello di progetto e aggiunge due autorizzazioni Cloud Storage:description: My custom role description. etag: BwVkBkbfr70= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: projects/my-project/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
Salva il file YAML, quindi esegui uno dei seguenti comandi:
-
Per aggiornare un ruolo a livello di organizzazione, esegui questo comando:
gcloud iam roles update ROLE_ID--organization=ORGANIZATION_ID \ --file=YAML_FILE_PATH -
Per aggiornare un ruolo a livello di progetto, esegui questo comando:
gcloud iam roles update ROLE_ID --project=PROJECT_ID \ --file=YAML_FILE_PATH
Ogni valore segnaposto è descritto di seguito:
-
ROLE_IDè il nome del ruolo da aggiornare, ad esempiomyCompanyAdmin. -
ORGANIZATION_IDè l'ID numerico dell'organizzazione, ad esempio123456789012. -
PROJECT_IDè il nome del progetto, ad esempiomy-project-id. -
YAML_FILE_PATHè il percorso della posizione del file YAML che contiene la definizione del ruolo personalizzato aggiornata.
Esempi
Il seguente esempio mostra come aggiornare un ruolo a livello di organizzazione utilizzando un file YAML:
gcloud iam roles update ROLE_ID --organization=ORGANIZATION_ID \ --file=YAML_FILE_PATH-
Per aggiornare un ruolo a livello di progetto, esegui questo comando:
gcloud iam roles update ROLE_ID --project=PROJECT_ID \ --file=YAML_FILE_PATH
Ogni valore segnaposto è descritto di seguito:
-
ROLE_IDè il nome del ruolo da aggiornare, ad esempiomyCompanyAdmin. -
ORGANIZATION_IDè l'ID numerico dell'organizzazione, ad esempio123456789012. -
PROJECT_IDè il nome del progetto, ad esempiomy-project. -
YAML_FILE_PATHè il percorso della posizione del file YAML che contiene la definizione del ruolo personalizzato aggiornata.
Esempi
Il seguente esempio mostra come aggiornare un ruolo a livello di organizzazione utilizzando un file YAML:
gcloud iam roles update myCompanyAdmin --organization=123456789012 \ --file=my-role-definition.yamlSe il ruolo è stato aggiornato correttamente, l'output del comando è simile al seguente:
description: My custom role description. etag: BwVkBwDN0lg= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: organizations/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
L'esempio seguente mostra come aggiornare un ruolo a livello di progetto utilizzando un file YAML:
gcloud iam roles update myCompanyAdmin --project=my-project \ --file=my-role-definition.yamlSe il ruolo è stato aggiornato correttamente, l'output del comando è simile al seguente:
description: My custom role description. etag: BwVkBwDN0lg= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: projects/my-project/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
Per aggiornare un ruolo personalizzato utilizzando i flag:
Ogni parte di una definizione di ruolo può essere aggiornata utilizzando un flag corrispondente. Consulta l'argomento
gcloud iam roles updateper un elenco di tutti i flag possibili.Puoi utilizzare i seguenti flag per aggiungere o rimuovere le autorizzazioni:
-
--add-permissions=PERMISSIONS: aggiunge una o più autorizzazioni separate da virgole al ruolo. Non puoi utilizzare caratteri jolly (*) nei nomi delle autorizzazioni. -
--remove-permissions=PERMISSIONS: rimuove una o più autorizzazioni separate da virgole dal ruolo. Non puoi utilizzare caratteri jolly (*) nei nomi delle autorizzazioni.
In alternativa, puoi semplicemente specificare le nuove autorizzazioni utilizzando il flag
--permissions=PERMISSIONSe fornendo un elenco di autorizzazioni separate da virgole per sostituire l'elenco delle autorizzazioni esistenti.Per aggiornare altre parti della definizione del ruolo, esegui uno dei seguenti comandi:
-
Per aggiornare un ruolo a livello di organizzazione, esegui questo comando:
gcloud iam roles update ROLE_ID--organization=ORGANIZATION_ID \ --title=ROLE_TITLE --description=ROLE_DESCRIPTION \ --stage=LAUNCH_STAGE -
Per aggiornare un ruolo a livello di progetto, esegui questo comando:
gcloud iam roles update ROLE_ID --project=PROJECT_ID \ --title=ROLE_TITLE --description=ROLE_DESCRIPTION \ --stage=LAUNCH_STAGE
Ogni valore segnaposto è descritto di seguito:
-
ROLE_IDè il nome del ruolo, ad esempiomyCompanyAdmin. -
ORGANIZATION_IDè l'ID numerico dell'organizzazione, ad esempio123456789012. -
PROJECT_IDè il nome del progetto, ad esempiomy-project. -
ROLE_TITLEè un titolo descrittivo per il ruolo, ad esempio"My Company Admin". -
ROLE_DESCRIPTIONè una breve descrizione del ruolo, ad esempio"My custom role description.". -
LAUNCH_STAGEindica la fase di un ruolo nel ciclo di vita del lancio, ad esempioALPHA,BETAoGA.
Esempi
Il seguente esempio mostra come aggiungere autorizzazioni a un ruolo a livello di organizzazione utilizzando i flag:
gcloud iam roles update myCompanyAdmin --organization=123456789012 \ --add-permissions="storage.buckets.get,storage.buckets.list"Se il ruolo è stato aggiornato correttamente, l'output del comando è simile al seguente:
description: My custom role description. etag: BwVkBwDN0lg= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: organizations/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
L'esempio seguente mostra come aggiungere autorizzazioni a un ruolo a livello di progetto utilizzando i flag:
gcloud iam roles update myCompanyAdmin --project=my-project \ --add-permissions="storage.buckets.get,storage.buckets.list"Se il ruolo è stato aggiornato correttamente, l'output del comando è simile al seguente:
description: My custom role description. etag: BwVkBwDN0lg= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: projects/my-project/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
-
C++
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM C++.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
C#
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM C#.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Go
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Go.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Java.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Python.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
REST
Il metodo
roles.patch
aggiorna un ruolo personalizzato in un progetto o in un'organizzazione.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
Obbligatorio:
RESOURCE_TYPE: il tipo di risorsa di cui vuoi gestire i ruoli personalizzati. Utilizza il valoreprojectsoorganizations.RESOURCE_ID: L'ID progetto o l'ID organizzazione di cui vuoi gestire i ruoli personalizzati. Gli ID progetto sono stringhe alfanumeriche, comemy-project. Gli ID organizzazione sono numerici, ad esempio123456789012.ROLE_NAME: il nome completo del ruolo, inclusi i prefissiorganizations/,projects/oroles/. Ad esempio,organizations/123456789012/roles/myCompanyAdmin.
Consigliato:
ETAG: un identificatore per una versione del ruolo. Includi questo campo per evitare di sovrascrivere altre modifiche ai ruoli.
(Facoltativo) Definisci uno o più dei seguenti valori:
ROLE_TITLE: il titolo leggibile del ruolo. Ad esempio,My Company Admin.ROLE_DESCRIPTION: una descrizione del ruolo. Ad esempio,"The company admin role allows company admins to access important resources".PERMISSION_1ePERMISSION_2: le autorizzazioni che vuoi includere nel ruolo. Ad esempio,storage.objects.update. Non puoi utilizzare caratteri jolly (*) nei nomi delle autorizzazioni.LAUNCH_STAGE: La fase di lancio attuale del ruolo. Questo campo può contenere uno dei seguenti valori:EAP,ALPHA,BETA,GA,DEPRECATEDoDISABLED.
Metodo HTTP e URL:
PATCH https://iam.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/roles
Corpo JSON della richiesta:
{
"roleId": "ROLE_NAME",
"title": "ROLE_TITLE",
"description": "ROLE_DESCRIPTION",
"includedPermissions": [
"PERMISSION_1",
"PERMISSION_2"
],
"stage": "LAUNCH-STAGE",
"etag": "ETAG"
}
Per inviare la richiesta, espandi una di queste opzioni:
La risposta contiene una definizione del ruolo abbreviata che include il nome del ruolo, i campi che hai aggiornato e un'etag che identifica la versione corrente del ruolo.
{
"name": "projects/test-project-1000092/roles/myCompanyAdmin",
"title": "My Updated Company Admin",
"includedPermissions": [
"storage.buckets.get",
"storage.buckets.list"
],
"stage": "BETA",
"etag": "BwWoyDpAxBc="
}
Disabilitare un ruolo personalizzato
Puoi disattivare un ruolo personalizzato modificando la fase di lancio in DISABLED. Quando un ruolo viene disattivato, tutti i binding dei ruoli correlati vengono disattivati, il che significa che la concessione del ruolo a un utente non ha effetto.
Console
Nella console Google Cloud , vai alla pagina Ruoli.
Fai clic sull'elenco a discesa "Seleziona un progetto" nella parte superiore della pagina.
Seleziona la tua organizzazione o il tuo progetto.
Seleziona un ruolo personalizzato e fai clic su Disattiva.
gcloud
-
Nella console Google Cloud , attiva Cloud Shell.
Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
-
Utilizza il comando
gcloud iam roles updateper disattivare un ruolo personalizzato impostando la fase di lancio suDISABLED.Come descritto nella scheda gcloud della sezione Modifica di un ruolo personalizzato esistente, puoi aggiornare un ruolo personalizzato esistente nei due modi seguenti:
-
Fornendo un file YAML che contiene la definizione del ruolo aggiornata
-
Utilizzando i flag per specificare la definizione del ruolo aggiornata
Il modo più semplice per disattivare un ruolo personalizzato esistente è utilizzare il flag
--stagee impostarlo suDISABLED. Esegui uno dei seguenti comandi:-
Per disattivare un ruolo a livello di organizzazione, esegui questo comando:
gcloud iam roles update ROLE_ID--organization=ORGANIZATION_ID \ --stage=DISABLED -
Per disattivare un ruolo a livello di progetto, esegui questo comando:
gcloud iam roles update ROLE_ID --project=PROJECT_ID \ --stage=DISABLED
Ogni valore segnaposto è descritto di seguito:
-
ROLE_IDè il nome del ruolo, ad esempiomyCompanyAdmin. -
ORGANIZATION_IDè l'ID numerico dell'organizzazione, ad esempio123456789012. -
PROJECT_IDè il nome del progetto, ad esempiomy-project.
Esempi
Il seguente esempio mostra come disattivare un ruolo a livello di organizzazione:
gcloud iam roles update myCompanyAdmin --organization=123456789012 \ --stage=DISABLEDSe il ruolo è stato aggiornato correttamente, l'output del comando è simile al seguente:
description: My custom role description. etag: BwVkB5NLIQw= includedPermissions: - iam.roles.get - iam.roles.list name: organizations/123456789012/roles/myCompanyAdmin stage: DISABLED title: My Company Admin
Il seguente esempio mostra come disattivare un ruolo a livello di progetto:
gcloud iam roles update myCompanyAdmin --project=my-project \ --stage=DISABLEDSe il ruolo è stato aggiornato correttamente, l'output del comando è simile al seguente:
description: My custom role description. etag: BwVkB5NLIQw= includedPermissions: - iam.roles.get - iam.roles.list name: projects/my-project/roles/myCompanyAdmin stage: DISABLED title: My Company Admin
-
C++
Aggiorna
il campo stage del ruolo a DISABLED.
C#
Aggiorna
il campo stage del ruolo a DISABLED.
Go
Aggiorna
il campo stage del ruolo a DISABLED.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Java.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Python.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
REST
Il metodo
roles.patch
consente di modificare la fase di lancio di un ruolo personalizzato in DISABLED,
che disattiva il ruolo.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
RESOURCE_TYPE: il tipo di risorsa di cui vuoi gestire i ruoli personalizzati. Utilizza il valoreprojectsoorganizations.RESOURCE_ID: L'ID progetto o l'ID organizzazione di cui vuoi gestire i ruoli personalizzati. Gli ID progetto sono stringhe alfanumeriche, comemy-project. Gli ID organizzazione sono numerici, ad esempio123456789012.ROLE_NAME: il nome completo del ruolo, inclusi i prefissiorganizations/,projects/oroles/. Ad esempio,organizations/123456789012/roles/myCompanyAdmin.ETAG: un identificatore per una versione del ruolo. Includi questo campo per evitare di sovrascrivere altre modifiche ai ruoli.
Metodo HTTP e URL:
PATCH https://iam.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/roles
Corpo JSON della richiesta:
{
"roleId": "ROLE_NAME",
"stage": DISABLED,
"etag": "ETAG"
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"name": "projects/test-project-1000092/roles/myCompanyAdmin",
"stage": "DISABLED",
"etag": "BwWoyDpAxBc="
}
Elenco dei ruoli
Puoi elencare tutti i ruoli personalizzati creati nel tuo progetto o nella tua organizzazione.
Console
Nella console Google Cloud , vai alla pagina Ruoli.
Nella pagina sono elencati tutti i ruoli personalizzati per l'organizzazione o il progetto che hai selezionato.
gcloud
-
Nella console Google Cloud , attiva Cloud Shell.
Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
-
Utilizza il comando
gcloud iam roles listper elencare i ruoli personalizzati e predefiniti per un progetto o un'organizzazione:-
Per elencare i ruoli personalizzati a livello di organizzazione, esegui questo comando:
gcloud iam roles list --organization=ORGANIZATION_ID
-
Per elencare i ruoli personalizzati a livello di progetto, esegui questo comando:
gcloud iam roles list --project=PROJECT_ID
Ogni valore segnaposto è descritto di seguito:
-
ORGANIZATION_IDè l'ID numerico dell'organizzazione, ad esempio123456789012. -
PROJECT_IDè il nome del progetto, ad esempiomy-project.
Per elencare i ruoli eliminati, puoi anche specificare il flag
--show-deleted.Esegui questo comando per elencare i ruoli predefiniti:
gcloud iam roles list
-
C++
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM C++.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
C#
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM C#.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Go
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Go.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Java.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Python.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
REST
Il metodo
roles.list
elenca tutti i ruoli personalizzati in un progetto o in un'organizzazione.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
RESOURCE_TYPE: il tipo di risorsa di cui vuoi gestire i ruoli personalizzati. Utilizza il valoreprojectsoorganizations.RESOURCE_ID: L'ID progetto o l'ID organizzazione di cui vuoi gestire i ruoli personalizzati. Gli ID progetto sono stringhe alfanumeriche, comemy-project. Gli ID organizzazione sono numerici, ad esempio123456789012.ROLE_VIEW: (Facoltativo) Le informazioni da includere per i ruoli restituiti. Per includere le autorizzazioni dei ruoli, imposta questo campo suFULL. Per escludere le autorizzazioni dei ruoli, imposta questo campo suBASIC. Il valore predefinito èBASIC.PAGE_SIZE: (Facoltativo) Il numero di ruoli da includere nella risposta. Il valore predefinito è 300 e il valore massimo è 1000. Se il numero di ruoli è maggiore della dimensione della pagina, la risposta contiene un token di paginazione che puoi utilizzare per recuperare la pagina successiva dei risultati.NEXT_PAGE_TOKEN: (Facoltativo) Il token di paginazione restituito in una risposta precedente da questo metodo. Se specificato, l'elenco dei ruoli inizierà dal punto in cui è terminata la richiesta precedente.
Metodo HTTP e URL:
GET https://iam.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/roles?view=ROLE_VIEW&pageSize=PAGE_SIZE&pageToken=NEXT_PAGE_TOKEN
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"roles": [
{
"name": "projects/my-project/roles/customRole1",
"title": "First Custom Role",
"description": "Created on: 2020-06-01",
"etag": "BwWiPg2fmDE="
},
{
"name": "projects/my-project/roles/customRole2",
"title": "Second Custom Role",
"description": "Created on: 2020-06-07",
"etag": "BwWiuX53Wi0="
}
]
}
Eliminazione di un ruolo personalizzato
Puoi eliminare qualsiasi ruolo personalizzato nel tuo progetto o nella tua organizzazione.
Console
Nella console Google Cloud , vai alla pagina Ruoli.
Seleziona il ruolo che vuoi eliminare e fai clic su delete Elimina nella parte superiore della pagina.
gcloud
-
Nella console Google Cloud , attiva Cloud Shell.
Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
-
Utilizza il comando
gcloud iam roles deleteper eliminare un ruolo personalizzato:-
Per eliminare un ruolo personalizzato a livello di organizzazione, esegui questo comando:
gcloud iam roles delete ROLE_ID --organization=ORGANIZATION_ID
-
Per eliminare un ruolo personalizzato a livello di progetto, esegui questo comando:
gcloud iam roles delete ROLE_ID --project=PROJECT_ID
Ogni valore segnaposto è descritto di seguito:
-
ROLE_IDè il nome del ruolo, ad esempiomyCompanyAdmin. -
ORGANIZATION_IDè l'ID numerico dell'organizzazione, ad esempio123456789012. -
PROJECT_IDè il nome del progetto, ad esempiomy-project.
Il ruolo non verrà incluso in
gcloud iam roles list, a meno che non sia incluso il flag--show-deleted. I ruoli eliminati sono indicati dal bloccodeleted: truein una rispostalist, ad esempio:--- deleted: true description: My custom role description. etag: BwVkB5NLIQw= name: projects/my-project/roles/myCompanyAdmin title: My Company Admin ---
-
C++
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM C++.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
C#
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM C#.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Go
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Go.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Java.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Python.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
REST
Il metodo
roles.delete
elimina un ruolo personalizzato in un progetto o in un'organizzazione.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
ROLE_NAME: il nome completo del ruolo, inclusi i prefissiorganizations/,projects/oroles/. Ad esempio,organizations/123456789012/roles/myCompanyAdmin.
Metodo HTTP e URL:
DELETE https://iam.googleapis.com/v1/ROLE_NAME
Per inviare la richiesta, espandi una di queste opzioni:
La risposta contiene la definizione del ruolo eliminato.
{
"name": "projects/my-project/roles/myCompanyAdmin",
"title": "My Company Admin",
"description": "My custom role description.",
"includedPermissions": [
"iam.roles.get",
"iam.roles.list"
],
"etag": "BwWiPg2fmDE=",
"deleted": true
}
Quando un ruolo viene eliminato, tutte le associazioni di ruoli che fanno riferimento al ruolo rimangono nelle norme di autorizzazione, ma non hanno alcun effetto. Puoi annullare l'eliminazione di un ruolo entro 7 giorni. Durante questo periodo di 7 giorni, la console Google Cloud mostra che il ruolo è stato eliminato. Puoi anche elencare i ruoli eliminati in modo programmatico, ma vengono omessi per impostazione predefinita.
L'eliminazione definitiva del ruolo è pianificata 7-14 giorni dopo la richiesta iniziale di eliminazione. A questo punto, il ruolo non viene più conteggiato per il raggiungimento del limite di 300 ruoli personalizzati per organizzazione o 300 ruoli personalizzati per progetto.
Dopo la pianificazione dell'eliminazione definitiva del ruolo, Google Cloud avvia la procedura per eliminare definitivamente il ruolo. Questa procedura richiede 30 giorni. Durante questo periodo di 30 giorni, il ruolo e tutti i binding associati vengono rimossi definitivamente e non puoi creare un nuovo ruolo con lo stesso ID ruolo.
Dopo l'eliminazione definitiva del ruolo, fino a 44 giorni dopo la richiesta di eliminazione iniziale, puoi creare un nuovo ruolo utilizzando lo stesso ID ruolo.
Recuperare un ruolo personalizzato
Il ripristino di un ruolo lo riporta allo stato precedente.
I ruoli possono essere recuperati solo entro 7 giorni. Dopo 7 giorni, Google Cloud avvia la procedura per eliminare definitivamente il ruolo. Questa procedura di eliminazione definitiva può richiedere fino a 30 giorni. Dopo l'eliminazione definitiva di un ruolo, tutti i binding dei ruoli che fanno riferimento al ruolo vengono rimossi e puoi creare un nuovo ruolo utilizzando lo stesso ID ruolo.
Console
Nella console Google Cloud , vai alla pagina Ruoli.
Individua il ruolo da ripristinare, fai clic sull'icona Altro alla fine della riga e fai clic su Ripristina.
gcloud
-
Nella console Google Cloud , attiva Cloud Shell.
Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
-
Utilizza il comando
gcloud iam roles undeleteper ripristinare un ruolo personalizzato:-
Per ripristinare un ruolo personalizzato a livello di organizzazione, esegui il comando seguente:
gcloud iam roles undelete ROLE_ID --organization=ORGANIZATION_ID
-
Per ripristinare un ruolo personalizzato a livello di progetto, esegui questo comando:
gcloud iam roles undelete ROLE_ID --project=PROJECT_ID
Ogni valore segnaposto è descritto di seguito:
-
ROLE_IDè il nome del ruolo, ad esempiomyCompanyAdmin. -
ORGANIZATION_IDè l'ID numerico dell'organizzazione, ad esempio123456789012. -
PROJECT_IDè il nome del progetto, ad esempiomy-project.
Esempi
L'esempio seguente mostra come recuperare un ruolo personalizzato a livello di organizzazione:
gcloud iam roles undelete myCompanyAdmin --organization=123456789012
Se il ruolo è stato eliminato correttamente, l'output del comando è simile al seguente:
description: My custom role description. etag: BwVkCAx9W6w= includedPermissions: - iam.roles.get - iam.roles.list name: organizations/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
Il seguente esempio mostra come recuperare un ruolo personalizzato a livello di progetto:
gcloud iam roles undelete myCompanyAdmin --project=my-project
Se il ruolo è stato eliminato correttamente, l'output del comando è simile al seguente:
description: My custom role description. etag: BwVkCAx9W6w= includedPermissions: - iam.roles.get - iam.roles.list name: projects/my-project/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
-
C++
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM C++.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
C#
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM C#.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Go
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Go.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Java.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Python.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
REST
Il metodo
roles.undelete
annulla l'eliminazione di un ruolo personalizzato in un progetto o in un'organizzazione.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
ROLE_NAME: il nome completo del ruolo, inclusi i prefissiorganizations/,projects/oroles/. Ad esempio,organizations/123456789012/roles/myCompanyAdmin.ETAG: un identificatore per una versione del ruolo. Includi questo campo per evitare di sovrascrivere altre modifiche ai ruoli.
Metodo HTTP e URL:
POST https://iam.googleapis.com/v1/ROLE_NAME:undelete
Corpo JSON della richiesta:
{
"etag": "ETAG"
}
Per inviare la richiesta, espandi una di queste opzioni:
La risposta contiene la definizione del ruolo eliminato.
{
"name": "projects/my-project/roles/myCompanyAdmin",
"title": "My Company Admin",
"description": "My custom role description.",
"includedPermissions": [
"iam.roles.get",
"iam.roles.list"
],
"etag": "BwWiPg2fmDE="
}
Passaggi successivi
- Scopri come concedere ruoli alle entità.
- Scopri come utilizzare i suggerimenti sui ruoli per ridurre l'ambito delle autorizzazioni per le entità.
- Scopri di più sulle associazioni di ruoli condizionali, che concedono un ruolo solo se vengono soddisfatte condizioni specifiche.