Hi! 歡迎來到 身分驗證你我他 ─ 使用 HashiCorp Vault 與 Terraform 打造 Secrets 與 Identity 實驗室,這是本系列的第一篇。
在這個系列中,我們會進入identity、secret management的世界,使用HashiCorp Vault管理密鑰及透過Terraform進行自動化部署及管理。
在我們的日常開發中,免不了需要管理許多的密碼/密鑰,像是資料庫、Github的帳密,若沒有一個完善的機制去管理,有可能會帶來嚴重的資安風險。
在開始進行實作前,我們需要有一些基礎的知識。
2012年創立的 HashiCorp 是一家專注在 Cloud Infrastructure Automation 的公司,其提供雲端管理工具,包括基礎架構自動化調用管理,或稱「基礎架構即程式碼」(IaC)工具Terraform、憑證管理與資料加密Vault、及服務管理工具Consul等,IBM去年4月宣布以每股35美元,總價64億美元全現金收購這家公司。收購完成後,HashiCorp將成為IBM自動化雲端產品家族的一部份,成為IBM企業混合雲管理方案的最新成員。
假設我們寫了一個 Spring Boot application,通常會把敏感資訊或需要動態調整的資訊記錄在properties檔案裡。
spring.datasource.url=jdbc:mysql://x.x.x.x:1234/mydb
spring.datasource.username=admin
spring.datasource.password=MyPassword123
但便會發生衍生而來的問題,這些Secret會隨著git flow流動到 Github、CICD、Production,即便使用環境變數代替,讓這些資訊keep在私人的local上,不隨著版本控制工具上到雲端,仍然沒有解決以下問題:
這裡的 Rotation 指的是密碼更換,而這個動作在 Vault 出現之前,通常都是要人為 involve 進行管理,有了 Vault 之後,甚至可以做到自動更換密碼的效果。
總而言之,Security Management在當代軟體業已經是一個 Rising Topics,再加上AI浪潮的來襲,AI資訊安全變得異常重要。