Ssh
許多伺服器的 SSH 訪問網關
通過 Ansible 管理多台伺服器,目前超過 90 台,有 3 個 devops。一切都很好,但是現在存在一個巨大的安全問題。每個 devop 都使用自己的本地 ssh 密鑰來直接訪問伺服器。每個 devop 都使用一台筆記型電腦,每台筆記型電腦都可能受到攻擊,從而使整個 prod 伺服器網路面臨攻擊。
我正在尋找一種解決方案來集中管理訪問,從而阻止對任何給定密鑰的訪問。與將密鑰添加到 bitbucket 或 github 的方式沒有什麼不同。
在我的腦海中,我認為解決方案將是從一台機器(網關)到所需產品伺服器的隧道……在傳遞網關時,請求將獲取一個新密鑰並用於訪問產品伺服器。結果是我們可以通過拒絕對網關的訪問在幾秒鐘內快速有效地終止對任何 devop 的訪問。
這是很好的邏輯嗎?有沒有人已經看到了解決這個問題的解決方案?
這太複雜了(檢查密鑰是否可以訪問特定的產品伺服器)。將網關伺服器用作接受每個有效密鑰的跳轉主機(但可以輕鬆刪除對特定密鑰的訪問,從而依次刪除對所有伺服器的訪問),然後僅將允許的密鑰添加到每個相應的伺服器。之後,確保您只能通過跳轉主機訪問每個伺服器的 SSH 埠。
這是標準方法。
工程師不應該直接從他們的筆記型電腦上執行 ansible,除非這是一個開發/測試環境。
相反,有一個從 git 中提取執行手冊的中央伺服器。這允許額外的控制(四隻眼睛,程式碼審查)。
將此與堡壘或跳躍主機結合使用以進一步限制訪問。