Topik ini menunjukkan cara menetapkan tanggal habis masa berlaku untuk suatu rahasia di Secret Manager. Topik ini juga menjelaskan cara memperbarui atau menghapus tanggal habis masa berlaku yang ditetapkan untuk suatu secret.
Ringkasan
Secara default, secret yang disimpan di Secret Manager tetap ada hingga pengguna menghapusnya. Jika secret hanya boleh disimpan selama waktu terbatas yang diketahui, Anda dapat menambahkan waktu habis masa berlaku. Pada waktu kedaluwarsa yang telah dikonfigurasi secara otomatis, rahasia itu dihapus.
Jika Anda tidak memiliki persyaratan bahwa rahasia harus dihapus, pertimbangkan untuk menggunakan Kondisi IAM atau Status versi Nonaktif untuk mencabut akses dengan cara yang aman.
Anda dapat memasukkan waktu habis masa berlaku sebagai stempel waktu atau durasi. Saat metadata rahasia diambil, masa berlaku akan selalu ditampilkan sebagai stempel waktu, terlepas dari cara pemberiannya.
Masa berlaku dapat ditambahkan, diperbarui, atau dihapus dari suatu rahasia 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 lagi.
Rahasia yang akan habis masa berlakunya dengan aman
Jika masa berlaku rahasia berakhir di Secret Manager, rahasia tersebut tidak dapat dipulihkan. Cara terbaik untuk mendeteksi rahasia yang akan segera berakhir adalah dengan menggunakan Kondisi IAM untuk menghapus izin dari akun yang menggunakan rahasia tersebut sebelum masa berlakunya habis.
Untuk melakukannya, saat memberikan izin pada secret, lampirkan kondisi berbasis waktu ke binding. Masa berlaku binding akan berakhir setelah secret diperkirakan tidak lagi digunakan, tetapi cukup awal sehingga izin yang dihapus akan terlihat sebelum masa berlaku rahasia berakhir. Jika alur kerja yang dianggap tidak lagi menggunakan jeda rahasia setelah izin dicabut, izin dapat ditambahkan kembali untuk melakukan mitigasi dengan cepat. Jika diperlukan lebih banyak waktu, masa berlaku rahasia dapat diperbarui atau bahkan dihapus.
Misalnya, akun layanan diharapkan untuk mengakses secret setiap hari selama periode 30 hari. Masa berlaku secret dapat ditetapkan ke 60 hari sejak pembuatan dan binding IAM bersyarat dapat digunakan untuk memberikan peran Secret Accessor kepada 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 tersebut akan pecah. Administrator kemudian dapat memberikan peran Secret Accessor kembali ke akun layanan untuk memitigasinya dengan cepat saat menyelidiki, karena rahasia itu sendiri tidak akan dihapus selama 15 hari lagi.
Selain itu, Anda dapat membuat pemberitahuan berdasarkan log peringatan secret yang akan segera habis masa berlakunya. Lihat Logging masa berlaku untuk 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 yang mencakup akhiran "s", misalnya
86400s
.
Membuat secret yang akan segera berakhir
Buat secret yang akan habis masa berlakunya menggunakan stempel waktu:
gcloud
Untuk menggunakan Secret Manager di command line, Instal atau upgrade Google Cloud CLI ke versi 378.0.0 atau yang lebih baru. 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 mendemonstrasikan 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 menggunakan durasi:
gcloud
Untuk menggunakan Secret Manager di command line, Instal atau upgrade Google Cloud CLI ke versi 378.0.0 atau yang lebih baru. 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 mendemonstrasikan 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 rahasia
Setiap secret dapat memiliki masa berlaku baru, terlepas dari apakah rahasia tersebut sudah memilikinya atau belum. Setiap secret hanya dapat memiliki satu masa berlaku yang dikonfigurasi dalam satu waktu. Memperbarui masa berlaku rahasia yang sudah memilikinya akan menimpa masa berlaku rahasia yang sudah ada.
Perbarui masa berlaku rahasia menggunakan stempel waktu:
gcloud
Untuk menggunakan Secret Manager di command line, Instal atau upgrade Google Cloud CLI ke versi 378.0.0 atau yang lebih baru. 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 mendemonstrasikan 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 akhir masa berlaku rahasia menggunakan durasi:
gcloud
Untuk menggunakan Secret Manager di command line, Instal atau upgrade Google Cloud CLI ke versi 378.0.0 atau yang lebih baru. 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 mendemonstrasikan 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 rahasia
gcloud
Untuk menggunakan Secret Manager di command line, Instal atau upgrade Google Cloud CLI ke versi 378.0.0 atau yang lebih baru. 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 mendemonstrasikan 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
di 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 '{}'
Pencatatan masa berlaku
Cloud Audit Logs tidak dibuat ketika Secret berakhir secara otomatis.
Sebagai gantinya, Secret Manager akan menulis log ke resource Secret
Secret Manager pada interval tertentu yang mengarah ke masa berlaku secret.
Catat Waktu | Jenis Peristiwa Rahasia |
---|---|
30 hari sebelum masa berlaku habis | EXPIRES_IN_30_DAYS |
7 hari sebelum masa berlaku habis | EXPIRES_IN_7_DAYS |
1 hari sebelum masa berlaku habis | EXPIRES_IN_1_DAY |
6 jam sebelum masa berlaku habis | EXPIRES_IN_6_HOURS |
1 jam sebelum masa berlaku habis | EXPIRES_IN_1_HOUR |
saat kedaluwarsa | 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 tanggal habis masa berlaku yang akan datang.
Langkah selanjutnya
- Pelajari cara menyiapkan jadwal rotasi untuk secret.
- Pelajari cara mengaktifkan Kunci Enkripsi yang Dikelola Pelanggan (CMEK) untuk Secret Manager.