「コンプライアンス対応は毎回手作業で大変」——SES現場でこうした声を聞くことは珍しくありません。OpenAI Codex CLIのサンドボックス実行機能を活用すれば、コンプライアンスチェックを安全かつ効率的に自動化できます。
OpenAI Codex CLIはサンドボックス環境内でコマンドを実行でき、SBOM生成・ライセンス互換性チェック・依存関係の脆弱性スキャンを一括自動化できます。この記事では、OpenAI Codex CLIシリーズ第43弾として、コンプライアンス監査の自動化ワークフローを実践的に解説します。
この記事を3秒でまとめると
- OpenAI Codex CLIでSBOM(ソフトウェア部品表)生成からライセンス互換性チェックまで一気通貫で実行
- サンドボックス実行でセキュリティスキャンを安全に自動化し、本番環境への影響をゼロに
- CI/CDパイプラインに組み込んで、プルリクエストごとにコンプライアンスチェックを自動実行
コンプライアンス自動化が必要な背景
SES現場でのコンプライアンス課題
エンタープライズ案件やFintech案件では、コンプライアンス対応は必須です。しかし現実には多くの課題があります。
| 課題 | 影響 | 発生頻度 |
|---|---|---|
| OSS ライセンス未確認 | 法的リスク・訴訟リスク | 案件の70%以上 |
| 脆弱性のある依存関係 | セキュリティインシデント | 毎月の更新で発生 |
| SBOM未整備 | サプライチェーン攻撃リスク | 大企業案件で必須化 |
| 監査レポート作成の工数 | 月20時間以上の手作業 | 四半期ごと |
2026年現在、EU Cyber Resilience Actや米国大統領令14028の影響で、SBOM提出を求められるSES案件が急増しています。
OpenAI Codex CLIが最適な3つの理由
1. サンドボックス実行の安全性 Codex CLIのサンドボックスモードでは、ネットワークアクセスやファイルシステムへの書き込みが制限された環境でスキャンを実行できます。本番環境に影響を与えません。
2. 自然言語での指示 「このプロジェクトの全依存関係のライセンスを一覧にして」のような自然言語指示で、複雑なスキャンツールの操作を省略できます。
3. レポート生成の自動化 スキャン結果から経営層向けのサマリーレポートまで、一連の流れを自動化できます。
SBOM生成の自動化
SBOMとは何か
SBOM(Software Bill of Materials)は、ソフトウェアに含まれる全コンポーネントの一覧です。食品の「原材料表示」のようなものだと考えてください。
SBOMに含まれる情報:
- コンポーネント名とバージョン
- ライセンス情報
- 依存関係の階層構造
- 既知の脆弱性情報
- サプライヤー情報
Codex CLIでSBOM生成
codex "このプロジェクトのSBOMをCycloneDX形式で生成してください。
以下の要件を満たすこと:
1. 直接依存と間接依存の両方を含める
2. 各コンポーネントのライセンス情報を付加
3. 既知の脆弱性(CVE)の有無をチェック
4. JSON形式で出力"
Codex CLIはプロジェクトの種類(Node.js, Python, Go, Javaなど)を自動判別し、適切なツールチェーンを使ってSBOMを生成します。
Node.jsプロジェクトの場合:
# Codex CLIが内部的に実行するコマンド例
npx @cyclonedx/cyclonedx-npm --output-file sbom.json --spec-version 1.5
Python プロジェクトの場合:
pip install cyclonedx-bom
cyclonedx-py environment --output sbom.json
SBOM分析の自動化
生成したSBOMを基に、Codex CLIに詳細な分析を依頼します。
codex "sbom.jsonを分析して以下のレポートを生成してください:
1. コンポーネント総数と直接/間接の内訳
2. ライセンス別の分布(MIT, Apache-2.0, GPL等)
3. ライセンス互換性の問題がある組み合わせ
4. 脆弱性があるコンポーネントのリスト(重要度順)
5. 推奨アクション(更新・代替・除外)"

ライセンス互換性チェック
ライセンスリスクの分類
Codex CLIに、プロジェクトのライセンスポリシーに基づいたチェックを実行させます。
codex "このプロジェクトの全依存関係のライセンスをチェックし、
以下のポリシーに基づいてリスク分類してください:
許可ライセンス(GREEN): MIT, Apache-2.0, BSD-2-Clause, BSD-3-Clause, ISC
要確認ライセンス(YELLOW): LGPL-2.1, LGPL-3.0, MPL-2.0, EPL-2.0
禁止ライセンス(RED): GPL-2.0, GPL-3.0, AGPL-3.0, SSPL
商用プロジェクトのため、コピーレフトライセンスは原則禁止です。
結果をリスクレベル別にまとめてください。"
出力例:
## ライセンスチェック結果
### 🟢 GREEN(問題なし): 142件
- MIT: 89件
- Apache-2.0: 31件
- BSD-3-Clause: 15件
- ISC: 7件
### 🟡 YELLOW(要確認): 3件
- LGPL-3.0: json-c v0.17(間接依存)
- MPL-2.0: hashicorp/hcl v1.0.0
- MPL-2.0: hashicorp/go-multierror v1.1.1
### 🔴 RED(対応必要): 1件
- GPL-3.0: readline v8.2(間接依存)
→ 推奨: 代替パッケージへの差し替え
### 📊 サマリー
- 全146コンポーネント中、97.3%が問題なし
- 要対応: 1件(readline → 代替パッケージ検討)
ライセンス問題の自動修正
問題が見つかった場合、Codex CLIに代替手段を提案させます。
codex "GPL-3.0ライセンスのreadlineパッケージの代替を探してください。
以下の条件を満たすもの:
1. MIT または Apache-2.0 ライセンス
2. APIの互換性が高い
3. アクティブにメンテナンスされている
4. 移行手順も含めて提案してください"
脆弱性スキャンの自動化
依存関係の脆弱性チェック
codex "このプロジェクトの全依存関係について脆弱性スキャンを実行してください。
1. npm audit / pip-audit / govulncheck 等の適切なツールを使用
2. CVSSスコア順にソート
3. Critical, Highの脆弱性については修正パッチの有無を確認
4. 修正可能なものは自動的にバージョンアップしてください"
カスタムセキュリティルールの適用
SES案件固有のセキュリティポリシーに合わせたルールを設定できます。
codex "以下のカスタムセキュリティルールでコードベースをスキャンしてください:
1. ハードコードされたシークレット(API Key, パスワード, トークン)の検出
2. SQLインジェクション脆弱性のあるクエリ
3. XSS脆弱性のある出力処理
4. 認証バイパスの可能性がある箇所
5. ログにPII(個人情報)が含まれる箇所
各項目について、ファイル名・行番号・修正案を含めてレポートしてください。"
Codex CLIの出力例:
## セキュリティスキャン結果
### 🚨 Critical: ハードコードシークレット
- src/config/database.js:15
→ `password: "admin123"` → 環境変数に移行推奨
修正: `password: process.env.DB_PASSWORD`
### ⚠️ High: SQLインジェクション
- src/repository/user.js:42
→ `query("SELECT * FROM users WHERE id = " + userId)`
修正: パラメータバインディングに変更
### ℹ️ Medium: PIIログ出力
- src/handler/auth.js:28
→ `console.log("User login:", email, password)`
修正: パスワードのマスキング
セキュリティスキャンガイドでも、脆弱性検出の基礎を解説しています。
CI/CDパイプラインへの組み込み
GitHub Actionsでの自動チェック
コンプライアンスチェックをCI/CDパイプラインに組み込むことで、全てのPRに対して自動的にチェックが実行されます。
name: Compliance Check
on:
pull_request:
branches: [main]
jobs:
compliance:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: npm ci
- name: SBOM Generation
run: npx @cyclonedx/cyclonedx-npm --output-file sbom.json
- name: License Check
run: |
codex "sbom.jsonのライセンスをチェックし、
GPL系ライセンスが含まれていればエラーとして報告してください"
- name: Vulnerability Scan
run: |
codex "npm auditを実行し、Critical/Highの脆弱性があれば
エラーとして報告してください。
修正可能なものは修正コマンドも出力してください"
- name: Upload SBOM
uses: actions/upload-artifact@v4
with:
name: sbom
path: sbom.json
プレコミットフックでの早期検出
CI/CDだけでなく、開発者のローカル環境でもチェックを実行します。
# .husky/pre-commit
codex "変更されたファイルに以下の問題がないかチェック:
1. 新しく追加されたnpm パッケージのライセンスがGPL系でないこと
2. ハードコードされたシークレットがないこと
3. .envファイルがコミットに含まれていないこと
問題があれば具体的に報告してください"
CI/CD自動化ガイドで、パイプライン構築の詳細を解説しています。
コンプライアンスレポートの自動生成
定期レポートの作成
経営層やクライアントへの報告用レポートをCodex CLIで自動生成します。
codex "以下のデータを基に、月次コンプライアンスレポートをMarkdownで作成してください:
- sbom.json(現在のSBOM)
- audit-results.json(脆弱性スキャン結果)
- license-check.json(ライセンスチェック結果)
レポートの構成:
1. エグゼクティブサマリー(3行以内)
2. コンポーネント統計
3. 脆弱性対応状況(前月比較)
4. ライセンスリスク状況
5. 推奨アクションと優先度
6. 次月のリスク予測"
ダッシュボード用データの生成
codex "コンプライアンスチェックの結果を、
Grafana/Datadogダッシュボード用のメトリクスとして出力してください。
- 脆弱性数(Critical/High/Medium/Low)
- ライセンスリスクスコア
- SBOM更新日時
- コンプライアンススコア(0-100)
Prometheus metrics形式で出力してください。"
SES現場での実践パターン
パターン1: Fintech案件でのコンプライアンス対応
金融系SES案件では、特に厳格なコンプライアンス要件が求められます。
codex "Fintech向けコンプライアンスチェックリストに基づいてスキャンしてください:
1. PCI DSS準拠チェック(カード情報の取り扱い)
2. 暗号化アルゴリズムの強度確認(SHA-256以上)
3. 監査ログの出力確認
4. アクセス制御の適切性
5. データ保持ポリシーの実装確認"
パターン2: 大企業案件でのサプライチェーンセキュリティ
codex "サプライチェーンセキュリティの観点で、以下をチェックしてください:
1. 全依存パッケージのメンテナンス状態(最終更新日)
2. 1人メンテナのパッケージ(バス因子リスク)
3. タイポスクワッティングの疑いがあるパッケージ
4. 既知のマルウェア混入パッケージとの照合
5. 依存関係の深さ(10階層以上は警告)"
パターン3: 政府系案件でのISMAP対応
codex "ISMAP(政府情報システムのセキュリティ評価制度)の観点で、
以下のチェックを実行してください:
1. データの国内保管要件の確認
2. アクセスログの保持期間
3. 暗号化通信の強制(TLS 1.2以上)
4. 管理者権限の分離
5. バックアップ・リストアの実装"
チームワークフローガイドで、チーム全体でのセキュリティ運用も解説しています。
コンプライアンス自動化のベストプラクティス
段階的導入のステップ
Phase 1: 可視化(1週目)
- SBOMの初回生成
- 現状のライセンスリスク・脆弱性を把握
- ベースラインの確立
Phase 2: 自動検出(2-3週目)
- CI/CDへのコンプライアンスチェック組み込み
- プレコミットフックの設定
- 通知ルールの設定
Phase 3: 自動修正(4週目以降)
- 自動バージョンアップの設定
- ライセンス違反の自動ブロック
- 定期レポートの自動生成
チェック項目のカスタマイズ
案件ごとに異なるコンプライアンス要件に対応するため、設定ファイルでカスタマイズします。
{
"compliance": {
"licenses": {
"allowed": ["MIT", "Apache-2.0", "BSD-2-Clause", "BSD-3-Clause", "ISC"],
"review": ["LGPL-2.1", "LGPL-3.0", "MPL-2.0"],
"denied": ["GPL-2.0", "GPL-3.0", "AGPL-3.0"]
},
"vulnerability": {
"block_on": ["critical", "high"],
"warn_on": ["medium"],
"ignore": ["low"]
},
"sbom": {
"format": "cyclonedx",
"version": "1.5",
"include_dev": false
}
}
}
まとめ:コンプライアンス工数を70%削減するCodex CLI活用法
OpenAI Codex CLIを使ったコンプライアンスチェック自動化により、手作業で月20時間かかっていた監査作業を6時間以下に短縮できます。
導入のポイント:
- まずSBOM生成で現状を可視化し、リスクの全体像を把握する
- ライセンスポリシーを明文化し、Codex CLIに自動チェックさせる
- 脆弱性スキャンをCI/CDに組み込み、PRごとに自動実行する
- 定期レポートの自動生成で、経営層への報告工数を削減する
**コンプライアンス対応ができるエンジニアの市場価値は高い。**Codex CLIで効率化しながら、セキュリティ・コンプライアンスのスキルを磨きましょう。
SES BASEでは、セキュリティ・コンプライアンス領域のSES案件も多数掲載しています。案件を検索するからチェックしてみてください。