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)
    }
  ],
  "auditConfigs": [
    {
      object (AuditConfig)
    }
  ],
  "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.

auditConfigs[]

object (AuditConfig)

Specifica la configurazione dell'audit log di Cloud per questa 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.