Questo argomento illustra il supporto per l'applicazione di filtri nelle seguenti chiamate di elencazione delle risorse in Secret Manager:
Utilizzo
L'intent di filtro in un'operazione list
è indicato dalla presenza del campo di stringa filter
nel corpo della richiesta dell'elenco. L'API utilizza un linguaggio semplice per fare riferimento ai campi dell'oggetto sottoposto a filtro.
Nei seguenti esempi, supponiamo che un sottoinsieme di secret contenga la sottostringa "asecret" o "bsecret". Specifica un filtro che corrisponda a questi secret. I risultati sono ordinati per nome in ordine crescente.
gcloud
I filtri vengono specificati utilizzando il flag --filter
. Se il filtro contiene uno spazio o un altro carattere speciale, devi racchiuderlo tra virgolette.
gcloud secrets list --filter="name:asecret OR name:bsecret"
Google Cloud CLI supporta anche le espressioni regolari (regex), ad esempio:
gcloud secrets list --filter='name ~ "secret_ab.*"'
API
Questi esempi utilizzano curl per dimostrare l'utilizzo dell'API. Puoi generare token di accesso con gcloud auth print-access-token. Su Compute Engine o GKE, devi autenticarti con l'ambito cloud-platform.
I filtri vengono specificati come parametro filter
querystring e devono essere codificati in URL. Ad esempio, il filtro name:asecret OR name:bsecret
viene codificato per l'URL come name%3Aasecret+OR+name%3Absecret
.
curl "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets?filter=FILTER" \
--request "GET" \
--header "Authorization: Bearer ACCESS_TOKEN"
Le espressioni regolari non sono supportate nell'API.
Esempi
Scenario | Filtro |
---|---|
Secret il cui nome contiene la sottostringa "mysecret" |
name:mysecret |
Secret con un'etichetta specifica | labels.environment=production |
Secret creati nell'intervallo di date/ore | create_time<2021-01-01T06:00:00Z AND create_time>2021-01-01T12:00:00Z |
Secret con replica automatica | replication.automatic:* |
Secret con replica gestita dall'utente, ma non archiviati in nessuna delle regioni specificate | replication.user_managed.replicas.location:* AND NOT replication.user_managed.replicas.location:(us-central1 OR us-east1) |
Secret criptati con chiavi CMEK | replication.user_managed.replicas.customerManagedEncryption:* |
Segreti criptati con una chiave CMEK specifica | replication.user_managed.replicas.customerManagedEncryption.kmsKeyName=projects/p/locations/us-central1/keyRings/kr/cryptoKeys/my-cmek-key |
Secret senza un periodo di rotazione | NOT rotation.next_rotation_time:* |
Secret con un periodo di rotazione > 30 giorni | rotation.rotation_period>259200s |
Secret con scadenza impostata | expire_time:* |
Segreti che scadono prima di una data | expire_time<2021-07-31 |
Versioni attivate o disattivate | state:(ENABLED OR DISABLED) |
Versioni eliminate, eliminate dopo la data | state:DESTROYED AND destroy_time>2021-01-01 |
Sintassi filtro
La sintassi del filtro è costituita da un'espressione su uno o più campi degli oggetti sottoposti a filtri.
Puoi utilizzare i seguenti operatori di espressione.
Operatore | Descrizione |
---|---|
= |
Uguaglianza. |
> |
Maggiore di. |
< |
Minore di. |
>= |
Maggiore o uguale a. |
<= |
Minore o uguale a. |
!= - NOT |
Diseguaglianza. I seguenti valori sono equivalenti:name!="topsecret" -name="topsecret" NOT name="topsecret"
|
: |
Contenimento. Si tratta di una corrispondenza di sottostringa senza distinzione tra maiuscole e minuscole.
Ad esempio, |
AND |
Operatore AND logico.
Uno spazio è equivalente a |
OR |
OR logico. |
* |
Carattere jolly.
Può essere utilizzato come autonomo se |
In linea con l'API Cloud Search, OR
ha la precedenza su AND
per impostazione predefinita.
Le parentesi possono essere utilizzate per indicare la priorità dell'operazione desiderata.
Quando filtri in base ai valori time
, codifica l'ora come stringa nel formato
RFC 3399, ad esempio 2020-10-15T01:30:15Z
.
Quando accedi a un sottocampo, utilizza la sintassi dei punti. Ad esempio, la risorsa
Secret
può includere il campo labels
il cui valore è una coppia chiave-valore map
.
Se viene utilizzata un'etichetta color
, puoi filtrare i risultati Secret
nel sottocampo
labels.color
nel seguente modo:
labels.color=red
Se vuoi elencare solo i secret con l'etichetta color
impostata, utilizza un carattere jolly:
labels.color:*
Una stringa tra virgolette viene interpretata come un singolo valore anziché come una sequenza di valori.
Campi filtro
Puoi filtrare in base a qualsiasi campo dell'oggetto Secret
o SecretVersion
.
Metodo di elenco | Link ai campi filtrabili |
---|---|
projects.secrets.list
|
Campi segreti |
projects.secrets.versions.list
|
Campi SecretVersion |
Conteggio dei risultati totali
Se filter
è impostato in una richiesta di elenco, la risposta non indica il numero totale di risultati (total_size=0
nella risposta).
Passaggi successivi
- Scopri come modificare i secret.
- Scopri come impostare una data di scadenza per un secret.