HashiCorp Vault是一款企業級私密資訊管理工具。說起Vault,不得不提它的創造者HashiCorp公司。HashiCorp是一家專注於DevOps工具鏈的公司,其旗下明星級產品包括Vagrant、Packer、Terraform、Consul、Nomad等,再加上Vault,這些工具貫穿了持續交付的整個流程。
HashiCorp Vault在2016年四月進入了ThoughtWorks技術雷達,位於Tools分類,處於ACESS級別。在2017年3月份最新一起Tech Radar中,HashiCorp Vault已經處於TRIAL級別。
https://www.thoughtworks.com/radar/tools/hashicorp-vault
為什麼要使用HashiCorp Vault?
在企業級應用開發過程中,團隊每時每刻都需要管理各種各樣的私密資訊,從個人的登陸密碼、到生產環境的SSH Key以及資料庫登入資訊、API認證資訊等。通常的做法是將這些祕密資訊儲存在某個檔案中,並且放置到git之類的原始碼管理工具中。個人和應用可以通過拉取倉庫來訪問這些資訊。但這種方式弊端很多,比如跨團隊分享存在安全隱患、檔案格式難以維護、私密資訊難以回收等。
尤其是微服務大行其道的今天,如何讓開發者新增私密資訊、應用程式能輕鬆的獲取私密資訊、採用不同策略更新私密資訊、適時回收私密資訊等變得越來越關鍵。所以企業需要一套統一的介面來處理私密資訊的方方面面,而HashiCorp Vault就是這樣的一款工具。
HashiCorp Vault的特性
HashiCorp Vault作為集中化的私密資訊管理工具,具有以下特點:
儲存私密資訊。 不僅可以存放現有的私密資訊,還可以動態生成用於管理第三方資源的私密資訊。所有存放的資料都是加密的。任何動態生成的私密資訊都有租期,並且到期會自動回收。
滾動更新祕鑰。使用者可以隨時更新存放的私密資訊。Vault提供了加密即服務(encryption-as-a-service)的功能,可以隨時將金鑰滾動到新的金鑰版本,同時保留對使用過去金鑰版本加密的值進行解密的能力。 對於動態生成的祕密,可配置的最大租賃壽命確保金鑰滾動易於實施。
審計日誌。 保管庫儲存所有經過身份驗證的客戶端互動的詳細稽核日誌:身份驗證,令牌建立,私密資訊訪問,私密資訊撤銷等。 可以將稽核日誌傳送到多個後端以確保冗餘副本。
另外,HaishiCorp Vault提供了多種方式來管理私密資訊。使用者可以通過命令列、HTTP API等整合到應用中來獲取私密資訊。HashiCorp Vault也能與Ansible、Chef、Consul等DevOps工具鏈無縫結合使用。
HashiCorp 架構
HashiCorp對私密資訊的管理進行了合理的抽象,通過優良的架構實現了很好的擴充套件性和高可用。
Storage backend: 儲存後端,可以為記憶體、磁碟、AWS等地方。
Barrier:隔離受信區域和非授信區域,保證內部資料的安全性。
HTTP API:通過HTTP API向外暴露服務,Vault也提供了CLI,其是基於HTTP API實現的。
Vault提供了各種Backend來實現對各種私密資訊的整合和管理。比如Authentication Backend提供鑑權,Secret Backend用於儲存和生成私密資訊等。
總結
HashiCorp Vault作為私密資訊管理工具,比傳統的1password等方式功能更強大,更適合企業級的應用場景。在安全問題越來越嚴峻的今天,值得嘗試HashiCorp Vault。