Per cercare le risorse, puoi filtrare i risultati di ricerca specificando un FIELD
, un operatore e un QUERY
.
Corrispondenza esatta del testo: operatore uguale a (=
)
FIELD=QUERY
Una query di esempio è: policy=amy.2020@gmail.com
.
L'operatore equals
(=
) verifica che QUERY
corrisponda esattamente al valore dei metadati della risorsa FIELD
. Fa distinzione tra maiuscole e minuscole. In un campo ripetuto, se QUERY
corrisponde
a uno dei valori del campo, la risorsa viene considerata una corrispondenza. I nomi FIELD
supportati dipendono dal fatto che la query sia una ricerca di risorse o una ricerca di criteri di Identity and Access Management (IAM). QUERY
è una frase, ma non può contenere caratteri jolly.
Corrispondenza parziale del testo: operatore dei due punti (:
)
FIELD:QUERY
Una query di esempio è: policy:amy.2020@gmail
.
Quando esegui una ricerca, QUERY
viene confrontato con il
valore dei metadati delle risorse specificati FIELD
. I campi della query e dei metadati degli asset vengono convertiti in una sequenza di parole (ovvero, token) per il confronto. A questo scopo:
Rimuovendo i caratteri speciali iniziali e finali e tokenizzando il valore di ricerca trattando i caratteri speciali come delimitatori. I caratteri speciali di tokenizzazione sono caratteri non alfanumerici
[a-zA-Z0-9]
, trattino basso[_]
o e commerciale[&]
.Esecuzione della piegatura delle maiuscole/minuscole Unicode in modo che le maiuscole/minuscole vengano ignorate.
Ecco alcuni esempi di tokenizzazione:
"amy-2020@GMAIL.com"
è tokenizzato in:[amy,2020,gmail,com]
"google.com/cloud"
è tokenizzato in:[google,com,cloud]
"Compute %Instance%"
è tokenizzato in:[compute,instance]
"$%^*-!"
è tokenizzato in:[]
""
è tokenizzato in:[]
"compute*storage"
è tokenizzato in:[compute,storage]
"compute&storage"
è tokenizzato in:[compute&storage]
"BOB_test@gmail.com"
è tokenizzato in:[bob_test,gmail,com]
"instance/_my_vm_"
è tokenizzato in:[instance,_my_vm_]
L'operatore has
(:
) verifica che ogni parola di QUERY
esista nel valore del campo dei metadati della risorsa. Controlla anche l'ordine e la
consecutività delle parole. Il valore FIELD
supportato può essere diverso, a seconda che si tratti di una ricerca di risorse o di un criterio IAM. QUERY
può essere una frase o
una combinazione di frasi.
Esempi
Ad esempio, un asset il cui campo policy
contiene il valore amy.2020@gmail.com
corrisponde alle seguenti query:
- Trova perché la frase è esattamente uguale al valore del campo.
policy=amy.2020@gmail.com
- Trova la corrispondenza perché i caratteri di punteggiatura vengono trattati come delimitatori e la query non fa distinzione tra maiuscole e minuscole.
policy:amy-2020@GMAIL.com
- Corrisponde perché le parole di una frase sono associate in ordine. Tieni presente che
"amy 2020 gmail"
è una frase; le parole devono essere abbinate in ordine e consecutive.
policy:"amy 2020 gmail"
- Corrisponde perché una combinazione di parole può apparire in qualsiasi ordine. Tieni presente che
(gmail 2020 amy)
è una combinazione; le parole hanno corrispondenze e non necessariamente in ordine.
policy:(gmail 2020 amy)
- Corrisponde perché le parole della frase vengono associate in ordine e le parole nella combinazione vengono visualizzate in qualsiasi ordine. Tieni presente che
"amy 2020"
è una frase e le parole devono essere abbinate in ordine e consecutive.(gmail "amy 2020")
è combinazione;gmail
e"amy 2020"
sono abbinati e non necessariamente in ordine.
policy:(gmail "amy 2020")
- Corrisponde perché
*
può essere utilizzato in una frase per indicare una corrispondenza prefissata.
policy:amy-20*
Un asset il cui campo policy
contiene il valore "amy.2020@gmail.com"
NON corrisponde alle seguenti query:
- Non corrisponde perché la frase è sensibile alle maiuscole. Utilizza invece l'operatore
has
(:
) per la corrispondenza senza distinzione tra maiuscole e minuscole.
policy=amy.2020@GMAIL.com
- Non corrisponde perché la frase corrisponde parzialmente al valore del campo. Utilizza
l'operatore
has
(:
) invece per la corrispondenza parziale.
policy=amy.2020@gmail
Corrispondenza numerica: operatori di confronto (=
, >
, >=
, <
, <=
)
FIELD=QUERY
FIELD>QUERY
FIELD>=QUERY
FIELD<QUERY
FIELD<=QUERY
Gli operatori di confronto verificano che il risultato del confronto tra
QUERY
e il valore dei metadati della risorsa
FIELD
sia vero.
I nomi supportati di FIELD
sono createTime
e updateTime
.
Per i campi del timestamp (createTime
e updateTime
), QUERY
potrebbe essere un numero intero con segno a 64 bit, che rappresenta un timestamp dell'epoca in secondi, o una stringa di data e ora in uno dei formati riportati di seguito (il fuso orario è UTC):
AAAA-MM-GG: 01-01-2021 (le virgolette sono facoltative)
"AAAA-MM-GGThh:mm:ss": "2021-01-01T00:00:00" (le virgolette sono obbligatorie)
Esempi
Ad esempio, un asset il cui campo createTime
ha il valore 1609459200
(timestamp del periodo 2021-01-01T00:00:00
) corrisponde alle seguenti query:
È uguale a
createTime=1609459200
createTime=2021-01-01
createTime="2021-01-01T00:00:00"
Maggiore di.
createTime>1500000000
createTime>2020-01-01
createTime>"2020-01-01T00:00:00"
Maggiore o uguale a.
createTime>=1609459200
createTime>=2021-01-01
createTime>="2021-01-01T00:00:00"
Meno di.
createTime<1700000000
createTime<2022-01-01
createTime<"2022-01-01T00:00:00"
Minore o uguale a.
createTime<=1609459200
createTime<=2021-01-01
createTime<="2021-01-01T00:00:00"
Frase
Una frase è formata da una o più parole racchiuse tra virgolette doppie ("
). Nelle
frasi, l'ordine delle parole è importante. Le parole della frase devono corrispondere
in ordine e consecutivamente. Tieni presente che per trovare più parole chiave senza
rispettare l'ordine, devi utilizzare la combinazione (ad esempio,
field:(word1 word2 word3)
).
Le seguenti espressioni sono le stesse:
policy:amy
policy:"amy"
policy:amy.2020@gmail.com
policy:"amy.2020@gmail.com"
name://cloudresourcemanager.googleapis.com/projects/projects/foo-bar
name:"//cloudresourcemanager.googleapis.com/projects/projects/foo-bar"
Le seguenti frasi devono essere racchiuse tra virgolette:
name:"my instance"
policy:"amy%2020@gmail.com"
description:"domain:gmail.com"
description:"hello \"world\""
description:"hello\\world"
Esempi: a frase
Restituisci asset il cui campo
policy
contiene la parolaamy
e la parola2020
in ordine e consecutivamente:policy:"amy 2020"
Se hai un asset il cui valore del campo
policy
è"amy.2020@gmail.com"
, la query precedente corrisponde.Se hai un asset il cui valore del campo
policy
è"2020.amy@gmail.com"
, la query precedente non corrisponde perché le parole non hanno corrispondenze in ordine.Se hai un asset il cui valore del campo
policy
è"amy.us.2020@gmail.com"
, la query precedente non corrisponde perché le parole non hanno corrispondenze consecutive.
Combinazione
Le frasi di ricerca possono essere combinate utilizzando AND
o OR
. Le parentesi sono utilizzate
per raggruppare le combinazioni.
Esempi: combinazione
Restituisce gli asset il cui campo
policy
contiene sia la parolaamy
che la parolajohn
, senza rispettare l'ordine.AND
è facoltativo in una combinazione. Tieni presente che per trovare più parole in ordine, devi utilizzare la frase (ad esempio,field:"word1 word2 word3"
).owner:(amy john)
Restituisci asset il cui campo
policy
contiene la parolaamy
o la parolajohn
.policy:(amy OR john)
Restituisce gli asset il cui campo
policy
contiene sia la parolaamy
sia la parolajohn
o contiene la parolabob
.policy:((amy john) OR bob)
Restituisce gli asset il cui campo
policy
contiene la parolaamy
e il campo parolajohn
oname
contiene la parolabob
.policy:(amy john) OR name:bob
Nega i filtri di ricerca
I filtri di ricerca possono essere annullati utilizzando l'operatore NOT
. Le parentesi sono supportate
ma non obbligatorie.
Esempi: negare i filtri di ricerca
Restituisci gli asset il cui campo
state
non contiene la parolaACTIVE
.NOT state:ACTIVE
Restituisci asset il cui campo
policy
non contiene né la parolaamy
né la parolajohn
.NOT policy:(amy OR john)
Restituisci gli asset il cui campo
networkTags
non contiene la parolainternal
oprivate
.NOT (networkTags:internal OR networkTags:private)
Jolly
È possibile utilizzare gli asterischi (*
) in una frase come carattere jolly. A seconda della sua posizione, può avere significati diversi.
Se si trova alla fine di una frase, ad esempio
"am 20*"
, è un indicatore di corrispondenza del prefisso del token. La query è equivalente a(am* 20*)
. Corrisponde al campo contenente un token che inizia con "am", ad esempio "am", e un token che inizia con "20", ad esempio "2021". L'ordine dei prefissi non è rilevante.Se l'intera frase contiene solo un elemento
*
, ad esempio"labels.env:*"
, esegue un controllo dell'esistenza. Controlla se esiste la chiave di etichetta specificata "env". Gli altri campi non sono supportati.Se si trova nel mezzo di una frase, ad esempio
"compute*storage"
, viene trattato come un delimitatore di tokenizzazione. La query è equivalente a "compute storage".Se si trova all'inizio e alla fine di una frase, ad esempio
"*compute storage*"
, viene considerato un delimitatore di tokenizzazione. La query è equivalente a "archiviazione calcolo".
Esempi: corrispondenza del prefisso del token
Restituisci asset il cui campo
policy
contiene una parola che inizia conam
:policy:am*
Restituisci gli asset il cui campo
policy
ha due parole con"amy"
e"20"
come prefissi:policy:"amy 20*" policy:"20 amy*"
Se hai un asset il cui valore del campo
policy
è"amy.2020@gmail.com"
, le query precedenti corrispondono entrambe. Dopo la tokenizzazione,"amy"
e"20"
sono prefissi. Tieni presente che la stringa di query"amy 20*"
è diversa da"amy 20"
. Il secondo richiede che20
sia un'intera parola diversa dal prefisso.
Esempio: esistenza della chiave di etichetta
Restituisci asset che uno dei cui labels
abbia "env" come chiave e abbia un qualsiasi valore (incluso il valore vuoto o nessun valore):
labels.env:*