Imposta 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 risorse. Tuttavia, consentire a un'entità di concedere o revocare tutti i ruoli IAM può aumentare notevolmente i rischi per la sicurezza.

Puoi impostare limiti per i 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 consentono di creare amministratori IAM limitati che possono gestire i criteri di autorizzazione del proprio team, ma solo entro i limiti da te impostati.

Prima di iniziare

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: Amministratore IAM progetto (roles/resourcemanager.projectIamAdmin)
  • Per creare un amministratore IAM limitato per una cartella: Amministratore cartelle (roles/resourcemanager.folderAdmin)
  • Per creare un amministratore IAM con limitazioni per un progetto, una cartella o un'organizzazione: Amministratore organizzazione (roles/resourcemanager.organizationAdmin)

Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Questi ruoli predefiniti contengono le autorizzazioni necessarie per creare amministratori IAM limitati per un progetto, una cartella o un'organizzazione. Per visualizzare le autorizzazioni esatte necessarie, espandi la sezione Autorizzazioni richieste:

Autorizzazioni obbligatorie

Per creare amministratori IAM limitati 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 limitato per un'organizzazione:
    • resourcemanager.organizations.getIamPolicy
    • resourcemanager.organizations.setIamPolicy

Potresti anche essere in grado di ottenere queste autorizzazioni con i ruoli personalizzati o altri ruoli predefiniti.

Casi d'uso comuni

Le seguenti sezioni descrivono come utilizzare la concessione di ruoli limitati per abilitare la gestione self-service dei criteri di autorizzazione.

Crea amministratori IAM limitati

Prendi in considerazione uno scenario in cui vuoi consentire a un utente, Finn (finn@example.com), di agire come amministratore IAM con limitazioni 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 capacità limitata, concedi a Finn in modo condizionale il ruolo Amministratore IAM progetto (roles/resourcemanager.projectIamAdmin). Il ruolo Amministratore IAM progetto consente a Finn di concedere e revocare i ruoli IAM e la condizione limita i ruoli che Finn 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.
  • Revocare 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 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 ottenere il criterio di autorizzazione del progetto.

Questa associazione del ruolo condizionale non consente a Finn di eseguire le seguenti operazioni:

  • Modifica i criteri di autorizzazione per risorse diverse dal progetto.
  • Concedi ruoli diversi da Amministratore di App Engine o Visualizzatore App Engine.
  • Revoca ruoli diversi da Amministratore di App Engine o Visualizzatore App Engine.
  • Aggiungi, rimuovi o modifica le condizioni per le associazioni di ruoli che non concedono i ruoli Amministratore o Visualizzatore App Engine.

Consenti agli utenti di gestire amministratori IAM limitati

Ad esempio, potresti 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 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 Compute.

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 utenti. Tuttavia, se concedi a Lila il ruolo Amministratore IAM progetto, potrebbe rimuovere la condizione dal suo ruolo e darsi la possibilità di concedere o revocare qualsiasi ruolo IAM.

Per evitare questa escalation dei privilegi, devi creare un gruppo Google, iam-compute-admins@example.com, per gli amministratori IAM con limitazioni del progetto. Poi, aggiungi Lila al gruppo e impostala come gestore del gruppo.

Dopo aver creato il gruppo, concedi al gruppo 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 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ò fare quanto segue:

  • Concedi il ruolo 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 alle associazioni del ruolo.
  • Eseguire 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 il criterio di autorizzazione del progetto.

In qualità di gestrice del gruppo iam-compute-admins@example.com, Lila può consentire ad altri utenti di concedere o revocare il ruolo Amministratore Compute aggiungendoli al gruppo iam-compute-admins@example.com.

Lila non può:

  • Darsi la possibilità di concedere o revocare altri ruoli.
  • Modifica i criteri di autorizzazione per risorse diverse dal progetto.
  • Concedi ruoli diversi da Amministratore Compute.
  • Revoca i ruoli diversi dal ruolo 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.

Scrivi un'espressione della condizione per limitare la concessione dei ruoli

Per limitare la capacità di un'entità di concedere ruoli, scrivi un'espressione della 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 quanto segue:

  • Recupera l'attributo API iam.googleapis.com/modifiedGrantsByRole utilizzando la funzione api.getAttribute().

    Per una richiesta di impostare il 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() CEL (Common Expression Language) per definire e applicare in modo forzato 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à 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 un'unica condizione. In caso contrario, 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 true se una richiesta concede il ruolo roles/pubsub.editor o roles/pubsub.publisher, ma restituisce false se una richiesta concede sia il ruolo roles/pubsub.editor sia il ruolo roles/pubsub.publisher.

Limita 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'associazione di ruoli condizionale. Quindi, aggiungi l'associazione del ruolo condizionale al criterio di autorizzazione di una risorsa.

  1. Seleziona una risorsa che rappresenta 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.
  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 seguire il principio del privilegio minimo, scegli uno dei seguenti ruoli predefiniti:

    • Progetti: amministratore IAM progetto (roles/resourcemanager.projectIamAdmin)
    • Cartelle: Amministratore IAM cartella (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 corrisponde a project, folder o organization.

  3. Concedi in modo condizionale un'entità al ruolo che hai scelto nel progetto, nella cartella o nell'organizzazione che hai selezionato.

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

      Se non vedi il nome della risorsa, fai clic sul selettore di risorse, quindi seleziona la risorsa.

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

    4. Nel riquadro Modifica autorizzazioni, seleziona il ruolo che hai scelto in precedenza. 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 Scrittura di un'espressione della condizione per limitare la concessione dei ruoli. Questa espressione limita i ruoli che l'entità può concedere o revocare.

      Ad esempio, la seguente espressione della condizione limita l'entità 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 ruoli IAM (ossia, ruoli con nomi di autorizzazioni che terminano con setIamPolicy).
      • Ruoli personalizzati che l'amministratore IAM limitato può modificare. Ad esempio, se l'amministratore IAM con limitazioni dispone anche del ruolo Amministratore dei ruoli (roles/iam.roleAdmin) per un progetto, non consentirgli di concedere o revocare ruoli personalizzati a livello di progetto.

      Gli amministratori IAM limitati che possono concedere e revocare questi tipi di ruoli possono concedersi l'autorizzazione a concedere e revocare tutti i ruoli IAM. Per ulteriori informazioni, consulta Scrittura di un'espressione della 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 di autorizzazione vengono impostati utilizzando il pattern lettura-modifica-scrittura.

    Prima di tutto, leggi il criterio di autorizzazione per la risorsa:

    Esegui il comando get-iam-policy. Questo comando recupera l'attuale criterio di autorizzazione 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: projects, resource-manager folders o organizations.
    • resource-id: l'ID del progetto, della cartella o dell'organizzazione di 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 dei ruoli 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 entità, consulta il riferimento Binding.
    • role: il ruolo che hai 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 della 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 della condizione limita l'entità 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 ruoli IAM (ossia, ruoli con nomi di autorizzazioni che terminano con setIamPolicy).
      • Ruoli personalizzati che l'amministratore IAM limitato può modificare. Ad esempio, se l'amministratore IAM con limitazioni dispone anche del ruolo Amministratore dei ruoli (roles/iam.roleAdmin) per un progetto, non consentirgli di concedere o revocare ruoli personalizzati a livello di progetto.

      Gli amministratori IAM limitati che possono concedere e revocare questi tipi di ruoli possono concedersi l'autorizzazione a concedere e revocare tutti i ruoli IAM. Per ulteriori informazioni, consulta Scrittura di un'espressione della 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: projects, resource-manager folders o organizations.
    • resource-id: l'ID del progetto, della cartella o dell'organizzazione di Google Cloud.
    • path: un percorso al file contenente il criterio di autorizzazione aggiornato.

    Il nuovo criterio di autorizzazione viene applicato e l'entità potrà modificare le associazioni solo per i ruoli che hai consentito.

    REST

    I criteri di autorizzazione vengono impostati utilizzando il pattern lettura-modifica-scrittura.

    Prima di tutto, leggi il criterio di autorizzazione per la risorsa:

    Il metodo getIamPolicy dell'API Resource Manager ottiene il criterio di autorizzazione di un progetto, di una cartella o di un'organizzazione.

    Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

    • API_VERSION: la versione dell'API da utilizzare. Per i progetti e le 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 progetto, organizzazione o cartella Google Cloud. Gli ID progetto sono stringhe alfanumeriche, come my-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 del criterio più recente, ovvero la versione 3. Per maggiori dettagli, consulta Specifica della versione di un criterio durante il recupero di un criterio.

    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:owner@example.com"
          ]
        }
      ]
    }
    

    Successivamente, modifica il criterio di autorizzazione.

    Aggiungi un'associazione di ruoli condizionale che consenta a un'entità di concedere e revocare solo determinati ruoli. Assicurati di modificare il campo version con 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 ciascun tipo di entità, consulta il riferimento Binding.
    • ROLE: il ruolo che hai 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 della 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 della condizione limita l'entità 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 ruoli IAM (ossia, ruoli con nomi di autorizzazioni che terminano con setIamPolicy).
      • Ruoli personalizzati che l'amministratore IAM limitato può modificare. Ad esempio, se l'amministratore IAM con limitazioni dispone anche del ruolo Amministratore dei ruoli (roles/iam.roleAdmin) per un progetto, non consentirgli di concedere o revocare ruoli personalizzati a livello di progetto.

      Gli amministratori IAM limitati che possono concedere e revocare questi tipi di ruoli possono concedersi l'autorizzazione a concedere e revocare tutti i ruoli IAM. Per ulteriori informazioni, consulta Scrittura di un'espressione della 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, effettua le seguenti sostituzioni:

    • API_VERSION: la versione dell'API da utilizzare. Per i progetti e le 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 progetto, organizzazione o cartella Google Cloud. Gli ID progetto sono stringhe alfanumeriche, come my-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 documentazione di riferimento alle norme.

      Ad esempio, per impostare il criterio mostrato nel passaggio precedente, sostituisci POLICY con il seguente:

      {
        "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