2026 年每日通報的 CVE 數量比前一年多 131%。

成本

GitHub Actions 自架執行器與 CRACI 代管執行器比較

自架執行器在帳單上看起來是免費的。真正的成本是主機、持續修補所花的時數,以及 GitHub 自己都說必要的安全強化。以下說明自行營運需要做哪些事,並提供一個可以填入您自己數字的成本模型。

更新日期

什麼是 GitHub Actions 自架執行器?

自架執行器是由您部署與管理的機器,用來取代 GitHub 託管的 VM 執行 GitHub Actions 作業。它可以是實體伺服器、虛擬機或容器,位於地端或您的雲端帳戶中皆可;GitHub 表示,機器及其所有軟體都由您負責。

  • 註冊:執行器一次只能註冊到一個儲存庫、組織或企業。在組織層級註冊並使用執行器群組,即可跨儲存庫共用執行器。
  • 平台:執行器應用程式支援常見的 Linux 發行版、Windows 10、11 與 Windows Server,以及 macOS 11 以上,可在 x64 與 ARM64 上執行。
  • 網路:執行器透過連接埠 443 的對外 HTTPS 連線到 GitHub。
  • 更新:執行器應用程式必須在新版本發布後 30 天內更新。除非您關閉此功能,否則它會自動更新。
  • 限制:作業最多可執行 5 天,GitHub 託管執行器則為 6 小時;排隊超過 24 小時的作業會失敗。
  • 擴縮:Actions Runner Controller(ARC)是一個 Kubernetes operator,會依執行中的工作流程數量擴縮執行器擴展集。以 --ephemeral 註冊的執行器只會接受一個作業。

團隊為什麼選擇自架

團隊選擇自架,是為了降低每分鐘成本、存取內部系統或特定硬體,以及善用已經付費的運算容量。GitHub 的大型執行器規格越大,每分鐘費用也越高,因此大型機器在託管執行器上會變得昂貴。

GitHub 目前不對自架執行器按分鐘收費。GitHub 曾宣布自 2026 年 3 月 1 日起,對自架執行器收取每分鐘 $0.002 的雲端平台費用,之後又延後實施,「以便花時間重新評估我們的做法」。截至 2026 年 9 月,GitHub 的計費文件將自架用量描述為免費。GitHub 不負擔的,是執行器周邊的一切。

自架成本的三個部分

自架成本包括基礎設施、工程時間與安全強化。只有第一項會出現在帳單上。

基礎設施

無論主機在執行作業還是閒置,您都要付費,因此必須依最忙碌的時段來配置規模。再加上快取與映像檔的儲存空間、網路流量,以及用來監控與自動擴縮機群的工具。

工程時間

GitHub 的文件對責任歸屬說得很直接:使用自架執行器時,「您必須負責更新作業系統與所有其他軟體」。實務上,這還包括執行器版本升級、主機之間的映像檔差異、磁碟清理、自動擴縮腳本,以及在佇列停滯時待命處理的人員。

安全強化

GitHub 針對自架執行器的資安指引中,有兩則值得完整閱讀的警告:

自架執行器幾乎不應該用於 GitHub 上的公開儲存庫,因為任何使用者都能對儲存庫開啟 pull request 並危害該環境。 GitHub Docs, Secure use reference
GitHub 的自架執行器並不保證在臨時的乾淨虛擬機中執行,可能會被工作流程中不受信任的程式碼持續入侵。 GitHub Docs, Secure use reference

GitHub 建議使用即時(just-in-time)執行器,最多執行一個作業後就移除。要做好這件事,需要臨時機器、作業之間的隔離、對外網路流量的控管,以及謹慎的機密處理。每一項都是您必須設計、建置並持續維運的工作。

大規模自架執行器的最佳實務

GitHub 的資安指引與 AWS 公布的大規模執行器實務,歸納出相同的清單。每一項本身都是一個專案:

  • 臨時執行器:每台機器只執行一個作業,作業之間不會殘留任何東西。
  • 執行器群組:依儲存庫與環境區隔執行器,最好放在不同的帳戶中。
  • 短效憑證:以 OpenID Connect 連線到您的雲端,取代長期有效的存取金鑰。
  • 對外連線控管:限制作業能連到哪裡,而不只是它執行什麼。
  • 啟動時間:預熱集區與自訂映像檔,因為臨時機器的啟動比較慢。
  • 成本:使用 spot 執行個體,並為長時間執行的作業準備備援。
  • 監控:排隊中、執行中與已完成作業的指標,並設定警示。

在 CRACI 上,第一項與第四項隨執行器內建:每個作業都在獨立的虛擬機中執行,並受對外連線(egress)政策管控,該政策於作業開始前驗證,並採失效即封鎖(fail closed)。

可以自行填入的成本模型

自架每月成本 = 主機成本 +(維運與安全強化時數 × 您的每小時成本)

CRACI 每月成本(2 vCPU 執行器)= 建置分鐘數 × $0.004

CRACI 公式使用的是價格方案頁面上的費率。CRACI 只對建置分鐘數收費,沒有月費,也不按 SBOM 收費。最新數字請查看價格方案頁面。

範例 A

示意用的輸入值,並非基準測試。每月在 2 vCPU 執行器上執行 60,000 建置分鐘數,執行器主機每月 $350,每月維運 8 小時,每小時 $85。

  • 自架:$350 +(8 × $85)= $350 + $680 = 每月 $1,030
  • CRACI:60,000 × $0.004 = 每月 $240

範例 B

示意用的輸入值,並非基準測試。同樣是 60,000 分鐘,但主機每月 $115,維運每月 2 小時,每小時 $85。

  • 自架:$115 +(2 × $85)= $115 + $170 = 每月 $285
  • CRACI:每月 $240

在範例 B 中,若只看運算成本,兩者相當接近。對主機便宜、設定穩定的團隊而言,這是真實的結果。要找出您自己的損益平衡點,請將 CRACI 的金額減去您的主機成本,再除以您的每小時成本。以範例 B 的主機而言,就是($240 減 $115)÷ $85,約為每月 1.5 小時的維運時間。

有兩件事是公式沒有呈現的。第一,CRACI 的金額包含的不只是運算(請見下一節)。第二,時數是大多數團隊低估的輸入值。請計入映像檔更新、資安修補、擴縮、磁碟清理,以及處理失敗作業所花的時間,而不只是初始設定。

自架執行器無法提供的東西

自架執行器會執行您的作業,但不會記錄作業做了什麼。在 CRACI 執行器上,每次建置都會在執行時產出佐證資料:

  • 建置時 SBOM,格式為 CycloneDX 或 SPDX,由能辨識套件的代理伺服器觀察作業拉取的內容產生,包括從 CI 快取還原的套件。完整性按作業與快取分別標示。
  • 網路對外連線政策,可設為預設拒絕或允許,內建 24 個軟體來源預設集,並支援具型別的自訂來源。政策於作業開始前驗證,並採失效即封鎖。違規會觸發警示。
  • 每個作業的網路追蹤記錄,可透過 API 取得。
  • 來源證明(provenance)資料,可透過 API 取得。
  • 漏洞追蹤,涵蓋所有建置與儲存庫,受監控的 SBOM 會持續重新評估。

您可以在自架執行器上,以自己的代理伺服器、SBOM 工具與網路記錄,建置出其中一部分。若您這麼做,建置與維護它所花的時間,也應納入上方的成本模型。

功能 CRACI 自架執行器
由誰修補作業系統與執行器 CRACI 您
作業隔離 每個作業都在獨立的虛擬機中執行 取決於您的設定;GitHub 不保證提供臨時的乾淨機器
網路對外連線 可設定預設拒絕的組織政策,於作業開始前驗證,失效即封鎖 由您自行建置與維護的防火牆或代理伺服器決定
SBOM 於建置期間記錄,並按作業與快取標示完整性 需在每條管線中另外加入的工具
來源證明 透過 API 提供來源證明資料;未簽署 需自行加入的簽署與證明工具
計費 依作業時間按秒計費 主機無論忙碌或閒置,費用都相同
作業在哪裡執行 CRACI 在歐洲裸機基礎設施上的代管執行器 您自己的網路、雲端帳戶或硬體
作業系統 目前支援 x86-64 與 ARM64 上的 Linux;Windows 與 macOS 已列入產品藍圖 任何能安裝執行器的機器

CRACI 未提供的項目

CRACI 目前不提供客戶自行託管或地端部署的執行器;這些已列入 Enterprise 的產品藍圖。建置在 CRACI 位於歐洲基礎設施上的代管執行器中執行。如果某個作業必須在您自己的網路內、您擁有的硬體上,或在實體隔離(air-gapped)環境中執行,請為該作業保留自架執行器。

  • CRACI 執行器目前僅支援 Linux;Windows 與 macOS 已列入產品藍圖。macOS 與 Windows 建置維持在原處。
  • x86-64 與 ARM64 價格相同。
  • 映像檔:CRACI Slim、CRACI Slim ARM64,以及相容於 GitHub 的 Ubuntu 24.04 映像檔。巢狀虛擬化在 x86-64 上可用,在 ARM64 上為預覽。
  • GitHub Actions 是目前支援的 CI 整合。

混合架構很常見。移動一個作業只需修改它的 runs-on 這一行,因此您可以移動大部分作業,並將少數作業留在自架執行器上。只有在 CRACI 執行器上的作業,才能取得建置時 SBOM 與網路政策。

如何決定

請依據您自己的數字做決定:上個月的執行器成本與時數、您被要求提供的佐證資料,以及在每個選項上實際執行一次工作流程的結果。

  1. 加總上個月的主機帳單,以及團隊花在執行器上的時數,包括事件處理。
  2. 計算您的建置分鐘數。
  3. 將兩者代入上方的公式。
  4. 列出您被要求提供的佐證資料(SBOM、來源證明、網路控管),以及在目前的執行器上產出這些資料需要做什麼。
  5. 預約示範,在 CRACI 上執行一個實際的工作流程進行比較。

進一步了解執行器的運作方式:CI/CD 整合、 CRACI 的安全性,以及文件。

GitHub Actions 自架執行器常見問題

關於成本、設定、安全性與限制的簡短回答。

什麼是 GitHub Actions 自架執行器?

自架執行器是由您部署與管理、用來執行 GitHub Actions 作業的機器。它可以是實體機、虛擬機或容器,位於地端或雲端帳戶中皆可。您在上面安裝 GitHub 執行器應用程式,將它註冊到某個儲存庫、組織或企業,再以 runs-on: self-hosted 或您自己的標籤指定它。

GitHub Actions 自架執行器是免費的嗎?

截至 2026 年 9 月,GitHub 不對自架執行器按分鐘收費。GitHub 曾宣布自 2026 年 3 月 1 日起收取每分鐘 $0.002 的平台費用,之後又延後實施,以重新評估做法。您仍需支付機器、儲存空間與網路的費用,以及持續修補與防護它們所花的時間。

一台自架執行器可以服務多個儲存庫嗎?

執行器一次只能註冊到一個儲存庫、組織或企業。若要跨儲存庫共用,請在組織層級註冊,並以執行器群組控管存取權;或在同一台機器上執行多個執行器實例,各自分別註冊。

哪些作業系統可以執行自架執行器?

GitHub 支援在常見的 Linux 發行版上執行執行器應用程式,例如 Ubuntu 20.04 以上、Debian 10 以上與 RHEL 8 以上;也支援 Windows 10、11 與 Windows Server 2016 至 2022,以及 macOS 11 以上。它可在 x64 與 ARM64 上執行,Linux 另支援 ARM32。

作業在自架執行器上最多可以執行多久?

最多 5 天,GitHub 託管執行器則為 6 小時。排隊超過 24 小時的作業會失敗。

自架執行器用於公開儲存庫安全嗎?

GitHub 表示,自架執行器幾乎不應該用於公開儲存庫,因為任何人都能開啟 pull request 並在機器上執行程式碼。GitHub 建議使用最多只執行一個作業的臨時、即時(just-in-time)執行器,再加上隔離、對外連線控管與謹慎的機密處理。

Actions Runner Controller 的作用是什麼?

Actions Runner Controller(ARC)是一個 Kubernetes operator,負責為 GitHub Actions 協調並擴縮自架執行器。執行器擴展集(runner scale set)會隨著執行中的工作流程數量增減。叢集、映像檔與周邊網路仍需由您維運。

CRACI 執行器可以在我自己的網路中執行嗎?

目前不行。CRACI 在歐洲的基礎設施上提供代管執行器,客戶自行託管的執行器已列入 Enterprise 的產品藍圖。必須在您網路內執行的作業可以留在自架執行器上,其他作業則移到 CRACI。

以您自己的工作負載比較執行器

預約示範,將一個實際的工作流程移到 CRACI。比較成本、速度,以及每次建置產出的佐證資料。

預約示範