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
-
Buka halaman Secret Manager di konsol Google Cloud.
-
Di halaman Secret Manager, klik tab Regional secrets.
-
Di tabel Regional secret, klik kolom Filter.
-
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:
- LOCATION: Lokasi secret Google Cloud
- FILTER: string filter, misalnya
name:asecret OR name:bsecret
. gcloud CLI juga mendukung ekspresi reguler, misalnyaname ~ "secret_ab.*"
.
Jalankan perintah berikut:
Linux, macOS, atau 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
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION: Lokasi secret Google Cloud
- PROJECT_ID: project ID Google Cloud
- FILTER: string filter. Filter ditentukan sebagai parameter string kueri
filter
dan harus dienkode URL. Misalnya, filtername:asecret OR name:bsecret
akan dienkode ke URL sebagainame%3Aasecret+OR+name%3Absecret
. Ekspresi reguler tidak didukung di API.
Metode HTTP dan URL:
GET https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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\"" } ] }
Go
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Go terlebih dahulu dan instal Secret Manager Go SDK. Di Compute Engine atau GKE, Anda harus melakukan autentikasi dengan cakupan cloud-platform.
Java
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Java terlebih dahulu dan instal Secret Manager Java SDK. Di Compute Engine atau GKE, Anda harus melakukan autentikasi dengan cakupan cloud-platform.
Python
Untuk menjalankan kode ini, pertama-tama siapkan lingkungan pengembangan Python dan instal Secret Manager Python SDK. Di Compute Engine atau GKE, Anda harus melakukan autentikasi dengan cakupan cloud-platform.
Memfilter versi secret
Untuk memfilter versi secret, lakukan tindakan 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, |
AND |
Logika AND.
Spasi setara dengan |
OR |
Logika OR. |
* |
Karakter pengganti.
Dapat digunakan sebagai mandiri dengan |
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
Jikafilter
ditetapkan dalam permintaan daftar, respons tidak menunjukkan jumlah hasil
total (total_size=0
dalam respons).