Package google.iam.v1

Indice

IAMPolicy

Panoramica dell'API

Gestisce i criteri IAM (Identity and Access Management).

Qualsiasi implementazione di un'API che offre funzionalità di controllo dell'accesso implementa l'interfaccia google.iam.v1.IAMPolicy.

Modello dati

Il controllo dell'accesso viene applicato quando un'entità (utente o account di servizio) esegue un'azione su una risorsa esposta da un servizio. Le risorse, identificate da nomi simili a URI, sono l'unità di specifica del controllo dell'accesso. Le implementazioni dei servizi possono scegliere la granularità del controllo dell'accesso e le autorizzazioni supportate per le proprie risorse. Ad esempio, un servizio di database potrebbe consentire di specificare il controllo dell'accesso solo a livello di tabella, mentre un altro potrebbe consentire di specificare il controllo dell'accesso anche a livello di colonna.

Struttura dei criteri

Consulta google.iam.v1.Policy

Non si tratta intenzionalmente di un'API in stile CRUD perché i criteri di controllo dell'accesso vengono creati ed eliminati implicitamente con le risorse a cui sono associati.

GetIamPolicy

rpc GetIamPolicy(GetIamPolicyRequest) returns (Policy)

Recupera il criterio di controllo dell'accesso per una risorsa. Restituisce un criterio vuoto se la risorsa esiste e non ha un criterio impostato.

Ambiti di autorizzazione

Richiede il seguente ambito OAuth:

  • https://www.googleapis.com/auth/cloud-platform

Per ulteriori informazioni, consulta la Panoramica dell'autenticazione.

SetIamPolicy

rpc SetIamPolicy(SetIamPolicyRequest) returns (Policy)

Imposta il criterio di controllo dell'accesso sulla risorsa specificata. Sostituisce qualsiasi criterio esistente.

Può restituire errori NOT_FOUND, INVALID_ARGUMENT e PERMISSION_DENIED.

Ambiti di autorizzazione

Richiede il seguente ambito OAuth:

  • https://www.googleapis.com/auth/cloud-platform

Per ulteriori informazioni, consulta la Panoramica dell'autenticazione.

TestIamPermissions

rpc TestIamPermissions(TestIamPermissionsRequest) returns (TestIamPermissionsResponse)

Restituisce le autorizzazioni di cui dispone un chiamante sulla risorsa specificata. Se la risorsa non esiste, verrà restituito un insieme vuoto di autorizzazioni, non un errore NOT_FOUND.

Nota: questa operazione è progettata per essere utilizzata per creare interfacce utente e strumenti a riga di comando attenti alle autorizzazioni, non per il controllo dell'autorizzazione. Questa operazione potrebbe "non riuscire" senza avviso.

Ambiti di autorizzazione

Richiede il seguente ambito OAuth:

  • https://www.googleapis.com/auth/cloud-platform

Per ulteriori informazioni, consulta la Panoramica dell'autenticazione.

Associazione

Associa members, o entità, a un role.

Campi
role

string

Ruolo assegnato all'elenco di members o entità. Ad esempio, roles/viewer, roles/editor o roles/owner.

members[]

string

Specifica le entità che richiedono l'accesso per una risorsa Google Cloud. members può avere i seguenti valori:

  • allUsers: un identificatore speciale che rappresenta tutti gli utenti di internet, con o senza un Account Google.

  • allAuthenticatedUsers: un identificatore speciale che rappresenta chiunque sia autenticato con un Account Google o un account di servizio. Non include le identità provenienti da provider di identità esterni (IdP) tramite la federazione delle identità.

  • user:{emailid}: un indirizzo email che rappresenta un Account Google specifico. Ad esempio, alice@example.com .

  • serviceAccount:{emailid}: un indirizzo email che rappresenta un account di servizio Google. Ad esempio, my-other-app@appspot.gserviceaccount.com.

  • serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]: un identificatore per un account di servizio Kubernetes. Ad esempio: my-project.svc.id.goog[my-namespace/my-kubernetes-sa].

  • group:{emailid}: un indirizzo email che rappresenta un gruppo Google. Ad esempio, admins@example.com.

  • domain:{domain}: il dominio G Suite (principale) che rappresenta tutti gli utenti di quel dominio. Ad esempio, google.com o example.com.
  • deleted:user:{emailid}?uid={uniqueid}: un indirizzo email (oltre a un identificatore univoco) che rappresenta un utente eliminato di recente. Ad esempio, alice@example.com?uid=123456789012345678901. Se l'utente viene recuperato, questo valore torna a user:{emailid} e l'utente recuperato mantiene il ruolo nella associazione.

  • deleted:serviceAccount:{emailid}?uid={uniqueid}: un indirizzo email (oltre a un identificatore univoco) che rappresenta un account di servizio eliminato di recente. Ad esempio, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. Se l'account di servizio viene ripristinato, questo valore torna a serviceAccount:{emailid} e l'account di servizio ripristinato mantiene il ruolo nella associazione.

  • deleted:group:{emailid}?uid={uniqueid}: un indirizzo email (oltre a un identificatore univoco) che rappresenta un gruppo Google eliminato di recente. Ad esempio, admins@example.com?uid=123456789012345678901. Se il gruppo viene recuperato, questo valore torna a group:{emailid} e il gruppo recuperato mantiene il ruolo nella associazione.

condition

Expr

La condizione associata a questa associazione.

Se la condizione ha valore true, questa associazione si applica alla richiesta corrente.

Se la condizione ha valore false, questa associazione non si applica alla richiesta corrente. Tuttavia, un'associazione di ruoli diversa potrebbe concedere lo stesso ruolo a uno o più degli entità in questa associazione.

Per scoprire quali risorse supportano le condizioni nei propri criteri IAM, consulta la documentazione di IAM.

GetIamPolicyRequest

Richiedi messaggio per il metodo GetIamPolicy.

Campi
resource

string

OBBLIGATORI: la risorsa per cui viene richiesto il criterio. Consulta Nomi delle risorse per il valore appropriato per questo campo.

options

GetPolicyOptions

(FACOLTATIVO) Un oggetto GetPolicyOptions per specificare le opzioni per GetIamPolicy.

GetPolicyOptions

Incapsula le impostazioni fornite a GetIamPolicy.

Campi
requested_policy_version

int32

Facoltativo. La versione massima del criterio che verrà utilizzata per formattare il criterio.

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

Le richieste di criteri con associazioni di ruoli condizionali devono specificare la versione 3. I criteri senza associazioni di ruoli condizionali possono specificare qualsiasi valore valido o lasciare il campo non impostato.

Il criterio nella risposta potrebbe utilizzare la versione del criterio specificata o una versione precedente. Ad esempio, se specifichi la versione 3, ma il criterio non ha associazioni di ruoli condizionali, la risposta utilizza la versione 1.

Per scoprire quali risorse supportano le condizioni nei propri criteri IAM, consulta la documentazione di IAM.

Norme

Un criterio Identity and Access Management (IAM) che specifica i controlli di accesso per le risorse Google Cloud.

Un Policy è una raccolta di bindings. Un binding associa uno o più members, o entità, 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 il valore true. Una condizione può aggiungere vincoli in base agli attributi della richiesta, della risorsa o di entrambi. Per scoprire quali risorse supportano le condizioni nei propri criteri IAM, consulta la documentazione di 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 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.

Campi
version

int32

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:

  • Ottenere un criterio che include un'associazione di ruoli condizionale
  • Aggiunta di un'associazione di ruoli condizionale a un criterio
  • Modificare un'associazione di ruoli condizionali in un criterio
  • Rimozione di qualsiasi associazione di ruolo, 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 ti consente di sovrascrivere un criterio della versione 3 con un criterio della versione 1 e tutte le condizioni del criterio della versione 3 andranno perse.

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

Per scoprire quali risorse supportano le condizioni nei propri criteri IAM, consulta la documentazione di IAM.

bindings[]

Binding

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

Il 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 principale viene conteggiata ai fini di questi limiti. Ad esempio, se bindings concede 50 ruoli diversi a user:alice@example.com e non ad altri entità, puoi aggiungere altri 1450 entità a bindings in Policy.

etag

bytes

etag viene utilizzato per il controllo della concorrenza ottimistica come un modo per evitare che gli aggiornamenti simultanei di un criterio si sovrascrivano a vicenda. È vivamente consigliato che i sistemi utilizzino etag nel ciclo di lettura, modifica e scrittura per eseguire aggiornamenti dei criteri al fine di evitare condizioni di gara: un etag viene restituito nella risposta a getIamPolicy e i sistemi devono inserire questo etag nella richiesta a setIamPolicy per assicurarsi 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 ti consente di sovrascrivere un criterio della versione 3 con un criterio della versione 1 e tutte le condizioni del criterio della versione 3 andranno perse.

SetIamPolicyRequest

Richiedi messaggio per il metodo SetIamPolicy.

Campi
resource

string

OBBLIGATORI: la risorsa per cui viene specificato il criterio. Consulta Nomi delle risorse per il valore appropriato per questo campo.

policy

Policy

OBBLIGATORI: le norme complete da applicare al resource. Le dimensioni del criterio sono limitate a qualche decina di KB. Un criterio vuoto è valido, ma alcuni servizi Google Cloud (come Projects) potrebbero rifiutarlo.

TestIamPermissionsRequest

Richiedi messaggio per il metodo TestIamPermissions.

Campi
resource

string

OBBLIGATORI: la risorsa per cui viene richiesto il dettaglio delle norme. Consulta Nomi delle risorse per il valore appropriato per questo campo.

permissions[]

string

L'insieme di autorizzazioni da controllare per resource. Le autorizzazioni con caratteri jolly (ad es. * o storage.*) non sono consentite. Per ulteriori informazioni, consulta la Panoramica di IAM.

TestIamPermissionsResponse

Messaggio di risposta per il metodo TestIamPermissions.

Campi
permissions[]

string

Un sottoinsieme di TestPermissionsRequest.permissions consentito al chiamante.