Halaman ini menjelaskan cara menetapkan tanggal habis masa berlaku untuk secret baru atau yang sudah ada, mengubah tanggal habis masa berlaku secret yang sudah ada, dan menghapus tanggal habis masa berlaku yang sebelumnya ditetapkan dari secret.
Ringkasan
Secara default, secret yang disimpan di Secret Manager akan ada hingga pengguna menghapusnya. Jika secret hanya boleh disimpan untuk jangka waktu yang diketahui dan terbatas, Anda dapat melampirkan waktu habis masa berlaku padanya. Pada waktu habis masa berlaku rahasia yang dikonfigurasi, rahasia tersebut 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 berlaku selalu ditampilkan sebagai stempel waktu, terlepas dari cara pemberiannya.
Masa berlaku dapat ditambahkan, diperbarui, atau dihapus dari rahasia kapan saja.
Batasan
-
Masa berlaku rahasia tidak boleh kurang dari 60 detik atau lebih dari 100 tahun.
Menggunakan secret yang akan segera berakhir dengan aman
Jika masa berlaku rahasia di Secret Manager berakhir, rahasia tersebut akan dihapus secara permanen dan tidak dapat dipulihkan. Cara terbaik untuk mendeteksi secret yang akan segera berakhir adalah dengan menggunakan IAM Conditions untuk menghapus izin dari akun yang menggunakan secret sebelum berakhir.
Untuk mengelola akses ke secret secara efektif, tetapkan kondisi berbasis waktu pada izin yang diberikan.
-
Menetapkan tanggal habis masa berlaku: Izin harus habis masa berlakunya sesaat sebelum secret itu sendiri ditetapkan untuk habis masa berlakunya. Dengan demikian, Anda dapat mengidentifikasi alur kerja atau proses apa pun yang mungkin masih menggunakan secret secara tidak terduga.
-
Pantau gangguan: Jika ada alur kerja yang berhenti berfungsi setelah izin dicabut, Anda dapat dengan cepat memulihkan akses untuk meminimalkan dampak.
-
Sesuaikan sesuai kebutuhan: Jika Anda merasa memerlukan lebih banyak waktu, Anda dapat memperpanjang tanggal habis masa berlaku rahasia atau bahkan menghapusnya sama sekali jika tidak diperlukan lagi.
Selain itu, Anda dapat membuat pemberitahuan berdasarkan log yang memperingatkan tentang rahasia yang akan segera berakhir. Untuk mengetahui informasinya, lihat bagian Pencatatan log masa berlaku dalam dokumen ini.
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 sufiks s, misalnya
86400s
.
Menetapkan tanggal habis masa berlaku secret
Anda dapat menetapkan tanggal dan waktu habis masa berlaku pada secret menggunakan Google Cloud konsol, Google Cloud CLI, atau Secret Manager API.
Konsol
-
Di konsol Google Cloud , buka halaman Secret Manager.
-
Di halaman Secret Manager, klik Buat secret.
-
Di halaman Buat secret, masukkan nama untuk secret di kolom Name.
-
Masukkan nilai untuk secret (misalnya,
abcd1234
). Anda juga dapat mengupload file teks yang berisi nilai secret menggunakan opsi Upload file. Tindakan ini akan otomatis membuat versi secret. -
Buka Masa berlaku, lalu centang kotak Tetapkan tanggal berakhir.
-
Masukkan tanggal dan waktu habis masa berlaku dalam format Bulan/Hari/Tahun, Jam:Menit AM/PM, misalnya,
7/31/20, 1:00 AM
. Anda juga dapat menggunakan pemilih tanggal dan waktu untuk memasukkan tanggal dan waktu akhir. -
Klik Buat secret.
gcloud
Membuat secret yang akan habis masa berlakunya menggunakan stempel waktu
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- SECRET_ID: ID secret atau ID yang memenuhi syarat sepenuhnya untuk secret
- TIMESTAMP: waktu habis masa berlaku dalam format RFC 3339, misalnya
2100-01-01T09:00:00-05:00
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud secrets create SECRET_ID \ --replication-policy "automatic" \ --expire-time "TIMESTAMP"
Windows (PowerShell)
gcloud secrets create SECRET_ID ` --replication-policy "automatic" ` --expire-time "TIMESTAMP"
Windows (cmd.exe)
gcloud secrets create SECRET_ID ^ --replication-policy "automatic" ^ --expire-time "TIMESTAMP"
Membuat secret yang akan habis masa berlakunya menggunakan durasi
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- SECRET_ID: ID secret atau ID yang memenuhi syarat sepenuhnya untuk secret
- DURATION: durasi habis masa berlaku dalam detik, misalnya
86400s
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud secrets create SECRET_ID \ --replication-policy "automatic" \ --ttl "DURATION"
Windows (PowerShell)
gcloud secrets create SECRET_ID ` --replication-policy "automatic" ` --ttl "DURATION"
Windows (cmd.exe)
gcloud secrets create SECRET_ID ^ --replication-policy "automatic" ^ --ttl "DURATION"
REST
Membuat secret yang akan habis masa berlakunya menggunakan stempel waktu
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Google Cloud project ID
- SECRET_ID: ID secret atau ID yang memenuhi syarat sepenuhnya untuk secret
- TIMESTAMP: waktu habis masa berlaku dalam format RFC 3339, misalnya
2100-01-01T09:00:00-05:00
Metode HTTP dan URL:
POST https://secretmanager.googleapis.com/v1/projects/$PROJECT_ID/secrets?secretId=$SECRET_ID
Isi JSON permintaan:
{ "replication": {"automatic": {}}, "expire_time": "TIMESTAMP" }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
curl -X POST \
-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?secretId=$SECRET_ID"
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 POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.googleapis.com/v1/projects/$PROJECT_ID/secrets?secretId=$SECRET_ID" | Select-Object -Expand Content
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID", "createTime": "2024-09-04T03:58:38.200877Z", "expireTime": "2024-09-04T09:25:39Z", "etag": "\"162143305d282d\"" }
Membuat secret yang akan habis masa berlakunya menggunakan durasi
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Google Cloud project ID
- SECRET_ID: ID secret atau ID yang memenuhi syarat sepenuhnya untuk secret
- DURATION: durasi habis masa berlaku dalam detik, misalnya
86400s
Metode HTTP dan URL:
POST https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets?secretId=SECRET_ID
Isi JSON permintaan:
{ "replication": {"automatic": {}}, "ttl": "DURATION" }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
curl -X POST \
-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?secretId=SECRET_ID"
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 POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets?secretId=SECRET_ID" | Select-Object -Expand Content
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID", "createTime": "2024-09-04T03:58:38.200877Z", "expireTime": "2024-09-04T09:25:39Z", "etag": "\"162143305d282d\"" }
Memperbarui tanggal habis masa berlaku secret
Untuk memperbarui tanggal dan waktu habis masa berlaku rahasia, gunakan salah satu metode berikut:
Konsol
-
Di konsol Google Cloud , buka halaman Secret Manager.
-
Untuk mengedit secret, cari secret dalam daftar, lalu klik menu
Tindakan yang terkait dengan secret tersebut. Di menu Tindakan, klik Edit. -
Buka bagian Masa berlaku. Perbarui tanggal dan waktu habis masa berlaku, lalu klik Perbarui rahasia.
gcloud
Memperbarui masa berlaku secret menggunakan stempel waktu
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- SECRET_ID: ID secret atau ID yang memenuhi syarat sepenuhnya untuk secret
- TIMESTAMP: waktu habis masa berlaku dalam format RFC 3339, misalnya
2100-01-01T09:00:00-05:00
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud secrets update SECRET_ID \ --expire-time "TIMESTAMP"
Windows (PowerShell)
gcloud secrets update SECRET_ID ` --expire-time "TIMESTAMP"
Windows (cmd.exe)
gcloud secrets update SECRET_ID ^ --expire-time "TIMESTAMP"
Memperbarui habis masa berlaku secret menggunakan durasi
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- SECRET_ID: ID secret atau ID yang memenuhi syarat sepenuhnya untuk secret
- DURATION: durasi habis masa berlaku dalam detik, misalnya
86400s
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud secrets update SECRET_ID \ --ttl "DURATION"
Windows (PowerShell)
gcloud secrets update SECRET_ID ` --ttl "DURATION"
Windows (cmd.exe)
gcloud secrets update SECRET_ID ^ --ttl "DURATION"
REST
Memperbarui masa berlaku secret menggunakan stempel waktu
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Google Cloud project ID
- SECRET_ID: ID secret atau ID yang memenuhi syarat sepenuhnya untuk secret
- TOKEN: token akses Oauth2.0 Anda sendiri
- TIMESTAMP: waktu habis masa berlaku dalam format RFC 3339, misalnya
2100-01-01T09:00:00-05:00
Metode HTTP dan URL:
PATCH https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=expire_time
Isi JSON permintaan:
{"expire_time": "TIMESTAMP"}
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
,
lalu jalankan perintah berikut:
curl -X PATCH \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=expire_time"
PowerShell
Simpan isi permintaan dalam file bernama request.json
,
lalu jalankan perintah berikut:
$headers = @{ "Authorization" = "Bearer TOKEN" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=expire_time" | Select-Object -Expand Content
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID", "createTime": "2024-09-04T03:58:38.200877Z", "expireTime": "2024-09-04T09:25:39Z", "etag": "\"162143305d282d\"" }
Memperbarui habis masa berlaku secret menggunakan durasi
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Google Cloud project ID
- SECRET_ID: ID secret atau ID yang memenuhi syarat sepenuhnya untuk secret
- DURATION: durasi habis masa berlaku dalam detik, misalnya
86400s
Metode HTTP dan URL:
PATCH https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=ttl
Isi JSON permintaan:
{"ttl": "DURATION"}
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
,
lalu jalankan perintah berikut:
curl -X PATCH \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=ttl"
PowerShell
Simpan isi permintaan dalam file bernama request.json
,
lalu jalankan perintah berikut:
$headers = @{ "Authorization" = "Bearer TOKEN" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=ttl" | Select-Object -Expand Content
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID", "createTime": "2024-09-04T03:58:38.200877Z", "expireTime": "2024-09-04T09:25:39Z", "etag": "\"162143305d282d\"" }
Menghapus tanggal habis masa berlaku secret
Untuk menghapus tanggal dan waktu habis masa berlaku rahasia, gunakan salah satu metode berikut:
Konsol
-
Di konsol Google Cloud , buka halaman Secret Manager.
-
Untuk mengedit secret, cari secret dalam daftar, lalu klik menu
Tindakan yang terkait dengan secret tersebut. Di menu Tindakan, klik Edit. -
Buka bagian Masa berlaku. Hapus centang pada kotak Setel tanggal habis masa berlaku, lalu klik Perbarui rahasia.
gcloud
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- SECRET_ID: ID secret atau ID yang memenuhi syarat sepenuhnya untuk secret
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud secrets update SECRET_ID \ --remove-expiration
Windows (PowerShell)
gcloud secrets update SECRET_ID ` --remove-expiration
Windows (cmd.exe)
gcloud secrets update SECRET_ID ^ --remove-expiration
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Google Cloud project ID
- SECRET_ID: ID secret atau ID yang memenuhi syarat sepenuhnya untuk secret
- TOKEN: token akses Oauth2.0 Anda sendiri
Metode HTTP dan URL:
PATCH https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=expire_time
Isi JSON permintaan:
{}
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
,
lalu jalankan perintah berikut:
curl -X PATCH \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=expire_time"
PowerShell
Simpan isi permintaan dalam file bernama request.json
,
lalu jalankan perintah berikut:
$headers = @{ "Authorization" = "Bearer TOKEN" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=expire_time" | Select-Object -Expand Content
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID", "createTime": "2024-09-04T03:58:38.200877Z", "etag": "\"162143305d282d\"" }
Logging masa berlaku
Cloud Audit Logs tidak dibuat saat masa berlaku secret otomatis berakhir. Sebagai gantinya, Secret Manager menulis log ke resource Secret Manager Secret pada interval tertentu hingga masa berlaku secret berakhir.
Waktu Log | 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 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 untuk masa berlaku yang akan segera berakhir.
Langkah berikutnya
- Pelajari cara menyiapkan jadwal rotasi untuk secret.
- Pelajari cara mengaktifkan Kunci Enkripsi yang Dikelola Pelanggan (CMEK) untuk Secret Manager.