En esta página, se explica el proceso para filtrar secretos y versiones de secretos en Secret Manager. En entornos con numerosos secretos, el filtrado ayuda a identificar rápidamente secretos o versiones específicos sin tener que desplazarse manualmente por toda la lista. Puedes filtrar según criterios como etiquetas, fechas de creación o patrones específicos dentro de los nombres de los secretos, lo que permite una administración enfocada de grupos específicos de secretos.
En Secret Manager, puedes filtrar secretos y versiones de secretos con la opción Filter en la consola de Google Cloud o especificando criterios de filtro en una llamada a la API. En Google Cloud CLI, puedes filtrar secretos y versiones de secretos si incluyes una cadena de filter cuando enumeras los secretos.
Cómo filtrar secretos
Para filtrar un secreto, usa uno de los siguientes métodos:
Console
-
En la consola de Google Cloud , ve a la página Secret Manager.
-
En la página de Secret Manager, haz clic en la pestaña Secretos regionales.
-
En la tabla Secretos regionales, haz clic en el campo Filtro.
-
Elige una propiedad de filtro y su valor correspondiente, por ejemplo,
Location:asia-east1.La tabla se filtra automáticamente según los valores ingresados. Los resultados se ordenan por nombre en orden ascendente.
gcloud
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
- LOCATION: Es la Google Cloud ubicación del secreto.
- FILTER: Es la cadena de filtro, por ejemplo,
name:asecret OR name:bsecret. Gcloud CLI también admite expresiones regulares, por ejemplo,name ~ "secret_ab.*".
Ejecuta el siguiente 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
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- LOCATION: Es la Google Cloud ubicación del secreto.
- PROJECT_ID: El ID del proyecto de Google Cloud .
- FILTER: Es la cadena de filtro. Los filtros se especifican como el parámetro de cadena de consulta
filtery se deben codificar como URL. Por ejemplo, el filtroname:asecret OR name:bsecretse codificaría como URL comoname%3Aasecret+OR+name%3Absecret. Las expresiones regulares no se admiten en la API.
Método HTTP y URL:
GET https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?filter=FILTER
Cuerpo JSON de la solicitud:
{}
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente 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
Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:
$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
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{
"secrets": [
{
"name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID",
"createTime": "2024-09-02T07:14:00.281541Z",
"etag": "\"16211dd90b37e7\""
}
]
}
Go
Para ejecutar este código, primero configura un entorno de desarrollo de Go e instala el SDK de Go para Secret Manager. En Compute Engine o GKE, debes autenticarte con el permiso cloud-platform.
Java
Para ejecutar este código, primero configura un entorno de desarrollo de Java e instala el SDK de Java para Secret Manager. En Compute Engine o GKE, debes autenticarte con el permiso cloud-platform.
Python
Para ejecutar este código, primero configura un entorno de desarrollo de Python e instala el SDK de Python para Secret Manager. En Compute Engine o GKE, debes autenticarte con el permiso cloud-platform.
Filtra una versión del secreto
Para filtrar una versión de un secreto, haz lo siguiente:
-
En la consola de Google Cloud , selecciona un secreto para acceder a sus versiones y, luego, usa la opción Filtro en la tabla Versiones.
-
Si usas Google Cloud CLI o la API de Secret Manager, incluye una cadena de
filtercuando enumeres las versiones de Secret.
Ejemplos de filtros
| Caso de uso | Filtro |
|---|---|
Secretos cuyo nombre contiene la substring mysecret |
name:mysecret |
| Secretos con una etiqueta específica | labels.environment=production |
| Secretos creados en un intervalo de tiempo o una fecha | create_time<2021-01-01T06:00:00Z AND create_time>2021-01-01T01:00:00Z |
| Secretos con replicación automática | replication.automatic:* |
| Secretos con replicación administrada por el usuario, pero no almacenados en ninguna de las regiones determinadas | replication.user_managed.replicas.location:* AND NOT replication.user_managed.replicas.location:(us-central1 OR us-east1) |
| Secretos encriptados con claves CMEK | replication.user_managed.replicas.customerManagedEncryption:* |
| Secretos encriptados con una clave CMEK específica | replication.user_managed.replicas.customerManagedEncryption.kmsKeyName=projects/p/locations/us-central1/keyRings/kr/cryptoKeys/my-cmek-key |
| Secretos sin un período de rotación | NOT rotation.next_rotation_time:* |
| Secretos con un período de rotación > 30d | rotation.rotation_period>259200s |
| Secretos con vencimiento establecido | expire_time:* |
| Secretos que vencen antes de una fecha | expire_time<2021-07-31 |
| Versiones que están habilitadas o inhabilitadas | state:(ENABLED OR DISABLED) |
| Versiones destruidas, destruidas después de la fecha | state:DESTROYED AND destroy_time>2021-01-01 |
Sintaxis de filtro
La sintaxis de filtro consiste en una expresión de uno o más campos del objeto que se filtra.
Puedes usar los siguientes operadores de expresión.
| Operador | Descripción |
|---|---|
= |
Igualdad |
> |
Superior a |
< |
Inferior a |
>= |
Superior o igual a |
<= |
Inferior o igual a |
!=-NOT |
Desigualdad Los siguientes son equivalentes:name!="topsecret"-name="topsecret"NOT name="topsecret"
|
: |
Contención. Esta es una coincidencia de substring con distinción entre mayúsculas y minúsculas.
Por ejemplo, |
AND |
AND lógico.
Un espacio es equivalente a |
OR |
Lógica OR. |
* |
Comodín.
Se puede usar como un archivo independiente en el que |
Al igual que con la API de Cloud Search, las operaciones de OR se evalúan antes que las de AND, a menos que se usen paréntesis para definir explícitamente un orden diferente.
Cuando filtras valores time, codifica la hora como una string en el formato RFC 3399, como 2020-10-15T01:30:15Z.
Cuando accedas a un subcampo, usa la sintaxis de punto. Por ejemplo, el recurso Secret puede incluir el campo labels cuyo valor es un par clave-valor map.
Si se usa una etiqueta color, puedes filtrar los resultados de Secret en el subcampo labels.color de la siguiente manera:
labels.color=red
Si deseas enumerar solo los secretos con el conjunto de etiquetas color, usa un comodín:
labels.color:*
Una string entre comillas se interpreta como un valor único en lugar de como una secuencia de valores.
Filtra campos
Puedes filtrar en cualquier campo de objeto Secret o SecretVersion.
| Método de lista | Vínculo a los campos filtrables |
|---|---|
projects.secrets.list
|
Campos secretos |
projects.secrets.versions.list
|
Campos SecretVersion |
Recuento total de resultados
Sifilter se establece en una solicitud de lista, la respuesta no indica el recuento total de resultados (total_size=0 en la respuesta).