Impostare limiti per la concessione dei ruoli

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

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 funzione api.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'attributo iam.googleapis.com/modifiedGrantsByRole sono inclusi in questo elenco, la funzione restituisce true. In caso contrario, la funzione restituisce false.

    Se l'attributo iam.googleapis.com/modifiedGrantsByRole contiene il valore predefinito ([]), la funzione restituisce true, 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.

  1. 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.
  2. 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 e resourcemanager.resource-type.getIamPolicy, dove resource-type è project, folder o organization.

  3. 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

    1. Nella console Google Cloud, vai alla pagina IAM.

      Vai alla pagina IAM

    2. 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.

    3. Nell'elenco delle entità, individua l'entità che concederà e ritirerà i ruoli e fai clic sul pulsante .

    4. Nel riquadro Modifica autorizzazioni, seleziona il ruolo scelto in precedenza. Poi, in Condizione IAM (facoltativa), fai clic su Aggiungi condizione IAM.

    5. Nel riquadro Modifica condizione, inserisci un titolo e una descrizione facoltativa per la condizione.

    6. 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.

    7. Fai clic su Salva per applicare la condizione.

    8. 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 o organizations.
    • 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 riferimento Binding.
    • role: il ruolo scelto nei passaggi precedenti. Questo ruolo deve includere l'autorizzazione setIamPolicy 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.

    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 o organizations.
    • 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, utilizza v1. Per le cartelle, utilizza v2.
    • RESOURCE_TYPE: il tipo di risorsa di cui vuoi gestire il criterio. Utilizza il valore projects, folders o organizations.
    • 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 esempio 123456789012.
    • 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 valore 3:

    {
      "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 riferimento Binding.
    • ROLE: il ruolo scelto nei passaggi precedenti. Questo ruolo deve includere l'autorizzazione setIamPolicy 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.

    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, utilizza v1. Per le cartelle, utilizza v2.
    • RESOURCE_TYPE: il tipo di risorsa di cui vuoi gestire il criterio. Utilizza il valore projects, folders o organizations.
    • 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 esempio 123456789012.
    • 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