Menetapkan tanggal habis masa berlaku untuk secret

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.

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 masa berlaku rahasia hingga 60 hari setelah dibuat. Hal ini memberikan periode buffer setelah penggunaan yang diharapkan. Anda juga dapat menyiapkan binding IAM bersyarat untuk memberikan peran Secret Accessor kepada akun layanan selama 45 hari. Jika akun layanan mencoba mengakses rahasia setelah 45 hari, izinnya akan ditolak. Alur kerja yang mengandalkan rahasia ini akan berhenti berfungsi. Administrator dapat memulihkan akses dengan cepat dengan memberikan kembali peran Secret Accessor ke akun layanan. Hal ini memberi mereka waktu untuk menyelidiki alasan mengapa rahasia tersebut masih diperlukan setelah periode 30 hari yang diharapkan, karena rahasia itu sendiri tidak akan dihapus selama 15 hari 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

  1. Di konsol Google Cloud , buka halaman Secret Manager.

    Buka Secret Manager

  2. Di halaman Secret Manager, klik Buat secret.

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

  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. Buka Masa berlaku, lalu centang kotak Tetapkan tanggal berakhir.

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

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

  1. Di konsol Google Cloud , buka halaman Secret Manager.

    Buka Secret Manager

  2. Untuk mengedit secret, cari secret dalam daftar, lalu klik menu Tindakan yang terkait dengan secret tersebut. Di menu Tindakan, klik Edit.

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

  1. Di konsol Google Cloud , buka halaman Secret Manager.

    Buka Secret Manager

  2. Untuk mengedit secret, cari secret dalam daftar, lalu klik menu Tindakan yang terkait dengan secret tersebut. Di menu Tindakan, klik Edit.

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