2017-06-14 106 views
5

我正準備用我的Web應用程序設置Hashicorp Vault,雖然Hashicorp提供的示例很有意義,但我對於預期的生產設置應該是什麼還不清楚。Hashicorp Vault - 生產中的設置/體系結構

在我的情況,我有:

  • 服務我的web應用程序服務詹金斯持續部署

  • 一對夫婦的EC2實例AWS EC2實例的極少數,我需要:

    • 我的配置軟件(Ansible)和Jenkins能夠在dep期間讀取機密loyment
    • 允許公司的員工根據需要閱讀祕密,並可能爲某些類型的訪問生成臨時的祕密。

    我可能會使用S3作爲Vault的存儲後端。

    的問題,我的類型是:

    1. 應該跳馬是我所有的EC2實例運行,並在127.0.0.1:8200聽嗎?

    2. 或者我是否創建了一個只運行保險櫃並將其他實例/服務連接到祕密訪問需要的實例(可能爲2)?

    3. 如果我需要員工能夠從他們的本地機器訪問機密,這是如何工作的?他們是否在本地針對S3存儲設置了保險庫,還是應該從步驟2訪問遠程服務器的REST API以訪問其祕密?

    4. 而且要清楚,任何正在運行Vault的機器,如果它重新啓動,那麼Vault需要再次解封,這似乎是一個涉及x個密鑰持有者的手動過程?

  • +0

    https://s3.amazonaws.com/quickstart-reference/hashicorp/vault/latest/doc/hashicorp-vault-on-the-aws-cloud.pdf – sethvargo

    +0

    @sethvargo謝謝,但這並不完全回答我的問題,特別是第3和第4點 – djt

    回答

    0

    保管箱運行在客戶端 - 服務器體系結構,因此應該有Vault服務器的專用羣集(通常3是適用於中小型安裝)在availability mode運行。

    Vault服務器應該可能綁定到內部私有IP而不是127.0.0.1,因爲它們在您的VPC中不可訪問。你絕對要做而不是想綁定0.0.0.0,因爲如果你的實例有一個公有IP,這可能會讓Vault公開訪問。

    您需要綁定到在證書上發佈的IP,無論是IP還是DNS名稱。您只應在生產級基礎架構中通過TLS與Vault進行通信。

    任何請求都會經過這些Vault服務器。如果其他用戶需要與Vault通信,則他們應通過VPN或堡壘主機連接到VPC並針對該VPC發出請求。

    當運行Vault的計算機重新啓動時,Vault確實需要解除密封。這就是您應該在HA模式下運行Vault的原因,因此另一臺服務器可以接受請求。您可以設置監控和警報以通知您服務器何時需要解除密封(Vault返回特殊狀態碼)。

    您還可以閱讀production hardening guide獲取更多提示。