Memfilter daftar secret dan versi secret

Halaman ini menjelaskan proses pemfilteran secret dan versi secret di Secret Manager. Di lingkungan dengan banyak secret, pemfilteran membantu mengidentifikasi secret atau versi tertentu dengan cepat tanpa men-scroll seluruh daftar secara manual. Anda dapat memfilter berdasarkan kriteria seperti label, tanggal pembuatan, atau pola tertentu dalam nama secret, sehingga memungkinkan pengelolaan grup secret tertentu secara terfokus.

Di Secret Manager, Anda dapat memfilter secret dan versi secret menggunakan opsi Filter di konsol Google Cloud atau dengan menentukan kriteria filter dalam panggilan API. Di Google Cloud CLI, Anda dapat memfilter secret dan versi secret dengan menyertakan string filter saat mencantumkan secret.

Memfilter secret

Untuk memfilter secret, gunakan salah satu metode berikut:

Konsol

  1. Di konsol Google Cloud, buka halaman Secret Manager.

    Buka Secret Manager

  2. Di tabel Secrets, klik kolom Filter.

  3. Pilih properti filter dan nilai yang sesuai, misalnya Location:asia-east1.

    Tabel akan otomatis difilter berdasarkan nilai yang dimasukkan. Hasil diurutkan menurut nama dalam urutan menaik.

gcloud

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

  • FILTER: string filter, misalnya name:asecret OR name:bsecret. gcloud CLI juga mendukung ekspresi reguler, misalnya name ~ "secret_ab.*".

Jalankan perintah berikut:

Linux, macOS, atau Cloud Shell

gcloud secrets list --filter="FILTER"

Windows (PowerShell)

gcloud secrets list --filter="FILTER"

Windows (cmd.exe)

gcloud secrets list --filter="FILTER"

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Google Cloud project ID
  • FILTER: string filter. Filter ditentukan sebagai parameter string kueri filter dan harus dienkode URL. Misalnya, filter name:asecret OR name:bsecret akan dienkode ke URL sebagai name%3Aasecret+OR+name%3Absecret. Ekspresi reguler tidak didukung di API.

Metode HTTP dan URL:

GET https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets?filter=FILTER

Isi JSON permintaan:

{}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

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

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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

Anda akan melihat respons JSON seperti berikut:

{
  "secrets": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID",
      "createTime": "2024-09-02T07:14:00.281541Z",
      "etag": "\"16211dd90b37e7\""
    }
  ]
}

Memfilter versi secret

Untuk memfilter versi secret, lakukan hal berikut:

  • Di konsol Google Cloud, pilih secret untuk mengakses versinya, lalu gunakan opsi Filter di tabel Versions.

  • Jika Anda menggunakan Google Cloud CLI atau Secret Manager API, sertakan string filter saat mencantumkan versi secret.

Contoh filter

Kasus penggunaan Filter
Secret yang namanya berisi substring mysecret name:mysecret
Secret dengan label tertentu labels.environment=production
Secret yang dibuat dalam rentang tanggal/waktu create_time<2021-01-01T06:00:00Z AND create_time>2021-01-01T12:00:00Z
Secret dengan replikasi otomatis replication.automatic:*
Secret dengan replikasi yang dikelola pengguna, tetapi tidak disimpan di salah satu region yang ditentukan replication.user_managed.replicas.location:* AND NOT replication.user_managed.replicas.location:(us-central1 OR us-east1)
Secret yang dienkripsi dengan kunci CMEK replication.user_managed.replicas.customerManagedEncryption:*
Secret yang dienkripsi dengan kunci CMEK tertentu replication.user_managed.replicas.customerManagedEncryption.kmsKeyName=projects/p/locations/us-central1/keyRings/kr/cryptoKeys/my-cmek-key
Secret tanpa periode rotasi NOT rotation.next_rotation_time:*
Secret dengan periode rotasi > 30 hari rotation.rotation_period>259200s
Secret dengan masa berlaku yang ditetapkan expire_time:*
Secret yang masa berlakunya habis sebelum tanggal tertentu expire_time<2021-07-31
Versi yang diaktifkan atau dinonaktifkan state:(ENABLED OR DISABLED)
Versi yang dihancurkan, dihancurkan setelah tanggal state:DESTROYED AND destroy_time>2021-01-01

Filter sintaksis

Sintaksis filter terdiri dari ekspresi pada satu atau beberapa kolom objek yang difilter.

Anda dapat menggunakan operator ekspresi berikut.

Operator Deskripsi
= Kesetaraan.
> Lebih besar dari.
< Kurang dari.
>= Lebih dari atau sama dengan.
<= Kurang dari atau sama dengan.
!=
-
NOT
Ketidaksetaraan. Berikut ini setara:
name!="topsecret"
-name="topsecret"
NOT name="topsecret"
:

Pembatasan. Ini adalah pencocokan substring yang tidak peka huruf besar/kecil.

Misalnya, name:"myapp" memfilter resource yang berisi myapp (tidak peka huruf besar/kecil) dalam nama resource.

AND

Logika AND.

Spasi setara dengan AND, sehingga hal berikut setara:
name:"myapp" AND name:"secret1"
name:"myapp" name:"secret1"

OR Logika OR.
*

Karakter pengganti.

Dapat digunakan sebagai mandiri dengan field:* menunjukkan bahwa field ditetapkan.

Sesuai dengan Cloud Search API, operasi OR dievaluasi sebelum operasi AND, kecuali jika tanda kurung digunakan untuk menentukan urutan yang berbeda secara eksplisit.

Saat memfilter nilai time, encode waktu sebagai string dalam format RFC 3399, seperti 2020-10-15T01:30:15Z.

Saat mengakses subkolom, gunakan sintaksis titik. Misalnya, resource Secret dapat menyertakan kolom labels yang nilainya adalah map nilai kunci. Jika label color digunakan, Anda dapat memfilter hasil Secret di subkolom labels.color sebagai berikut:

labels.color=red

Jika Anda hanya ingin mencantumkan secret dengan label color yang ditetapkan, gunakan karakter pengganti:

labels.color:*

String yang diapit tanda kutip ditafsirkan sebagai satu nilai, bukan urutan nilai.

Kolom filter

Anda dapat memfilter kolom apa pun dari objek Secret atau SecretVersion.

Metode daftar Menautkan ke kolom yang dapat difilter
projects.secrets.list Kolom secret
projects.secrets.versions.list Kolom SecretVersion

Total jumlah hasil

Jika filter ditetapkan dalam permintaan daftar, respons tidak menunjukkan total jumlah hasil (total_size=0 dalam respons).

Langkah berikutnya