Policy

Una policy Identity and Access Management (IAM) che specifica i controlli dell'accesso per le risorse Google Cloud.

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

Per alcuni tipi di risorse Google Cloud, un binding può anche specificare una condition, ovvero un'espressione logica che consente l'accesso a una risorsa solo se l'espressione restituisce true. Una condizione può aggiungere vincoli in base agli attributi della richiesta, della risorsa o di entrambi. Per scoprire quali risorse supportano le condizioni nelle relative policy IAM, consulta la documentazione di IAM.

Esempio 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 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

Per una descrizione di IAM e delle sue funzionalità, consulta la documentazione di IAM.

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

integer

Specifica il formato della policy.

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 una policy che include un'associazione di ruoli condizionale
  • Aggiunta di un'associazione di ruoli condizionale a una policy
  • Modifica di un'associazione di ruoli condizionale in una policy
  • Rimozione di qualsiasi associazione di ruoli, con o senza condizione, da una policy che include condizioni

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

Se una policy non include condizioni, le operazioni su questa policy possono specificare qualsiasi versione valida o lasciare il campo non impostato.

Per scoprire quali risorse supportano le condizioni nelle relative policy IAM, consulta la documentazione di IAM.

bindings[]

object (Binding)

Associa un elenco di members, o entità, a un role. (Facoltativo) Può specificare una condition che determina come e quando vengono applicati i bindings. Ciascuno dei bindings deve contenere almeno un'entità.

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

etag

string (bytes format)

etag viene utilizzato per il controllo della concorrenza ottimistico per evitare che gli aggiornamenti simultanei di una policy si sovrascrivano a vicenda. È consigliabile che i sistemi utilizzino etag nel ciclo di lettura-modifica-scrittura per eseguire gli aggiornamenti delle policy al fine di evitare possibili race condition: un etag viene restituito nella risposta a getIamPolicy e i sistemi devono inserire questo etag nella richiesta a setIamPolicy per garantire che la modifica venga applicata alla stessa versione della policy.

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

Una stringa con codifica in base64.