Questa pagina spiega la procedura per filtrare i secret e le 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 segreto, utilizza uno dei seguenti metodi:
Console
-
Vai alla pagina Secret Manager nella console Google Cloud.
-
Nella pagina Secret Manager, fai clic sulla scheda Secret regionali.
-
Nella tabella Segreti regionali, fai clic nel campo 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:
- LOCATION: la località di Google Cloud del segreto
- FILTER: la stringa del filtro, ad esempio
name:asecret OR name:bsecret
. Gcloud CLI supporta anche le espressioni regolari, ad esempioname ~ "secret_ab.*"
.
Esegui il seguente comando:
Linux, macOS o Cloud Shell
gcloud secrets list --location=LOCATION --filter="FILTER"
Windows (PowerShell)
gcloud secrets list --location=LOCATION --filter="FILTER"
Windows (cmd.exe)
gcloud secrets list --location=LOCATION --filter="FILTER"
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION: la località di Google Cloud del segreto
- PROJECT_ID: l'ID progetto Google Cloud
- FILTER: la stringa del filtro. I filtri vengono specificati come parametro
filter
della stringa di query e devono essere con codifica 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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?filter=FILTER
Corpo JSON della richiesta:
{}
Per inviare la richiesta, scegli una delle seguenti 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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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\"" } ] }
Go
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Go e installare l'SDK Go di Secret Manager. Su Compute Engine o GKE, devi autenticarti con l'ambito cloud-platform.
Java
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Java e installare l'SDK Java di Secret Manager. Su Compute Engine o GKE, devi autenticarti con l'ambito cloud-platform.
Python
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Python e installare l'SDK Python di Secret Manager. Su Compute Engine o GKE, devi autenticarti con l'ambito cloud-platform.
Filtrare una versione del secret
Per filtrare una versione del secret:
-
Nella console Google Cloud, seleziona un segreto per accedere alle relative versioni, quindi utilizza l'opzione Filtra 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 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:* |
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 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, 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 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
come segue:
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
Sefilter
è impostato in una richiesta di elenco, la risposta non indica il numero totale di risultati (total_size=0
nella risposta).