Questa pagina spiega la procedura di filtro dei secret e delle versioni dei secret in Secret Manager. In ambienti con numerosi secret, il filtro consente di identificare rapidamente secret o versioni specifici senza scorrere manualmente l'intero elenco. Puoi filtrare in base a criteri come etichette, date di creazione o pattern specifici all'interno dei nomi dei secret, consentendo una gestione mirata di gruppi specifici di secret.
In Secret Manager, puoi filtrare i secret e le relative versioni utilizzando l'opzione Filtra nella console Google Cloud o specificando i criteri di filtro all'interno di una chiamata API. In
Google Cloud CLI, puoi filtrare i secret e le versioni dei secret includendo una stringa filter
quando elenchi i secret.
Filtrare i secret
Per filtrare un secret, utilizza uno dei seguenti metodi:
Console
-
Nella console Google Cloud , vai alla pagina Secret Manager.
-
Nella tabella Secrets (Secret), fai clic sul campo Filter (Filtro).
-
Scegli una proprietà filtro e il relativo valore, ad esempio
Location:asia-east1
.La tabella viene filtrata automaticamente in base ai valori inseriti. I risultati sono ordinati per nome in ordine crescente.
gcloud
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
- FILTER: la stringa di filtro, ad esempio
name:asecret OR name:bsecret
. gcloud CLI supporta anche le espressioni regolari, ad esempioname ~ "secret_ab.*"
.
Esegui questo comando:
Linux, macOS o Cloud Shell
gcloud secrets list --filter="FILTER"
Windows (PowerShell)
gcloud secrets list --filter="FILTER"
Windows (cmd.exe)
gcloud secrets list --filter="FILTER"
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID progetto Google Cloud
- FILTER: la stringa di filtro. I filtri vengono specificati come parametro della stringa di query
filter
e devono essere codificati nell'URL. Ad esempio, il filtroname:asecret OR name:bsecret
verrebbe codificato nell'URL comename%3Aasecret+OR+name%3Absecret
. Le espressioni regolari non sono supportate nell'API.
Metodo HTTP e URL:
GET https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets?filter=FILTER
Corpo JSON della richiesta:
{}
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets?filter=FILTER"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets?filter=FILTER" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{ "secrets": [ { "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID", "createTime": "2024-09-02T07:14:00.281541Z", "etag": "\"16211dd90b37e7\"" } ] }
Filtrare una versione del secret
Per filtrare una versione del secret:
-
Nella console Google Cloud , seleziona un secret per accedere alle relative versioni, quindi utilizza l'opzione Filtro nella tabella Versioni.
-
Se utilizzi Google Cloud CLI o l'API Secret Manager, includi una stringa
filter
quando elenchi le versioni dei secret.
Esempi di filtri
Caso d'uso | Filtro |
---|---|
Secret il cui nome contiene la sottostringa mysecret |
name:mysecret |
Secret con un'etichetta specifica | labels.environment=production |
Secret creati nell'intervallo di data/ora | 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:* |
Secret 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 che vengono filtrati.
Puoi utilizzare i seguenti operatori di espressione.
Operatore | Descrizione |
---|---|
= |
Uguaglianza. |
> |
Maggiore di. |
< |
Minore di. |
>= |
Maggiore o uguale a. |
<= |
Minore o uguale a. |
!= - NOT |
Disuguaglianza. I seguenti valori sono equivalenti:name!="topsecret" -name="topsecret" NOT name="topsecret"
|
: |
Contenimento. Si tratta di una corrispondenza di sottostringa che non distingue tra maiuscole e minuscole.
Ad esempio, |
AND |
AND logico.
Uno spazio equivale a |
OR |
OR logico. |
* |
Carattere jolly.
Può essere utilizzato come valore autonomo in cui |
In linea con l'API Cloud Search, le operazioni OR
vengono valutate prima delle operazioni AND
a meno che non vengano utilizzate le parentesi per definire esplicitamente un ordine diverso.
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 campo secondario, utilizza la sintassi con il punto. 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 segreti con l'etichetta color
impostata, utilizza un carattere jolly:
labels.color:*
Una stringa tra virgolette viene interpretata come un singolo valore anziché una sequenza di valori.
Campi filtro
Puoi applicare un filtro a qualsiasi campo dell'oggetto Secret
o SecretVersion
.
Metodo di elenco | Link ai campi filtrabili |
---|---|
projects.secrets.list
|
Campi secret |
projects.secrets.versions.list
|
Campi SecretVersion |
Conteggio totale dei risultati
Sefilter
è 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.