比較
CRACI vs Namespace
Namespaceは、自社ハードウェア上でLinux、Windows、macOSにわたる高速なGitHub Actionsランナーを運用しています。CRACIはLinuxのGitHub Actionsジョブを実行し、各ジョブをエビデンスに変えます。何を取得したか、どこにアクセスできたか、何を生成したかです。
更新日
結論
Namespaceは開発者向けインフラストラクチャです。マネージドGitHub Actionsランナー、リモートDockerビルダー、キャッシュボリューム、Bazelのリモート実行、クラウド開発環境を提供し、すべてNamespace自身が運用するハードウェア上で動作します。CRACIは、サプライチェーンセキュリティを中心に設計されたGitHub Actions互換のランナーです。すべてのジョブが、実際に取得したもののSBOMを生成し、エグレスポリシーのもとで実行されます。
どちらの製品も、ビルドがネットワーク上でアクセスできる先を制限でき、Namespaceのエグレスポリシーはよく設計されています。違いは、ランナー上でそれ以外に何が行われるかです。Namespaceはスピード、プラットフォーム、キャッシュに注力し、CRACIはビルドを記録して、その記録を脆弱性の監視とCRAのエビデンスにまでつなげます。どちらもGitHubホステッドランナーを置き換えるものなので、いずれか一方を選ぶことになります。
概要
| 機能 | CRACI | Namespace |
|---|---|---|
| 各ジョブが取得したものの記録 | パッケージを認識するプロキシがすべてのジョブを記録 | |
| ビルド時SBOM | ジョブごと、完全性の状態付き | |
| ランナーでのエグレスポリシー | パッケージソースのプリセット、ジョブ前に検証 | ランナープロファイルごとのドメインルール |
| アドバイザリ(ログのみ)のエグレスモード | ブロックせずに判定を記録 | |
| CRAのエビデンスとレポート | CycloneDXまたはSPDXのSBOM、APIによる記録、CRA通知の内容の準備に対応。レポートのエクスポートはなし | |
| WindowsとmacOSのランナー | 現在はLinuxのみ | WindowsはTeamプランから |
| キャッシュ | GitHub Actionsキャッシュとコンテナレイヤーのキャッシュ | キャッシュボリューム、Docker、Bazel、Turborepo |
| 料金(2 vCPU Linux) | 1分あたり$0.004(RAM 6 GB)。ARM64も同じ料金。 | プラン内は1分あたり$0.002、超過分は$0.003(RAM 4 GB)。 |
| 計測 | 秒単位。最も近い秒に丸め。 | 最低1分、その後は分単位で丸め。 |
| プラン | 2 vCPU 1分あたり$0.004、秒単位の従量課金。月額料金なし。 | 従量課金。Teamは月$100、Businessは月$250。 |
- 対応
- 一部対応
- 非対応
- ロードマップに掲載
Namespaceの強み
- プラットフォーム。AMD64(AMD EPYC)とARM64(AmpereOne、およびアーリーアクセスのApple Silicon)のLinux、AMD EPYCのWindows、Apple M5 MaxまたはM4 ProのmacOSに対応しています。WindowsランナーはTeamプラン以上で利用できます。
- ランナープロファイル。ダッシュボードでオペレーティングシステムとマシンシェイプを指定してプロファイルを作成し、
runs-onで参照します。シェイプはLinuxで最大64 vCPUまであり、Namespaceによればサポートに依頼すれば最大512 GBのRAMを利用できます。 - キャッシュ。キャッシュボリュームは実行をまたいでデータをローカルストレージに保持するため、ジョブが毎回キャッシュアーカイブをアップロード・ダウンロードする必要がありません。NamespaceはDockerビルドのキャッシュ、Bazelのリモートキャッシュと実行、TurborepoとGradleのキャッシュも提供しています。
- エグレスポリシー。ポリシーは、許可されていないものをすべて拒否する
BLOCKモード、または同じ判定をブロックせずに記録するADVISORYモードで動作し、実際の通信から許可リストを作成できます。ルールはドメインで照合し、マネージドのgithub-actionsルールセットがランナーの動作を維持します。ディープパケットインスペクションを使えば、ポリシーでリクエストヘッダーにシークレットを挿入したり、通信をプロキシ経由にしたりできます。ダッシュボードでは許可・拒否されたリクエストがドメインごとにまとめられ、各インスタンスには個別のエグレスビューがあります。 - 信頼性。NamespaceはSOC 2 Type IIを取得しており、レポートはTrust Centerで入手できます。エンタープライズプランでは地域限定のデータレジデンシーを提供しています。
Namespaceは、DuckDBがCIを「10倍高速に」実行している例など、顧客の成果を公開しています。これらは各顧客についてのNamespaceの数値です。
CRACIの違い
CRACIは、ビルドこそが出荷するものについての信頼できる情報源だと考えます。
ビルドが取得したものの記録
各ジョブの実行中、パッケージを認識するプロキシが、npm、PyPI、RubyGems、Composer、Cargo、Go、Nix、OCI、apt、apk、Gitの各ソースとダウンロードプリセットといったパッケージソースへの通信を記録します。依存関係のエビデンスはCIキャッシュと一緒に引き継がれるため、キャッシュから復元されたパッケージも記録に含まれます。CycloneDXまたはSPDXで出力される各ジョブのSBOMには、ジョブごと・キャッシュごとに完全性の状態が付与されます。Namespaceのエグレスログが示すのは、ランナーがどのドメインに接続したかです。CRACIの記録は、ビルドがそこからどのパッケージとバージョンを取り込んだかを示します。
エグレスポリシーの公平な比較
CRACIのポリシーはデフォルト拒否またはデフォルト許可で、24種類の組み込みソフトウェアソースプリセット、npm、PyPI、apt、apk、Goプロキシ、Nix、Cargo、OCIレジストリ、Git(HTTPSとSSH)向けの型付きカスタムソース、明示的なTLS、TCP、UDP、ICMPルールを備えています。ポリシーはジョブの開始前に検証され、フェイルクローズで動作し、未知のフィールドを拒否し、違反時にはアラートを送信します。
Namespaceが先行している点が2つあります。アドバイザリモードではポリシーを適用する前に観測でき、CRACIのモニターモードはまだロードマップに掲載されている段階です。また、シークレットの挿入とプロキシのルールには、CRACIに相当する機能がありません。CRACIの違いは、ソースがドメインの一覧ではなくパッケージエコシステムとプロトコルで型付けされていること、そしてポリシーのもとで実行される同じジョブが、取得したパッケージの記録も生成することです。
来歴と監視
- 来歴データ。APIはSBOM、ネットワークトレース、来歴を返します。CRACIは来歴に署名せず、SLSAレベルも主張していません。
- 出荷したものの監視。監視対象のSBOMは新たな脆弱性に対して継続的に再評価され、検出結果はビルドとリポジトリをまたいで集約されます。
料金とサイズ
Namespaceはユニット分で課金します。1ユニットは、Linuxで1 vCPUと2 GBのRAMを1分間使用する量です。2026年9月時点で、2 vCPU・4 GBのLinuxランナーはプラン内の分数では1分あたり$0.002、超過分は1分あたり$0.003です。Teamプランは月$100で100,000ユニット分、Businessは月$250で250,000ユニット分です。WindowsはLinuxの2倍、macOSは10倍の料金で分数を消費します。利用量はジョブごとに最低1分で、その後は分単位で丸められます。Namespaceの例では、150秒が3分として請求されます。
CRACIの料金はvCPU 1分あたり$0.002で、RAM 6 GBの2 vCPUランナーは1分あたり$0.004です。ARM64も同じ料金で、秒単位の従量課金、月額料金はありません。Namespaceの1分あたりの定価のほうが低いですが、ジョブごとに最低1分の課金があります。Namespaceの標準シェイプはvCPUあたり2 GBのRAM、CRACIは3 GBなので、比較する前にビルドに必要なシェイプを揃えてください。最新の条件はCRACIの料金をご覧ください。
どちらが適しているか
Namespaceが適している場合
- macOSやWindowsのランナーが必要。CRACIは現在Linuxのみで、WindowsとmacOSはロードマップに掲載されています。
- エグレスポリシーを適用する前に、アドバイザリモードで試したい。
- Bazelのリモート実行やキャッシュボリュームに依存している。
- Buildkiteエージェントやクラウド開発環境も運用しており、ベンダーを1つにまとめたい。
CRACIが適している場合
- リリースに何が入ったかを、ビルド自体から、完全性の状態とともに示す必要がある。
- 出荷したSBOMの監視を1か所で行いたい。
- Cyber Resilience Actのためのエビデンスが必要。
- EUのデータレジデンシーが必要(CRACIのEnterpriseプランで利用可能)。
Cyber Resilience Actへの対応
Cyber Resilience Actは、メーカーに対して、製品のコンポーネントを把握し、その脆弱性に対処し、エビデンスを保持することを求めています。Namespaceの製品は、高速なCIと開発インフラストラクチャです。CRACIは、企業がより広範なCRAコンプライアンスのプロセスで必要とするソフトウェアサプライチェーンの可視性とエビデンスのかなりの部分を自動化します。CycloneDXまたはSPDXでエクスポートされるビルド時SBOM、脆弱性トラッキング、APIを通じた来歴がその例です。CRAのエビデンスをご覧ください。
NamespaceからCRACIへの切り替え
組織にCRACI GitHub Appをインストールし(すべてのリポジトリ、または選択したリポジトリへのアクセスを付与)、ジョブのランナーラベルを変更します。
runs-on: craci
ジョブを1つずつ移行し、SBOMとネットワークトレースを確認してください。詳しくはCI/CD連携とビルド時SBOM生成をご覧ください。
キャッシュ、OIDCの信頼ポリシー、IP許可リスト、フォールバックについては、GitHub Actionsのランナープロバイダーを切り替える方法をお読みください。