跳到正文

防火牆與安全 ​

不需要為 Zenavo 開放任何連接埠 ​

初始化完成後,Zenavo 不會再主動連入你的伺服器。初始化安裝的 Zenavo agent 執行在伺服器上,透過 HTTPS(443 連接埠)向外連線控制面,Zenavo 透過這條連線下發部署、讀取日誌和開啟終端機。因此:

  • Kubernetes API(6443):對公開網路關閉。只有伺服器內部的 agent 會用到它。
  • SSH(22):只在初始化期間由 Zenavo 控制面使用。之後只允許你管理伺服器的位址存取,或者直接關閉。

80、443 以及(如果你發布了連接埠)30000–32767 需要對所有人開放。伺服器的 防火牆 分頁會從控制面檢查這些連接埠。伺服器必須能透過 HTTPS 存取控制台的位址。

Agent 能做什麼 ​

Agent 使用自己的 Kubernetes 服務帳號,權限僅限 Zenavo 所需:

  • 它只管理專案名稱空間(zv-…)。每個名稱空間都強制執行 Kubernetes Pod 安全標準的 baseline 級別,所以任何工作負載都不能以特權模式執行、使用主機網路或掛載主機目錄。
  • 它不能讀取專案名稱空間以外的 Secret 或在其中執行指令,不能修改自己的權限,也不能改動 K3s 的系統元件(可以讀取它們的狀態)。
  • 這些限制由 Kubernetes 准入策略強制執行,agent 無法移除它。

Agent 的容器以非 root 使用者執行,檔案系統唯讀。它以唯讀方式掛載一個主機目錄,用於報告 /var/lib/rancher/k3s 的磁碟用量。

Zenavo 儲存什麼 ​

  • Agent 權杖的雜湊值。權杖本身只存在於你的伺服器上。
  • 一個映像檔儲存庫拉取憑據,只能讀取你團隊的映像檔。

對於正常運作的伺服器,Zenavo 不保存任何 SSH 金鑰、密碼或叢集憑據。你輸入的 SSH 密碼或金鑰由初始化任務使用,初始化成功後立即清除。如果初始化失敗,會加密保留一天,方便你不用重新輸入就能重試,之後再清除。初始化不會向 ~/.ssh/authorized_keys 新增任何內容。

移除伺服器時,Zenavo 會刪除它的 agent 權杖,agent 將無法再連線。K3s、agent 和你的資料仍留在機器上:如果不再需要,在伺服器上執行 /usr/local/bin/k3s-uninstall.sh。

在 agent 之前新增的伺服器 ​

在 agent 出現之前新增的伺服器,是透過 Zenavo 安裝的金鑰用 SSH 存取,並用 K3s 的管理員憑據透過 Kubernetes API 存取的。Zenavo 會自動把它們遷移到 agent:安裝 agent,從 ~/.ssh/authorized_keys 中移除 Zenavo 的金鑰,並刪除儲存的金鑰和憑據。設定 → 連線方式 顯示遷移狀態,也可以立即開始遷移。如果你當初貼上的是自己的私鑰,不再使用的話請自行從伺服器上移除。之後還可以用 k3s certificate rotate 輪換 K3s 的憑證(會重啟 K3s),讓 Zenavo 曾經持有的管理員憑據失效。

建置從不在你的伺服器上執行 ​

Git 建置在 Zenavo 的建置機上執行,建置機無法存取控制面、其他客戶或雲端憑據。你的伺服器只拉取建置好的映像檔,並固定到 digest。

與 Zeabur 無關聯。