1. 程式人生 > >使用Hashicorp Vault管理私密資訊

使用Hashicorp Vault管理私密資訊

HashiCorp Vault是一款企業級私密資訊管理工具。說起Vault,不得不提它的創造者HashiCorp公司。HashiCorp是一家專注於DevOps工具鏈的公司,其旗下明星級產品包括Vagrant、Packer、Terraform、Consul、Nomad等,再加上Vault,這些工具貫穿了持續交付的整個流程。

管理私密資訊的複雜性

在應用程式的整個生命週期中管理私密資訊並非易事。如果您對訪問許可權過於嚴格,實施可能會變得過於複雜。但是,如果您採取寬鬆措施,則會增加安全漏洞的風險。在管理私密時還應解決其他問題:

  • 如何處理外部和內部威脅(如黑客和心懷不滿的員工)
  • 如何在一組利益相關者之間安全地分擔祕密管理責任
  • 如何允許人員和服務之間無縫訪問
  • 如何稽核在特定的時間訪問私密資訊的人員

Hashicorp Vault是一個開源的私密資訊管理和分發工具,可以解決這些問題。

私密資訊管理現狀

要明白Vault的目標和價值,我們就需要先來看看私密資訊管理的現狀。

我們以API認證資訊為例,在微服務大行其道的現在,如果你構建的應用需要呼叫別的API,那麼你就需要向這些API提供認證資訊,我們假設是使用者名稱和密碼。那麼在你的程式碼中,你可能會硬編碼這些資訊,或者記錄在配置檔案中,再或者放在環境變數中。

而隨著你需要的API越來越多,你需要管理的東西也越來越多。

這種管理方式很簡單直接,但是也有很多問題。主要是在私密資訊擴散和回收上。比如有一個內部API需要被一個服務消費,當出現第二個消費者的時候可能會通過某種方法使用同樣的認證資訊,這種情況下這一組認證資訊很難真正被回收,因為使用方的資訊不明確。當有惡意的第三方進行攻擊的時候也很難做出防禦和其他審計。

Vault的目標和特性

Vault的目標是成為私密資訊的唯一來源,即一個集中化的管理工具。而私密資訊的需求方可以程式化的獲得所需的資訊。對於私密資訊,還應該有完善的審計和視覺化方法,並且作為一個集中化的依賴,Vault自身必須是高可用的,對於雲資料中心友好的安全架構。

Vault主要有4大特性:

  • 減輕內部和外部威脅:允許Vault在危險時刻關閉/開啟以應對危機,並支援各種安全後端。
  • 動態機密:Vault可以自動為不同的後端生成憑據。
  • 續訂/撤銷對私密資訊的訪問:Vault允許您為機密指定TTL規則,從而實現對許可權的精細控制。
  • 稽核:啟用後,將記錄每個對私密資訊的請求,並將輸出定向到檔案或syslog。

Backends

Vault提供了三個主要的模組化外掛:私密儲存,身份驗證控制和審計日誌:

  • 私密儲存:這是“託管”私密資訊的解決方案。可用的後端包括AWS S3,Consul,Generic(檔案儲存)等。
  • 身份驗證控制元件:身份驗證機制。可用的後端是AWS EC2,LDAP,Github,令牌,使用者名稱/密碼等。
  • 稽核日誌:傳送稽核日誌。可用檔案或系統日誌。後端的特定組合將取決於專案的要求和約束,並且可以啟用多個後端。有關每個後端的其他資訊,包括訪問它們的API請求命令,可以在官方文件中找到。

總結

使用HashiCorp Vault可以很容易地新增私密資訊、應用程式能輕鬆的獲取私密資訊、採用不同策略更新私密資訊、適時回收私密資訊。在企業級應用場景中提供更強大功能。