Nelle organizzazioni di grandi dimensioni, può essere utile consentire ai team di gestire in modo indipendente i criteri di autorizzazione per le proprie risorse. Tuttavia, consentire a un'entità di concedere o revocare tutti i ruoli IAM può aumentare notevolmente il rischio per la sicurezza.
Puoi impostare limiti per i ruoli che un entità può concedere e revocare con le condizioni IAM (Identity and Access Management) e l'attributo API iam.googleapis.com/modifiedGrantsByRole
. Questi limiti ti consentono di creare amministratori IAM con limitazioni che possono gestire i criteri di autorizzazione del proprio team, ma solo entro i limiti che hai impostato.
Prima di iniziare
Enable the Resource Manager API.
Acquisisci familiarità con la struttura dei criteri di autorizzazione.
Scopri di più sulle condizioni IAM.
Autorizzazioni obbligatorie
Per ottenere le autorizzazioni necessarie per creare amministratori IAM con limitazioni per un progetto, una cartella o un'organizzazione, chiedi all'amministratore di concederti i seguenti ruoli IAM per la risorsa per cui vuoi creare un amministratore IAM con limitazioni (progetto, cartella o organizzazione):
-
Per creare un amministratore IAM limitato per un progetto:
Project IAM Admin (
roles/resourcemanager.projectIamAdmin
) -
Per creare un amministratore IAM con limitazioni per una cartella:
Amministratore cartella (
roles/resourcemanager.folderAdmin
) -
Per creare un amministratore IAM con limitazioni per un progetto, una cartella o un'organizzazione:
Amministratore dell'organizzazione (
roles/resourcemanager.organizationAdmin
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per creare amministratori IAM con limitazioni per un progetto, una cartella o un'organizzazione. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
Per creare amministratori IAM con limitazioni per un progetto, una cartella o un'organizzazione, sono necessarie le seguenti autorizzazioni:
-
Per creare un amministratore IAM con limitazioni per un progetto:
-
resourcemanager.projects.getIamPolicy
-
resourcemanager.projects.setIamPolicy
-
-
Per creare un amministratore IAM con limitazioni per una cartella:
-
resourcemanager.folders.getIamPolicy
-
resourcemanager.folders.setIamPolicy
-
-
Per creare un amministratore IAM con limitazioni per un'organizzazione:
-
resourcemanager.organizations.getIamPolicy
-
resourcemanager.organizations.setIamPolicy
-
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Casi d'uso comuni
Le sezioni seguenti descrivono come utilizzare la concessione di ruoli limitati per attivare la gestione self-service dei criteri di autorizzazione.
Creare amministratori IAM con limitazioni
Considera uno scenario in cui vuoi consentire a un utente, Finn (finn@example.com
), di agire come amministratore IAM limitato per il tuo progetto. Vuoi che Finn possa concedere e revocare solo i ruoli Amministratore App Engine (roles/appengine.appAdmin
) e Visualizzatore App Engine (roles/appengine.appViewer
) per il tuo progetto.
Per concedere questa funzionalità limitata, concedi a Finn il ruolo Amministratore IAM del progetto (roles/resourcemanager.projectIamAdmin
) in modo condizionale. Il ruolo Amministratore IAM del progetto consente a Finn di concedere e revocare i ruoli IAM e la condizione limita i ruoli che può concedere e revocare:
{ "version": 3, "etag": "BwWKmjvelug=", "bindings": [ { "members": [ "user:owner@example.com" ], "role": "roles/owner" }, { "members": [ "finn@example.com" ], "role": "roles/resourcemanager.projectIamAdmin", "condition": { "title": "only_appengine_admin_viewer_roles", "description": "Only allows changes to role bindings with the App Engine Admin or Viewer roles", "expression": "api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []).hasOnly(['roles/appengine.appAdmin', 'roles/appengine.appViewer'])" } } ] }
Questa associazione di ruoli condizionale consente a Finn di:
- Concedi i ruoli Amministratore App Engine e Visualizzatore App Engine per il progetto.
- Revoca i ruoli Amministratore App Engine e Visualizzatore App Engine per il progetto.
- Aggiungi, rimuovi o modifica le condizioni per le associazioni di ruoli a livello di progetto che concedono i ruoli Amministratore App Engine e Visualizzatore App Engine.
- Eseguire altre azioni consentite dal ruolo Amministratore IAM progetto che non
modificano il criterio di autorizzazione del progetto. Ad esempio, Finn potrebbe utilizzare il metodo
projects.getIamPolicy
per recuperare il criterio di autorizzazione del progetto.
Questa associazione di ruoli condizionale non consente a Finn di eseguire nessuna delle seguenti operazioni:
- Modificare i criteri di autorizzazione per risorse diverse dal progetto.
- Concedi ruoli diversi da Amministratore App Engine o Visualizzatore App Engine.
- Revoca i ruoli diversi da Amministratore App Engine o Visualizzatore App Engine.
- Aggiungi, rimuovi o modifica le condizioni per le associazioni di ruoli che non concedono i ruoli Amministratore App Engine o Visualizzatore App Engine.
Consenti agli utenti di gestire amministratori IAM con limitazioni
Considera lo scenario in cui vuoi assegnare a un utente, Lila, il ruolo di amministratore IAM con limitazioni per il suo team. Vuoi che Lila possa concedere e revocare solo il ruolo Amministratore di Compute (roles/compute.admin
) per il suo progetto.
Tuttavia, vuoi anche consentire a Lila di selezionare altri utenti che agiscano come amministratori IAM con limitazioni. In altre parole, vuoi consentire a Lila di consentire ad altri utenti di concedere e revocare solo il ruolo Amministratore di Compute.
Potresti pensare che la soluzione sia concedere a Lila il ruolo Amministratore IAM progetto
(roles/resourcemanager.projectIamAdmin
) e poi concederle la possibilità di
concedere o revocare questo ruolo ad altri. Tuttavia, se concedi a Lila il ruolo Amministratore IAM del progetto, potrebbe rimuovere la condizione dal proprio ruolo e concedersi la possibilità di concedere o revocare qualsiasi ruolo IAM.
Per contribuire a impedire questa escalation dei privilegi, crea un gruppo Google, iam-compute-admins@example.com
, per gli amministratori IAM con limitazioni del progetto. Poi, aggiungi Lila al gruppo e
ne fai un gestore.
Dopo aver creato il gruppo, concedi al gruppo il ruolo Amministratore IAM del progetto (roles/resourcemanager.projectIamAdmin
) in modo condizionale. Il ruolo Amministratore IAM del progetto consente ai membri del gruppo di concedere e revocare i ruoli IAM e la condizione limita i ruoli che possono concedere e revocare:
{ "version": 3, "etag": "BwWKmjvelug=", "bindings": [ { "members": [ "user:owner@example.com" ], "role": "roles/owner" }, { "members": [ "iam-compute-admins@example.com" ], "role": "roles/resourcemanager.projectIamAdmin", "condition": { "title": "only_compute_admin_role", "description": "Only allows changes to role bindings for the Compute Admin role", "expression": "api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []).hasOnly(['roles/compute.admin'])" } } ] }
In qualità di membro del gruppo iam-compute-admins@example.com
, Lila può:
- Concedi il ruolo Amministratore di Compute per il progetto aggiungendo una nuova associazione per il ruolo o un'entità a un'associazione esistente per il ruolo.
- Revoca il ruolo Amministratore di Compute rimuovendo un'associazione esistente per il ruolo o un'entità da un'associazione esistente per il ruolo.
- Modifica le concessioni per il ruolo Amministratore di Compute aggiungendo, rimuovendo o modificando le condizioni associate alle associazioni per il ruolo.
- Eseguire altre azioni consentite dal ruolo Amministratore IAM del progetto che non modificano
il criterio di autorizzazione del progetto. Ad esempio, potrebbe utilizzare il metodo
projects.getIamPolicy
per ottenere le norme di autorizzazione del progetto.
In qualità di gestore del gruppo iam-compute-admins@example.com
, Lila può consentire ad altri utenti di concedere o revocare il ruolo Amministratore di Compute aggiungendoli al gruppo iam-compute-admins@example.com
.
Lila non può:
- Concedersi la possibilità di concedere o revocare altri ruoli.
- Modificare i criteri di autorizzazione per risorse diverse dal progetto.
- Concedi ruoli diversi dal ruolo Amministratore Compute.
- Revoca i ruoli diversi da quello di amministratore di Compute.
- Aggiungi, rimuovi o modifica le condizioni per le associazioni di ruoli che non concedono il ruolo Amministratore di Compute.
Limitare la concessione dei ruoli
Le sezioni seguenti spiegano come consentire alle entità di concedere o revocare solo determinati ruoli.
Scrivi un'espressione di condizione per limitare la concessione dei ruoli
Per limitare la capacità di un'entità di concedere ruoli, scrivi un'espressione di condizione che specifichi i ruoli che un'entità può concedere o revocare.
Utilizza il seguente formato per l'espressione della condizione:
api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []).hasOnly(roles)
Questa espressione esegue le seguenti operazioni:
Recupera l'attributo API
iam.googleapis.com/modifiedGrantsByRole
utilizzando la funzioneapi.getAttribute()
.Per una richiesta di impostazione del criterio di autorizzazione di una risorsa, questo attributo contiene i nomi dei ruoli delle associazioni modificate dalla richiesta. Per altri tipi di richieste, l'attributo non è definito. In questi casi, la funzione restituisce il valore predefinito (
[]
).Utilizza la funzione
hasOnly()
Common Expression Language (CEL) per definire e applicare i ruoli che l'entità può concedere o revocare.L'input per la funzione
hasOnly()
è un elenco dei ruoli che l'entità può concedere o revocare. Se i ruoli nell'attributoiam.googleapis.com/modifiedGrantsByRole
sono inclusi in questo elenco, la funzione restituiscetrue
. In caso contrario, la funzione restituiscefalse
.Se l'attributo
iam.googleapis.com/modifiedGrantsByRole
contiene il valore predefinito ([]
), la funzione restituiscetrue
, perché[]
non contiene ruoli non inclusi nell'elenco.
Per personalizzare questa espressione, sostituisci roles
con un elenco
di ruoli che l'entità è autorizzata a concedere o revocare. Ad esempio, per consentire al principale di concedere o revocare solo i ruoli Editor Pub/Sub (roles/pubsub.editor
) e Publisher Pub/Sub (roles/pubsub.publisher
), utilizza il valore ['roles/pubsub.editor', 'roles/pubsub.publisher']
.
Puoi includere fino a 10 valori nell'elenco dei ruoli consentiti. Tutti questi valori devono essere costanti di stringa.
Operatori logici per le istruzioni hasOnly()
Non utilizzare gli operatori &&
o ||
per unire più istruzioni hasOnly()
in
una singola condizione. In questo caso, le richieste che concedono o revocano più ruoli
potrebbero non andare a buon fine, anche se l'entità può concedere o revocare i ruoli singolarmente.
Ad esempio, considera la seguente condizione:
api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []) .hasOnly(['roles/pubsub.editor']) || api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []) .hasOnly(['roles/pubsub.publisher'])
Questa condizione restituisce true
se una richiesta assegna il ruolo roles/pubsub.editor
o il ruolo roles/pubsub.publisher
, ma restituisce false
se una richiesta assegna entrambi i ruoli roles/pubsub.editor
e roles/pubsub.publisher
.
Limitare la concessione dei ruoli con le associazioni di ruoli condizionali
Per consentire a un'entità di concedere o revocare solo determinati ruoli, utilizza l'espressione di condizione della sezione precedente per creare un'associazione di ruoli condizionale. Poi, aggiungi l'associazione di ruolo condizionale al criterio di autorizzazione di una risorsa.
Seleziona una risorsa che rappresenti l'ambito per cui vuoi consentire a un'entità di concedere e revocare i ruoli:
- Se vuoi consentire a un'entità di concedere e revocare determinati ruoli per tutte le risorse all'interno di un'organizzazione, seleziona un'organizzazione.
- Se vuoi consentire a un'entità di concedere e revocare determinati ruoli per tutte le risorse all'interno di una cartella, seleziona una cartella.
- Se vuoi consentire a un entità di concedere e revocare determinati ruoli per tutte le risorse di un progetto, seleziona un progetto.
Seleziona un ruolo che consenta a un'entità di impostare il criterio di autorizzazione per il tipo di risorsa selezionato (progetto, cartella o organizzazione). Per rispettare il principio del privilegio minimo, scegli uno dei seguenti ruoli predefiniti:
- Projects (Progetti): amministratore IAM del progetto (
roles/resourcemanager.projectIamAdmin
) - Cartelle: Folder IAM Admin (
roles/resourcemanager.folderIamAdmin
) Organizzazioni: amministratore dell'organizzazione (
roles/resourcemanager.organizationAdmin
).
In alternativa, scegli un ruolo personalizzato che includa le autorizzazioni
resourcemanager.resource-type.setIamPolicy
eresourcemanager.resource-type.getIamPolicy
, doveresource-type
èproject
,folder
oorganization
.- Projects (Progetti): amministratore IAM del progetto (
Concedi a un'entità il ruolo scelto in base a condizioni nel progetto, nella cartella o nell'organizzazione selezionati.
Il nuovo criterio di autorizzazione viene applicato e l'entità può modificare le associazioni solo per i ruoli che hai consentito.
Console
Nella console Google Cloud, vai alla pagina IAM.
Assicurati che il nome del progetto, della cartella o dell'organizzazione venga visualizzato nel selettore di risorse nella parte superiore della pagina. Il selettore di risorse indica il progetto, la cartella o l'organizzazione in cui stai lavorando.
Se non vedi il nome della risorsa, fai clic sul selettore della risorsa, poi selezionala.
Nell'elenco delle entità, individua l'entità che concederà e ritirerà i ruoli e fai clic sul pulsante
.Nel riquadro Modifica autorizzazioni, seleziona il ruolo scelto in precedenza. Poi, in Condizione IAM (facoltativa), fai clic su Aggiungi condizione IAM.
Nel riquadro Modifica condizione, inserisci un titolo e una descrizione facoltativa per la condizione.
Fai clic sulla scheda Editor condizioni e inserisci l'espressione che hai scritto in Scrivere un'espressione di condizione per limitare la concessione dei ruoli. Questa espressione limita i ruoli che l'entità può concedere o revocare.
Ad esempio, la seguente espressione di condizione limita il principale a concedere e revocare i ruoli Editor Pub/Sub (
roles/pubsub.editor
) e Publisher Pub/Sub (roles/pubsub.publisher
):api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []).hasOnly(['roles/pubsub.editor', 'roles/pubsub.publisher'])
Avviso:non includere i seguenti tipi di ruoli nell'elenco dei ruoli consentiti:
-
Ruoli con autorizzazioni per concedere e revocare i ruoli IAM (ovvero i ruoli con nomi di autorizzazione che terminano con
setIamPolicy
). -
Ruoli personalizzati che l'amministratore IAM con limitazioni può modificare. Ad esempio, se l'amministratore IAM con limitazioni dispone anche del ruolo Amministratore dei ruoli (
roles/iam.roleAdmin
) in un progetto, non consentirgli di concedere o revocare i ruoli personalizzati a livello di progetto.
Gli amministratori IAM con limitazioni che possono concedere e revocare questi tipi di ruoli possono concedersi l'autorizzazione per concedere e revocare tutti i ruoli IAM. Per ulteriori informazioni, consulta la sezione Scrivere un'espressione di condizione per limitare la concessione dei ruoli.
-
Ruoli con autorizzazioni per concedere e revocare i ruoli IAM (ovvero i ruoli con nomi di autorizzazione che terminano con
Fai clic su Salva per applicare la condizione.
Dopo aver chiuso il riquadro Modifica condizione, fai clic su Salva nel riquadro Modifica autorizzazioni per aggiornare il criterio di autorizzazione.
gcloud
I criteri Consenti vengono impostati utilizzando il pattern di lettura, modifica e scrittura.
Innanzitutto, leggi il criterio di autorizzazione per la risorsa:
Esegui il comando
get-iam-policy
. Questo comando recupera il criterio di autorizzazione corrente per la risorsa.Comando:
gcloud resource-type get-iam-policy resource-id --format=json > path
Sostituisci i seguenti valori:
resource-type
: il tipo di risorsa per cui vuoi consentire a un'entità di concedere o revocare i ruoli. Utilizza uno dei seguenti valori:projects
,resource-manager folders
oorganizations
.resource-id
: l'ID del tuo progetto, della tua cartella o della tua organizzazione Google Cloud.path
: il percorso del file in cui scaricare il criterio di autorizzazione.
Il criterio di autorizzazione viene salvato in formato JSON, ad esempio:
{ "bindings": [ { "members": [ "user:project-owner@example.com" ], "role": "roles/owner" } ], "etag": "BwWKmjvelug=", "version": 1 }
Successivamente, modifica il criterio di autorizzazione.
Per consentire a un'entità di modificare solo le associazioni per determinati ruoli, aggiungi l'associazione di ruoli condizionali evidenziata:
{ "bindings": [ { "members": [ "user:owner@example.com" ], "role": "roles/owner" }, { "members": [ "principal" ], "role": "role", "condition": { "title": "title", "description": "description", "expression": "expression" } } ], "etag": "BwWKmjvelug=", "version": 3 }
Sostituisci i seguenti valori:
principal
: l'entità che concederà o revocherà determinati ruoli. Ad esempio,user:my-user@example.com
. Per visualizzare i formati di ogni tipo di principale, consulta la sezione di riferimentoBinding
.role
: il ruolo scelto nei passaggi precedenti. Questo ruolo deve includere l'autorizzazionesetIamPolicy
per il tipo di risorsa scelto.title
: una stringa che descrive brevemente la condizione. Ad esempio,only_pubsub_roles
.description
: facoltativo. Una descrizione aggiuntiva per la condizione. Ad esempio,Only allows granting/revoking the Pub/Sub editor and publisher roles
.expression
: l'espressione che hai scritto in Scrivere un'espressione di condizione per limitare la concessione dei ruoli. Questa espressione limita i ruoli che l'entità può concedere o revocare.Ad esempio, la seguente espressione di condizione limita il principale a concedere e revocare i ruoli Editor Pub/Sub (
roles/pubsub.editor
) e Publisher Pub/Sub (roles/pubsub.publisher
):api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []).hasOnly(['roles/pubsub.editor', 'roles/pubsub.publisher'])
Avviso:non includere i seguenti tipi di ruoli nell'elenco dei ruoli consentiti:
-
Ruoli con autorizzazioni per concedere e revocare i ruoli IAM (ovvero i ruoli con nomi di autorizzazione che terminano con
setIamPolicy
). -
Ruoli personalizzati che l'amministratore IAM con limitazioni può modificare. Ad esempio, se l'amministratore IAM con limitazioni dispone anche del ruolo Amministratore dei ruoli (
roles/iam.roleAdmin
) in un progetto, non consentirgli di concedere o revocare i ruoli personalizzati a livello di progetto.
Gli amministratori IAM con limitazioni che possono concedere e revocare questi tipi di ruoli possono concedersi l'autorizzazione per concedere e revocare tutti i ruoli IAM. Per ulteriori informazioni, consulta la sezione Scrivere un'espressione di condizione per limitare la concessione dei ruoli.
-
Ruoli con autorizzazioni per concedere e revocare i ruoli IAM (ovvero i ruoli con nomi di autorizzazione che terminano con
Infine, scrivi il criterio di autorizzazione aggiornato:
Imposta il nuovo criterio di autorizzazione eseguendo il comando
set-iam-policy
per la risorsa:gcloud resource-type set-iam-policy resource-id path
Sostituisci i seguenti valori:
resource-type
: il tipo di risorsa per cui vuoi consentire a un'entità di concedere o revocare i ruoli. Utilizza uno dei seguenti valori:projects
,resource-manager folders
oorganizations
.resource-id
: l'ID del tuo progetto, della tua cartella o della tua organizzazione Google Cloud.path
: il percorso del file contenente il criterio di autorizzazione aggiornato.
Il nuovo criterio di autorizzazione viene applicato e l'entità potrà modificare solo le associazioni per i ruoli che hai consentito.
REST
I criteri Consenti vengono impostati utilizzando il pattern di lettura, modifica e scrittura.
Innanzitutto, leggi il criterio di autorizzazione per la risorsa:
Il metodo
getIamPolicy
dell'API Resource Manager recupera il criterio di autorizzazione di un progetto, di una cartella o di un'organizzazione.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
API_VERSION
: la versione dell'API da utilizzare. Per progetti e organizzazioni, utilizzav1
. Per le cartelle, utilizzav2
.RESOURCE_TYPE
: il tipo di risorsa di cui vuoi gestire il criterio. Utilizza il valoreprojects
,folders
oorganizations
.RESOURCE_ID
: l'ID del tuo progetto, della tua organizzazione o della tua cartella Google Cloud. Gli ID progetto sono stringhe alfanumeriche, comemy-project
. Gli ID cartella e organizzazione sono numerici, ad esempio123456789012
.POLICY_VERSION
: la versione del criterio da restituire. Le richieste devono specificare la versione più recente dei criteri, ovvero la versione 3. Per maggiori dettagli, consulta la sezione Specificare una versione delle norme al momento dell'ottenimento delle norme.
Metodo HTTP e URL:
POST https://cloudresourcemanager.googleapis.com/API_VERSION/RESOURCE_TYPE/RESOURCE_ID:getIamPolicy
Corpo JSON della richiesta:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
Per inviare la richiesta, espandi una di queste opzioni:
La risposta contiene il criterio di autorizzazione della risorsa. Ad esempio:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/owner", "members": [ "user:my-user@example.com" ] } ] }
Successivamente, modifica il criterio di autorizzazione.
Aggiungi un'associazione di ruolo condizionale che consenta a un'entità di concedere e revocare solo determinati ruoli. Assicurati di modificare il campo
version
in modo che abbia il valore3
:{ "version": 3, "etag": "BwWKmjvelug=", "bindings": [ { "members": [ "user:owner@example.com" ], "role": "roles/owner" }, { "members": [ "PRINCIPAL" ], "role": "ROLE", "condition": { "title": "TITLE", "description": "DESCRIPTION", "expression": "EXPRESSION" } } ] }
PRINCIPAL
: l'entità che concederà o revocherà determinati ruoli. Ad esempio,user:my-user@example.com
. Per visualizzare i formati di ogni tipo di principale, consulta la sezione di riferimentoBinding
.ROLE
: il ruolo scelto nei passaggi precedenti. Questo ruolo deve includere l'autorizzazionesetIamPolicy
per il tipo di risorsa scelto.TITLE
: una stringa che descrive brevemente la condizione. Ad esempio,only_pubsub_roles
.DESCRIPTION
: facoltativo. Una descrizione aggiuntiva per la condizione. Ad esempio,Only allows granting/revoking the Pub/Sub editor and publisher roles
.EXPRESSION
: l'espressione che hai scritto in Scrivere un'espressione di condizione per limitare la concessione dei ruoli. Questa espressione limita i ruoli che l'entità può concedere o revocare.Ad esempio, la seguente espressione di condizione limita il principale a concedere e revocare i ruoli Editor Pub/Sub (
roles/pubsub.editor
) e Publisher Pub/Sub (roles/pubsub.publisher
):api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []).hasOnly(['roles/pubsub.editor', 'roles/pubsub.publisher'])
Avviso:non includere i seguenti tipi di ruoli nell'elenco dei ruoli consentiti:
-
Ruoli con autorizzazioni per concedere e revocare i ruoli IAM (ovvero i ruoli con nomi di autorizzazione che terminano con
setIamPolicy
). -
Ruoli personalizzati che l'amministratore IAM con limitazioni può modificare. Ad esempio, se l'amministratore IAM con limitazioni dispone anche del ruolo Amministratore dei ruoli (
roles/iam.roleAdmin
) in un progetto, non consentirgli di concedere o revocare i ruoli personalizzati a livello di progetto.
Gli amministratori IAM con limitazioni che possono concedere e revocare questi tipi di ruoli possono concedersi l'autorizzazione per concedere e revocare tutti i ruoli IAM. Per ulteriori informazioni, consulta la sezione Scrivere un'espressione di condizione per limitare la concessione dei ruoli.
-
Ruoli con autorizzazioni per concedere e revocare i ruoli IAM (ovvero i ruoli con nomi di autorizzazione che terminano con
Infine, scrivi il criterio di autorizzazione aggiornato:
Il metodo
setIamPolicy
dell'API Resource Manager imposta il criterio di autorizzazione nella richiesta come nuovo criterio di autorizzazione per il progetto, la cartella o l'organizzazione.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
API_VERSION
: la versione dell'API da utilizzare. Per progetti e organizzazioni, utilizzav1
. Per le cartelle, utilizzav2
.RESOURCE_TYPE
: il tipo di risorsa di cui vuoi gestire il criterio. Utilizza il valoreprojects
,folders
oorganizations
.RESOURCE_ID
: l'ID del tuo progetto, della tua organizzazione o della tua cartella Google Cloud. Gli ID progetto sono stringhe alfanumeriche, comemy-project
. Gli ID cartella e organizzazione sono numerici, ad esempio123456789012
.-
POLICY
: una rappresentazione JSON del criterio che vuoi impostare. Per ulteriori informazioni sul formato di un criterio, consulta la pagina Riferimento ai criteri.Ad esempio, per impostare il criterio mostrato nel passaggio precedente, sostituisci
POLICY
con quanto segue:{ "version": 3, "etag": "BwWKmjvelug=", "bindings": [ { "members": [ "user:owner@example.com" ], "role": "roles/owner" }, { "members": [ "principal" ], "role": "role", "condition": { "title": "title", "description": "description", "expression": "expression" } } ] }
Metodo HTTP e URL:
POST https://cloudresourcemanager.googleapis.com/API_VERSION/RESOURCE_TYPE/RESOURCE_ID:setIamPolicy
Corpo JSON della richiesta:
{ "policy": POLICY }
Per inviare la richiesta, espandi una di queste opzioni:
La risposta contiene il criterio di autorizzazione aggiornato.
Passaggi successivi
- Applica il principio del privilegio minimo con i suggerimenti sui ruoli.
- Scopri come utilizzare le condizioni IAM per configurare l'accesso temporaneo e configurare l'accesso basato sulle risorse.