Riferimento attributo per le condizioni IAM

Questo argomento descrive gli attributi supportati in un'espressione della condizione.

Attributi delle condizioni supportati

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

Attributi della risorsa

I seguenti attributi sono relativi alla risorsa oggetto della richiesta.

Attributo Riepilogo sull'utilizzo Servizi Google Cloud supportati
Attributo di servizio della risorsa Gestisci l'accesso in base al servizio Google Cloud in uso.
  • Apigee X
  • Autorizzazione binaria
  • Cloud Bigtable
  • Cloud Key Management Service
  • Cloud Logging
  • Cloud Spanner
  • Cloud SQL
  • Cloud Storage
  • Compute Engine
  • Identity-Aware Proxy
  • Pub/Sub Lite
  • Resource Manager
  • Secret Manager
Attributo del tipo di risorsa Gestione dell'accesso in base al tipo di risorsa.
Attributo del nome della risorsa Gestisci l'accesso in base al nome della risorsa.
  • Apigee X
  • Autorizzazione binaria
  • Cloud Bigtable
  • Cloud Key Management Service
  • Cloud Logging
  • Cloud Spanner
  • Cloud SQL
  • Cloud Storage
  • Compute Engine
  • Pub/Sub Lite
  • Secret Manager
Tag delle risorse Gestire l'accesso in base ai tag associati alla risorsa. Tutti i servizi Google Cloud

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

Attributi della richiesta

I seguenti attributi sono correlati ai dettagli della richiesta.

Attributo Riepilogo sull'utilizzo Servizi Google Cloud supportati

Attributo livelli di accesso

Gestire l'accesso in base a livelli specifici.

Un livello di accesso è un attributo calcolato basato su attributi non elaborati relativi alla richiesta e al richiedente, come l'indirizzo IP di origine, gli attributi del dispositivo, l'ora del giorno e altro ancora. 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 dell'organizzazione.

Identity-Aware Proxy

Attributi API

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

  • Identity and Access Management
  • API Gateway
  • AutoML
  • Certificate Authority Service
  • Cloud Functions
  • API Cloud Healthcare
  • Cloud IoT
  • Cloud Key Management Service
  • Cloud Run
  • API Cloud Runtime Configuration
  • Cloud Storage
  • Compute Engine
  • Container 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
  • Service Management

Attributi data/ora

Imposta un accesso esauribile, pianificato o a durata limitata alle risorse Google Cloud.

Tutti i servizi Google Cloud

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.

L'utilizzo corrente è principalmente per l'inoltro TCP con Identity-Aware Proxy.

Identity-Aware Proxy

Attributi delle regole di forwarding

Specifica 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 interni di Google Cloud, che gestiscono il traffico che proviene da una rete Google Cloud, ma non per i bilanciatori del carico esterni di Google Cloud, che gestiscono il traffico proveniente da Internet.

Attributi del percorso/host 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 degli 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.

Identity-Aware Proxy

Per ulteriori informazioni sugli attributi della richiesta, consulta la sezione Attributi della richiesta in questa pagina.

Supporto per le condizioni ereditate

Alcuni tipi di risorse Google Cloud non consentono condizioni nei relativi criteri consentiti. Tuttavia, puoi aggiungere associazioni di ruoli condizionali a livello di organizzazione, cartella o progetto e queste ultime erediteranno le associazioni di ruoli tramite la gerarchia delle risorse. Per ulteriori dettagli, consulta la sezione Risorse che accettano le 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 una parte di una condizione utilizza un attributo non disponibile, la parte in questione non viene mai interpretata come concessione dell'accesso. Ad esempio, la condizione destination.port == 21 non concederà mai l'accesso a nessuna risorsa BigQuery, poiché le risorse BigQuery non forniscono gli attributi IP/porta di destinazione.

Per evitare questo problema, utilizza gli attributi tipo di risorsa e servizio risorsa descritti in questa pagina per limitare l'ambito della condizione. Ad esempio, la seguente condizione restituisce true per tutti i tipi di risorse diverse dalle istanze del tunnel Identity-Aware Proxy; al contrario, per le istanze del 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 i tag associati a una risorsa. Quando una condizione controlla chiavi e valori dei tag, non può verificare nessun altro attributo, inclusi il tipo di risorsa e il servizio risorsa.

Attributi della risorsa

Gli attributi del servizio, del tipo e del nome della risorsa vengono generalmente utilizzati per modificare l'ambito di una concessione di accesso fornita dall'associazione dei ruoli. Quando un ruolo contiene autorizzazioni applicabili ad attributi specifici delle risorse, le condizioni basate sulle risorse possono essere utilizzate per concedere un sottoinsieme delle autorizzazioni del ruolo per tipi specifici o servizi specifici.

Attributo resource.service

L'attributo resource.service ti consente di impostare una condizione in base al 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 delle risorse.

Variabile attributo resource.service
Tipo di attributo Stringa
Operatori supportati ==, !=
Operando supportato Stringa


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

Discussione La variabile resource.service, se utilizzata, ha lo scopo di confrontare l'uguaglianza o le disuguaglianze.

Nota: le funzioni .startsWith(<prefix string>) e .endsWith(<suffix string>) non devono essere utilizzate con l'attributo resource.service. Non è consigliato a causa di risultati di valutazione imprevisti.

Esempi

Esempio 1:


resource.service == "compute.googleapis.com"
Servizi supportati
  • Apigee X
  • Autorizzazione binaria
  • Cloud Bigtable
  • Cloud Key Management Service
  • Cloud Logging
  • Cloud Spanner
  • Cloud SQL
  • Cloud Storage
  • Compute Engine
  • Identity-Aware Proxy
  • Pub/Sub Lite
  • Resource Manager
  • Secret Manager

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 limiti l'accesso di un utente alle risorse del tipo storage.googleapis.com/Object. Per un elenco dei valori supportati, consulta la sezione Valori dei tipi di risorsa.

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

Variabile attributo resource.type
Tipo di attributo Stringa
Operatori supportati ==, !=
Operando supportato Stringa


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

Discussione La variabile resource.type, se utilizzata, ha lo scopo di confrontare l'uguaglianza o le disuguaglianze.

Nota: le funzioni .startsWith(<prefix string>) e .endsWith(<suffix string>) non devono essere utilizzate con l'attributo resource.type. Non è consigliato a causa di risultati di valutazione imprevisti.

Esempi

Esempio 1:


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

Esempio 2:


(resource.type == "compute.googleapis.com/Image" ||
resource.type == "compute.googleapis.com/Disk")
Tipi di risorse supportati
Apigee X
  • Attributi dei prodotti API
  • Prodotti API
  • Proxy API
  • Mappe chiave-valore proxy API
  • Revisioni del proxy API
  • Attributi app sviluppatore
  • App per sviluppatori
  • Attributi sviluppatore
  • Sviluppatori
  • Piani tariffari
  • Revisioni del flusso condiviso
  • Flussi condivisi
Autorizzazione binaria
  • Attestatori
  • Configurazioni di convalida continua
  • Criteri
Cloud Bigtable
  • Cluster
  • Istanze
  • Tabelle
Cloud Key Management Service
  • Versioni delle chiavi di crittografia
  • Chiavi di crittografia
  • Keyring
Cloud Logging
  • Bucket di log
  • Visualizzazioni log
Cloud Spanner
  • Backup
  • Database
  • Istanze
Cloud SQL
  • Esecuzioni di backup
  • Istanze
Cloud Storage
  • Bucket
  • Oggetti
Compute Engine
  • Servizi di backend (globale e regionale)
  • Firewall
  • Regole di forwarding (a livello globale e di area geografica)
  • Immagini
  • Modelli di istanza
  • Istanze
  • Dischi permanenti (a livello di area geografica e di zona)
  • Snapshot
  • Proxy HTTP(S) di destinazione (globale e a livello di area geografica)
  • Proxy SSL di destinazione
  • Proxy TCP di destinazione
Google Cloud
  • Località1
Identity-Aware Proxy
  • Tutti i servizi di backend e le app App Engine
  • Tutte le risorse del tunnel
  • Tutte le zone del tunnel
  • Tutti i servizi web
  • Versioni del servizio app di App Engine
  • Servizi app di App Engine
  • Servizi di backend di Compute Engine
  • Istanze tunnel
Pub/Sub Lite
  • Località
  • Abbonamenti
  • Argomenti
Resource Manager
  • Progetti
Secret Manager
  • Versioni secret
  • Secret

1 Cloud Key Management Service utilizza questo tipo di risorsa come risorsa padre di risorse keyring.

Attributo resource.name

L'attributo resource.name consente di impostare una condizione basata su tutto o parte di un nome di 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 seguente. Ti consigliamo vivamente di limitare l'applicabilità della condizione al tipo di risorsa prevista. Se un ruolo contiene autorizzazioni per un tipo di risorsa che non fornisce l'attributo resource.name, devi assicurarti che tale autorizzazione non sia limitata 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 tranne oggetti e bucket Cloud Storage. 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')

La prima parte della condizione controlla se la risorsa non è né un bucket né un oggetto. Se la risorsa ha un tipo diverso, l'intera condizione verrà valutata a true, indipendentemente dal nome della risorsa.

Inoltre, tieni presente che la condizione controlla l'attributo resource.type e non l'attributo resource.service. Verificare l'attributo resource.type offre alcuni vantaggi:

  • Limita il controllo resource.name all'insieme di risorse appropriato. Ad esempio, se vuoi concedere l'accesso a istanze di Compute Engine con un nome specifico, ha senso escludere tutti i tipi di risorse diversi dalle istanze di Compute Engine.
  • Impedisce che l'ambito della condizione cambi 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 nel bucket. Se fosse selezionata, l'uguaglianza corrisponderà solo al bucket.

Non puoi utilizzare caratteri jolly come * per la corrispondenza di più nomi delle risorse. Considera queste alternative:

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

    Per maggiori dettagli, vedi Estrarre 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.

Variabile attributo resource.name
Tipo di attributo Stringa
Funzioni e operatori supportati startsWith(), endsWith(), extract(), == e !=
Operando supportato

Stringa

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

Discussione

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

La funzione startsWith() accetta il valore letterale della stringa di prefisso da valutare in base a resource.name.

La funzione endsWith() accetta il valore letterale stringa di suffisso da valutare in base a resource.name.

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

Gli operatori == e != servono per un confronto con l'intero resource.name o una porzione estratta del resource.name.

Esempi

Esempio 1 (per un'istanza VM di Compute Engine):


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

Esempio 2 (per un bucket Cloud Storage):


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

Esempio 3 (per un oggetto Cloud Storage):


resource.name.endsWith(".jpg")

Esempio 4 (per più tipi di risorse):


resource.name.extract("projects/{project}/")

Esempio 5 (per un bucket Cloud Storage):


resource.name != "projects/_/buckets/secret-bucket-123"
Tipi di risorse supportati
Apigee X
  • Attributi dei prodotti API
  • Prodotti API
  • Proxy API
  • Mappe chiave-valore proxy API
  • Revisioni del proxy API
  • Attributi app sviluppatore
  • App per sviluppatori
  • Attributi sviluppatore
  • Sviluppatori
  • Piani tariffari
  • Revisioni del flusso condiviso
  • Flussi condivisi
Autorizzazione binaria
  • Attestatori
  • Configurazioni di convalida continua
  • Criteri
Cloud Bigtable
  • Cluster
  • Istanze
  • Tabelle
Cloud Key Management Service
  • Chiavi di crittografia
  • Versioni delle chiavi di crittografia
  • Keyring
Cloud Logging
  • Bucket di log
  • Visualizzazioni log
Cloud Spanner
  • Backup
  • Database
  • Istanze
Cloud SQL
  • Esecuzioni di backup
  • Istanze
Cloud Storage
  • Bucket
  • Oggetti
Compute Engine
  • Servizi di backend (globale e regionale)
  • Firewall
  • Regole di forwarding (a livello globale e di area geografica)
  • Immagini
  • Modelli di istanza
  • Istanze
  • Dischi permanenti (a livello di area geografica e di zona)
  • Snapshot
  • Proxy HTTP(S) di destinazione (globale e a livello di area geografica)
  • Proxy SSL di destinazione
  • Proxy TCP di destinazione
Pub/Sub Lite
  • Località
  • Abbonamenti
  • Argomenti
Secret Manager
  • Versioni secret
  • Secret

Tag risorsa

Le funzioni per i tag delle risorse consentono di impostare una condizione basata sui tag associati o ereditati da una risorsa. Ad esempio, puoi impostare una condizione che conceda un ruolo solo alle risorse alle quali è associato il tag env: prod. Per saperne di più sul controllo dell'accesso con i tag, consulta Tag e controllo dell'accesso.

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

  • Un ID permanente, univoco a livello globale che 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 della tua organizzazione 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, mentre un valore tag potrebbe avere il nome breve prod.
  • Un nome spazio dei nomi, che aggiunge l'ID numerico della tua organizzazione al nome breve di una chiave tag. Ad esempio, una chiave tag potrebbe avere il nome con spazio dei nomi 123456789012/env. Scopri come ottenere l'ID organizzazione.

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

Per lavorare con i tag, puoi utilizzare le seguenti funzioni:

Funzione Tipo Descrizione
resource.hasTagKey String --> bool

Funzione:

Controlla se la risorsa per la richiesta ha un tag con la chiave specificata. La chiave tag viene cercata dal suo nome spazio dei nomi. Per verificare la chiave del tag tramite il suo ID permanente, utilizza la funzione resource.hasTagKeyId().

Parametro: String: 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:

resource.hasTagKey('123456789012/env')
Restituisce true se la risorsa per la richiesta ha un tag con la chiave env.

resource.hasTagKeyId String --> bool

Funzione:

Controlla se la risorsa per la richiesta ha un tag con la chiave specificata. La chiave tag è cercata dall'ID permanente. Per verificare la chiave del tag utilizzando il nome dello spazio dei nomi, utilizza la funzione resource.hasTagKey().

Parametro: Stringa: l'ID permanente per la chiave del tag. Ad esempio, tagKeys/123456789012.

Esempio:

resource.hasTagKeyId('tagKeys/123456789012')
Restituisce true se la risorsa per la richiesta ha un tag con la chiave tagKeys/123456789012.

resource.matchTag (Stringa, stringa) --> bool

Funzione:

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

Parametri:

Il primo parametro String è 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.

Il secondo parametro String è il nome breve per il valore tag. Ad esempio, prod.

Esempio:

resource.matchTag('123456789012/env', 'prod')
Restituisce true se la risorsa per la richiesta ha un tag con la chiave 123456789012/env e il valore prod.

resource.matchTagId (Stringa, stringa) --> bool

Funzione:

Controlla se la risorsa per la richiesta ha un tag con la chiave e il valore specificati. La chiave e il valore sono inclusi negli ID permanenti. Per verificare la chiave del tag tramite il suo nome spazio dei nomi e un valore tramite il nome breve, utilizza la funzione resource.matchTag().

Parametri:

Il primo parametro String è l'ID permanente della chiave del tag. Ad esempio, tagKeys/123456789012.

Il secondo parametro String è l'ID permanente del valore tag. Ad esempio, tagValues/567890123456.

Esempio:

resource.matchTagId('tagKeys/123456789012', 'tagValues/567890123456')
Restituisce true se la risorsa per la richiesta ha un tag con la chiave tagKeys/123456789012 e il valore tagValues/567890123456.

Attributi della richiesta

Gli attributi della richiesta consentono di creare condizioni per la valutazione dei dettagli sulla richiesta, ad esempio il livello di accesso, la data e l'ora, l'indirizzo IP e la porta di destinazione (per il tunneling IAP TCP) o l'host/percorso dell'URL previsto (per IAP).

Attributo Livelli di accesso

L'attributo livelli di accesso consente agli utenti di impostare una condizione che richiede l'autorizzazione di una richiesta a livelli specifici.

L'attributo livelli di accesso deriva da attributi della richiesta, come l'indirizzo IP di origine, gli attributi del dispositivo, l'ora del giorno e altro ancora. 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. Consulta la documentazione di Gestore contesto accesso per ulteriori informazioni sui livelli di accesso.

L'attributo livelli di accesso è disponibile solo quando utilizzi Identity-Aware Proxy per accedere a un'istanza di tunnel o per accedere a un'applicazione web in esecuzione sui servizi di backend App Engine o Compute Engine. Più precisamente, l'attributo livelli di accesso è disponibile solo per le richieste che verificano una delle seguenti autorizzazioni:

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

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

  • Utente del tunnel con protezione IAP (roles/iap.tunnelResourceAccessor)

    Contiene una singola autorizzazione, iap.tunnelInstances.accessViaIAP.

  • Utente app web con protezione IAP (roles/iap.httpsResourceAccessor)

    Contiene una singola autorizzazione, iap.webServiceVersions.accessViaIAP.

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

Attributo request.auth.access_levels

Variabile attributo request.auth.access_levels
Tipo di attributo Elenco di stringhe
Operatori supportati in
Operando supportato Stringa
Discussione

Sul lato destro viene visualizzata la variabile request.auth.access_levels, mentre sul lato sinistro dell'operatore in viene visualizzata una stringa che rappresenta un nome completo del livello di accesso definito.

Il nome completo di un livello di accesso ha un nome formattato nel seguente pattern:
"accessPolicies/<policyNumber>/accessLevels/<shortName>"

Nota: per applicare l'effetto previsto, la stringa del livello di accesso è sensibile alle maiuscole e deve corrispondere esattamente a ciò che è stato configurato in Gestore contesto accesso. Ad esempio, "accessPolicies/199923665455/accessLevels/CorpNet" è un valore letterale di stringa valido da utilizzare nell'espressione, tuttavia, "accessPolicies/199923665455/accesslevels/CorpNet" non raggiungerà l'effetto previsto.

Esempio

"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 di tunnel o a un'applicazione web in esecuzione su App Engine

Attributi API

Gli attributi dell'API consentono di gestire l'accesso in base ai dati forniti da un'API o da un servizio Google Cloud specifico.

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

Per esempi di casi in cui potrebbe essere necessario utilizzare attributi API in una condizione, consulta le seguenti pagine:

Fai riferimento alle sezioni seguenti per sapere quali servizi riconoscono gli attributi dell'API.

Funzioni per gli attributi dell'API

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

Funzione Tipo Descrizione
api.getAttribute (Stringa, T) --> T

Funzione: ottiene l'attributo API richiesto.

Parametri:

Stringa: l'attributo API da ottenere. Per i valori supportati, consulta questa pagina agli attributi dell'API Cloud Storage e agli attributi dell'API IAM.

T: il valore predefinito da utilizzare se l'attributo API non è disponibile. Utilizza lo 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:

api.getAttribute("storage.googleapis.com/objectListPrefix", "")
Il valore del parametro prefix utilizzato per elencare gli oggetti in un bucket Cloud Storage. Per le richieste che omettono il parametro prefix e per altri tipi di richiesta, restituisce una stringa vuota.

hasOnly List<T>.(List<T>) --> bol

Funzione: verifica che un elenco contenga solo gli articoli consentiti o un sottoinsieme di tali articoli.

Parametri:

List<T>: elenco di elementi di tipo T. Chiama la funzione su un elenco restituito da api.getAttribute(). Il parametro è un elenco di elementi che l'attributo API può contenere.

Esempio:

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

Controlla se la richiesta concede o revoca ruoli diversi da Pub/Sub Editor (roles/pubsub.editor) o da Pub/Sub Publisher (roles/pubsub.publisher). La seguente tabella mostra i risultati di valori di richiesta diversi:

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 non inclusi nella lista consentita.

roles/pubsub.editor

true

Il ruolo è presente 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 è presente nella lista consentita, mentre l'altro no.

Attributi dell'API Cloud Storage

Cloud Storage fornisce il seguente attributo API.

Attributo Tipo Descrizione
storage.googleapis.com/objectListPrefix Stringa

Per una richiesta lista oggetti in un bucket, contiene il valore del parametro prefix dalla richiesta. L'attributo non è definito se nella richiesta viene omesso il parametro prefix.

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

Servizi che riconoscono questo attributo:

Solo Cloud Storage riconosce questo attributo.

Attributi API IAM

IAM fornisce il seguente attributo API:

Attributo Tipo Descrizione
iam.googleapis.com/modifiedGrantsByRole Array

Per una richiesta di impostare il criterio di autorizzazione di una risorsa, questo attributo contiene i nomi dei ruoli delle associazioni di ruoli modificate dalla richiesta.

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

Risorse che accettano questo attributo:

Le seguenti risorse accettano le condizioni con l'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
  • Cloud Functions
  • API Cloud Healthcare
  • Cloud IoT
  • Cloud Key Management Service
  • Cloud Run
  • API Cloud Runtime Configuration
  • Cloud Storage
  • Compute Engine
  • Container 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
  • Service Management

Attributo data/ora

L'attributo data/ora viene utilizzato per impostare l'accesso in scadenza, pianificato o per una durata limitata alle risorse Google Cloud.

Questo attributo è disponibile per tutti i servizi e i tipi di risorse Google Cloud.

Funzioni e operatori per la conversione dei valori

La variabile dell'attributo utilizzata per l'attributo data/ora è request.time, di tipo Timestamp. Puoi anche convertire le stringhe in tipi di timestamp e durata.

Funzioni e operatori supportati Tipo Descrizione
date String --> Timestamp

Funzione: converti una stringa in un timestamp.
Parametro: stringa nel formato YYYY-MM-DD, dove YYYY è l'anno, MM è il mese di due cifre e DD è il giorno di due cifre. Il timestamp risultante contiene la data e l'ora specificate 00:00:00.000 UTC.

Esempio:

date("2020-02-01")
Un timestamp che rappresenta la data 2020-02-01 e l'ora 00:00:00.000 UTC.

duration Stringa --> Durata

Funzione: converti una stringa in una durata.
Parametro: stringa contenente un numero di secondi, seguita da s

Esempi:

duration("90s")
Una durata che rappresenta 1,5 minuti.

duration("2592000s")
Una durata che rappresenta 30 giorni.

timestamp

String --> Timestamp

Funzione: converti una stringa in un timestamp.
Parametro: stringa che rispetta il formato UTC (RFC 3339).

Esempi:

timestamp("1985-04-12T23:20:50.52Z")
Rappresenta la conversione del timestamp di 20 minuti e 50, 52 secondi dopo la 23 del 12 aprile 1985 in UTC.

timestamp("1996-12-19T16:39:57-08:00")
Rappresenta la conversione del timestamp di 39 minuti e 57 secondi dopo la sedicesima ora del 19 dicembre 1996 con un offset di -08:00 dal fuso orario UTC. Tieni presente che questo equivale a 1996-12-20T00:39:57Z nel fuso orario UTC. Questo offset non riflette il fuso orario, ad esempio, l'offset per l'ora solare del Pacifico è -08:00 durante l'inverno e è -07:00 durante l'estate per rispettare l'ora legale.

Nota importante:
La stringa deve rispettare il requisito di formato per la stringa UTC. Qualsiasi stringa non conforme al formato UTC comporterà la mancata conversione della funzione timestamp() in un valore timestamp. Di conseguenza, la valutazione della condizione dell'espressione che utilizza timestamp() comporterà un'autorizzazione non riuscita.

<, <=, >, >=

(Timestamp, Timestamp) --> bool

Funzione: confronto generale con il tipo di timestamp.

Esempi:

request.time < timestamp("2018-04-12T00:00:00.00Z")
request.time <= timestamp("2018-04-12T00:00:00.00Z")
request.time > timestamp("2018-04-12T00:00:00.00Z")
request.time >= timestamp("2018-04-12T00:00:00.00Z")
Queste espressioni impostano il confronto dei tempi di richiesta con un timestamp specifico, cioè il 12 aprile 2018 nel fuso orario UTC. Comunemente utilizzato per impostare una condizione "ora di inizio", o "ora di scadenza", per la concessione del ruolo.

Nota: la precisione temporale in millisecondi, incluso il confronto tra uguaglianza e disuguaglianza (==, !=) non ha effetti significativi.

+, - (Timestamp, Durata) --> Timestamp

Funzione: aggiungi o sottrai una durata da un timestamp.

Esempi:

timestamp("2018-04-12T14:30:00.00Z") + duration("1800s")
Trova il timestamp che cade 30 minuti dopo le 14:30:00 GMT del 12-04-2018.

timestamp("2018-04-12T14:30:00.00Z") - duration("5184000s")
Individua il timestamp che cade 60 giorni prima delle 14:30:00 GMT del 12-04-2018.

Funzioni e operatori per il recupero dei valori

La variabile dell'attributo utilizzata per l'attributo data/ora è request.time, di tipo Timestamp.

Funzioni e operatori supportati Tipo Descrizione

getDate, getDayOfMonth, getDayOfWeek, getDayOfYear

Timestamp.() --> int

Timestamp.(stringa) --> int

Funzioni:
getDate: recupera il giorno del mese dal valore timestamp utilizzando l'indicizzazione in base a un solo utente. In altre parole, il primo giorno del mese è 1.

getDayOfMonth: recupera il giorno del mese dal valore timestamp utilizzando l'indicizzazione basata su zero. In altre parole, il primo giorno del mese è 0.

getDayOfWeek: recupera il giorno della settimana dal valore timestamp, basato su zero la domenica. In altre parole, domenica(0), lunedì(1), ..., sabato(6).

getDayOfYear: recupera il giorno dell'anno dal valore timestamp con indicizzazione basata su zero. In altre parole, il primo giorno dell'anno è 0.

Parametri:
Stringa come fuso orario: conversione basata sulla data con il fuso orario. Nota: quando il fuso orario non è specificato, la conversione sarà basata sulla data nel fuso orario UTC.

Per ulteriori informazioni sulle stringhe di fuso orario valide, consulta la sezione Valori di fuso orario supportati.

Esempio:

request.time.getDayOfWeek() > 0 && request.time.getDayOfWeek() < 6
Questa espressione è valutata come vera se la richiesta in entrata viene inviata tra il lunedì e il venerdì entro l'ora UTC.

Esempio:

request.time.getDayOfWeek("Europe/Berlin") > 0 && request.time.getDayOfWeek(Europe/Berlin") < 6
Questa espressione è valutata come vera se la richiesta in arrivo viene inviata tra il lunedì e il venerdì nel fuso orario di Berlino.

Esempio:

request.time.getDayOfYear("America/Los_Angeles") >= 0 && request.time.getDayOfYear("America/Los_Angeles") < 5
Questa espressione è valutata come vera se la richiesta in entrata viene inviata entro i primi 5 giorni dell'anno nel fuso orario di Los Angeles.

getFullYear

Timestamp.() --> int

Timestamp.(stringa) --> int

Funzione: recupera l'anno dalla data.

Parametri:
Versione 1: nessun parametro; a partire dalla data in formato UTC.
Versione 2: stringa del fuso orario; a partire dalla data in fuso orario.

Per ulteriori informazioni sulle stringhe di fuso orario valide, consulta la sezione Valori di fuso orario supportati.

Esempio:

request.time.getFullYear("America/Los_Angeles") == 2018
Questa espressione è valutata come vera se viene inviata una richiesta entro l'anno 2018, nel fuso orario di Los Angeles.

Esempio:

request.time.getFullYear() < 2020
Questa espressione è valutata come vera se la richiesta in entrata viene inviata prima della fine del 2019 nel fuso orario UTC.

getHours

Timestamp.() --> int

Timestamp.(stringa) --> int

Funzione: ottiene le ore dalla data; i valori sono compresi tra 0 e 23.

Parametri:
Versione 1: nessun parametro; a partire dalla data in formato UTC.
Versione 2: stringa del fuso orario; a partire dalla data in fuso orario.

Per ulteriori informazioni sulle stringhe di fuso orario valide, consulta la sezione Valori di fuso orario supportati.

Esempio:

request.time.getHours("Europe/Berlin") >= 9 && request.time.getHours("Europe/Berlin") <= 17
Questa espressione specifica una condizione dell'ora di lavoro. Viene considerata vera se la richiesta viene inviata tra le 9 e le 17 nel fuso orario di Berlino.

Nota:

È possibile utilizzare la combinazione di getHours() e getDayofWeek() per impostare una condizione nell'orario di lavoro legale, ad esempio per soddisfare un requisito di giurisdizione.

getMilliseconds

Timestamp.() --> int

Timestamp.(stringa) --> int

Funzione: ottiene i millisecondi entro un secondo dal timestamp; i valori sono compresi tra 0 e 999.

Parametri:
Versione 1: nessun parametro; a partire dalla data in formato UTC.
Versione 2: stringa del fuso orario; a partire dalla data in fuso orario.

Per ulteriori informazioni sulle stringhe di fuso orario valide, consulta la sezione Valori di fuso orario supportati.

Nota:

questa funzione è meno utile, considerato il suo utilizzo limitato in modo semantico.

getMinutes

Timestamp.() --> int

Timestamp.(stringa) --> int

Funzione: ottiene i minuti entro un'ora dal timestamp; i valori sono compresi tra 0 e 59.

Parametri:
Versione 1: nessun parametro; a partire dalla data in formato UTC.
Versione 2: stringa del fuso orario; a partire dalla data in fuso orario.

Per ulteriori informazioni sulle stringhe di fuso orario valide, consulta la sezione Valori di fuso orario supportati.

Nota:

questa funzione è meno utile, considerato il suo utilizzo limitato in modo semantico.

getMonth

Timestamp.() --> int

Timestamp.(stringa) --> int

Funzione: ottiene i mesi entro un anno dal timestamp; i valori sono compresi tra 0 e 11.

Parametri:
Versione 1: nessun parametro; a partire dalla data in formato UTC.
Versione 2: stringa del fuso orario; a partire dalla data in fuso orario.

Per ulteriori informazioni sulle stringhe di fuso orario valide, consulta la sezione Valori di fuso orario supportati.

Esempio:

request.time.getMonth("America/Los_Angeles") == 3
Questa espressione è valutata come vera se la richiesta in arrivo viene inviata durante il mese di aprile nel fuso orario di Los Angeles.

getSeconds

Timestamp.() --> int

Timestamp.(stringa) --> int

Funzione: recupera i secondi entro un minuto dal timestamp; i valori sono compresi tra 0 e 59.

Parametri:
Versione 1: nessun parametro; a partire dalla data in formato UTC.
Versione 2: stringa del fuso orario; a partire dalla data in fuso orario.

Per ulteriori informazioni sulle stringhe di fuso orario valide, consulta la sezione Valori di fuso orario supportati.

Nota:

questa funzione è meno utile, considerato il suo utilizzo limitato in modo semantico.

<, <=, >, >=, ==, !=

(int, int) --> bool

Funzione: confronto generale con il tipo int.

Discussione:
Utilizza questo insieme di operatori di confronto con l'output delle funzioni di questa tabella e recuperano parte del valore del timestamp come int.

Attributi IP/porta di destinazione

L'attributo IP/port di destinazione consente agli utenti di gestire l'accesso in base all'indirizzo IP e/o alla porta interno di destinazione per una richiesta.

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 un utilizzo generale. Al contrario, l'indirizzo IP interno e la porta 10.0.0.1:22 potrebbero essere disponibili solo internamente per uso amministrativo. Puoi utilizzare gli attributi IP/porta di destinazione per concedere livelli di accesso diversi in base all'indirizzo IP interno e alla porta.

Per ulteriori informazioni sull'inoltro TCP, consulta la documentazione relativa a Identity-Aware Proxy.

Attributo destination.ip

Variabile attributo destination.ip
Tipo di attributo Stringa
Operatori supportati ==, !=
Operando supportato Stringa
Discussione

La variabile destination.ip dovrebbe essere una stringa che rappresenta un indirizzo IP interno in formato IPv4.

Nota: la funzione startsWith(<prefix string of IP>) e la funzione endsWith(<suffix string of IP>) non devono essere utilizzate con l'attributo destination.ip. L'impostazione di una condizione come destination.ip.startsWith(<prefix string of IP>) non comporta un errore di sintassi durante l'esecuzione di un'operazione setIamPolicy, ma sconsigliamo di farlo a causa di risultati imprevisti. Non è consigliabile eseguire la corrispondenza dei prefissi nella stringa IP per eseguire un controllo intervallo di indirizzi IP sui CIDR.

Esempi

destination.ip == "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 di tunnel

Attributo destination.port

Variabile attributo destination.port
Tipo di attributo Numero intero
Operatori supportati ==, !=, <, <=, >, >=
Operando supportato Numero intero
Discussione

La variabile destination.port dovrebbe essere un numero intero che rappresenta un numero di porta TCP interno.

Esempi

destination.port == 21

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 regole di forwarding consentono di specificare i tipi di regole di forwarding che possono essere create da un'entità. Ad esempio, potresti consentire a un'entità di creare regole di forwarding per i bilanciatori del carico interni di Google Cloud, che gestiscono il traffico che ha origine all'interno di una rete Google Cloud, ma non per i bilanciatori del carico Google Cloud esterni, che gestiscono il traffico proveniente da Internet.

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 degli URL.

Funzioni supportate

Funzioni supportate Tipo Descrizione
compute.isForwardingRuleCreationOperation() () --> bool

Funzione: controlla se la richiesta sta creando una regola di forwarding.

Esempi: consulta gli esempi per compute.matchLoadBalancingSchemes().

compute.matchLoadBalancingSchemes() Array.(stringa) --> bool

Funzione: controlla se la richiesta interessa uno dei tipi di schema di bilanciamento del carico specificati. Per trovare l'identificatore per ogni schema di bilanciamento del carico, nonché i dettagli su ciascuno schema, vedi Utilizzo delle condizioni IAM sui bilanciatori del carico Google Cloud.

Parametri: array di stringhe

Esempio:


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

Tipi di risorse supportati

Questo attributo è disponibile per le richieste di creazione di uno di questi tipi di risorse:

Servizio Tipi di risorse
Cloud Load Balancing Regole di forwarding
Cloud VPN Regole di forwarding (a livello globale e di area geografica)
Compute Engine Regole di forwarding (per inoltro protocollo)
Traffic Director1 Regole di forwarding

1 Utilizza gli attributi della risorsa per Compute Engine.

Percorso URL/attributo host

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

Attributo request.path

Variabile attributo request.path
Tipo di attributo Stringa
Funzioni e operatori supportati ==, startsWith(), endsWith()
Operandi/parametri supportati
  • Stringa: ==
  • Stringa prefisso costante: startsWith()
  • Stringa suffisso costante: endsWith()
Discussioni Nota: l'utilizzo dell'operatore != non è consigliato. Invece di confronti negativi, ad esempio:

request.path != "/admin"
, l'utilizzo consigliato è, ad esempio, la corrispondenza di prefisso

! request.path.startsWith("/admin")
. In questo modo, i percorsi degli URL padre di "/admin", ad esempio "/admin/payroll/", sono tutti protetti da accessi indesiderati.
Esempi

Esempio 1:


request.path == "/admin"

request.path == "/admin/payroll"

La stringa utilizzata nel confronto dell'uguaglianza (==) nei due esempi sopra indicati dovrebbe essere formattata in base agli standard dei percorsi degli URL.

Esempio 2:


request.path.startsWith("/admin")

Una stringa che rappresenta il prefisso di un percorso URL viene utilizzata nella funzione.

Esempio 3:


request.path.endsWith("/payroll.js")

Una stringa che rappresenta il suffisso di un percorso URL viene utilizzata nella funzione.

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

Attributo request.host

Variabile attributo request.host
Tipo di attributo Stringa
Funzioni e operatori supportati ==, endsWith()
Operandi/parametri supportati
  • Stringa: ==
  • Stringa suffisso costante: endsWith()
Discussione La funzione .startsWith(<prefix string>) non deve essere utilizzata con l'attributo request.host. Sebbene l'impostazione di una condizione come request.host.startsWith(<prefix string>) non determinerà errori di sintassi durante l'esecuzione di un'operazione setIamPolicy, non è consigliata a causa di risultati imprevisti. È sconsigliato usare !=.
Esempi

Esempio 1:


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

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

La stringa utilizzata nel confronto dell'uguaglianza (==) nei due esempi precedenti deve essere formattata in base agli standard delle stringhe URL per il nome host di un sito web.

Esempio 2:


request.host.endsWith("example.com")

Stringa che rappresenta il suffisso di un nome host di un sito web.

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 dell'app.

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 quindi scrivere un'espressione della condizione che si riferisce al testo estratto.

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

Un modello 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 chiarisca il valore che vuoi estrarre. Puoi utilizzare lettere maiuscole e minuscole da A a Z; cifre numeriche; trattini (-) e trattini bassi (_).

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

  • (Facoltativo) Un prefisso, che deve essere visualizzato prima della sottostringa.

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

  • (Facoltativo) Un suffisso, che deve essere visualizzato dopo la sottostringa per l'estrazione.

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

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

Con prefisso Ha un suffisso Valore estratto
- - L'intero attributo
- I caratteri dopo la prima occorrenza del prefisso o una stringa vuota se non ci sono caratteri dopo il prefisso
- I caratteri che precedono la prima occorrenza del suffisso o una stringa vuota se non ci sono 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 ci sono caratteri tra il prefisso e il suffisso

Se specifichi un prefisso o un suffisso che non viene visualizzato nell'attributo o se il suffisso viene visualizzato solo prima del prefisso, la funzione extract() restituisce null.

I seguenti esempi mostrano l'output da diversi modelli di estrazione. Questi esempi si riferiscono 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 Stringa vuota
{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= null
/orders/order_date=2019-11-03/{id}/data_lake null

Se estrai una stringa che rappresenta una data, puoi utilizzare le funzioni e gli operatori per data/ora in questa pagina per convertire il valore estratto in un timestamp. Ad esempio, consulta Configurare l'accesso basato sulle risorse.