前幾天中我們提到了Secrect的基本概念及如何用Vault管理Credential,而今天我們要談談Static Secrets vs Dynamic Secrets 及前面提到的Lease。
Static Secret 是「預先存在、長時間不變」的秘密。
它若存於Vault,則在Application 需要時讀取:
username = app_user
password = MyStrongPassword123
它的特點是 Secret 本身通常不會自動改變,雖然我們可以設定 TTL,但 TTL ≠ Secret 本身的生命週期
密碼是否過期,通常取決於外部系統是否支援 rotation ,如果 password 被偷了,在 rotation/revoke 前可能一直有效,所以 Static Secret 最大的問題是,Secret 可以被長期重複使用。
Dynamic Secret 則不同,Application 不再直接拿一組固定帳號密碼,而 Vault 可以透過 database secrets engine 向資料庫建立這組 credential。
10:00
App → Vault → 建立 DB user A
TTL = 1h
11:00
Lease 到期
↓
DB user A 被 revoke