Esta página explica o processo de filtragem de secrets e versões de secrets no Secret Manager. Em ambientes com muitos secrets, a filtragem ajuda a identificar rapidamente secrets ou versões específicas sem rolar manualmente toda a lista. É possível filtrar com base em critérios como rótulos, datas de criação ou padrões específicos em nomes de secrets, permitindo o gerenciamento focado de grupos específicos de secrets.
No Secret Manager, é possível filtrar secrets e versões de secrets usando a opção Filtrar
no console Google Cloud ou especificando critérios de filtro em uma chamada de API. Na
Google Cloud CLI, é possível filtrar secrets e versões de secret incluindo uma string filter
ao listar secrets.
Filtrar secrets
Para filtrar um secret, use um dos seguintes métodos:
Console
-
No console Google Cloud , acesse a página Secret Manager.
-
Na tabela Secrets, clique no campo Filter.
-
Escolha uma propriedade de filtro e o valor correspondente, por exemplo,
Location:asia-east1.A tabela é filtrada automaticamente com base nos valores inseridos. Os resultados são classificados por nome em ordem crescente.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- FILTER: a string de filtro, por exemplo,
name:asecret OR name:bsecret. A CLI gcloud também é compatível com expressões regulares, por exemplo,name ~ "secret_ab.*".
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud secrets list --filter="FILTER"
Windows (PowerShell)
gcloud secrets list --filter="FILTER"
Windows (cmd.exe)
gcloud secrets list --filter="FILTER"
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto Google Cloud .
- FILTER: a string de filtro. Os filtros são especificados como o parâmetro querystring
filtere precisam ser codificados para URL. Por exemplo, o filtroname:asecret OR name:bsecretseria codificado como URL comoname%3Aasecret+OR+name%3Absecret. As expressões regulares não são compatíveis com a API.
Método HTTP e URL:
GET https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets?filter=FILTER
Corpo JSON da solicitação:
{}
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando abaixo:
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
Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:
$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
Você receberá uma resposta JSON semelhante a esta:
{
"secrets": [
{
"name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID",
"createTime": "2024-09-02T07:14:00.281541Z",
"etag": "\"16211dd90b37e7\""
}
]
}
Filtrar uma versão do secret
Para filtrar uma versão secreta, faça o seguinte:
-
No console Google Cloud , selecione um secret para acessar as versões dele e use a opção Filtrar na tabela Versões.
-
Se você estiver usando a Google Cloud CLI ou a API Secret Manager, inclua uma string
filterao listar as versões do secret.
Exemplos de filtros
| Caso de uso | Filtro |
|---|---|
Os secrets com nome que contém a substring mysecret |
name:mysecret |
| Secrets com um rótulo específico | labels.environment=production |
| Secrets criados dentro do intervalo de data/hora | create_time<2021-01-01T06:00:00Z AND create_time>2021-01-01T01:00:00Z |
| Secrets com replicação automática | replication.automatic:* |
| Secrets com replicação gerenciada pelo usuário, mas não armazenados em nenhuma das regiões informadas | replication.user_managed.replicas.location:* AND NOT replication.user_managed.replicas.location:(us-central1 OR us-east1) |
| Secrets criptografados com chaves CMEK | replication.user_managed.replicas.customerManagedEncryption:* |
| Secrets criptografados com uma chave CMEK específica | replication.user_managed.replicas.customerManagedEncryption.kmsKeyName=projects/p/locations/us-central1/keyRings/kr/cryptoKeys/my-cmek-key |
| Chaves secretas sem um período de rotação | NOT rotation.next_rotation_time:* |
| Secrets com período de rotação > 30d | rotation.rotation_period>259200s |
| Secrets com expiração definida | expire_time:* |
| Os secrets expiram antes de uma data. | expire_time<2021-07-31 |
| Versões ativadas ou desativadas | state:(ENABLED OR DISABLED) |
| Versões destruídas, destruídas após a data | state:DESTROYED AND destroy_time>2021-01-01 |
Sintaxe do filtro
A sintaxe do filtro consiste em uma expressão em um ou mais campos dos objetos que estão sendo filtrados.
Você pode usar os seguintes operadores de expressão.
| Operador | Descrição |
|---|---|
= |
Igual a |
> |
Maior que |
< |
Menor que |
>= |
Maior que ou igual a |
<= |
Menor que ou igual a |
!=-NOT |
Diferente de Os seguintes são equivalentes:name!="topsecret"-name="topsecret"NOT name="topsecret"
|
: |
Contenção. Essa é uma correspondência de substring que não diferencia maiúsculas de minúsculas.
Por exemplo, |
AND |
Lógico AND
Um espaço é equivalente a |
OR |
"OU" lógico. |
* |
Curinga.
Pode ser usada como autônoma, em que |
Assim como na API Cloud Search, as operações OR são avaliadas antes das operações AND, a menos que parênteses sejam usados para definir explicitamente uma ordem diferente.
Ao filtrar valores time, codifique a hora como uma string no formato RFC 3399, como 2020-10-15T01:30:15Z.
Ao acessar um subcampo, use a sintaxe de ponto. Por exemplo, o recurso Secret pode incluir o campo labels, cujo valor é uma chave-valor map.
Se um rótulo color estiver em uso, será possível filtrar os resultados de Secret no subcampo labels.color da seguinte maneira:
labels.color=red
Para listar apenas secrets com o rótulo color definido, use um caractere curinga:
labels.color:*
Uma string entre aspas é interpretada como um valor único, e não como uma sequência de valores.
Filtrar campos
É possível filtrar por qualquer campo de objeto Secret ou SecretVersion.
| Método de lista | Link para campos que aceitam filtros |
|---|---|
projects.secrets.list
|
Campos secretos |
projects.secrets.versions.list
|
Campos SecretVersion |
Contagem total de resultados
Sefilter estiver definido em uma solicitação de lista, a resposta não indicará a contagem total
de resultados (total_size=0 na resposta).
A seguir
- Saiba como editar secrets.
- Saiba como definir uma data de validade para um secret.