Riferimento all'attributo per le condizioni IAM

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

Attributi condizione supportati

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

Attributi risorsa

I seguenti attributi si riferiscono alla risorsa oggetto della richiesta.

Attributo Riepilogo utilizzo Servizi Google Cloud supportati
Servizio risorse attributo

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

Puoi utilizzare questo attributo nelle associazioni di ruoli dei criteri di autorizzazione.

  • Apigee
  • Application Integration
  • Servizio di backup e RE
  • BigQuery
  • API BigQuery Reservation
  • Bigtable
  • Autorizzazione binaria
  • Cloud Deploy
  • Cloud Key Management Service
  • Cloud Logging
  • Cloud SQL
  • Cloud Storage
  • Compute Engine
  • Dataform
  • Google Kubernetes Engine
  • Identity-Aware Proxy
  • Integration Connectors
  • Google Cloud Managed Service per Apache Kafka
  • Pub/Sub Lite
  • Resource Manager
  • Secret Manager
  • Spanner
Attributo tipo di risorsa

Gestisci l'accesso in base al tipo di risorsa.

Puoi utilizzare questo attributo nelle associazioni di ruoli dei criteri di autorizzazione.

  • Apigee
  • Application Integration
  • BigQuery
  • API BigQuery Reservation
  • Bigtable
  • Autorizzazione binaria
  • Cloud Key Management Service
  • Cloud Logging
  • Cloud SQL
  • Cloud Storage
  • Compute Engine
  • Dataform
  • Google Kubernetes Engine
  • Identity-Aware Proxy
  • Integration Connectors
  • Google Cloud Managed Service per Apache Kafka
  • Pub/Sub Lite
  • Resource Manager
  • Secret Manager
  • Spanner
Attributo nome risorsa

Gestisci l'accesso in base al nome della risorsa.

Puoi utilizzare questo attributo nelle associazioni di ruoli dei criteri di autorizzazione.

  • Apigee
  • Application Integration
  • Servizio di backup e RE
  • BigQuery
  • API BigQuery Reservation
  • Bigtable
  • Autorizzazione binaria
  • Cloud Deploy
  • Cloud Key Management Service
  • Cloud Logging
  • Cloud SQL
  • Cloud Storage
  • Compute Engine
  • Dataform
  • Google Kubernetes Engine
  • Integration Connectors
  • Google Cloud Managed Service per Apache Kafka
  • Pub/Sub Lite
  • Secret Manager
  • Spanner
Tag risorsa

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

Puoi utilizzare questo attributo nelle seguenti posizioni:

  • Consenti associazioni di ruoli dei criteri
  • Regole di negazione del criterio di negazione
Tutti i servizi Google Cloud (vedi Supporto per condizioni ereditate)

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

Attributi entità

I seguenti attributi sono relativi all'entità che effettua la richiesta.

Attributo Riepilogo dell'utilizzo Tipi di entità principali supportati

Attributo del tipo di entità

Applica i criteri in base al tipo di entità nella richiesta.

Puoi utilizzare questo attributo nelle associazioni di criteri per il limite di accesso all'entità criteri.

  • Account Google
  • Identità dei pool di identità della forza lavoro
  • Identità pool di identità per i carichi di lavoro
  • Account di servizio

Attributo Principal subject (Oggetto soggetto)

Applica i criteri in base all'identità del principale nella richiesta.

Puoi utilizzare questo attributo nelle associazioni di criteri per il limite di accesso all'entità criteri.

  • Account Google
  • Identità dei pool di identità della forza lavoro
  • Identità pool di identità per i carichi di lavoro
  • Account di servizio

Per ulteriori dettagli sugli attributi dell'entità, consulta Entità attributi 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 sulla richiesta e sul richiedente, ad esempio l'indirizzo IP di origine, il dispositivo gli attributi e l'ora del giorno. Ad esempio, un livello di accesso onNetwork potrebbe richiedere che il dispositivo che effettua la richiesta provenga da un determinato intervallo di indirizzi IP. I livelli di accesso sono definiti dagli amministratori di un'organizzazione.

Puoi utilizzare questo attributo nelle associazioni di ruoli dei criteri di autorizzazione.

Identity-Aware Proxy

Attributi API

Gestire l'accesso in base ai dati forniti da uno specifico Google Cloud API o un servizio specifico.

Puoi utilizzare questo attributo nelle associazioni di ruoli dei criteri di autorizzazione.

  • Identity and Access Management
  • API Gateway
  • AutoML
  • Certificate Authority Service
  • Funzioni Cloud Run
  • API Cloud Healthcare
  • Cloud IoT
  • Cloud Key Management Service
  • Cloud Run
  • API Cloud Runtime Configuration
  • Cloud Storage
  • Compute Engine
  • Artifact Analysis
  • Dataproc
  • Earth Engine
  • Game Servers
  • Identity and Access Management
  • Identity-Aware Proxy
  • Managed Service for Microsoft Active Directory
  • Blocchi note gestiti dall'utente
  • Resource Manager
  • Secret Manager
  • Gestione del servizio

Attributi data/ora

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

Puoi utilizzare questi attributi nelle associazioni dei ruoli dei criteri consentiti.

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

Attributi IP/porta di destinazione

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

Utilizzato per l'inoltro TCP di Identity-Aware Proxy.

Puoi utilizzare questi attributi nelle associazioni dei ruoli dei criteri consentiti.

Identity-Aware Proxy

Attributi della regola di forwarding

Specifica i tipi di inoltro che possono essere create da un'entità. Ad esempio, potresti consentire per creare regole di forwarding interno Bilanciatori del carico Google Cloud, che gestiscono il traffico che ha origine all'interno di una rete Google Cloud, ma non per indirizzi Bilanciatori del carico Google Cloud, che gestiscono il traffico provengono da internet.

Puoi utilizzare questi attributi nelle associazioni di ruoli dei criteri di autorizzazione.

  • Cloud Load Balancing
  • Cloud VPN
  • Google Compute Engine protocollo inoltro
  • Cloud Service Mesh

Percorso URL/attributi host

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

Puoi utilizzare questi attributi nelle associazioni dei ruoli dei criteri consentiti.

  • Identity-Aware Proxy
  • Cloud Run

Per ulteriori dettagli sugli attributi della richiesta, consulta la sezione Attributi di richiesta nella pagina su questa pagina.

Supporto per le condizioni ereditate

Alcuni tipi di risorse Google Cloud non consentono condizioni nei propri criteri di autorizzazione. Tuttavia, puoi aggiungere associazioni di ruoli condizionali nella a livello di organizzazione, cartella o progetto e le altre risorse li erediteranno associazioni di ruoli tramite la gerarchia delle risorse. Per maggiori dettagli, vedi Tipi di risorse che accettano associazioni di ruoli condizionali.

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, questa parte della condizione non viene mai interpretata come che concede l'accesso. Ad esempio, la condizione destination.port == 21 non concederà mai l'accesso a nessuna risorsa BigQuery, perché le risorse BigQuery non forniscono gli attributi IP/porta di destinazione.

Per evitare questo problema, utilizza il tipo di risorsa e gli attributi di servizio risorse descritti in questa pagina per limitare l'ambito della condizione. Ad esempio, la seguente condizione ha valore true per tutti i tipi di risorse diversi dalle istanze di tunnel Identity-Aware Proxy; al contrario, per le istanze di tunnel Identity-Aware Proxy, la condizione controlla la porta di destinazione:

resource.type != 'iap.googleapis.com/TunnelInstance' ||
    destination.port == 21

Non è necessario limitare l'ambito delle condizioni che controllano il tag collegati a una risorsa. Quando una condizione controlla le chiavi e i valori dei tag, non può controllare altri attributi, inclusi il tipo di risorsa e il servizio di risorse.

Attributi risorsa

Gli attributi servizio, tipo e nome risorsa sono in genere utilizzato per modificare l'ambito di una concessione dell'accesso fornita dall'associazione dei ruoli. Quando un ruolo contiene autorizzazioni che si applicano a diversi attributi specifici delle risorse, è possibile utilizzare le 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 basata sul servizio Google Cloud in uso. Ad esempio, puoi impostare una condizione che limiti 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 di ruoli dei criteri 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 disuguaglianza () con l'attributo. Altri confronti, come la ricerca di un prefisso o di un suffisso, potrebbero dare risultati inaspettati.
Esempio

Restituisce true per le risorse Compute Engine:

resource.service == "compute.googleapis.com"
Servizi supportati
  • Apigee
  • Application Integration
  • Servizio di backup e RE
  • BigQuery
  • API BigQuery Reservation
  • Bigtable
  • Autorizzazione binaria
  • Cloud Deploy
  • Cloud Key Management Service
  • Cloud Logging
  • Cloud SQL
  • Cloud Storage
  • Compute Engine
  • Dataform
  • Google Kubernetes Engine
  • Identity-Aware Proxy
  • Integration Connectors
  • Google Cloud Managed Service per Apache Kafka
  • Pub/Sub Lite
  • Resource Manager
  • Secret Manager
  • Spanner

Attributo resource.type

L'attributo resource.type ti consente di impostare una condizione basata sul valore di testo. Ad esempio, puoi impostare una condizione che limiti l'accesso di un utente alle risorse di tipo storage.googleapis.com/Object. Per un elenco dei valori supportati, consulta Valori del tipo di risorsa.

Se la condizione utilizza l'attributo resource.name, ti consigliamo vivamente di utilizzare l'attributo resource.name per controllare a quali tipi di risorse si applica la condizione. Per informazioni dettagliate, consulta l'attributo resource.name in questa pagina.

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

Variabile attributo resource.type
Tipo di attributo

string

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

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

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

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

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

(resource.type == "compute.googleapis.com/Image" ||
 resource.type == "compute.googleapis.com/Disk")
Tipi di risorse supportati
Apigee
  • Attributi del prodotto API
  • Prodotti basati su API
  • Proxy API
  • Voci della mappa chiave-valore del proxy API
  • Mappe chiave-valore del proxy API
  • Revisioni proxy API
  • Cache
  • Attributi app sviluppatore
  • App per sviluppatori
  • Attributi sviluppatore
  • Sviluppatori
  • Voci della mappa chiave-valore dell'ambiente
  • Mappe chiave-valore dell'ambiente
  • Esportazioni
  • Hook di flusso
  • Alias dell'archivio chiavi
  • Archivi chiavi
  • Query
  • Piani tariffari
  • Riferimenti
  • Revisioni del flusso condiviso
  • Flussi condivisi
  • Server di destinazione
  • Sessioni di Trace (debug)
Servizio di backup e RE
  • Backup vault
BigQuery
  • Set di dati
  • Modelli
  • Routine
  • Tabelle
API BigQuery Reservation
  • Compiti
  • Prenotazioni BI
  • Impegni in termini di capacità
  • Località
  • Prenotazioni
Application Integration
  • Configurazioni di autenticazione
  • Esecuzioni
  • Versioni delle integrazioni
  • Integrazioni
  • Località
  • Sospensioni
Autorizzazione binaria
  • Attestatori
  • Configurazioni di convalida continua
  • Criteri
Bigtable
  • Cluster
  • Istanze
  • Tabelle
Cloud Key Management Service
  • Versioni chiave di crittografia
  • Chiavi di crittografia
  • Keyring
Cloud Logging
  • Bucket di log
  • Visualizzazioni log
Spanner
  • Backup
  • Database
  • Istanze
Cloud SQL
  • Esecuzioni backup
  • Istanze
Cloud Storage
  • Bucket
  • Cartelle gestite
  • Oggetti
Compute Engine
  • Servizi di backend (globali e regionali)
  • Firewall
  • Regole di forwarding (globali e regionali)
  • Immagini
  • Modelli di istanza
  • Istanze
  • Dischi permanenti (regionali e a livello 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 di release
  • Repository
  • Configurazioni dei flussi di lavoro
  • Chiamate flusso di lavoro
  • Aree di lavoro
Google Cloud
  • Sedi1
Google Kubernetes Engine
  • Cluster
Firestore
  • Database
Identity-Aware Proxy
  • Tutti i servizi di backend e le app App Engine
  • Tutte le risorse del tunnel
  • Tutte le zone dei tunnel
  • Tutti i servizi web
  • Versioni servizio app di App Engine
  • Servizi per app App Engine
  • Servizi di backend di Compute Engine
  • Istanze tunnel
Integration Connectors
  • Connessioni
  • Metadati dello schema della connessione
  • Collegamenti endpoint
  • Iscrizioni a eventi
  • Zone gestite
Google Cloud Managed Service per Apache Kafka
  • Cluster
  • Gruppi di consumer
  • Operazioni
  • Argomenti
Pub/Sub Lite
  • Località
  • Abbonamenti
  • Argomenti
Resource Manager
  • Progetti
Secret Manager
  • Versioni dei secret
  • Secret

1 Cloud Key Management Service utilizza questo tipo di risorsa come risorsa principale delle risorse del keyring.

Attributo resource.name

L'attributo resource.name ti consente di impostare una condizione basata su tutto o parte di un del nome della risorsa. Per un elenco dei formati dei nomi delle risorse, consulta Nome risorsa standard.

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, consente di accedere a tutti i tipi di risorse, ad eccezione dei bucket Cloud Storage e di oggetti strutturati. Al contrario, per i bucket e gli oggetti, la condizione consente di accedere 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 è un bucket né un oggetto. Se la risorsa ha un tipo diverso, l'intera condizione viene valutata come 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'attributoresource.type presenta alcuni vantaggi:

  • Limita il controllo resource.name all'insieme di risorse appropriato. Per Ad esempio, se vuoi concedere l'accesso alle istanze Compute Engine con un nome specifico, ha senso escludere tutti i tipi di risorse diversi da di Compute Engine.
  • Impedisce che l'ambito della condizione cambi se in futuro un servizio aggiunge nuovi tipi di risorse.

Infine, tieni presente che la condizione utilizza la funzione startsWith() per valutare il nome della risorsa, invece di verificare l'uguaglianza con il valore operatore. Poiché la condizione considera l'inizio del nome della risorsa, a un bucket e agli oggetti in quel bucket. Se fosse stata verificata la parità, corrisponderebbe solo al bucket.

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

  • Utilizza la funzione extract() per estrarre un valore dal nome di una risorsa. Per Ad esempio, puoi estrarre un ID progetto dal nome risorsa di un dell'istanza VM di Compute Engine, quindi scrivi un'espressione di condizione che si riferisce all'ID progetto.

    Per maggiori dettagli, consulta la sezione Estrarre valori dagli attributi in questa pagina.

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

Puoi utilizzare l'attributo resource.name nelle associazioni di ruoli dei criteri 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 della risorsa di destinazione nella richiesta. La il nome risorsa relativo è un percorso URI senza una barra iniziale (/).

La funzione startsWith() prende il valore letterale della stringa del prefisso da valutare rispetto a resource.name.

La funzione endsWith() prende il valore letterale della stringa del suffisso da valutare in base a resource.name.

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

Gli operatori e servono per il confronto con l'intero resource.name o una parte estratta 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 specificato, nel formato utilizzato dalla VM di Compute Engine di Compute Engine:

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

Restituisce true se il nome della risorsa inizia con 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
Apigee
  • Attributi del prodotto API
  • Prodotti basati su API
  • Proxy API
  • Voci della mappa chiave-valore del proxy API
  • Mappe chiave-valore del proxy API
  • Revisioni proxy API
  • Cache
  • Attributi app sviluppatore
  • App per sviluppatori
  • Attributi sviluppatore
  • Sviluppatori
  • Voci della mappa chiave-valore dell'ambiente
  • Mappe chiave-valore dell'ambiente
  • Esportazioni
  • Hook di flusso
  • Alias dell'archivio chiavi
  • Archivi chiavi
  • Query
  • Piani tariffari
  • Riferimenti
  • Revisioni del flusso condiviso
  • Flussi condivisi
  • Server di destinazione
  • Sessioni di Trace (debug)
Servizio di backup e RE
  • Backup vault
BigQuery
  • Set di dati
  • Modelli
  • Routine
  • Tabelle
API BigQuery Reservation
  • Compiti
  • Prenotazioni BI
  • Impegni in termini di capacità
  • Località
  • Prenotazioni
Application Integration
  • Configurazioni di autenticazione
  • Esecuzioni
  • Versioni delle integrazioni
  • Integrazioni
  • Località
  • Sospensioni
Autorizzazione binaria
  • Attestatori
  • Configurazioni di convalida continua
  • Criteri
Bigtable
  • Cluster
  • Istanze
  • Tabelle
Cloud Deploy
  • Esecuzioni automazione
  • Automazioni
  • Tipi di target personalizzati
  • Pipeline di distribuzione
  • Esecuzioni job
  • Release
  • Implementazioni
  • Destinazioni
Cloud Key Management Service
  • Chiavi di crittografia
  • Versioni chiave di crittografia
  • Keyring
Cloud Logging
  • Bucket di log
  • Visualizzazioni log
Spanner
  • Backup
  • Database
  • Istanze
Cloud SQL
  • Esecuzioni backup
  • Istanze
Cloud Storage
  • Bucket
  • Cartelle gestite
  • Oggetti
Compute Engine
  • Servizi di backend (globali e regionali)
  • Firewall
  • Regole di forwarding (globali e regionali)
  • Immagini
  • Modelli di istanza
  • Istanze
  • Dischi permanenti (regionali e a livello 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 di release
  • Repository
  • Configurazioni dei flussi di lavoro
  • Chiamate flusso di lavoro
  • Aree di lavoro
Integration Connectors
  • Connessioni
  • Metadati dello schema della connessione
  • Collegamenti endpoint
  • Iscrizioni a eventi
  • Zone gestite
Google Cloud Managed Service per Apache Kafka
  • Cluster
  • Gruppi di consumer
  • Operazioni
  • Argomenti
Pub/Sub Lite
  • Località
  • Abbonamenti
  • Argomenti
Secret Manager
  • Versioni dei secret
  • Secret

Tag di risorse

Le funzioni per i tag delle risorse ti consentono di impostare una condizione in base ai tag associati o ereditati da una risorsa. Ad esempio, puoi impostare una condizione che assegni un ruolo solo per le risorse a cui è associato il tag env: prod. Per scoprire di più su come controllare l'accesso con i tag, consulta Tag e controllo dell'accesso.

Ogni tag è composto da una chiave e da 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, un tag potrebbe avere l'ID permanente tagKeys/123456789012, mentre 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 e 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 di tag potrebbe avere il nome breve prod.
  • Un nome con spazi dei nomi, che aggiunge l'ID numerico dell'organizzazione o l'ID del progetto alla il nome breve di una chiave tag. Ad esempio, una chiave del tag creata per un'organizzazione potrebbe avere il nome nel nome nello spazio dei nomi 123456789012/env. Per scoprire come ottenere l'ID della tua organizzazione, consulta Ottenere l'ID risorsa dell'organizzazione. Una chiave tag creata per un progetto potrebbe avere lo spazio dei nomi nome myproject/env. Per scoprire come ottenere l'ID progetto, consulta Identificazione per i progetti.

Per indicazioni sulla scelta del tipo di identificatore da utilizzare nelle condizioni, consulta Definizioni e identificatori dei tag.

Puoi utilizzare condizioni basate su tag per condizionare l'accesso a qualsiasi risorsa. Questo include le risorse con i propri tag, nonché le risorse che ereditano i tag da altre risorse. Per scoprire di più su come i tag vengono ereditati consulta la sezione Eredità dei tag.

Puoi utilizzare le condizioni basate su tag nei seguenti casi:

  • Consenti associazioni di ruoli ai criteri
  • Regole di negazione dei criteri di negazione

Per impostare le condizioni in base ai tag, puoi utilizzare le funzioni seguenti:

Funzione Descrizione
resource.hasTagKey(
  keyName: string
)
  bool

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

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

Restituisce true se la risorsa per la richiesta ha un 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 tramite il suo ID permanente. Per verificare la presenza di una chiave tag utilizzando il nome con spazio dei nomi, utilizza il metodo 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 per il relativo nome con spazio dei nomi e il valore per il relativo nome breve. A verifica la presenza di una chiave e un valore del tag utilizzando i relativi ID permanenti, utilizza la funzione resource.matchTagId().

Parametri
  • keyName: il nome con spazio dei nomi per la 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 dal loro ID permanenti. Per verificare la presenza di una chiave tag utilizzando il suo nome con spazio dei nomi e un valore che utilizza il 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 tag. Ad esempio, tagValues/567890123456.
Esempio

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

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

Attributi entità

Gli attributi dell'entità ti consentono di scrivere condizioni in base all'entità che ha emesso la richiesta. Con questi attributi, puoi perfezionare le entità per le quali viene applicato un criterio.

Puoi utilizzare gli attributi principali nelle associazioni dei criteri per i criteri di accesso principale.

Attributo principal.type

L'attributo principal.type consente di impostare una condizione in base al tipo di principale che emette la richiesta. Ad esempio, puoi aggiungere una condizione a un'associazione di criteri per un criterio di confine di accesso dell'entità per assicurarti che venga applicato solo per gli account di servizio.

Puoi utilizzare gli attributi principali nelle associazioni dei criteri per i criteri di accesso principale.

Variabile attributo principal.type
Tipo di attributo

string

Operatori supportati , , in
Tipi di entità supportati
Account Google
iam.googleapis.com/WorkspaceIdentity
Identità dei pool di identità della forza lavoro
iam.googleapis.com/WorkforcePoolIdentity
Identità del pool di identità per i carichi di lavoro
iam.googleapis.com/WorkloadPoolIdentity
Account di servizio
iam.googleapis.com/ServiceAccount
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 pool di identità per la forza lavoro o per le identità di Google Workspace. identità:

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

Attributo principal.subject

L'attributo principal.subject ti consente di impostare una condizione in base al principale che ha emesso la richiesta. Ad esempio, puoi aggiungere una condizione a un'associazione di criteri per un criterio di confine dell'accesso dell'entità per assicurarti che il criterio venga applicato solo per le 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 principali si applica la condizione. Questo perché gli identificatori dell'entità non sono necessariamente univoci tra i tipi di entità. Ad esempio, l'identificatoreexample-user@example.com potrebbe identificare un Account Google o un utente in un pool di identità della forza lavoro.

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

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

Puoi usare gli attributi delle entità nelle associazioni di criteri per il limite di accesso all'entità criteri.

Variabile attributo principal.subject
Tipo di attributo

string

Operatori supportati

, , in, startsWith(), endsWith()

Soggetti principali supportati
Account Google
Identificatore: indirizzo email dell'utente
Identità dei pool di identità della forza lavoro
Identificatore: valore dell'attributo soggetto dell'identità
Identità del pool di identità per i carichi di lavoro
Identificatore: valore dell'attributo del soggetto dell'identità
Account di servizio
Identificatore: indirizzo email dell'account di servizio
Esempio

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

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

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 ti consentono di creare condizioni che valutano i dettagli della richiesta, ad esempio il livello di accesso, la data/l'ora, l'indirizzo IP e la porta di destinazione (per il tunneling TCP IAP) o il percorso/l'host URL previsto (per IAP e Cloud Run).

Attributo livelli di accesso

L'attributo 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 la modalità l'attributo dei livelli di accesso nelle associazioni dei ruoli dei criteri di autorizzazione.

L'attributo dei livelli di accesso deriva da attributi della richiesta, come l'indirizzo IP di origine, gli attributi del dispositivo e l'ora del giorno. Ad esempio, un un livello di accesso denominato fullyTrusted potrebbe richiedere che il dispositivo è di proprietà dell'azienda e ha il blocco schermo. Un livello di accesso onNetwork potrebbe richiedere che il dispositivo che effettua la richiesta provenga da un determinato intervallo di indirizzi IP. Consulta le Gestore contesto accesso documentazione per ulteriori informazioni sui livelli di accesso.

L'attributo dei livelli di accesso è disponibile solo quando utilizzi Identity-Aware Proxy per accedere a un'istanza di tunnel o a un'applicazione web in esecuzione su App Engine o dai servizi di backend di Compute Engine. Nello specifico, i livelli di accesso è disponibile solo per le richieste che verificano una delle seguenti autorizzazioni:

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

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

  • Utente del tunnel con protezione IAP (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 livelli di accesso per concedere in modo condizionale un che contiene queste autorizzazioni. Il ruolo personalizzato non deve contenere altri autorizzazioni aggiuntive.

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 su Google Cloud Load Balancing 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 servizio o da un'API Google Cloud specifici. Puoi utilizzare gli attributi API nel criterio di autorizzazione associazioni di ruoli.

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 confini di accesso alle credenziali per limitare l'ambito delle credenziali di breve durata, puoi creare un confine di accesso alle credenziali che limiti le autorizzazioni per elencare gli oggetti controllando l'attributo APIstorage.googleapis.com/objectListPrefix. Questo attributo API contiene il valore del parametro prefix della richiesta.

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

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

Funzioni per gli attributi dell'API

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

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

Recupera l'attributo API richiesto.

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

Esempio

Restituisce uno dei seguenti valori:

  • Per le richieste a elencare oggetti in un bucket Cloud Storage, se la richiesta include prefix, la funzione restituisce il valore.
  • Per le richieste di elenco degli oggetti che omettono prefix e per tutti gli altri tipi di richieste, la funzione restituisce una stringa vuota.
api.getAttribute("storage.googleapis.com/objectListPrefix", "")
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 di tipo T. Ogni elemento è un valore che l'attributo API può contenere.
Esempio

Controlla se la richiesta concede o revocherà eventuali ruoli rispetto all'editor Pub/Sub (roles/pubsub.editor) o Pub/Sub Editore (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 nessun ruolo viene modificato, 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 presenti nella lista consentita.

roles/pubsub.editor

true

Il ruolo è nella lista consentita.

roles/pubsub.editor
roles/pubsub.publisher

true

Entrambi i ruoli sono nella lista consentita.

roles/billing.admin

false

Il ruolo non è presente nella lista consentita.

roles/billing.admin
roles/pubsub.editor

false

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

Attributi API Cloud Storage

Cloud Storage fornisce il seguente attributo API.

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

Per una richiesta di elencazione degli oggetti in un bucket, contiene il valore del parametro prefix della richiesta. Se nella richiesta viene omesso prefix, l'attributo non è definito.

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

Servizi che riconoscono questo attributo Cloud Storage

Attributi 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 del criterio di autorizzazione di una risorsa, questo attributo contiene i nomi dei ruoli delle associazioni di 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 Attributo modifiedGrantsByRole nei criteri di autorizzazione:

  • Progetti
  • Cartelle
  • Organizzazioni
Servizi che riconoscono questo attributo

I seguenti servizi riconoscono l'attributo modifiedGrantsByRole:

  • API Gateway
  • AutoML
  • Certificate Authority Service
  • Funzioni Cloud Run
  • API Cloud Healthcare
  • Cloud IoT
  • Cloud Key Management Service
  • Cloud Run
  • API Cloud Runtime Configuration
  • Cloud Storage
  • Compute Engine
  • Artifact Analysis
  • Dataproc
  • Earth Engine
  • Game Servers
  • Identity and Access Management
  • Identity-Aware Proxy
  • Managed Service for Microsoft Active Directory
  • Blocchi note gestiti dall'utente
  • Resource Manager
  • Secret Manager
  • Gestione del servizio

Attributo data/ora

L'attributo date/ora viene utilizzato per impostare la durata (Scadenza, Pianificata o Limitata) alle risorse Google Cloud. Puoi utilizzare gli attributi data/ora in consentono associazioni di ruoli dei criteri.

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

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

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

Creare, confrontare e modificare timestamp e durate

Funzione o operatore Descrizione
date(
  value: string
)
  Timestamp

Converte una data da un string a un Timestamp.

Parametro
value: una data nel formato YYYY-MM-DD, dove YYYY è l'anno, MM è il mese di due cifre e DD è il giorno di due cifre. Il valore Timestamp risultante contiene la data e l'ora specificate 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 una quantità di tempo da un string a un Duration.

Parametro
value: un 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 string in un Timestamp.

Parametro

value: un timestamp UTC conforme a RFC 3339.

Esempio

Crea un timestamp che rappresenti il 12 aprile 2023 alle 23:20:50.52. nel fuso orario UTC:

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

Confronta due valori Timestamp.

Esempi

Restituisce true se la data e l'ora della richiesta sono precedenti 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 00:00:00 UTC:

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

Restituisce true se l'ora della richiesta è dopo 12 aprile 2022, ore 00:00:00 UTC:

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

Restituisce true se la data e l'ora della richiesta sono successive o uguali a il 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 valore Timestamp che cade 30 minuti dopo 14:30:00 UTC del 2024-04-12:

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

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

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

Estrarre informazioni da un timestamp

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

In condizioni IAM, tutti i timestamp sono in UTC. Tuttavia, vuoi estrarre informazioni in base a un fuso orario diverso. Ad esempio, potresti voler sapere se il timestamp UTC cade su un lunedì nel fuso orario per Berlino, Germania.

Per specificare un fuso orario diverso, inserisci il fuso orario nella funzione. Utilizza un o la differenza UTC dal IETF Database fuso orario. Ad esempio, puoi utilizzare Europe/Berlin o +01:00 per il fuso orario CET (Central European Time).

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

Restituisce il giorno del mese da Timestamp. Il valore utilizza l'indice basato su 1; 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

Recupera il giorno del mese da Timestamp. Il valore utilizza l'indice a partire da 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

Recupera il giorno della settimana da Timestamp. Il valore utilizza l'indice a partire da 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

Recupera il giorno dell'anno da Timestamp. Il valore utilizza l'indice a partire da 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 nei 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

Recupera l'anno dal Timestamp.

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

Restituisce true se la richiesta viene inviata durante l'anno 2023 a Mountain View, California:

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

Restituisce true se la richiesta viene inviata durante l'anno 2022 in UTC:

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

Restituisce l'ora del giorno da Timestamp. Il valore utilizza un indice basato su zero. I valori vanno da 0 a 23.

Puoi combinare questa funzione con getDayofWeek() per concedere l'accesso solo durante l'orario di lavoro consentito nel tuo 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 (9:00) e 17:00 (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

Recupera il numero di millisecondi dal Timestamp. Il valore utilizza un indice basato su zero. I valori vanno da 0 a 999.

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

Recupera il numero di minuti dopo l'ora da Timestamp. La utilizza l'indicizzazione su base zero; i valori vanno da 0 a 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 in una data successiva (9:30) a Berlino, Germania:

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

Recupera il mese dell'anno dal Timestamp. Il valore utilizza un indice basato su zero. I valori vanno da 0 a 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, California:

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

Restituisce il numero di secondi da Timestamp. Il valore utilizza un indice basato su zero. I valori vanno da 0 a 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 porta/IP di destinazione consente agli utenti di gestire l'accesso in base alla l'indirizzo IP interno e la porta di destinazione per una richiesta. Puoi utilizzare gli attributi IP/porta di destinazione nelle associazioni di ruoli dei criteri di autorizzazione.

Ad esempio, un'istanza VM Compute Engine potrebbe mappare l'indirizzo IP e la porta 132.168.42.21:3001 esterni all'indirizzo IP e alla porta 10.0.0.1:2300 interni per l'utilizzo generale. Al contrario, l'indirizzo IP interno e la porta10.0.0.1:22 potrebbero essere disponibili solo internamente per l'utilizzo amministrativo. Tu puoi utilizzare gli attributi della porta/IP di destinazione per concedere quantità di accesso diverse in base all'indirizzo IP interno e alla porta.

Per ulteriori informazioni 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 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 TCP interno numero di porta.

Esempi

Restituisce true se la porta di destinazione è 21:

destination.port == 21

Restituisce true se la porta di destinazione è inferiore 3001:

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

Attributi delle regole di forwarding

Gli attributi delle regola di forwarding consentono di specificare i tipi di inoltro che possono essere create da un'entità. Ad esempio, potresti consentire a un entità di creare regole di inoltro per i bilanciatori del carico Google Cloud interni, che gestiscono il traffico proveniente da una rete Google Cloud, ma non per i bilanciatori del carico Google Cloud esterni, che gestiscono il traffico proveniente da internet. Puoi utilizza gli attributi delle regola di forwarding nelle associazioni di ruoli dei criteri di autorizzazione.

Per Cloud Load Balancing, gli attributi delle regole di inoltro 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
Vedi l'esempio per compute.matchLoadBalancingSchemes().
compute.matchLoadBalancingSchemes(
  schemes: list<string>
)
  bool

Controlla se la richiesta interessa uno dei tipi di carico specificati di bilanciamento del carico. Per trovare l'identificatore per ogni bilanciamento del carico schema, nonché ulteriori dettagli, vedi Utilizzando Carico condizioni IAM su Google Cloud bilanciatori del carico.

Parametro
schemes: gli schemi di bilanciamento del carico su cui la richiesta è autorizzata a intervenire.
Esempio

Restituisce uno dei seguenti valori:

  • Se la richiesta non sta creando una regola di forwarding, restituisce true.
  • Se la richiesta è in fase di creazione di una regola di inoltro, restituisce true solo se la regola di inoltro interessa 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 a livello di regione)
Compute Engine Regole di forwarding (per forwarding del protocollo)
Cloud Service Mesh1 Regole di forwarding

1 Utilizza gli attributi della risorsa per Compute Engine.

Attributo percorso/host dell'URL

L'attributo percorso/host 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 è utilizzato per accedere a una pagina del in cui solo gli amministratori delle risorse umane possono accedere a questa parte.

Puoi utilizzare l'attributo percorso URL/host nelle associazioni di ruoli del criterio di autorizzazione.

Attributo request.path

Variabile attributo request.path
Tipo di attributo string
Funzioni e operatori supportati , startsWith(), endsWith()
Dettagli Non è consigliabile utilizzare l'operatore con questo attributo. Anziché verificare la disuguaglianza, come in request.path != "/admin", controlla il prefisso dell'attributo, come in !request.path.startsWith("/admin"). Selezionando il , proteggi anche i percorsi degli URL all'interno di /admin gerarchia, come /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 di richiesta termina con il valore Percorso dell'URL:

request.path.endsWith("/payroll.js")
Tipi di risorse supportati
  • Versioni del servizio app Identity-Aware Proxy (App Engine): disponibili 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 Non consigliamo di utilizzare la funzione .startsWith() o l'operatore con questo attributo. Queste funzioni e questi operatori potrebbero dare risultati inaspettati.
Esempi

Restituisce true se il nome host è uguale a quello specificato valore:

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

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

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

Estrarre i 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, quindi scrivere un'espressione di condizione che fa riferimento al testo estratto.

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

Un modello di estrazione contiene le seguenti parti:

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

    Scegli un identificatore breve e significativo che chiarisca il tuo 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 sufisso, che deve apparire dopo la sottostringa da estrarre.

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

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

Con prefisso Con 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 che precedono la prima occorrenza del suffisso oppure un campo stringa 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 sufisso compare solo prima del prefisso, la funzione extract() restituisce una stringa vuota.

Gli esempi seguenti mostrano l'output di diversi modelli di estrazione. Questi esempi fanno riferimento a un nome della 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 data/ora in questa pagina per convertire il valore estratto in un Timestamp. Per alcuni esempi, consulta la pagina sulla configurazione dell'accesso basato sulle risorse.