Nelle grandi organizzazioni, può essere utile consentire ai team di gestire in modo indipendente le policy 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 ai ruoli che un'entità può concedere e revocare con le
condizioni Identity and Access Management (IAM) e l'attributo API
iam.googleapis.com/modifiedGrantsByRole
. Questi limiti ti consentono di
creare amministratori IAM limitati 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 delle policy di autorizzazione.
Comprendi le condizioni IAM.
Autorizzazioni obbligatorie
Per ottenere le autorizzazioni necessarie per creare amministratori IAM limitati 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 limitato (progetto, cartella o organizzazione):
-
Per creare un amministratore IAM limitato per un progetto:
Project IAM Admin (
roles/resourcemanager.projectIamAdmin
) -
Per creare un amministratore IAM limitato per una cartella:
Amministratore cartella (
roles/resourcemanager.folderAdmin
) -
Per creare un amministratore IAM limitato per un progetto, una cartella o un'organizzazione:
Amministratore dell'organizzazione (
roles/resourcemanager.organizationAdmin
)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per creare amministratori IAM limitati per un progetto, una cartella o un'organizzazione. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per creare amministratori IAM con accesso limitato per un progetto, una cartella o un'organizzazione sono necessarie le seguenti autorizzazioni:
-
Per creare un amministratore IAM limitato per un progetto:
-
resourcemanager.projects.getIamPolicy
-
resourcemanager.projects.setIamPolicy
-
-
Per creare un amministratore IAM limitato 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 limitata per attivare la gestione self-service delle policy di autorizzazione.
Creare amministratori IAM con limitazioni
Considera uno scenario in cui vuoi consentire a un utente, Noam, di agire
come amministratore IAM limitato per il tuo progetto. Vuoi che Noam 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 capacità limitata, concedi in modo condizionale a Noam il ruolo Amministratore IAM progetto (roles/resourcemanager.projectIamAdmin
). Il ruolo Amministratore IAM progetto consente a Noam di concedere e revocare i ruoli IAM e la condizione limita i ruoli che Noam può concedere e revocare:
{ "version": 3, "etag": "BwWKmjvelug=", "bindings": [ { "members": [ "user:owner@example.com" ], "role": "roles/owner" }, { "members": [ "user:noam@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'])" } } ] }
Questo binding del ruolo condizionale consente a Noam 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 i binding dei 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, Noam potrebbe utilizzare il metodo
projects.getIamPolicy
per ottenere la policy di autorizzazione del progetto.
Questa associazione di ruoli condizionale non consente a Noam di eseguire le seguenti operazioni:
- Modifica le policy di autorizzazione per le risorse diverse dal progetto.
- Concedi ruoli diversi da quelli di amministratore App Engine o visualizzatore App Engine.
- Revocare ruoli diversi da quelli di amministratore App Engine o visualizzatore App Engine.
- Aggiungi, rimuovi o modifica le condizioni per i binding dei ruoli che non concedono i ruoli Amministratore App Engine o Visualizzatore App Engine.
Consenti agli utenti di gestire gli amministratori IAM limitati
Considera uno scenario in cui vuoi rendere un utente, Lila, un amministratore IAM
limitato per il suo team. Vuoi che Lila possa concedere e revocare solo il ruolo Compute Admin (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 concedere e revocare solo il ruolo Compute Admin ad altri utenti.
Potresti pensare che la soluzione sia concedere a Lila il ruolo Amministratore IAM progetto
(roles/resourcemanager.projectIamAdmin
) e poi darle la possibilità di
concedere o revocare questo ruolo per altri. Tuttavia, se concedi a Lila il ruolo Amministratore IAM progetto, potrebbe rimuovere la condizione dal proprio ruolo e concedersi la possibilità di concedere o revocare qualsiasi ruolo IAM.
Per evitare questo escalation dei privilegi, devi invece
creare un gruppo Google, iam-compute-admins
, per
gli amministratori IAM con limitazioni del progetto. Poi, aggiungi Lila al gruppo e rendila gestore del gruppo.
Dopo aver creato il gruppo, gli concedi in modo condizionale il ruolo Amministratore IAM progetto (roles/resourcemanager.projectIamAdmin
). Il ruolo Amministratore IAM 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": [ "group: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
, Lila può svolgere le
seguenti operazioni:
- Concedi il ruolo di amministratore Compute per il progetto aggiungendo una nuova associazione per il ruolo o aggiungendo un'entità a un'associazione esistente per il ruolo.
- Revoca il ruolo Amministratore Compute rimuovendo un'associazione esistente per il ruolo o rimuovendo un'entità da un'associazione esistente per il ruolo.
- Modifica le concessioni per il ruolo Amministratore Compute aggiungendo, rimuovendo o modificando le condizioni associate ai binding per il ruolo.
- Esegui altre azioni consentite dal ruolo Amministratore IAM progetto che non modificano
il criterio di autorizzazione del progetto. Ad esempio, potrebbe utilizzare il metodo
projects.getIamPolicy
per ottenere la policy di autorizzazione del progetto.
In qualità di gestore del gruppo iam-compute-admins
, Lila può consentire
ad altri utenti di concedere o revocare il ruolo di amministratore Compute aggiungendoli al
gruppo iam-compute-admins
.
Lila non può:
- Concedersi la possibilità di assegnare o revocare altri ruoli.
- Modifica le policy di autorizzazione per le risorse diverse dal progetto.
- Concedi ruoli diversi da quello di amministratore Compute.
- Revoca i ruoli diversi da quello di amministratore Compute.
- Aggiungi, rimuovi o modifica le condizioni per le associazioni di ruoli che non concedono il ruolo Amministratore Compute.
Limita la concessione dei ruoli
Le sezioni seguenti spiegano come consentire alle entità di concedere o revocare solo determinati ruoli.
Scrivere 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 della policy di autorizzazione di una risorsa, questo attributo contiene i nomi dei ruoli delle associazioni che la richiesta modifica. 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
dei ruoli che l'entità può concedere o revocare. Ad esempio, per
consentire all'entità 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 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 riuscire, anche se l'entità può concedere o revocare questi 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 il valore true
se una richiesta concede il ruolo
roles/pubsub.editor
o il ruolo roles/pubsub.publisher
, ma restituisce il valore
false
se una richiesta concede 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 della condizione della sezione precedente per creare un binding del ruolo condizionale. Poi, aggiungi l'associazione di ruolo condizionale a un 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 all'interno 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 seguire il principio del privilegio minimo, scegli uno dei seguenti ruoli predefiniti:
- Progetti: amministratore IAM 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
.- Progetti: amministratore IAM progetto (
Concedi in modo condizionale a un'entità il ruolo scelto nel progetto, nella cartella o nell'organizzazione selezionati.
Viene applicato il nuovo criterio di autorizzazione 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 tua risorsa, fai clic sul selettore delle risorse, poi seleziona la risorsa.
Nell'elenco delle entità, individua l'entità che concederà e revoca i ruoli e fai clic sul pulsante
.Nel riquadro Modifica autorizzazioni, seleziona il ruolo che hai scelto in precedenza. Poi, in Condizione IAM (facoltativo), 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 l'entità alla concessione e alla revoca dei 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 ruoli IAM (ovvero ruoli con nomi di autorizzazioni che terminano con
setIamPolicy
). -
Ruoli personalizzati che l'amministratore IAM limitato può modificare. Ad esempio, se l'amministratore IAM limitato dispone anche del ruolo Amministratore ruoli (
roles/iam.roleAdmin
) in un progetto, non consentirgli di concedere o revocare ruoli personalizzati a livello di progetto.
Gli amministratori IAM con limitazioni che possono concedere e revocare questi tipi di ruoli possono concedersi l'autorizzazione a concedere e revocare tutti i ruoli IAM. Per saperne di più, consulta la sezione Scrivere un'espressione di condizione per limitare la concessione dei ruoli.
-
Ruoli con autorizzazioni per concedere e revocare ruoli IAM (ovvero ruoli con nomi di autorizzazioni 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 la policy di autorizzazione.
gcloud
I criteri di autorizzazione vengono impostati utilizzando il pattern di lettura, modifica e scrittura.
Innanzitutto, leggi la policy 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 ruoli. Utilizza uno dei seguenti valori:projects
,resource-manager folders
oorganizations
.resource-id
: il tuo progetto Google Cloud , la tua cartella o il tuo ID organizzazione.path
: il percorso del file in cui scaricare la policy 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 la policy di autorizzazione.
Per consentire a un'entità di modificare solo le associazioni per determinati ruoli, aggiungi l'associazione di ruolo condizionale 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 ciascun tipo di principal, consulta Identificatori principal.role
: il ruolo che hai scelto nei passaggi precedenti. Questo ruolo deve includere l'autorizzazionesetIamPolicy
per il tipo di risorsa che hai 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 l'entità alla concessione e alla revoca dei 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 ruoli IAM (ovvero ruoli con nomi di autorizzazioni che terminano con
setIamPolicy
). -
Ruoli personalizzati che l'amministratore IAM limitato può modificare. Ad esempio, se l'amministratore IAM limitato dispone anche del ruolo Amministratore ruoli (
roles/iam.roleAdmin
) in un progetto, non consentirgli di concedere o revocare ruoli personalizzati a livello di progetto.
Gli amministratori IAM con limitazioni che possono concedere e revocare questi tipi di ruoli possono concedersi l'autorizzazione a concedere e revocare tutti i ruoli IAM. Per saperne di più, consulta la sezione Scrivere un'espressione di condizione per limitare la concessione dei ruoli.
-
Ruoli con autorizzazioni per concedere e revocare ruoli IAM (ovvero ruoli con nomi di autorizzazioni che terminano con
Infine, scrivi il criterio di autorizzazione aggiornato:
Imposta la nuova policy 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 ruoli. Utilizza uno dei seguenti valori:projects
,resource-manager folders
oorganizations
.resource-id
: il tuo progetto Google Cloud , la tua cartella o il tuo ID organizzazione.path
: un percorso del file contenente la policy consenti aggiornata.
Viene applicato il nuovo criterio di autorizzazione e l'entità potrà modificare le associazioni solo per i ruoli che hai consentito.
REST
I criteri di autorizzazione vengono impostati utilizzando il pattern di lettura, modifica e scrittura.
Innanzitutto, leggi la policy di autorizzazione per la risorsa:
Il metodo
getIamPolicy
dell'API Resource Manager recupera il criterio di autorizzazione di un progetto, una cartella o 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 i criteri. Utilizza il valoreprojects
,folders
oorganizations
.RESOURCE_ID
: il tuo ID progetto, organizzazione o cartella Google Cloud. Gli ID progetto sono stringhe alfanumeriche, comemy-project
. Gli ID cartella e organizzazione sono numerici, ad esempio123456789012
.POLICY_VERSION
: La versione della policy da restituire. Le richieste devono specificare la versione più recente delle norme, ovvero la versione 3. Per maggiori dettagli, vedi Specificare una versione delle norme quando si recuperano le 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 la policy 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
con 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 ciascun tipo di principal, consulta Identificatori principal.ROLE
: il ruolo che hai scelto nei passaggi precedenti. Questo ruolo deve includere l'autorizzazionesetIamPolicy
per il tipo di risorsa che hai 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 l'entità alla concessione e alla revoca dei 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 ruoli IAM (ovvero ruoli con nomi di autorizzazioni che terminano con
setIamPolicy
). -
Ruoli personalizzati che l'amministratore IAM limitato può modificare. Ad esempio, se l'amministratore IAM limitato dispone anche del ruolo Amministratore ruoli (
roles/iam.roleAdmin
) in un progetto, non consentirgli di concedere o revocare ruoli personalizzati a livello di progetto.
Gli amministratori IAM con limitazioni che possono concedere e revocare questi tipi di ruoli possono concedersi l'autorizzazione a concedere e revocare tutti i ruoli IAM. Per saperne di più, consulta la sezione Scrivere un'espressione di condizione per limitare la concessione dei ruoli.
-
Ruoli con autorizzazioni per concedere e revocare ruoli IAM (ovvero ruoli con nomi di autorizzazioni 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 i criteri. Utilizza il valoreprojects
,folders
oorganizations
.RESOURCE_ID
: il tuo ID progetto, organizzazione o cartella Google Cloud. Gli ID progetto sono stringhe alfanumeriche, comemy-project
. Gli ID cartella e organizzazione sono numerici, ad esempio123456789012
.-
POLICY
: una rappresentazione JSON della policy che vuoi impostare. Per ulteriori informazioni sul formato di un criterio, consulta la documentazione di riferimento sui criteri.Ad esempio, per impostare la norma mostrata 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 la policy di autorizzazione aggiornata.
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.