Pacchetto google.iam.v1

Indice

IAMPolicy

Panoramica dell'API

Gestisce i criteri IAM (Gestione di identità e accessi).

L'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à (account utente o di servizio) esegue una determinata azione su una risorsa esposta da un servizio. Le risorse, identificate da nomi simili a URI, sono le 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

Vedi google.iam.v1.Policy

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

AuditConfig

Specifica la configurazione di controllo per un servizio. La configurazione determina quali tipi di autorizzazione vengono registrati e quali eventuali identità sono esenti dalla registrazione. Un AuditConfig deve avere uno o più AuditLogConfig.

Se sono presenti AuditConfig sia per allServices sia per un servizio specifico, viene utilizzata l'unione dei due AuditConfig per quel servizio: sono esenti i log_type specificati in ogni AuditConfig e sono esenti i membri esenti in ogni AuditLogConfig.

Esempio di criterio con più oggetti AuditConfig:

{
  "audit_configs": [
    {
      "service": "allServices"
      "audit_log_configs": [
        {
          "log_type": "DATA_READ",
          "exempted_members": [
            "user:jose@example.com"
          ]
        },
        {
          "log_type": "DATA_WRITE",
        },
        {
          "log_type": "ADMIN_READ",
        }
      ]
    },
    {
      "service": "sampleservice.googleapis.com"
      "audit_log_configs": [
        {
          "log_type": "DATA_READ",
        },
        {
          "log_type": "DATA_WRITE",
          "exempted_members": [
            "user:aliya@example.com"
          ]
        }
      ]
    }
  ]
}

Per sampleservice, questo criterio abilita il logging di DATA_READ, DATA_WRITE e ADMIN_READ. Inoltre, questa azione esclude jose@example.com dal logging di DATA_READ e aliya@example.com dal logging di DATA_WRITE.

Campi
service

string

Specifica un servizio che verrà abilitato per l'audit logging. Ad esempio, storage.googleapis.com, cloudsql.googleapis.com. allServices è un valore speciale che copre tutti i servizi.

audit_log_configs[]

AuditLogConfig

La configurazione per il logging di ogni tipo di autorizzazione.

AuditLogConfig

Fornisce la configurazione per la registrazione di un tipo di autorizzazioni. Esempio:

{
  "audit_log_configs": [
    {
      "log_type": "DATA_READ",
      "exempted_members": [
        "user:jose@example.com"
      ]
    },
    {
      "log_type": "DATA_WRITE",
    }
  ]
}

Questa operazione attiva il logging 'DATA_READ' e 'DATA_WRITE' mentre è esclusa l'accesso a jose@example.com dal logging di DATA_READ.

Campi
log_type

LogType

Il tipo di log abilitato da questa configurazione.

exempted_members[]

string

Specifica le identità che non causano il logging per questo tipo di autorizzazione. Segue lo stesso formato di Binding.members.

ignore_child_exemptions

bool

Specifica se le entità possono essere esenti per lo stesso LogType nei criteri delle risorse di livello inferiore. Se il valore è true, le eventuali esenzioni di livello inferiore vengono ignorate.

LogType

Elenco di tipi di autorizzazioni validi per i quali è possibile configurare il logging. Le scritture dell'amministratore sono sempre registrate e non sono configurabili.

Enum
LOG_TYPE_UNSPECIFIED Richiesta predefinita. Non dovrebbe mai essere così.
ADMIN_READ L'amministratore legge. Esempio: getIamPolicy di CloudIAM
DATA_WRITE Scritture dati. Esempio: utenti di Cloud SQL creati
DATA_READ Lettura dati. Esempio: elenco di utenti Cloud SQL

Associazione

Associa members a un role.

Campi
role

string

Ruolo assegnato a members. Ad esempio, roles/viewer, roles/editor o roles/owner.

members[]

string

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

  • allUsers: un identificatore speciale che rappresenta chiunque sia su Internet; con o senza un Account Google.

  • allAuthenticatedUsers: un identificatore speciale che rappresenta tutti gli utenti autenticati con un Account Google o un account di servizio.

  • 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. Ad esempio, my-other-app@appspot.gserviceaccount.com.

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

condition

Expr

La condizione associata a questa associazione. NOTA: una condizione non soddisfatta non consentirà l'accesso dell'utente tramite l'associazione corrente. Le associazioni diverse, comprese le condizioni, vengono esaminate in modo indipendente.

GetIamPolicyRequest

Messaggio di richiesta per il metodo GetIamPolicy.

Campi
resource

string

OBBLIGATORIO: la risorsa per cui viene richiesto il criterio. Consulta la documentazione relativa all'operazione per conoscere il valore appropriato per questo campo.

options

GetPolicyOptions

OPTIONAL: un oggetto GetPolicyOptions per specificare le opzioni di GetIamPolicy. Questo campo è utilizzato solo da Cloud IAM.

GetPolicyOptions

Incapsula le impostazioni fornite a GetIamPolicy.

Campi
requested_policy_version

int32

(Facoltativo) La versione del formato del criterio da restituire. I valori accettabili sono 0 e 1. Se il valore è 0 o il campo viene omesso, verrà restituita la versione 1 del criterio.

Criterio

Definisce un criterio per la gestione di identità e accessi (IAM). Si utilizza per specificare i criteri di controllo dell'accesso per le risorse Cloud Platform.

Policy è un elenco composto da bindings. Un binding associa un elenco di members a un role, in cui i membri possono essere account utente, gruppi Google, domini Google e account di servizio. role è un elenco denominato di autorizzazioni definite da IAM.

Esempio JSON

{
  "bindings": [
    {
      "role": "roles/owner",
      "members": [
        "user:mike@example.com",
        "group:admins@example.com",
        "domain:google.com",
        "serviceAccount:my-other-app@appspot.gserviceaccount.com"
      ]
    },
    {
      "role": "roles/viewer",
      "members": ["user:sean@example.com"]
    }
  ]
}

Esempio di VPAID

bindings:
- members:
  - user:mike@example.com
  - group:admins@example.com
  - domain:google.com
  - serviceAccount:my-other-app@appspot.gserviceaccount.com
  role: roles/owner
- members:
  - user:sean@example.com
  role: roles/viewer

Per una descrizione di IAM e delle sue funzionalità, consulta la guida per gli sviluppatori IAM.

Campi
version

int32

Deprecato.

bindings[]

Binding

Associa un elenco di members a un role. bindings senza membri comporterà un errore.

audit_configs[]

AuditConfig

Specifica la configurazione dell'audit logging di Cloud per questo criterio.

etag

bytes

etag viene usato per il controllo ottimistico della contemporaneità come metodo per impedire la sovrascrittura contemporanea degli aggiornamenti di un criterio. Consigliamo vivamente ai sistemi di utilizzare il etag nel ciclo di lettura-modifica-scrittura per eseguire aggiornamenti dei criteri al fine di evitare condizioni di gara: viene restituito un etag nella risposta a getIamPolicy e i sistemi sono tenuti a inserire tale etag nella richiesta a setIamPolicy per garantire che la modifica venga applicata alla stessa versione del criterio.

Se nella chiamata a setIamPolicy non viene fornito etag, il criterio esistente viene sovrascritto.

SetIamPolicyRequest

Messaggio di richiesta per il metodo SetIamPolicy.

Campi
resource

string

OBBLIGATORIO: la risorsa per la quale viene specificato il criterio. Consulta la documentazione relativa all'operazione per conoscere il valore appropriato per questo campo.

policy

Policy

OBBLIGATORIO: il criterio completo da applicare al resource. Le dimensioni del criterio sono limitate a poche decine di kB. Un criterio vuoto è un criterio valido, ma alcuni servizi Cloud Platform (come i progetti) potrebbero rifiutarli.

update_mask

FieldMask

OPTIONAL: una FieldMask che specifica quali campi del criterio modificare. Verranno modificati solo i campi nella maschera. Se non viene fornita alcuna maschera, viene utilizzata la seguente maschera predefinita: path: "bindings, etag" Questo campo viene utilizzato solo da Cloud IAM.

TestIamPermissionsRequest

Messaggio di richiesta per il metodo TestIamPermissions.

Campi
resource

string

OBBLIGATORIO: la risorsa per cui viene richiesto il dettaglio del criterio. Consulta la documentazione relativa all'operazione per conoscere il valore appropriato per questo campo.

permissions[]

string

L'insieme delle autorizzazioni per verificare resource. Non sono consentite le autorizzazioni con caratteri jolly (come '*' o 'storage).*'). Per ulteriori informazioni, consulta la panoramica di IAM.

TestIamPermissionsResponse

Messaggio di risposta per il metodo TestIamPermissions.

Campi
permissions[]

string

Un sottoinsieme di TestPermissionsRequest.permissions a cui è consentito il chiamante.