Policy

Un criterio IAM (Identity and Access Management) che specifica i controlli dell'accesso alle risorse Google Cloud.

Un Policy è una raccolta di bindings. Un binding associa una o più entità (members) a un singolo role. Le entità possono essere account utente, account di servizio, gruppi Google e domini (ad esempio G Suite). Un role è un elenco denominato di autorizzazioni. Ogni role può essere un ruolo IAM predefinito o un ruolo personalizzato creato dall'utente.

Per alcuni tipi di risorse Google Cloud, un binding può anche specificare un condition, ovvero un'espressione logica che consente l'accesso a una risorsa solo se l'espressione ha come valore true. Una condizione può aggiungere vincoli in base agli attributi della richiesta, della risorsa o di entrambi. Per sapere quali risorse supportano condizioni nei loro criteri IAM, consulta la documentazione IAM.

Esempio di JSON:

    {
      "bindings": [
        {
          "role": "roles/resourcemanager.organizationAdmin",
          "members": [
            "user:mike@example.com",
            "group:admins@example.com",
            "domain:google.com",
            "serviceAccount:my-project-id@appspot.gserviceaccount.com"
          ]
        },
        {
          "role": "roles/resourcemanager.organizationViewer",
          "members": [
            "user:eve@example.com"
          ],
          "condition": {
            "title": "expirable access",
            "description": "Does not grant access after Sep 2020",
            "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')",
          }
        }
      ],
      "etag": "BwWWja0YfJA=",
      "version": 3
    }

Esempio di YAML:

    bindings:
    - members:
      - user:mike@example.com
      - group:admins@example.com
      - domain:google.com
      - serviceAccount:my-project-id@appspot.gserviceaccount.com
      role: roles/resourcemanager.organizationAdmin
    - members:
      - user:eve@example.com
      role: roles/resourcemanager.organizationViewer
      condition:
        title: expirable access
        description: Does not grant access after Sep 2020
        expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
    etag: BwWWja0YfJA=
    version: 3

Consulta la documentazione IAM per una descrizione di IAM e delle sue funzionalità.

Rappresentazione JSON
{
  "version": integer,
  "bindings": [
    {
      object (Binding)
    }
  ],
  "auditConfigs": [
    {
      object (AuditConfig)
    }
  ],
  "etag": string
}
Campi
version

integer

Specifica il formato del criterio.

I valori validi sono 0, 1 e 3. Le richieste che specificano un valore non valido vengono rifiutate.

Qualsiasi operazione che influisce sulle associazioni di ruoli condizionali deve specificare la versione 3. Questo requisito si applica alle seguenti operazioni:

  • Recupero di un criterio che include un'associazione condizionale dei ruoli
  • Aggiunta di un'associazione condizionale di ruoli a un criterio
  • Modifica di un'associazione condizionale di ruoli in un criterio
  • Rimozione di qualsiasi associazione di ruoli, con o senza una condizione, da un criterio che include condizioni

Importante: se utilizzi le condizioni IAM, devi includere il campo etag ogni volta che chiami setIamPolicy. Se ometti questo campo, IAM consente di sovrascrivere un criterio della versione 3 con un criterio della versione 1 e tutte le condizioni nel criterio della versione 3 andranno perse.

Se un criterio non include condizioni, le operazioni su quel criterio potrebbero specificare qualsiasi versione valida o lasciare il campo non impostato.

Per sapere quali risorse supportano condizioni nei loro criteri IAM, consulta la documentazione IAM.

bindings[]

object (Binding)

Associa un elenco di members, o entità, a un role. Se vuoi, puoi specificare un valore condition che determina come e quando vengono applicati i bindings. Ciascun bindings deve contenere almeno un'entità.

bindings in un Policy può fare riferimento a un massimo di 1500 entità; fino a 250 di queste entità possono essere gruppi Google. Ogni occorrenza di un'entità viene conteggiata ai fini di questi limiti. Ad esempio, se bindings concede 50 ruoli diversi a user:alice@example.com e non a nessun'altra entità, puoi aggiungere altre 1450 entità alla bindings in Policy.

auditConfigs[]

object (AuditConfig)

Specifica la configurazione dell'audit logging del cloud per questo criterio.

etag

string (bytes format)

etag viene utilizzato per il controllo ottimistico della contemporaneità, in modo da impedire che gli aggiornamenti simultanei di un criterio si sovrascrivano a vicenda. È vivamente consigliato che i sistemi utilizzino l'istruzione etag nel ciclo di lettura, modifica e scrittura per eseguire aggiornamenti dei criteri al fine di evitare le condizioni di gara: nella risposta a getIamPolicy viene restituito un etag e i sistemi devono inserire questo tag nella richiesta a setIamPolicy per garantire che la modifica venga applicata alla stessa versione del criterio.

Importante: se utilizzi le condizioni IAM, devi includere il campo etag ogni volta che chiami setIamPolicy. Se ometti questo campo, IAM consente di sovrascrivere un criterio della versione 3 con un criterio della versione 1 e tutte le condizioni nel criterio della versione 3 andranno perse.

Una stringa con codifica base64.