Este tópico aborda a compatibilidade com a filtragem nas seguintes chamadas de listagem de recursos no Gerenciador de secrets:
- projects.secrets.list (em inglês)
- projects.secrets.versions.list (em inglês)
Uso
A intent de filtragem em uma operação list
é indicada pela presença de filter
.
string no corpo da solicitação da lista. A API usa uma linguagem simples para se referir aos campos no objeto que está sendo filtrado.
Nos exemplos a seguir, vamos supor que um subconjunto de secrets contenha "secreto" ou "bsecret", substring. Especifique um filtro que corresponda a esses secrets. Os resultados são classificados por nome em ordem crescente.
gcloud
Os filtros são especificados usando a sinalização --filter
. Se o filtro contiver um espaço ou outro caractere especial, você precisará colocá-lo entre aspas.
gcloud secrets list --filter="name:asecret OR name:bsecret"
A Google Cloud CLI também oferece suporte a expressões regulares (regex), por exemplo:
gcloud secrets list --filter='name ~ "secret_ab.*"'
API
Esses exemplos usam curl para demonstrar o uso da API. É possível gerar tokens de acesso com o gcloud auth print-access-token. No Compute Engine ou no GKE, você precisa fazer a autenticação com o escopo do cloud-platform.
Os filtros são especificados como o parâmetro querystring filter
e precisam ser codificados para URL. Por exemplo, o filtro name:asecret OR name:bsecret
seria codificado como URL como name%3Aasecret+OR+name%3Absecret
.
curl "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets?filter=FILTER" \
--request "GET" \
--header "Authorization: Bearer ACCESS_TOKEN"
A API não oferece suporte a regex.
Exemplos
Cenário | Filter |
---|---|
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 maneira consistente com a API Cloud Search, OR
tem precedência sobre AND
por padrão.
Parênteses podem ser usados para indicar a prioridade da operação desejada.
Ao filtrar valores time
, codifique o horário como uma string no
RFC 3399 (em inglês)
em um formato apropriado, 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
Se filter
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 a data de validade de um secret.