Riferimento all'attributo per le condizioni IAM

Questo documento descrive gli attributi supportati in un'espressione di condizione.

Attributi di condizione supportati

Le sezioni seguenti riepilogano gli attributi supportati e indicano quali serviziGoogle Cloud riconoscono ciascun attributo.

Attributi risorsa

I seguenti attributi si riferiscono alla risorsa oggetto della richiesta.

Attributo Riepilogo utilizzo Servizi Google Cloud supportati
Attributo del servizio di risorse

Gestisci l'accesso in base al servizio Google Cloud utilizzato.

Puoi utilizzare questo attributo nelle associazioni dei ruoli delle policy di autorizzazione.

  • Agent Registry
  • Apigee
  • Application Integration
  • Hub delle API Apigee
  • Servizio di Backup e DR
  • BigQuery
  • API BigQuery Reservation
  • Bigtable
  • Autorizzazione binaria
  • Cloud Deploy
  • Customer Experience Agent Studio
  • Cloud Key Management Service
  • Cloud Logging
  • Cloud SQL
  • Cloud Storage
  • Compute Engine
  • Dataform
  • Cloud DNS
  • Google Kubernetes Engine
  • Firestore
  • Identity-Aware Proxy
  • Integration Connectors
  • Google Cloud Managed Service per Apache Kafka
  • Network Security Integration
  • Parameter Manager
  • Cloud NGFW
  • Pub/Sub Lite
  • Resource Manager
  • Secret Manager
  • Spanner
Attributo del tipo di risorsa

Gestisci l'accesso in base al tipo di risorsa.

Puoi utilizzare questo attributo nelle associazioni dei ruoli delle policy di autorizzazione.

  • Agent Registry
  • Apigee
  • Application Integration
  • Hub delle API Apigee
  • BigQuery
  • API BigQuery Reservation
  • Bigtable
  • Autorizzazione binaria
  • Customer Experience Agent Studio
  • Cloud Key Management Service
  • Cloud Logging
  • Cloud SQL
  • Cloud Storage
  • Compute Engine
  • Dataform
  • Cloud DNS
  • Google Kubernetes Engine
  • Firestore
  • Cloud NGFW
  • Identity-Aware Proxy
  • Integration Connectors
  • Google Cloud Managed Service per Apache Kafka
  • Network Security Integration
  • Parameter Manager
  • Pub/Sub Lite
  • Resource Manager
  • Secret Manager
  • Spanner
Attributo del nome della risorsa

Gestisci l'accesso in base al nome della risorsa.

Puoi utilizzare questo attributo nelle associazioni dei ruoli delle policy di autorizzazione.

  • Agent Registry
  • Apigee
  • Application Integration
  • Hub delle API Apigee
  • Servizio di Backup e DR
  • BigQuery
  • API BigQuery Reservation
  • Bigtable
  • Autorizzazione binaria
  • Cloud Deploy
  • Customer Experience Agent Studio
  • Cloud Key Management Service
  • Cloud Logging
  • Cloud SQL
  • Cloud Storage
  • Compute Engine
  • Dataform
  • Cloud DNS
  • Google Kubernetes Engine
  • Firestore
  • Cloud NGFW
  • Integration Connectors
  • Google Cloud Managed Service per Apache Kafka
  • Network Security Integration
  • Parameter Manager
  • Pub/Sub Lite
  • Secret Manager
  • Spanner
Tag delle risorse

Gestisci l'accesso in base ai tag associati alla risorsa.

Puoi utilizzare questo attributo nelle seguenti posizioni:

  • Associazioni dei ruoli delle policy di autorizzazione
  • Regole di negazione della policy di negazione

Tutti i servizi Google Cloud (consulta Supporto per le condizioni ereditate)

Per ulteriori dettagli sugli attributi delle risorse, consulta Attributi delle risorse in questa pagina.

Attributi delle entità

I seguenti attributi si riferiscono all'entità che effettua la richiesta.

Attributo Riepilogo utilizzo Tipi di entità supportati

Attributo Principal type

Applica le policy in base al tipo di entità nella richiesta.

Puoi utilizzare questo attributo nelle associazioni delle policy per le policy sul confine di accesso dell'entità.

  • Account Google
  • Identità del pool di identità della forza lavoro
  • Identità del pool di identità del workload
  • Service account

Attributo dell'oggetto principale

Applica le policy in base all'identità del principal nella richiesta.

Puoi utilizzare questo attributo nelle associazioni delle policy per le policy sul confine di accesso dell'entità.

  • Account Google
  • Identità del pool di identità della forza lavoro
  • Identità del pool di identità del workload
  • Service account

Per maggiori dettagli sugli attributi delle entità, consulta Attributi delle entità in questa pagina.

Attributi della richiesta

I seguenti attributi si riferiscono ai dettagli della richiesta.

Attributo Riepilogo utilizzo Servizi Google Cloud supportati

Attributo Livelli di accesso

Gestisci l'accesso in base a livelli di accesso specifici.

Un livello di accesso è un attributo calcolato in base ad attributi non elaborati relativi alla richiesta e al richiedente, come l'indirizzo IP di origine, gli attributi del dispositivo e l'ora del giorno. Ad esempio, un livello di accesso onNetwork potrebbe richiedere che il dispositivo che effettua la richiesta provenga da un intervallo di indirizzi IP specifico. I livelli di accesso sono definiti dagli amministratori di un'organizzazione.

Puoi utilizzare questo attributo nelle associazioni dei ruoli delle policy di autorizzazione.

Identity-Aware Proxy

Attributi API

Gestisci l'accesso in base ai dati forniti da un'API o un servizio Google Cloudspecifico.

Puoi utilizzare questo attributo nelle associazioni dei ruoli delle policy di autorizzazione.

Non tutti i servizi riconoscono tutti gli attributi dell'API. Per un elenco dei servizi che riconoscono ogni attributo, consulta Attributi API.

Attributi di data/ora

Imposta l'accesso con scadenza, programmato o di durata limitata alle risorse Google Cloud .

Puoi utilizzare questi attributi nelle associazioni dei ruoli delle policy di autorizzazione.

Tutti i servizi Google Cloud (consulta Supporto per le condizioni ereditate)

Attributi IP/porta di destinazione

Gestisci l'accesso in base all'indirizzo IP di destinazione e/o alla porta di una richiesta. Ad esempio, un'istanza di macchina virtuale (VM) Compute Engine potrebbe esporre un IP esterno, come 10.0.0.2, ma la porta 22 potrebbe essere esposta solo per uso amministrativo.

Utilizzato per il forwarding TCP di Identity-Aware Proxy.

Puoi utilizzare questi attributi nelle associazioni dei ruoli delle policy di autorizzazione.

Identity-Aware Proxy

Attributi delle regole di forwarding

Specifica i tipi di regole di forwarding che un'entità può creare. Ad esempio, puoi consentire a un'entità di creare regole di forwarding per ibilanciatori del carico Google Cloud interni, che gestiscono il traffico proveniente dall'interno di una rete Google Cloud , ma non per i bilanciatori del carico Google Cloud esterni, che gestiscono il traffico proveniente da internet.

Puoi utilizzare questi attributi nelle associazioni dei ruoli delle policy di autorizzazione.

Attributi host/percorso dell'URL

Gestisci l'accesso in base al percorso dell'URL e/o all'host di una richiesta. Ad esempio, una condizione potrebbe specificare che https://example.com è l'applicazione principale accessibile da un dominio generale di utenti, mentre https://hr.example.com/admin viene utilizzato per accedere a una pagina dell'applicazione a cui possono accedere solo gli amministratori delle risorse umane.

Puoi utilizzare questi attributi nelle associazioni dei ruoli delle policy di autorizzazione.

  • Identity-Aware Proxy
  • Cloud Run

Per maggiori dettagli sugli attributi della richiesta, consulta Attributi della richiesta in questa pagina.

Supporto per le condizioni ereditate

Oltre ad aggiungere condizioni alle policy di autorizzazione di alcune risorse specifiche del servizio, è possibile aggiungere associazioni di ruoli condizionali alle risorse a livello di organizzazione, cartella o progetto. Se aggiunte a livello di risorsa container, le associazioni di ruoli condizionali vengono ereditate da altre risorse tramite la gerarchia delle risorse. Le condizioni ereditate sono utili quando una risorsa non consente condizioni nelle proprie policy di autorizzazione o non ha una policy di autorizzazione.

Quando utilizzi gli attributi a livello di organizzazione, cartella o progetto, tieni presente che la maggior parte degli attributi è disponibile solo per tipi di risorse specifici. Se parte di una condizione utilizza un attributo non disponibile per una risorsa, quella parte della condizione non viene mai interpretata come concessione dell'accesso. Ad esempio, la condizione resource.name.endsWith == devResource non concede mai l'accesso a nessuna risorsa IAM perché le risorse IAM non forniscono il nome della risorsa.

Per evitare questo problema, utilizza gli attributi tipo di risorsa e servizio della risorsa per limitare l'ambito della condizione. Ad esempio, la seguente condizione restituisce true per tutti i tipi di risorse diversi dalle istanze Compute Engine; al contrario, per le istanze Compute Engine, la condizione controlla il nome della risorsa:

resource.type != 'compute.googleapis.com/Disk' ||
    resource.name.endsWith('devResource')

Attributi risorsa

Gli attributi del servizio, del tipo e del nome della risorsa vengono in genere utilizzati per modificare l'ambito di una concessione di accesso fornita dall'associazione dei ruoli. Quando un ruolo contiene autorizzazioni che si applicano ad attributi diversi specifici per le risorse, è possibile utilizzare condizioni basate sulle risorse per concedere un sottoinsieme delle autorizzazioni del ruolo per tipi o servizi specifici.

Attributo resource.service

L'attributo resource.service ti consente di impostare una condizione in base al servizioGoogle Cloud utilizzato. Ad esempio, puoi impostare una condizione che limita l'accesso di un utente alle risorse che utilizzano il servizio cloudresourcemanager.googleapis.com. Per un elenco dei valori supportati, consulta Valori del servizio di risorse.

Puoi utilizzare l'attributo resource.service nelle associazioni dei ruoli delle policy di autorizzazione.

Variabile attributo resource.service
Tipo di attributo

string

Per un elenco dei valori supportati, consulta Valori del servizio di risorse.

Operatori supportati ,
Dettagli Quando utilizzi l'attributo resource.type nelle condizioni, verifica l'uguaglianza esatta () o la disuguaglianza esatta () con l'attributo. Altri confronti, come la ricerca di un prefisso o di un suffisso, potrebbero dare risultati imprevisti.
Esempio

Restituisce true per le risorse Compute Engine:

resource.service == "compute.googleapis.com"
Servizi supportati
  • Agent Registry
  • Apigee
  • Application Integration
  • Hub delle API Apigee
  • Servizio di Backup e DR
  • BigQuery
  • API BigQuery Reservation
  • Bigtable
  • Autorizzazione binaria
  • Cloud Deploy
  • Customer Experience Agent Studio
  • Cloud Key Management Service
  • Cloud Logging
  • Cloud SQL
  • Cloud Storage
  • Compute Engine
  • Dataform
  • Cloud DNS
  • Google Kubernetes Engine
  • Firestore
  • Identity-Aware Proxy
  • Integration Connectors
  • Google Cloud Managed Service per Apache Kafka
  • Network Security Integration
  • Parameter Manager
  • Cloud NGFW
  • Pub/Sub Lite
  • Resource Manager
  • Secret Manager
  • Spanner

Attributo resource.type

L'attributo resource.type consente di impostare una condizione in base al tipo di risorsa. Ad esempio, puoi impostare una condizione che limita l'accesso di un utente alle risorse di tipo storage.googleapis.com/Object. Per un elenco dei valori supportati, consulta Valori dei tipi di risorse.

Se la condizione utilizza l'attributo resource.name, ti consigliamo vivamente di utilizzare l'attributo resource.type per controllare i tipi di risorse a cui si applica la condizione. Per maggiori dettagli, consulta la sezione Attributo resource.name di questa pagina.

Puoi utilizzare l'attributo resource.type nelle associazioni dei ruoli delle policy di autorizzazione.

Variabile attributo resource.type
Tipo di attributo

string

Per un elenco dei valori supportati, consulta Valori dei tipi di risorse.

Operatori supportati ,
Dettagli Quando utilizzi l'attributo resource.type nelle condizioni, verifica l'uguaglianza esatta () o la disuguaglianza esatta () con l'attributo. Altri confronti, come la ricerca di un prefisso o di un suffisso, potrebbero dare risultati imprevisti.
Esempi

Restituisce true, a meno che la risorsa non sia un'immagine di Compute Engine:

resource.type != "compute.googleapis.com/Image"

Restituisce true solo se la risorsa è un'immagine o un disco permanente di Compute Engine:

(resource.type == "compute.googleapis.com/Image" ||
 resource.type == "compute.googleapis.com/Disk")
Tipi di risorse supportati
Agent Registry
  • Skill
  • Revisioni delle skill
Apigee
  • Attributi del prodotto API
  • Prodotti basati su API
  • Proxy API
  • Voci della mappa chiave-valore del proxy API
  • Mappe chiave-valore dei proxy API
  • Revisioni dei proxy API
  • Cache
  • Attributi delle app per sviluppatori
  • App per sviluppatori
  • Attributi sviluppatore
  • Sviluppatori
  • Voci della mappa di coppie chiave-valore dell'ambiente
  • Mappe chiave-valore dell'ambiente
  • Esportazioni
  • Hook di flusso
  • Alias dell'archivio chiavi
  • Archivi chiavi
  • Query
  • Piani tariffari
  • Riferimenti
  • Revisioni dei flussi condivisi
  • Flussi condivisi
  • Server di destinazione
  • Sessioni di Trace (debug)
Application Integration
  • Configurazioni di autenticazione
  • Esecuzioni
  • Versioni delle integrazioni
  • Integrazioni
  • Località
  • Sospensioni
Hub delle API Apigee
  • API
  • Operazioni API
  • Definizioni
  • Deployment
  • Specifiche
  • Versioni
Servizio di Backup e DR
  • Vault di backup
BigQuery
  • Set di dati
  • Modelli
  • Routine
  • Tabelle
API BigQuery Reservation
  • Assegnazioni
  • Prenotazioni BI
  • Impegni di capacità
  • Località
  • Prenotazioni
Bigtable
  • Cluster
  • Istanze
  • Tabelle
Autorizzazione binaria
  • Attestatori
  • Configurazioni di convalida continua
  • Policy
Customer Experience Agent Studio
  • App
  • Operazioni
Cloud Key Management Service
  • Versioni chiave di crittografia
  • Chiavi di crittografia
  • Chiavi automatizzate
  • Località
Cloud Logging
  • Bucket di log
  • Visualizzazioni log
Cloud NGFW
  • Gruppi di indirizzi
  • Associazioni di endpoint firewall
  • Endpoint del firewall
  • Gruppi di profili di sicurezza
  • Profili di sicurezza
Cloud SQL
  • Esecuzioni di backup
  • Istanze
Cloud Storage
  • Bucket
  • Cartelle (nei bucket con spazio dei nomi gerarchico abilitato)
  • Cartelle gestite
  • Oggetti
Compute Engine
  • Servizi di backend (globali e regionali)
  • Firewall
  • Regole di forwarding (globali e regionali)
  • Immagini
  • Template di istanza
  • Istanze
  • Persistent Disk (a livello di regione e di zona)
  • Snapshot
  • Proxy HTTP(S) di destinazione (globali e regionali)
  • Proxy SSL di destinazione
  • Proxy TCP di destinazione
Dataform
  • Risultati della compilazione
  • Località
  • Configurazioni delle release
  • Repository
  • Configurazioni dei workflow
  • Chiamate workflow
  • Workspace
Cloud DNS
  • set di record di risorse
Google Cloud
  • Località1
Google Kubernetes Engine
  • Cluster
Firestore
  • Database
Identity-Aware Proxy
  • Tutti i servizi di backend e le app App Engine
  • Tutte le risorse tunnel
  • Tutte le zone tunnel
  • Tutti i servizi web
  • Versioni del servizio app di App Engine
  • Servizi app App Engine
  • Servizi di backend di Compute Engine
  • Istanze tunnel
Integration Connectors
  • Connessioni
  • Metadati dello schema di connessione
  • Collegamenti endpoint
  • Iscrizioni a eventi
  • Zone gestite
Google Cloud Managed Service per Apache Kafka
  • Cluster
  • Gruppi di consumer
  • Operazioni
  • Argomenti
Parameter Manager
  • Versioni dei parametri
  • Parametri
Pub/Sub Lite
  • Località
  • Abbonamenti
  • Argomenti
Network Security Integration
  • Gruppi di deployment di intercettazione
  • Deployment di intercettazione
  • Gruppi di endpoint di intercettazione
  • Associazioni dei gruppi di endpoint di intercettazione
  • Gruppi di deployment di mirroring
  • Deployment di mirroring
  • Gruppi di endpoint di mirroring
  • Associazioni dei gruppi di endpoint di mirroring
Resource Manager
  • Progetti
Secret Manager
  • Versioni dei secret
  • Secret
Spanner
  • Backup
  • Database
  • Istanze

1 Cloud Key Management Service utilizza questo tipo di risorsa come risorsa principale delle risorse di chiavi automatizzate.

Attributo resource.name

L'attributo resource.name consente di impostare una condizione in base a tutto o parte del nome di una risorsa. Per un elenco dei formati dei nomi delle risorse, consulta Formato del nome della risorsa.

L'attributo resource.name è disponibile solo per tipi di risorse specifici, elencati nella tabella di questa sezione. Ti consigliamo vivamente di limitare l'applicabilità della condizione al tipo di risorsa previsto. Se un ruolo contiene autorizzazioni per un tipo di risorsa che non fornisce l'attributo resource.name, devi assicurarti che queste autorizzazioni non siano limitate dalla parte della condizione che controlla resource.name.

L'esempio seguente mostra come garantire questo comportamento. In questo esempio, la condizione consente l'accesso a tutti i tipi di risorse, ad eccezione dei bucket Cloud Storage e degli oggetti. Al contrario, per i bucket e gli oggetti, la condizione consente l'accesso solo al bucket example-bucket e agli oggetti che contiene:

(resource.type != 'storage.googleapis.com/Bucket' &&
 resource.type != 'storage.googleapis.com/Object') ||
resource.name.startsWith('projects/_/buckets/example-bucket')

Tieni presente che la prima parte della condizione verifica se la risorsa non è né un bucket né un oggetto. Se la risorsa è di un tipo diverso, l'intera condizione restituisce true, indipendentemente dal nome della risorsa.

Inoltre, tieni presente che la condizione controlla l'attributo resource.type, non l'attributo resource.service. La verifica dell'attributo resource.type offre diversi vantaggi:

  • Limita il controllo resource.name all'insieme di risorse appropriato. Ad esempio, se vuoi concedere l'accesso alle istanze Compute Engine con un nome specifico, è opportuno escludere tutti i tipi di risorse diversi dalle istanze Compute Engine.
  • In questo modo, l'ambito della condizione non cambia se un servizio aggiunge nuovi tipi di risorse in futuro.

Infine, tieni presente che la condizione utilizza la funzione startsWith() per valutare il nome della risorsa, anziché verificare l'uguaglianza con l'operatore . Poiché la condizione esamina l'inizio del nome della risorsa, corrisponde a un bucket e agli oggetti al suo interno. Se controllasse l'uguaglianza, corrisponderebbe solo al bucket.

Non puoi utilizzare caratteri jolly come * per trovare corrispondenze con più nomi di risorse. Valuta queste alternative:

  • Utilizza la funzione extract() per estrarre un valore da un nome risorsa. Ad esempio, puoi estrarre un ID progetto dal nome della risorsa di un'istanza VM di Compute Engine, quindi scrivere un'espressione di condizione che faccia riferimento all'ID progetto.

    Per maggiori dettagli, consulta Estrazione di valori dagli attributi in questa pagina.

  • Utilizza la funzione startsWith() o endsWith() per scrivere una condizione che valuta l'inizio o la fine del nome della risorsa.

Puoi utilizzare l'attributo resource.name nelle associazioni dei ruoli delle policy di autorizzazione.

Variabile attributo resource.name
Tipo di attributo

string

Ogni tipo di risorsa utilizza un formato specifico per il nome della risorsa. Per un elenco dei formati, consulta Formato del nome della risorsa.

Funzioni e operatori supportati startsWith(), endsWith(), extract(), ,
Dettagli

resource.name contiene il nome della risorsa relativa per la risorsa di destinazione nella richiesta. Il nome della risorsa relativa è un percorso URI senza barra iniziale (/).

La funzione startsWith() accetta la stringa letterale del prefisso da valutare rispetto a resource.name.

La funzione endsWith() accetta il valore letterale stringa del suffisso da valutare rispetto a resource.name.

La funzione extract() utilizza un modello di estrazione per estrarre parte di resource.name. Per maggiori dettagli, consulta Estrazione di valori dai nomi delle risorse in questa pagina.

Gli operatori e servono per il confronto con l'intero resource.name o con una parte estratta di resource.name.

Esempi

Restituisce true, a meno che il nome della risorsa non identifichi un bucket Cloud Storage denominato secret-bucket-123:

resource.name != "projects/_/buckets/secret-bucket-123"

Restituisce true se il nome della risorsa inizia con il prefisso specificato, nel formato utilizzato dalle istanze VM di Compute Engine:

resource.name.startsWith("projects/project-123/zones/us-east1-b/instances/prod-")

Restituisce true se il nome della risorsa inizia con il prefisso specificato, nel formato utilizzato dai bucket Cloud Storage:

resource.name.startsWith("projects/_/buckets/my_bucket/objects/test-object-")

Restituisce true se il nome della risorsa termina con il suffisso specificato, ad esempio l'estensione del file di un oggetto Cloud Storage:

resource.name.endsWith(".jpg")

Restituisce il nome o il numero del progetto, se presente:

resource.name.extract("projects/{project}/")
Tipi di risorse supportati
Agent Registry
  • Skill
  • Revisioni delle skill
Apigee
  • Attributi del prodotto API
  • Prodotti basati su API
  • Proxy API
  • Voci della mappa chiave-valore del proxy API
  • Mappe chiave-valore dei proxy API
  • Revisioni dei proxy API
  • Cache
  • Attributi delle app per sviluppatori
  • App per sviluppatori
  • Attributi sviluppatore
  • Sviluppatori
  • Voci della mappa di coppie chiave-valore dell'ambiente
  • Mappe chiave-valore dell'ambiente
  • Esportazioni
  • Hook di flusso
  • Alias dell'archivio chiavi
  • Archivi chiavi
  • Query
  • Piani tariffari
  • Riferimenti
  • Revisioni dei flussi condivisi
  • Flussi condivisi
  • Server di destinazione
  • Sessioni di Trace (debug)
Application Integration
  • Configurazioni di autenticazione
  • Esecuzioni
  • Versioni delle integrazioni
  • Integrazioni
  • Località
  • Sospensioni
Hub delle API Apigee
  • API
  • Operazioni API
  • Definizioni
  • Deployment
  • Specifiche
  • Versioni
Servizio di Backup e DR
  • Vault di backup
BigQuery
  • Set di dati
  • Modelli
  • Routine
  • Tabelle
API BigQuery Reservation
  • Assegnazioni
  • Prenotazioni BI
  • Impegni di capacità
  • Località
  • Prenotazioni
Bigtable
  • Cluster
  • Istanze
  • Tabelle
Autorizzazione binaria
  • Attestatori
  • Configurazioni di convalida continua
  • Policy
Cloud Deploy
  • Esecuzioni automazione
  • Automazioni
  • Tipi di target personalizzati
  • Pipeline di distribuzione
  • Esecuzioni job
  • Release
  • Implementazioni
  • Destinazioni
Customer Experience Agent Studio
  • App
  • Operazioni
Cloud Key Management Service
  • Chiavi di crittografia
  • Versioni chiave di crittografia
  • Chiavi automatizzate
Cloud Logging
  • Bucket di log
  • Visualizzazioni log
Cloud NGFW
  • Gruppi di indirizzi
  • Associazioni di endpoint firewall
  • Endpoint del firewall
  • Gruppi di profili di sicurezza
  • Profili di sicurezza
Cloud SQL
  • Esecuzioni di backup
  • Istanze
Cloud Storage
  • Bucket
  • Cartelle (nei bucket con spazio dei nomi gerarchico abilitato)
  • Cartelle gestite
  • Oggetti
Compute Engine
  • Servizi di backend (globali e regionali)
  • Firewall
  • Regole di forwarding (globali e regionali)
  • Immagini
  • Template di istanza
  • Istanze
  • Persistent Disk (a livello di regione e di zona)
  • Snapshot
  • Proxy HTTP(S) di destinazione (globali e regionali)
  • Proxy SSL di destinazione
  • Proxy TCP di destinazione
Google Kubernetes Engine
  • Cluster
Firestore
  • Database
Dataform
  • Risultati della compilazione
  • Località
  • Configurazioni delle release
  • Repository
  • Configurazioni dei workflow
  • Chiamate workflow
  • Workspace
Cloud DNS
  • set di record di risorse
Integration Connectors
  • Connessioni
  • Metadati dello schema di connessione
  • Collegamenti endpoint
  • Iscrizioni a eventi
  • Zone gestite
Google Cloud Managed Service per Apache Kafka
  • Cluster
  • Gruppi di consumer
  • Operazioni
  • Argomenti
Parameter Manager
  • Versioni dei parametri
  • Parametri
Pub/Sub Lite
  • Località
  • Abbonamenti
  • Argomenti
Network Security Integration
  • Gruppi di deployment di intercettazione
  • Deployment di intercettazione
  • Gruppi di endpoint di intercettazione
  • Associazioni dei gruppi di endpoint di intercettazione
  • Gruppi di deployment di mirroring
  • Deployment di mirroring
  • Gruppi di endpoint di mirroring
  • Associazioni dei gruppi di endpoint di mirroring
Secret Manager
  • Versioni dei secret
  • Secret
Spanner
  • Backup
  • Database
  • Istanze

Tag di risorse

Le funzioni dei tag delle risorse ti consentono di impostare una condizione in base ai tag collegati alle risorse supportate o ereditati dai discendenti di queste risorse. Ad esempio, puoi impostare una condizione che concede un ruolo solo per le risorse a cui è associato il tag env: prod. Per saperne di più sul controllo dell'accesso con i tag, consulta Tag e controllo dell'accesso.

Ogni tag è composto da una chiave e un valore. Esistono diversi tipi di identificatori per ogni chiave e valore:

  • Un ID permanente, che è univoco a livello globale e non può mai essere riutilizzato. Ad esempio, una chiave tag potrebbe avere l'ID permanente tagKeys/123456789012 e un valore tag potrebbe avere l'ID permanente tagValues/567890123456.
  • Un nome breve. Il nome breve di ogni chiave deve essere univoco all'interno del progetto o dell'organizzazione in cui è definita la chiave, mentre il nome breve di ogni valore deve essere univoco per la chiave associata. Ad esempio, una chiave tag potrebbe avere il nome breve env e un valore tag potrebbe avere il nome breve prod.
  • Un nome con spazio dei nomi, che aggiunge l'ID numerico della tua organizzazione o l'ID del progetto al nome breve di una chiave tag. Ad esempio, una chiave di tag creata per un'organizzazione potrebbe avere il nome con spazio dei nomi 123456789012/env. Per scoprire come ottenere l'ID organizzazione, consulta Recupero dell'ID risorsa dell'organizzazione. Una chiave di tag creata per un progetto potrebbe avere il nome con spazio dei nomi myproject/env. Per scoprire come ottenere l'ID progetto, consulta Identificazione dei progetti.

Per indicazioni su come scegliere il tipo di identificatore da utilizzare nelle condizioni, consulta Definizioni e identificatori dei tag.

Puoi utilizzare le condizioni basate su tag per condizionare l'accesso a qualsiasi risorsa. Sono incluse le risorse con i propri tag e le risorse che ereditano i tag da altre risorse. Per scoprire di più su come i tag vengono ereditati tramite la gerarchia delle risorse, consulta Ereditarietà dei tag.

Tuttavia, alcune aree della console Google Cloud non riconoscono le associazioni dei ruoli delle policy di autorizzazione con condizioni basate su tag. Di conseguenza, se hai un ruolo con una condizione basata su tag, la console Google Cloud potrebbe impedirti erroneamente di eseguire determinate azioni. Se riscontri questo problema, utilizza un metodo alternativo, ad esempio gcloud CLI, per eseguire l'azione.

Puoi utilizzare le condizioni basate su tag nei seguenti casi:

  • Associazioni dei ruoli delle policy di autorizzazione
  • Regole di negazione della policy di negazione

Puoi utilizzare le seguenti funzioni per impostare condizioni basate sui tag:

Funzione Descrizione
resource.hasTagKey(
  keyName: string
)
  bool

Controlla se la risorsa per la richiesta ha un tag con la chiave specificata. La chiave tag viene cercata in base al nome con spazio dei nomi. Per verificare la presenza di una chiave tag utilizzando il relativo ID permanente, utilizza la funzione resource.hasTagKeyId().

Parametro
keyName: il nome con spazio dei nomi della chiave tag, con l'ID numerico dell'organizzazione e una barra come prefisso. Ad esempio: 123456789012/env.
Esempio

Restituisce true se la risorsa per la richiesta ha un tag con la chiave env:

resource.hasTagKey('123456789012/env')
resource.hasTagKeyId(
  keyId: string
)
  bool

Controlla se la risorsa per la richiesta ha un tag con la chiave specificata. La chiave tag viene cercata in base al suo ID permanente. Per verificare la presenza di una chiave tag utilizzando il relativo nome con spazio dei nomi, utilizza la funzione resource.hasTagKey().

Parametro
keyId: l'ID permanente della chiave tag. Ad esempio, tagKeys/123456789012.
Esempio

Restituisce true se la risorsa per la richiesta ha un tag con la chiave tagKeys/123456789012:

resource.hasTagKeyId('tagKeys/123456789012')
resource.matchTag(
  keyName: string,
  valueShortName: string
)
  bool

Controlla se la risorsa per la richiesta ha un tag con la chiave e il valore specificati. La chiave viene cercata in base al nome con spazio dei nomi e il valore in base al nome breve. Per verificare la presenza di una chiave e di un valore tag utilizzando i relativi ID permanenti, utilizza la funzione resource.matchTagId().

Parametri
  • keyName: il nome con spazio dei nomi della chiave tag, con l'ID numerico dell'organizzazione e una barra come prefisso. Ad esempio, 123456789012/env.
  • valueShortName: il nome breve del valore del tag. Ad esempio, prod.
Esempio

Restituisce true se la risorsa per la richiesta ha un tag con la chiave 123456789012/env e il valore prod:

resource.matchTag('123456789012/env', 'prod')
resource.matchTagId(
  keyId: string,
  valueId: string
)
  bool

Controlla se la risorsa per la richiesta ha un tag con la chiave e il valore specificati. La chiave e il valore vengono cercati in base ai relativi ID permanenti. Per verificare la presenza di una chiave tag utilizzando il relativo nome con spazio dei nomi e un valore utilizzando il relativo nome breve, utilizza la funzione resource.matchTag().

Parametri
  • keyId: l'ID permanente della chiave tag. Ad esempio: tagKeys/123456789012.
  • valueId: l'ID permanente del valore del tag. Ad esempio: tagValues/567890123456.
Esempio

Restituisce true se la risorsa per la richiesta ha un tag con la chiave tagKeys/123456789012 e il valore tagValues/567890123456:

resource.matchTagId('tagKeys/123456789012', 'tagValues/567890123456')

Attributi delle entità

Gli attributi dell'entità ti consentono di scrivere condizioni in base all'entità che ha inviato la richiesta. Con questi attributi, puoi perfezionare le entità per cui viene applicata una policy.

Puoi utilizzare gli attributi delle entità nelle associazioni delle policy per le policy sul confine di accesso dell'entità.

Attributo principal.type

L'attributo principal.type consente di impostare una condizione in base al tipo di entità che invia la richiesta. Ad esempio, puoi aggiungere una condizione a un'associazione di policy per una policy di Principal Access Boundary per assicurarti che venga applicata solo ai service account.

Puoi utilizzare gli attributi delle entità nelle associazioni delle policy per le policy sul confine di accesso dell'entità.

Variabile attributo principal.type
Tipo di attributo

string

Operatori supportati , , in
Tipi di entità supportati
Account Google
iam.googleapis.com/WorkspaceIdentity
Identità del pool di identità della forza lavoro
iam.googleapis.com/WorkforcePoolIdentity
Identità del pool di identità del workload
iam.googleapis.com/WorkloadPoolIdentity
Service account
iam.googleapis.com/ServiceAccount
Agent Identity
iam.googleapis.com/AgentPoolIdentity
Esempi

Restituisce true se l'entità nella richiesta è un account di servizio:

principal.type == "iam.googleapis.com/ServiceAccount"
        

Restituisce true se l'entità nella richiesta è un'identità agente:

principal.type == "iam.googleapis.com/AgentPoolIdentity"
        

Restituisce true se l'entità nella richiesta è un'identità Google Workspace o un'identità di un pool di identità della forza lavoro:

principal.type in ["iam.googleapis.com/WorkspaceIdentity", "iam.googleapis.com/WorkforcePoolIdentity"]
        

Attributo principal.subject

L'attributo principal.subject consente di impostare una condizione in base all'entità che invia la richiesta. Ad esempio, puoi aggiungere una condizione a un'associazione di policy per una policy di Principal Access Boundary per assicurarti che la policy venga applicata solo alle entità i cui indirizzi email terminano con @example.com.

Se utilizzi l'attributo principal.subject in una condizione, ti consigliamo di utilizzare anche l'attributo principal.type per controllare a quali tipi di entità si applica la condizione. Questo perché gli identificatori delle entità non sono necessariamente univoci tra i tipi di entità. Ad esempio, l'identificatore example-user@example.com potrebbe identificare un Account Google o un utente in un pool di identità della forza lavoro.

Utilizzando l'attributo principal.type oltre all'attributo principal.subject, puoi assicurarti che la condizione corrisponda solo alle entità con il tipo previsto. Ad esempio, la seguente espressione corrisponde agli Account Google i cui indirizzi email terminano con @example.com:

principal.type == 'iam.googleapis.com/WorkspaceIdentity' &&
principal.subject.endsWith('@example.com')

Puoi utilizzare gli attributi delle entità nelle associazioni delle policy per le policy sul confine di accesso dell'entità.

Variabile attributo principal.subject
Tipo di attributo

string

Operatori supportati

, , in, startsWith(), endsWith()

Oggetti entità supportati
Account Google

Identificatore: indirizzo email dell'utente

Esempio: alex@example.com

Identità del pool di identità della forza lavoro

Identificatore: valore dell'attributo dell'oggetto dell'identità

Esempio: raha@altostrat.com

Identità del pool di identità del workload

Identificatore: valore dell'attributo dell'oggetto dell'identità

Service account

Identificatore: indirizzo email del account di servizio

Esempio: my-service-account@my-project.iam.gserviceaccount.com

Agent Identity

Identificatore: l'identità dell'agente, che inizia con resources/

Esempio: resources/aiplatform/projects/9876543210/locations/us-central1/reasoningEngines/my-test-agent

Esempio

Restituisce true se l'entità nella richiesta termina con @example.com:

principal.subject.endsWith("@example.com")
        

Restituisce true se l'entità nella richiesta inizia con resources/aiplatform, il che è vero per le identità degli agenti che utilizzano la piattaforma Vertex AI:

principal.subject.startsWith("resources/aiplatform/")
        

Restituisce true se l'entità nella richiesta è example-service-account@example-project.iam.gserviceaccount.com:

principal.subject == "example-service-account@example-project.iam.gserviceaccount.com"
        

Attributi della richiesta

Gli attributi della richiesta consentono di creare condizioni che valutano i dettagli della richiesta, come il livello di accesso, la data e l'ora, l'indirizzo IP e la porta di destinazione (per il tunneling TCP IAP) o il percorso/host dell'URL previsto (per IAP e Cloud Run).

Attributo dei livelli di accesso

L'attributo dei livelli di accesso consente agli utenti di impostare una condizione che richiede che una richiesta soddisfi uno o più livelli di accesso per essere autorizzata. Puoi utilizzare l'attributo dei livelli di accesso nelle associazioni dei ruoli delle policy di autorizzazione.

L'attributo dei livelli di accesso deriva dagli attributi della richiesta, come l'indirizzo IP di origine, gli attributi del dispositivo e l'ora del giorno. Ad esempio, un livello di accesso denominato fullyTrusted potrebbe richiedere che il dispositivo che effettua la richiesta sia di proprietà dell'azienda e abbia un blocco schermo. Un livello di accesso onNetwork potrebbe richiedere che il dispositivo che effettua la richiesta provenga da un intervallo di indirizzi IP specifico. Per saperne di più sui livelli di accesso, consulta la documentazione di Gestore contesto accesso.

L'attributo dei livelli di accesso è disponibile solo quando utilizzi Identity-Aware Proxy per accedere a un'istanza tunnel o a un'applicazione web eseguita su servizi di backend App Engine o Compute Engine. Più nello specifico, l'attributo dei livelli di accesso è disponibile solo per le richieste che controllano una di queste autorizzazioni:

  • iap.tunnelInstances.accessViaIAP
  • iap.webServiceVersions.accessViaIAP

Puoi utilizzare l'attributo dei livelli di accesso quando concedi in modo condizionale i seguenti ruoli predefiniti:

  • IAP-secured Tunnel User (roles/iap.tunnelResourceAccessor)

    Contiene una singola autorizzazione, iap.tunnelInstances.accessViaIAP.

  • IAP-secured Web App User (roles/iap.httpsResourceAccessor)

    Contiene una singola autorizzazione, iap.webServiceVersions.accessViaIAP.

Puoi anche utilizzare l'attributo dei livelli di accesso per concedere in modo condizionale un ruolo personalizzato che contiene queste autorizzazioni. Il ruolo personalizzato non deve contenere altre autorizzazioni.

Attributo request.auth.access_levels

Variabile attributo request.auth.access_levels
Tipo di attributo list<string>
Operatori supportati in
Dettagli

Per verificare se una richiesta soddisfa un livello di accesso specifico, utilizza l'operatore in:

ACCESS_LEVEL_FULL_NAME in request.auth.access_levels

Il nome completo di un livello di accesso utilizza il seguente formato:

accessPolicies/POLICY_NUMBER/accessLevels/ACCESS_LEVEL
Esempio

Restituisce true se la richiesta soddisfa il livello di accesso CorpNet:

"accessPolicies/199923665455/accessLevels/CorpNet"
    in request.auth.access_levels
Tipi di risorse supportati Disponibile per le richieste che utilizzano Identity-Aware Proxy per accedere a un'istanza del tunnel, a un gruppo di destinazione del tunnel, a un'applicazione web in esecuzione sul bilanciamento del carico Google Cloud o a un'applicazione web in esecuzione su App Engine.

Attributi API

Gli attributi API ti aiutano a gestire l'accesso in base ai dati forniti da un'API o un servizioGoogle Cloud specifico. Puoi utilizzare gli attributi API nelle associazioni dei ruoli delle policy di autorizzazione.

Ad esempio, quando utilizzi Cloud Storage per elencare gli oggetti in un bucket, puoi utilizzare il parametro prefix nella richiesta per includere solo gli oggetti i cui nomi iniziano con un prefisso specifico. Se utilizzi i limiti di accesso alle credenziali per ridurre l'ambito delle credenziali di breve durata, puoi creare un limite di accesso alle credenziali che limita le autorizzazioni per elencare gli oggetti controllando l'attributo API storage.googleapis.com/objectListPrefix. Questo attributo dell'API contiene il valore del parametro prefix della richiesta.

Per esempi di casi in cui potresti dover utilizzare gli attributi API in una condizione, consulta le seguenti pagine:

Non tutti i servizi riconoscono gli attributi dell'API. Le sezioni seguenti indicano quali servizi riconoscono ogni attributo dell'API.

Funzioni per gli attributi API

Puoi utilizzare la seguente funzione per lavorare con gli attributi dell'API:

Funzione Descrizione
api.getAttribute(
  attributeName: string,
  defaultValue: V<T>
)
  V<T>

Recupera l'attributo API richiesto.

Parametri
  • attributeName: l'attributo dell'API da recuperare. Per i valori supportati, consulta Attributi dell'API Cloud Storage e Attributi dell'API IAM in questa pagina.
  • defaultValue: il valore predefinito (V) da utilizzare se l'attributo API non è disponibile. Il valore V è di tipo T, dove T è lo stesso tipo del valore dell'attributo dell'API. Ad esempio, se il valore dell'attributo dell'API è una stringa, puoi utilizzare una stringa vuota o una stringa segnaposto come undefined.

Esempio

Restituisce uno dei seguenti valori:

  • Per le richieste di concessione o revoca di un ruolo, restituisce un elenco di ruoli modificati dalla richiesta.
  • Per tutti gli altri tipi di richieste, restituisce un elenco vuoto.
api.getAttribute("iam.googleapis.com/modifiedGrantsByRole", [])
hasOnly(
  items: list<T>
)
  bool

Verifica che un elenco contenga solo gli elementi consentiti o un sottoinsieme di questi elementi. Puoi chiamare la funzione su un elenco restituito da api.getAttribute().

Parametro
items: un elenco di elementi con tipo T. Ogni elemento è un valore che l'attributo dell'API può contenere.
Esempio

Controlla se la richiesta concede o revoca ruoli diversi da Editor Pub/Sub (roles/pubsub.editor) o Pub/Sub Publisher (roles/pubsub.publisher):

api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', [])
    .hasOnly(['roles/pubsub.editor', 'roles/pubsub.publisher'])

Di seguito è riportato il risultato per diversi valori di richiesta:

Ruoli concessi/revocati Risultato
Nessuno

true

Se non vengono modificati ruoli, api.getAttribute() restituisce il valore predefinito. Per questo attributo, il valore predefinito è sempre un elenco vuoto. Per definizione, un elenco vuoto non contiene valori che non sono inclusi nella lista consentita.

roles/pubsub.editor

true

Il ruolo è nella lista consentita.

roles/pubsub.editor
roles/pubsub.publisher

true

Entrambi i ruoli sono inclusi nella lista consentita.

roles/billing.admin

false

Il ruolo non è incluso nella lista consentita.

roles/billing.admin
roles/pubsub.editor

false

Un ruolo è incluso nella lista consentita, ma l'altro no.

Attributi dell'API Storage di Cloud Storage

Cloud Storage fornisce il seguente attributo API.

Variabile attributo storage.googleapis.com/objectListPrefix
Tipo di attributo string
Dettagli

Per una richiesta di elenco degli oggetti in un bucket, contiene il valore del parametro prefix della richiesta. Se la richiesta omette il parametro prefix, l'attributo non viene definito.

Per altri tipi di richieste, l'attributo non è definito.

Servizi che riconoscono questo attributo Cloud Storage

Attributi dell'API IAM

IAM fornisce il seguente attributo API:

Variabile attributo iam.googleapis.com/modifiedGrantsByRole
Tipo di attributo list<string>
Dettagli

Per una richiesta di impostazione della policy di autorizzazione di una risorsa, questo attributo contiene i nomi dei ruoli dalle associazioni dei ruoli modificate dalla richiesta.

Per altri tipi di richieste, l'attributo non è definito.

Tipi di risorse che accettano questo attributo

I seguenti tipi di risorse accettano condizioni con l'attributo modifiedGrantsByRole nelle policy di autorizzazione:

  • Progetti
  • Cartelle
  • Organizzazioni
Servizi che riconoscono questo attributo

I seguenti servizi riconoscono l'attributo modifiedGrantsByRole:

  • API Gateway
  • AutoML
  • Certificate Authority Service
  • Cloud Run Functions
  • API Cloud Healthcare
  • Cloud Key Management Service
  • Cloud Run
  • API Cloud Runtime Configuration
  • Cloud Storage
  • Compute Engine
  • Artifact Analysis
  • Managed Service for Apache Spark
  • Earth Engine
  • Server di gioco
  • Identity and Access Management
  • Identity-Aware Proxy
  • Managed Service for Microsoft Active Directory
  • Notebook gestiti dall'utente
  • Resource Manager
  • Secret Manager
  • Gestione del servizio

Attributi dell'API MCP

Google Cloud fornisce i seguenti attributi per controllare l'accesso ai server MCP:

Variabile attributo mcp.googleapis.com/tool.name
Tipo di attributo string
Dettagli

Per le richieste che accedono a uno strumento MCP, questo attributo contiene il nome dello strumento.

Ad esempio, se la richiesta accede allo strumento MCP di BigQuery list_dataset_ids, l'attributo tool.name per la richiesta è list_dataset_ids.

Per altri tipi di richieste, questo attributo non è definito.

Servizi che riconoscono questo attributo Tutti i servizi Google Cloud con server MCP riconoscono questo attributo API. Per un elenco dei servizi con server MCP, consulta Prodotti supportati.
Variabile attributo mcp.googleapis.com/tool.isReadOnly
Tipo di attributo boolean
Dettagli

Per le richieste che accedono a uno strumento MCP, questo attributo indica se lo strumento è di sola lettura.

Per altri tipi di richieste, questo attributo non è definito.

Servizi che riconoscono questo attributo Tutti i servizi Google Cloud con server MCP riconoscono questo attributo API. Per un elenco dei servizi con server MCP, consulta Prodotti supportati.

Attributi dell'API Vertex AI Agent Engine

Vertex AI Agent Engine fornisce i seguenti attributi API per i suoi servizi di gestione del contesto Memory Bank e Session:

Variabile attributo aiplatform.googleapis.com/memoryScope
Tipo di attributo map<string, string>
Dettagli

Per una richiesta che accede o modifica le risorse di Memory Bank, contiene il valore del campo scope all'interno della memoria.

Per altri tipi di richieste, l'attributo non è definito.

Servizi che riconoscono questo attributo Vertex AI Agent Engine
Variabile attributo aiplatform.googleapis.com/sessionUserId
Tipo di attributo string
Dettagli

Per una richiesta che accede o modifica le risorse Session, contiene il valore del campo user_id all'interno della sessione.

Per altri tipi di richieste, l'attributo non è definito.

Servizi che riconoscono questo attributo Vertex AI Agent Engine

Attributo data/ora

L'attributo data/ora viene utilizzato per impostare l'accesso con scadenza, pianificato o di durata limitata alle risorse Google Cloud . Puoi utilizzare gli attributi di data/ora nelle associazioni dei ruoli delle policy di autorizzazione.

Questo attributo è supportato per tutti i servizi e i tipi di risorse Google Cloud . Per scoprire come applicare condizioni di data/ora alle risorse che non le supportano direttamente, consulta Supporto delle condizioni ereditate in questa pagina.

L'attributo request.time contiene il timestamp della richiesta. Puoi confrontare questo timestamp con un altro timestamp o con una durata di tempo.

Le sezioni seguenti elencano le funzioni che puoi utilizzare per impostare condizioni basate su timestamp e durate.

Crea, confronta e modifica timestamp e durate

Funzione o operatore Descrizione
date(
  value: string
)
  Timestamp

Converte una data da string a Timestamp.

Parametro
value: una data nel formato YYYY-MM-DD, dove YYYY è l'anno, MM è il mese a due cifre e DD è il giorno a due cifre. Il valore Timestamp risultante contiene la data specificata e l'ora 00:00:00.000 UTC.
Esempio

Crea un Timestamp che rappresenta la data 2023-02-01 e l'ora 00:00:00.000 UTC:

date("2023-02-01")
duration(
  value: string
)
  Duration

Converte un periodo di tempo da string a Duration.

Parametro
value: un valore Duration in secondi, seguito da s.
Esempi

Crea una durata che rappresenta 1,5 minuti:

duration("90s")

Crea una durata che rappresenta 30 giorni:

duration("2592000s")
timestamp(
  value: string
)
  Timestamp

Converte un valore string in un valore Timestamp.

Parametro

value: un timestamp UTC conforme a RFC 3339.

Esempio

Crea un timestamp che rappresenta il 12 aprile 2023 alle ore 23:20:50.52 in UTC:

timestamp("2023-04-12T23:20:50.52Z")
, , ,

Confronta due valori Timestamp.

Esempi

Restituisce true se l'ora della richiesta è precedente al 12 aprile 2022 alle ore 00:00:00 UTC:

request.time < timestamp("2022-04-12T00:00:00.00Z")

Restituisce true se l'ora della richiesta è precedente o uguale al 12 aprile 2022 alle ore 00:00:00 UTC:

request.time <= timestamp("2022-04-12T00:00:00.00Z")

Restituisce true se l'ora della richiesta è successiva al 12 aprile 2022 alle ore 00:00:00 UTC:

request.time > timestamp("2022-04-12T00:00:00.00Z")

Restituisce true se l'ora della richiesta è uguale o successiva al 12 aprile 2022 alle ore 00:00:00 UTC:

request.time >= timestamp("2022-04-12T00:00:00.00Z")
  • timestamp + duration   Timestamp
  • timestamp - duration   Timestamp

Aggiungi o sottrai un Duration da un Timestamp.

Esempi

Restituisce il Timestamp che cade 30 minuti dopo le 14:30:00 UTC del 12/04/2024:

timestamp("2024-04-12T14:30:00.00Z") + duration("1800s")

Restituisce il Timestamp che cade 60 giorni prima delle ore 14:30:00 UTC del 12/04/2024:

timestamp("2024-04-12T14:30:00.00Z") - duration("5184000s")

Estrai informazioni da un timestamp

Le funzioni di questa sezione consentono di estrarre informazioni da un timestamp, ad esempio il giorno della settimana in cui cade il timestamp.

Nelle condizioni IAM, tutti i timestamp sono in formato UTC. Tuttavia, potresti voler estrarre informazioni in base a un fuso orario diverso. Ad esempio, potresti voler sapere se un timestamp UTC cade di lunedì nel fuso orario di Berlino, in Germania.

Per specificare un fuso orario diverso, passalo alla funzione. Utilizza un nome o un offset UTC del database dei fusi orari IETF. Ad esempio, puoi utilizzare Europe/Berlin o +01:00 per il fuso orario dell'Europa centrale (CET).

Funzioni e operatori supportati Descrizione
Timestamp.getDate(
  timeZone: string
)
  int

Restituisce il giorno del mese da Timestamp. Il valore utilizza l'indicizzazione basata su uno; il primo giorno del mese è 1.

Parametro
timeZone: il fuso orario per cui calcolare il risultato. Il valore predefinito è UTC.
Esempio

Restituisce true se la richiesta viene inviata dopo il 15° giorno del mese in UTC:

request.time.getDate() > 15
Timestamp.getDayOfMonth(
  timeZone: string
)
  int

Restituisce il giorno del mese da Timestamp. Il valore utilizza l'indicizzazione basata su zero; il primo giorno del mese è 0.

Parametro
timeZone: il fuso orario per cui calcolare il risultato. Il valore predefinito è UTC.
Esempio

Restituisce true se la richiesta viene inviata dopo il 15° giorno del mese in UTC:

request.time.getDayOfMonth() > 14
Timestamp.getDayOfWeek(
  timeZone: string
)
  int

Restituisce il giorno della settimana da Timestamp. Il valore utilizza l'indicizzazione basata su zero; ad esempio, domenica è 0.

Parametro
timeZone: il fuso orario per cui calcolare il risultato. Il valore predefinito è UTC.
Esempio

Restituisce true se la richiesta viene inviata tra lunedì e venerdì a Berlino, in Germania:

request.time.getDayOfWeek("Europe/Berlin") > 0 &&
    request.time.getDayOfWeek("Europe/Berlin") < 6
Timestamp.getDayOfYear(
  timeZone: string
)
  int

Restituisce il giorno dell'anno da Timestamp. Il valore utilizza l'indicizzazione basata su zero; il primo giorno dell'anno è 0.

Parametro
timeZone: il fuso orario per cui calcolare il risultato. Il valore predefinito è UTC.
Esempio

Restituisce true se la richiesta viene inviata durante i primi 5 giorni dell'anno a Mountain View, in California:

request.time.getDayOfYear("America/Los_Angeles") >= 0 &&
    request.time.getDayOfYear("America/Los_Angeles") < 5
Timestamp.getFullYear(
  timeZone: string
)
  int

Restituisce l'anno da Timestamp.

Parametro
timeZone: il fuso orario per cui calcolare il risultato. Il valore predefinito è UTC.
Esempio

Restituisce true se la richiesta viene inviata nel corso dell'anno 2023 a Mountain View, California:

request.time.getFullYear("America/Los_Angeles") == 2023

Restituisce true se la richiesta viene inviata nel corso dell'anno 2022 in UTC:

request.time.getFullYear() == 2022
Timestamp.getHours(
  timeZone: string
)
  int

Restituisce l'ora del giorno da Timestamp. Il valore utilizza l'indicizzazione basata su zero; i valori sono compresi tra 0 e 23.

Puoi combinare questa funzione con getDayofWeek() per concedere l'accesso solo durante l'orario di lavoro consentito nella tua giurisdizione.

Parametro
timeZone: il fuso orario per cui calcolare il risultato. Il valore predefinito è UTC.
Esempio

Restituisce true se la richiesta viene inviata tra le 09:00 e le 17:00 di un giorno feriale a Berlino, in Germania:

request.time.getDayOfWeek("Europe/Berlin") >= 1 &&
    request.time.getDayOfWeek("Europe/Berlin") <= 5 &&
    request.time.getHours("Europe/Berlin") >= 9 &&
    request.time.getHours("Europe/Berlin") <= 17
Timestamp.getMilliseconds(
  timeZone: string
)
  int

Restituisce il numero di millisecondi da Timestamp. Il valore utilizza l'indicizzazione basata su zero; i valori sono compresi tra 0 e 999.

Parametro
timeZone: il fuso orario per cui calcolare il risultato. Il valore predefinito è UTC.
Timestamp.getMinutes(
  timeZone: string
)
  int

Restituisce il numero di minuti dopo l'ora da Timestamp. Il valore utilizza l'indicizzazione basata su zero; i valori sono compresi tra 0 e 59.

Parametro
timeZone: il fuso orario per cui calcolare il risultato. Il valore predefinito è UTC.
Esempio

Restituisce true se la richiesta viene inviata alle 09:30 o dopo le 09:30 a Berlino, Germania:

request.time.getHours("Europe/Berlin") >= 9 &&
    request.time.getMinutes("Europe/Berlin") >= 30
Timestamp.getMonth(
  timeZone: string
)
  int

Restituisce il mese dell'anno da Timestamp. Il valore utilizza l'indicizzazione basata su zero; i valori sono compresi tra 0 e 11.

Parametro
timeZone: il fuso orario per cui calcolare il risultato. Il valore predefinito è UTC.
Esempio

Restituisce true se la richiesta viene inviata durante il mese di aprile a Mountain View, in California:

request.time.getMonth("America/Los_Angeles") == 3
Timestamp.getSeconds(
  timeZone: string
)
  int

Restituisce il numero di secondi da Timestamp. Il valore utilizza l'indicizzazione basata su zero; i valori sono compresi tra 0 e 59.

Parametro
timeZone: il fuso orario per cui calcolare il risultato. Il valore predefinito è UTC.
, , ,

Confronta l'output di due funzioni in questa tabella.

Attributi IP/porta di destinazione

L'attributo IP/porta di destinazione consente agli utenti di gestire l'accesso in base all'indirizzo IP e alla porta di destinazione interni per una richiesta. Puoi utilizzare gli attributi IP/porta di destinazione nelle associazioni dei ruoli delle policy di autorizzazione.

Ad esempio, un'istanza VM di Compute Engine potrebbe mappare l'indirizzo IP esterno e la porta 132.168.42.21:3001 all'indirizzo IP interno e alla porta 10.0.0.1:2300 per l'utilizzo generale. Al contrario, l'indirizzo IP interno e la porta 10.0.0.1:22 potrebbero essere disponibili solo internamente per l'utilizzo amministrativo. Puoi utilizzare gli attributi IP/porta di destinazione per concedere diversi livelli di accesso in base all'indirizzo IP interno e alla porta.

Per saperne di più sull'inoltro TCP, consulta la documentazione di Identity-Aware Proxy.

Attributo destination.ip

Variabile attributo destination.ip
Tipo di attributo string
Operatori supportati ,
Dettagli

La variabile destination.ip identifica un indirizzo IP interno in formato IPv4.

Esempi

Restituisce true se l'indirizzo IP di destinazione è 10.0.0.1:

destination.ip == "10.0.0.1"

Restituisce true, a meno che l'indirizzo IP di destinazione non sia 10.0.0.1:

destination.ip != "10.0.0.1"
Tipi di risorse supportati Disponibile per le richieste che utilizzano Identity-Aware Proxy per accedere a un'istanza del tunnel

Attributo destination.port

Variabile attributo destination.port
Tipo di attributo int
Operatori supportati , , , , ,
Dettagli

La variabile destination.port identifica un numero di porta TCP interna.

Esempi

Restituisce true se la porta di destinazione è 21:

destination.port == 21

Restituisce true se la porta di destinazione è inferiore a 3001:

destination.port < 3001
Tipi di risorse supportati Disponibile per le richieste che utilizzano Identity-Aware Proxy per accedere a un'istanza del tunnel

Attributi della regola di forwarding

Gli attributi della regola di forwarding consentono di specificare i tipi di regole di forwarding che un'entità può creare. Ad esempio, potresti consentire a un'entità di creare regole di forwarding per i bilanciatori del carico Google Cloudinterni, che gestiscono il traffico proveniente dall'interno di una rete Google Cloud , ma non per i bilanciatori del carico Google Cloudesterni, che gestiscono il traffico proveniente da internet. Puoi utilizzare gli attributi regola di forwarding nelle associazioni dei ruoli delle policy di autorizzazione.

Per Cloud Load Balancing, gli attributi della regola di forwarding non influiscono sulla possibilità di creare altri componenti di un bilanciatore del carico Google Cloud , come servizi di backend, proxy di destinazione, controlli di integrità e mappe URL.

Funzioni supportate

Funzione Descrizione
compute.isForwardingRuleCreationOperation()   bool

Controlla se la richiesta sta creando una regola di forwarding.

Esempio
Guarda l'esempio per compute.matchLoadBalancingSchemes().
compute.matchLoadBalancingSchemes(
  schemes: list<string>
)
  bool

Controlla se la richiesta influisce su uno dei tipi di schema di bilanciamento del carico specificati. Per trovare l'identificatore di ogni schema di bilanciamento del carico e ulteriori dettagli, consulta Utilizzo delle condizioni IAM sui bilanciatori del carico Google Cloud .

Parametro
schemes: gli schemi di bilanciamento del carico che la richiesta può influenzare.
Esempio

Restituisce uno dei seguenti valori:

  • Se la richiesta non sta creando una regola di forwarding, restituisce true.
  • Se la richiesta crea una regola di forwarding, restituisce true solo se la regola di forwarding influisce su uno schema di bilanciamento del carico INTERNAL, INTERNAL_MANAGED o INTERNAL_SELF_MANAGED.
!compute.isForwardingRuleCreationOperation() || (
  compute.isForwardingRuleCreationOperation() &&
  compute.matchLoadBalancingSchemes([
    'INTERNAL', 'INTERNAL_MANAGED', 'INTERNAL_SELF_MANAGED'
  ])
)

Tipi di risorse supportati

Questo attributo è disponibile per le richieste di creazione dei seguenti tipi di risorse:

Servizio Tipi di risorse
Cloud Load Balancing Regole di forwarding
Cloud VPN Regole di forwarding (globali e regionali)
Compute Engine Regole di forwarding (per il forwarding del protocollo)
Cloud Service Mesh1 Regole di forwarding

1 Utilizza gli attributi delle risorse per Compute Engine.

Attributo percorso/host dell'URL

L'attributo host/percorso dell'URL consente agli utenti di gestire l'accesso in base al percorso dell'URL e all'host di una richiesta. Ad esempio, una condizione potrebbe specificare che https://example.com è l'applicazione principale accessibile da un dominio generale di utenti, mentre https://hr.example.com/admin viene utilizzato per accedere a una pagina dell'applicazione in cui solo gli amministratori delle risorse umane possono accedere a questa parte.

Puoi utilizzare l'attributo host/percorso dell'URL nelle associazioni dei ruoli delle policy di autorizzazione.

Attributo request.path

Variabile attributo request.path
Tipo di attributo string
Funzioni e operatori supportati , startsWith(), endsWith()
Dettagli Sconsigliamo di utilizzare l'operatore con questo attributo. Anziché verificare la disuguaglianza, come in request.path != "/admin", verifica il prefisso dell'attributo, come in !request.path.startsWith("/admin"). Selezionando il prefisso, proteggi anche i percorsi degli URL all'interno della gerarchia /admin, ad esempio /admin/payroll/.
Esempi

Restituisce true se il percorso della richiesta è uguale al percorso dell'URL specificato:

request.path == "/admin"
request.path == "/admin/payroll"

Restituisce true se il percorso della richiesta inizia con il percorso dell'URL specificato:

request.path.startsWith("/admin")

Restituisce true se il percorso della richiesta termina con il percorso dell'URL specificato:

request.path.endsWith("/payroll.js")
Tipi di risorse supportati
  • Versioni del servizio app Identity-Aware Proxy (App Engine): disponibile per le richieste che utilizzano Identity-Aware Proxy per accedere a un'applicazione web in esecuzione su App Engine o Compute Engine
  • Servizi Cloud Run

Attributo request.host

Variabile attributo request.host
Tipo di attributo string
Funzioni e operatori supportati , endsWith()
Dettagli Sconsigliamo di utilizzare la funzione .startsWith() o l'operatore con questo attributo. Queste funzioni e questi operatori potrebbero fornire risultati imprevisti.
Esempi

Restituisce true se il nome host è uguale al valore specificato:

request.host == "www.example.com"
request.host == "hr.example.com"

Restituisce true se il nome host termina con il valore specificato:

request.host.endsWith("example.com")
Tipi di risorse supportati
  • Versioni del servizio app Identity-Aware Proxy (App Engine): disponibile per le richieste che utilizzano Identity-Aware Proxy per accedere a una versione del servizio app.
  • Servizi Cloud Run

Estrai valori dagli attributi

Puoi utilizzare la funzione extract() per estrarre un valore da un attributo. Ad esempio, puoi estrarre una parte arbitraria del nome di una risorsa e poi scrivere un'espressione di condizione che faccia riferimento al testo estratto.

Per utilizzare la funzione extract(), devi fornire un modello di estrazione, che specifica la parte dell'attributo da estrarre. Ad esempio, se vuoi estrarre un ID progetto dal nome della risorsa di un'istanza VM di Compute Engine, puoi utilizzare il template projects/{project}/.

Un template di estrazione contiene le seguenti parti:

  • Un identificatore, racchiuso tra parentesi graffe, che identifica la sottostringa da estrarre.

    Scegli un identificatore breve e significativo che indichi chiaramente il valore che vuoi estrarre. Puoi utilizzare lettere maiuscole e minuscole da A a Z, cifre numeriche e trattini bassi (_).

    Nel modello projects/{project}/, l'identificatore è project.

  • (Facoltativo) Un prefisso, che deve apparire prima della sottostringa da estrarre.

    Nel modello projects/{project}/, il prefisso è projects/.

  • (Facoltativo) Un suffisso, che deve apparire dopo la sottostringa da estrarre.

    Nel modello projects/{project}/, il suffisso è /.

La funzione extract() estrae parti diverse dell'attributo a seconda che il modello di estrazione abbia un prefisso, un suffisso o entrambi:

Ha un prefisso Ha un suffisso Valore estratto
- - L'intero attributo
- I caratteri dopo la prima occorrenza del prefisso o una stringa vuota se non sono presenti caratteri dopo il prefisso
- I caratteri prima della prima occorrenza del suffisso o una stringa vuota se non sono presenti caratteri prima del suffisso
I caratteri tra la prima occorrenza del prefisso e la prima occorrenza successiva del suffisso oppure una stringa vuota se non sono presenti caratteri tra il prefisso e il suffisso

Se specifichi un prefisso o un suffisso che non compaiono nell'attributo o se il suffisso compare solo prima del prefisso, la funzione extract() restituisce una stringa vuota.

I seguenti esempi mostrano l'output di diversi modelli di estrazione. Questi esempi fanno riferimento al nome di una risorsa per un oggetto Cloud Storage, projects/_/buckets/acme-orders-aaa/objects/data_lake/orders/order_date=2019-11-03/aef87g87ae0876:

Modello di estrazione Output
/order_date={date}/ 2019-11-03
buckets/{name}/ acme-orders-aaa
/orders/{empty}order_date string vuoto
{start}/objects/data_lake projects/_/buckets/acme-orders-aaa
orders/{end} order_date=2019-11-03/aef87g87ae0876
{all} projects/_/buckets/acme-orders-aaa/objects/data_lake/orders/order_date=2019-11-03/aef87g87ae0876
/orders/{none}/order_date= string vuoto
/orders/order_date=2019-11-03/{id}/data_lake string vuoto

Se estrai una stringa che rappresenta una data, puoi utilizzare le funzioni e gli operatori di data/ora in questa pagina per convertire il valore estratto in un Timestamp. Per alcuni esempi, consulta Configurazione dell'accesso basato sulle risorse.