部署

物理隔離部署

物理隔離是一種許可證模式,而不是防火牆設定 —— 斷網部署必須宣告的兩項設定,以及會在啟動時被拒絕的組合。

適用版本

物理隔離是一種許可證模式

拔掉網線並不能得到一個物理隔離的部署。普通的 ObjectOS 許可證是線上校驗的: 執行時在控制平面上用你的許可證金鑰換取一個短期授權,並定期重新檢查。切斷這條 路徑,許可證並不會"回落到離線"—— 它根本永遠無法生效。

物理隔離許可證是另一種許可證,由我們有意離線簽發。它在本地依據映象中內嵌的 公鑰進行校驗,並以零網路流量掛載你的授權。物理隔離執行是一項企業版能力 —— 參見許可證與定價 —— 你需要的許可證是申請來的,而不是 配置出來的。

因此,一個斷網部署要同時宣告兩件事:

  • 一個物理隔離許可證,以及
  • 沒有控制平面:雲端姿態設定被顯式設為 off(它的別名 none、local 和 disabled 含義相同)。

不設定並不等於"不連雲"

這是本頁上代價最高的錯誤,所以它有自己的一節:

未設定的雲端姿態會解析為公共控制平面。

未設定從來不是中立的。它選中的是聯網行為 —— 這就是為什麼一個"什麼都沒做"的部署 最終會掛載一個市場代理,並暴露一個裝置繫結路由,而這個站點的全部前提就是不與 任何人通訊。宣告一個姿態會被接受;**不做決定則不行。**請顯式寫上 off。

受支援的組合

這些組合在載入配置時、在任何與許可證相關的事情發生之前就會被檢查。不受支援 的組合不是警告,也不是降級:執行時會列印一條同時點名兩項設定的致命錯誤,然後 退出。

許可證雲端姿態結果
物理隔離許可證off**執行,完整授權,零網路流量。**這就是斷網場景的答案。
無許可證off以 Community 行為執行。注意,多組織姿態仍然需要許可證。
普通(線上)許可證可達的控制平面,且已完成裝置繫結正常的聯網部署。
普通(線上)許可證off在啟動時被拒絕。
普通(線上)許可證未設定被視為公共控制平面 —— 見上文。能否執行取決於那個控制平面是否真的可達且已繫結。

為什麼會拒絕

線上許可證通過一次交換來校驗,這次交換必須出示一個在部署繫結控制平面時簽發的 執行時令牌。沒有控制平面就沒有繫結,沒有繫結令牌就不可能存在,於是交換永遠不會 發生 —— 這次啟動不會,以後的啟動也不會。寬限期也幫不上忙:寬限期從上一次成功 的校驗開始計算,而第一次成功永遠不會出現。

如果不加以強制,這種配置會在之後才失敗,而且歸咎於錯誤的東西:在多組織姿態下, 它最終會抱怨部署"需要許可證"—— 而許可證恰恰是唯一從未出錯的東西。所以執行時會 更早地拒絕,並說明是哪兩項設定相互矛盾。由於拒絕發生在任何校驗嘗試之前,一次被 拒絕的啟動不會發出任何資料包。

託管的多組織形態也需要物理隔離許可證

如果你執行的是組合形態 —— 一個已釋出的應用作為本部署的應用啟動,多個組織 在隔離牆後共享一個數據庫 —— 那麼物理隔離許可證在那裡同樣不是可選的。該模式直接 拒絕市場和雲連線介面,所以線上許可證所需的繫結在它上面永遠不可能發生。它要求 物理隔離許可證和 off,兩者都在啟動時強制執行,並且它在部署包中有自己的環境 模板。不要改寫單環境模板來達到它;複製組合形態的那個模板,這樣它所決定的每一個 值都會隨之而來。

把映象帶進網路內部

ObjectOS 執行時映象位於斷網站點無法訪問的私有映象倉庫中,所以映象要像你的其他 產物一樣跨越邊界。

在聯網一側完成校驗,趁你還能訪問映象倉庫和工具:針對你即將送入內網的確切摘要, 檢查簽名、SBOM 和構建溯源(部署包的 README 中有相關命令)。然後讓 摘要完成剩下的工作 —— 它是按內容定址的,所以確認網路內部的副本具有相同的 摘要,就證明了它與你校驗過的是同一批位元組。這也是部署固定摘要而不是標籤的原因: 在邊界之內,沒有任何東西可以用來重新解析標籤。

升級的方式相同:在外部校驗新的摘要,把它傳入內部,修改固定的摘要,然後重啟。 保留上一個摘要 —— 在物理隔離的網路中,它可能是你唯一能回滾到的副本。

哪些仍然必須可達

物理隔離的意思是 ObjectOS 本身不需要任何流量 —— 沒有許可證校驗,沒有市場, 沒有更新檢查。它並不意味著部署沒有網路。在你的邊界之內,它仍然需要:

  • 它所配置的資料庫(叢集時還有 Redis);
  • 你的入口或負載均衡器,用於入站流量;
  • 你配置它去通訊的任何東西:身份提供商、SMTP、物件儲存、webhook 目標、AI 提供商端點。如果你的使用者通過 OIDC 登入,那麼這個身份提供商必須能從該網路訪問, 否則就改用本地賬戶。

許可證本身帶有到期時間,在每次啟動時本地檢查 —— 沒有回連,所以要把續期規劃成 一次交付,而不是指望執行時自己去獲取。

下一步