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 versioni dei secret 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 pagina Secret Manager, fai clic sulla scheda Secret regionali. 
- 
    
    Nella tabella Segreti regionali, fai clic sul 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 Google Cloud posizione del secret.
- 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 --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 Google Cloud posizione del secret.
- PROJECT_ID: l' Google Cloud ID progetto.
- FILTER: la stringa di filtro. I filtri vengono specificati come parametro della stringa di query filtere devono essere codificati nell'URL. Ad esempio, il filtroname:asecret OR name:bsecretverrebbe 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 di queste opzioni:
curl
      Salva il corpo della richiesta in un file denominato request.json,
      ed esegui questo comando:
    
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 Google Cloud console, seleziona un secret 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 filterquando 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-01T01: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 secret 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).