Topik ini menunjukkan cara menetapkan tanggal habis masa berlaku untuk secret di Secret Manager. Topik ini juga menjelaskan cara memperbarui atau menghapus tanggal habis masa berlaku yang ditetapkan untuk secret.
Ringkasan
Secara default, secret yang disimpan di Secret Manager akan ada hingga pengguna menghapusnya. Jika secret hanya boleh disimpan selama jangka waktu tertentu yang diketahui, Anda dapat melampirkan waktu habis masa berlaku ke secret tersebut. Pada waktu habis masa berlaku yang dikonfigurasi, secret akan otomatis dihapus.
Jika Anda tidak memiliki persyaratan bahwa secret harus dihapus, pertimbangkan untuk menggunakan Kondisi IAM atau status versi Dinonaktifkan untuk mencabut akses dengan cara yang aman.
Anda dapat memasukkan waktu habis masa berlaku sebagai stempel waktu atau durasi. Saat metadata rahasia diambil, masa berlakunya selalu ditampilkan sebagai stempel waktu, terlepas dari cara pemberiannya.
Masa berlaku dapat ditambahkan, diperbarui, atau dihapus dari secret kapan saja.
Batasan
Masa berlaku secret hanya tersedia di Secret Manager
v1
API dan alat command line gcloud.Masa berlaku secret tidak boleh kurang dari 60 detik atau lebih dari 100 tahun.
Menggunakan secret yang akan habis masa berlakunya dengan aman
Jika masa berlaku secret di Secret Manager berakhir, secret tersebut akan dihapus secara irreversibel. Cara terbaik untuk mendeteksi secret yang akan segera berakhir masa berlakunya adalah dengan menggunakan Kondisi IAM untuk menghapus izin dari akun yang menggunakan secret sebelum masa berlakunya berakhir.
Untuk melakukannya, saat memberikan izin pada secret, lampirkan kondisi berbasis waktu ke binding. Masa berlaku binding akan berakhir setelah secret diperkirakan tidak akan digunakan lagi, tetapi cukup awal sehingga izin yang dihapus akan diketahui sebelum secret berakhir masa berlakunya. Jika alur kerja yang dianggap tidak lagi menggunakan jeda rahasia setelah izin dicabut, izin dapat ditambahkan kembali untuk mitigasi yang cepat. Jika diperlukan waktu lebih lama, masa berlaku secret dapat diperbarui atau bahkan dihapus.
Misalnya, akun layanan diharapkan mengakses secret setiap hari selama periode 30 hari. Masa berlaku secret kemudian dapat ditetapkan ke 60 hari sejak pembuatan dan binding IAM bersyarat dapat digunakan untuk memberikan peran Secret Accessor ke akun layanan selama 45 hari. Jika akun layanan mencoba mengakses secret setelah 45 hari, error Izin Ditolak akan ditampilkan dan alur kerja yang memerlukan secret akan rusak. Kemudian, administrator dapat memberikan kembali peran Secret Accessor ke akun layanan untuk melakukan mitigasi dengan cepat selama penyelidikan, karena secret itu sendiri tidak akan dihapus selama 15 hari lagi.
Selain itu, Anda dapat membuat pemberitahuan berdasarkan log yang memperingatkan secret yang masa berlakunya akan segera berakhir. Lihat Logging masa berlaku untuk mengetahui informasi selengkapnya.
Menentukan stempel waktu dan durasi
Nilai stempel waktu harus diformat sebagai RFC 3339, misalnya
2100-01-01T09:00:00-05:00
.Nilai durasi harus diformat sebagai jumlah detik termasuk akhiran "dtk", misalnya
86400s
.
Membuat secret yang akan berakhir masa berlakunya
Buat secret yang akan berakhir masa berlakunya menggunakan stempel waktu:
gcloud
Untuk menggunakan Secret Manager di command line, pertama-tama Instal atau upgrade ke Google Cloud CLI versi 378.0.0 atau yang lebih tinggi. Di Compute Engine atau GKE, Anda harus melakukan autentikasi dengan cakupan cloud-platform.
gcloud secrets create "SECRET_ID" \
--replication-policy "automatic" \
--expire-time "TIMESTAMP"
API
Contoh ini menggunakan curl untuk menunjukkan penggunaan API. Anda dapat membuat token akses dengan gcloud auth print-access-token. Di Compute Engine atau GKE, Anda harus melakukan autentikasi dengan cakupan cloud-platform.
curl "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets?secretId=SECRET_ID" \
--request "POST" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--data-binary @- <<EOF
{
"replication": {"automatic": {}},
"expire_time": "TIMESTAMP"
}
EOF
Buat secret yang akan berakhir masa berlakunya menggunakan durasi:
gcloud
Untuk menggunakan Secret Manager di command line, pertama-tama Instal atau upgrade ke Google Cloud CLI versi 378.0.0 atau yang lebih tinggi. Di Compute Engine atau GKE, Anda harus melakukan autentikasi dengan cakupan cloud-platform.
gcloud secrets create "SECRET_ID" \
--replication-policy "automatic" \
--ttl "DURATION"
API
Contoh ini menggunakan curl untuk menunjukkan penggunaan API. Anda dapat membuat token akses dengan gcloud auth print-access-token. Di Compute Engine atau GKE, Anda harus melakukan autentikasi dengan cakupan cloud-platform.
curl "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets?secretId=SECRET_ID" \
--request "POST" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--data-binary @- <<EOF
{
"replication": {"automatic": {}},
"ttl": "DURATION"
}
EOF
Memperbarui masa berlaku secret
Setiap secret dapat memiliki masa berlaku baru yang diterapkan, terlepas dari apakah secret tersebut sudah memilikinya atau belum. Setiap secret hanya dapat memiliki satu masa berlaku yang dikonfigurasi dalam satu waktu. Memperbarui masa berlaku secret yang sudah memiliki masa berlaku akan menimpa masa berlaku yang ada.
Perbarui masa berlaku secret menggunakan stempel waktu:
gcloud
Untuk menggunakan Secret Manager di command line, pertama-tama Instal atau upgrade ke Google Cloud CLI versi 378.0.0 atau yang lebih tinggi. Di Compute Engine atau GKE, Anda harus melakukan autentikasi dengan cakupan cloud-platform.
gcloud secrets update "SECRET_ID" \
--expire-time "TIMESTAMP"
API
Contoh ini menggunakan curl untuk menunjukkan penggunaan API. Anda dapat membuat token akses dengan gcloud auth print-access-token. Di Compute Engine atau GKE, Anda harus melakukan autentikasi dengan cakupan cloud-platform.
curl "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=expire_time" \
--request "PATCH" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--data-binary @- <<EOF
{
"expire_time": "TIMESTAMP"
}
EOF
Perbarui masa berlaku secret menggunakan durasi:
gcloud
Untuk menggunakan Secret Manager di command line, pertama-tama Instal atau upgrade ke Google Cloud CLI versi 378.0.0 atau yang lebih tinggi. Di Compute Engine atau GKE, Anda harus melakukan autentikasi dengan cakupan cloud-platform.
gcloud secrets update "SECRET_ID" \
--ttl "DURATION"
API
Contoh ini menggunakan curl untuk menunjukkan penggunaan API. Anda dapat membuat token akses dengan gcloud auth print-access-token. Di Compute Engine atau GKE, Anda harus melakukan autentikasi dengan cakupan cloud-platform.
curl "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=ttl" \
--request "PATCH" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--data-binary @- <<EOF
{
"ttl": "DURATION"
}
EOF
Menghapus masa berlaku secret
gcloud
Untuk menggunakan Secret Manager di command line, pertama-tama Instal atau upgrade ke Google Cloud CLI versi 378.0.0 atau yang lebih tinggi. Di Compute Engine atau GKE, Anda harus melakukan autentikasi dengan cakupan cloud-platform.
gcloud secrets update "SECRET_ID" \
--remove-expiration
API
Contoh ini menggunakan curl untuk menunjukkan penggunaan API. Anda dapat membuat token akses dengan gcloud auth print-access-token. Di Compute Engine atau GKE, Anda harus melakukan autentikasi dengan cakupan cloud-platform.
Menyertakan expire_time
atau ttl
dalam updateMask
sekaligus memberikan
nilai untuk keduanya tidak akan menghapus masa berlaku.
curl "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=ttl" \
--request "PATCH" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--data-binary '{}'
Logging masa berlaku
Cloud Audit Logs tidak dihasilkan saat masa berlaku Secret berakhir secara otomatis.
Sebagai gantinya, Secret Manager menulis log ke resource Secret
Secret Manager pada interval tertentu yang mengarah ke masa berlaku secret.
Pengaturan Waktu Log | Jenis Peristiwa Rahasia |
---|---|
30 hari sebelum habis masa berlaku | EXPIRES_IN_30_DAYS |
7 hari sebelum habis masa berlaku | EXPIRES_IN_7_DAYS |
1 hari sebelum habis masa berlaku | EXPIRES_IN_1_DAY |
6 jam sebelum habis masa berlaku | EXPIRES_IN_6_HOURS |
1 jam sebelum habis masa berlaku | EXPIRES_IN_1_HOUR |
saat habis masa berlaku | EXPIRED |
Lihat Panduan Memulai Logging untuk mengetahui informasi tentang cara melihat log ini. Anda dapat membuat Metrik berbasis log dan menggunakannya untuk membuat pemberitahuan tentang masa berlaku yang akan berakhir.
Langkah selanjutnya
- Pelajari cara menyiapkan jadwal rotasi untuk secret.
- Pelajari cara mengaktifkan Kunci Enkripsi yang Dikelola Pelanggan (CMEK) untuk Secret Manager.