Menetapkan tanggal habis masa berlaku untuk secret regional

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 ditetapkan sebelumnya dari 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, sebaiknya gunakan Kondisi IAM atau status versi Nonaktif untuk mencabut akses dengan aman.

Anda dapat memasukkan waktu habis masa berlaku sebagai stempel waktu atau durasi. Saat metadata secret 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 tidak boleh kurang dari 60 detik atau lebih dari 100 tahun.

Menggunakan secret yang akan habis masa berlakunya dengan aman

Saat masa berlakunya habis di Secret Manager, secret akan dihapus secara permanen. Cara terbaik untuk mendeteksi secret yang akan segera berakhir masa berlakunya adalah dengan menggunakan IAM Conditions untuk menghapus izin dari akun yang menggunakan secret sebelum masa berlakunya berakhir.

Untuk mengelola akses ke secret secara efektif, tetapkan kondisi berbasis waktu pada izin yang diberikan.

  • Menetapkan tanggal habis masa berlaku: Izin akan segera berakhir sebelum secret itu sendiri ditetapkan untuk berakhir masa berlakunya. Hal ini memungkinkan Anda mengidentifikasi alur kerja atau proses yang mungkin masih menggunakan secret secara tidak terduga.

  • Pantau gangguan: Jika alur kerja berhenti berfungsi setelah izin dicabut, Anda dapat dengan cepat memulihkan akses untuk meminimalkan dampak apa pun.

  • Sesuaikan sesuai kebutuhan: Jika Anda merasa memerlukan lebih banyak waktu, Anda dapat memperpanjang tanggal habis masa berlaku secret atau bahkan menghapusnya sepenuhnya jika tidak diperlukan lagi.

Pendekatan ini membantu memastikan bahwa akses ke secret dikontrol dengan ketat dan hanya tersedia selama diperlukan, sehingga mengurangi risiko akses atau penyalahgunaan yang tidak sah.

Misalnya, bayangkan skenario saat akun layanan perlu mengakses secret setiap hari selama 30 hari. Anda dapat mengonfigurasi secret agar masa berlakunya berakhir 60 hari setelah dibuat. Hal ini memberikan periode buffering setelah penggunaan yang diharapkan. Anda juga dapat menyiapkan binding IAM bersyarat untuk memberikan peran Secret Accessor ke akun layanan selama 45 hari. Jika akun layanan mencoba mengakses secret setelah 45 hari, izinnya akan ditolak. Semua alur kerja yang mengandalkan secret ini akan berhenti berfungsi. Administrator dapat dengan cepat memulihkan akses dengan memberikan kembali peran Secret Accessor ke akun layanan. Hal ini memberi mereka waktu untuk menyelidiki mengapa secret masih diperlukan setelah periode 30 hari yang diharapkan, 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. Untuk mengetahui informasinya, lihat bagian Logging 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 akhiran s, misalnya 86400s.

Menetapkan tanggal habis masa berlaku secret

Anda dapat menetapkan tanggal dan waktu habis masa berlaku pada secret menggunakan konsol Google Cloud, Google Cloud CLI, atau Secret Manager API.

Konsol

  1. Buka halaman Secret Manager di konsol Google Cloud.

    Buka Secret Manager

  2. Di halaman Secret Manager, klik tab Regional secret, lalu klik Create regional secret.

  3. Di halaman Buat secret regional, masukkan nama untuk secret di kolom Nama.

  4. 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.

  5. Pilih lokasi penyimpanan secret regional dari daftar Region.

  6. Buka Akhir masa berlaku, lalu centang kotak Tetapkan tanggal akhir masa berlaku.

  7. 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 habis masa berlaku.

  8. Klik Buat secret.

gcloud

Membuat secret yang akan berakhir 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
  • LOCATION: Lokasi secret Google Cloud
  • 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 --location=LOCATION \
    --expire-time "TIMESTAMP"

Windows (PowerShell)

gcloud secrets create SECRET_ID --location=LOCATION `
    --expire-time "TIMESTAMP"

Windows (cmd.exe)

gcloud secrets create SECRET_ID --location=LOCATION ^
    --expire-time "TIMESTAMP"

Membuat secret yang akan berakhir 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
  • LOCATION: Lokasi secret Google Cloud
  • DURATION: durasi habis masa berlaku dalam detik, misalnya 86400s

Jalankan perintah berikut:

Linux, macOS, atau Cloud Shell

gcloud secrets create SECRET_ID --location=LOCATION \
  --ttl "DURATION"

Windows (PowerShell)

gcloud secrets create SECRET_ID --location=LOCATION `
  --ttl "DURATION"

Windows (cmd.exe)

gcloud secrets create SECRET_ID --location=LOCATION ^
  --ttl "DURATION"

REST

Membuat secret yang akan berakhir masa berlakunya menggunakan stempel waktu

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • LOCATION: Lokasi secret Google Cloud
  • PROJECT_ID: project ID Google Cloud
  • 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.LOCATION.rep.googleapis.com/v1/projects/$PROJECT_ID/locations/LOCATION/secrets?secretId=$SECRET_ID

Isi JSON permintaan:

{"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.LOCATION.rep.googleapis.com/v1/projects/$PROJECT_ID/locations/LOCATION/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.LOCATION.rep.googleapis.com/v1/projects/$PROJECT_ID/locations/LOCATION/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 berakhir masa berlakunya menggunakan durasi

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • LOCATION: Lokasi secret Google Cloud
  • PROJECT_ID: project ID Google Cloud
  • 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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID

Isi JSON permintaan:

{"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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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 secret, gunakan salah satu metode berikut:

Konsol

  1. Buka halaman Secret Manager di konsol Google Cloud.

    Buka Secret Manager

  2. Di halaman Secret Manager, klik tab Regional secrets.

  3. Untuk mengedit secret, temukan secret dalam daftar, lalu klik menu Actions yang terkait dengan secret tersebut. Di menu Tindakan, klik Edit.

  4. Buka bagian Masa Berlaku. Perbarui tanggal dan waktu habis masa berlaku, lalu klik Perbarui secret.

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
  • LOCATION: Region Google Cloud tempat Anda menyimpan data rahasia
  • 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 --location=LOCATION \
  --expire-time "TIMESTAMP"

Windows (PowerShell)

gcloud secrets update SECRET_ID --location=LOCATION `
  --expire-time "TIMESTAMP"

Windows (cmd.exe)

gcloud secrets update SECRET_ID --location=LOCATION ^
  --expire-time "TIMESTAMP"

Memperbarui 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
  • LOCATION: Lokasi secret Google Cloud
  • DURATION: durasi habis masa berlaku dalam detik, misalnya 86400s

Jalankan perintah berikut:

Linux, macOS, atau Cloud Shell

gcloud secrets update SECRET_ID --location=LOCATION \
    --ttl "DURATION"

Windows (PowerShell)

gcloud secrets update SECRET_ID --location=LOCATION `
    --ttl "DURATION"

Windows (cmd.exe)

gcloud secrets update SECRET_ID --location=LOCATION ^
    --ttl "DURATION"

REST

Memperbarui masa berlaku secret menggunakan stempel waktu

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • LOCATION: Lokasi secret Google Cloud
  • PROJECT_ID: project ID Google Cloud
  • 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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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 masa berlaku secret menggunakan durasi

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • LOCATION: Lokasi secret Google Cloud
  • PROJECT_ID: project ID Google Cloud
  • 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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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 secret, gunakan salah satu metode berikut:

Konsol

  1. Buka halaman Secret Manager di konsol Google Cloud.

    Buka Secret Manager

  2. Di halaman Secret Manager, klik tab Regional secrets.

  3. Untuk mengedit secret, temukan secret dalam daftar, lalu klik menu Actions yang terkait dengan secret tersebut. Di menu Tindakan, klik Edit.

  4. Buka bagian Masa Berlaku. Hapus centang pada kotak Set expiration date, lalu klik Update secret.

gcloud

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

  • SECRET_ID: ID secret atau ID yang memenuhi syarat sepenuhnya untuk secret
  • LOCATION: Lokasi secret Google Cloud

Jalankan perintah berikut:

Linux, macOS, atau Cloud Shell

gcloud secrets update SECRET_ID --location=LOCATION \
  --remove-expiration

Windows (PowerShell)

gcloud secrets update SECRET_ID --location=LOCATION `
  --remove-expiration

Windows (cmd.exe)

gcloud secrets update SECRET_ID --location=LOCATION ^
  --remove-expiration

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • LOCATION: Lokasi secret Google Cloud
  • PROJECT_ID: project ID Google Cloud
  • 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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID?updateMask=ttl

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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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",
  "etag": "\"162143305d282d\""
}

Logging masa berlaku

Cloud Audit Logs tidak dibuat 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 terkait masa berlaku yang akan berakhir.

Langkah selanjutnya