Esta página explica o processo de filtragem de secrets e versões de secrets no Secret Manager. Em ambientes com vários secrets, a filtragem ajuda a identificar rapidamente secrets ou versões específicos sem rolar manualmente a lista inteira. É possível filtrar com base em critérios como rótulos, datas de criação ou padrões específicos em nomes de segredos, permitindo o gerenciamento focado de grupos específicos de segredos.
No Secret Manager, é possível filtrar segredos e versões de segredos usando a opção Filtrar
no console do Google Cloud ou especificando critérios de filtro em uma chamada de API. Na Google Cloud CLI, é possível filtrar segredos e versões de segredos incluindo uma string filter
ao listar segredos.
Filtrar secrets
Para filtrar um secret, use um dos seguintes métodos:
Console
-
Acesse a página do Secret Manager no console do Google Cloud:
-
Na página Secret Manager, clique na guia Secrets regionais.
-
Na tabela Chaves secretas regionais, clique no campo Filtro.
-
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:
- LOCATION: o local do Google Cloud do segredo
- FILTER: a string de filtro, por exemplo,
name:asecret OR name:bsecret
. A CLI gcloud também oferece suporte a expressões regulares, por exemplo,name ~ "secret_ab.*"
.
Execute o seguinte comando:
Linux, macOS ou 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 os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION: o local do Google Cloud do segredo
- PROJECT_ID: o ID do projeto do Google Cloud
- FILTER: a string de filtro. Os filtros são especificados como o parâmetro de querystring
filter
e precisam ser codificados para URL. Por exemplo, o filtroname:asecret OR name:bsecret
seria 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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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 a seguir:
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
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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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\"" } ] }
Go
Para executar esse código, primeiro configure um ambiente de desenvolvimento do Go e instale o SDK do Go do Secret Manager. No Compute Engine ou no GKE, você precisa fazer a autenticação com o escopo do cloud-platform.
Java
Para executar esse código, primeiro configure um ambiente de desenvolvimento do Java e instale o SDK do Java do Secret Manager. No Compute Engine ou no GKE, você precisa fazer a autenticação com o escopo do cloud-platform.
Python
Para executar esse código, primeiro configure um ambiente de desenvolvimento do Python e instale o SDK do Python do Secret Manager. No Compute Engine ou no GKE, você precisa fazer a autenticação com o escopo do cloud-platform.
Filtrar uma versão do secret
Para filtrar uma versão secreta, faça o seguinte:
-
No console do Google Cloud, selecione um segredo para acessar as versões dele e use a opção Filtro na tabela Versões.
-
Se você estiver usando a Google Cloud CLI ou a API Secret Manager, inclua uma string
filter
ao listar versões de segredos.
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-01T12: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 |
De acordo com a 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
for usado, 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).