Instiq
第5章 · 自動化のセキュア化と最適化·v1.0.0·更新 2026/6/14·読了目安 約17分

変更要約: GH-200 第5章を新規作成(セキュリティのベストプラクティス=スクリプトインジェクション緩和・GITHUB_TOKEN 最小権限/PAT対比・OIDC クラウド連携・SHA ピン留め/信頼できるアクション/利用ポリシー・アテステーション/provenance(SLSA)・環境承認ゲート、パフォーマンス/コスト最適化=actions/cache・retention(REST API)・matrix サイズ/max-parallel・concurrency+cancel-in-progress・paths/branches フィルター・if 条件・ランナーサイズ)

5.1セキュリティのベストプラクティス

この節の要点

スクリプトインジェクションの緩和、GITHUB_TOKEN のライフサイクルと最小権限・PAT との対比、クラウド連携の OIDC(長期シークレットの排除)、サードパーティアクションの SHA ピン留めと信頼できるアクションの選定・利用ポリシー、アーティファクトのアテステーション/来歴(provenance)、環境の承認ゲートを理解します。

CI/CD はソースコード・シークレット・本番環境に触れるため、攻撃者の標的になりやすい領域です。GH-200 の最終ドメインは、ワークフローを 安全に設計 する実践を問います。中心となる原則は 最小権限信頼できるコードだけを実行長期シークレットを持たない の 3 つです。

5.1.1スクリプトインジェクションの緩和

スクリプトインジェクション は、PR タイトルや Issue 本文・ブランチ名などの 信頼できない入力run: のシェルコマンドに直接埋め込むと起きます——攻撃者が ${{ github.event.issue.title }} に悪意あるコマンドを仕込むと、ランナー上で実行されてしまいます。緩和策は、信頼できない値を run: に直接展開しない(中間の 環境変数 に入れて "$VAR" のように 引用 して使う)、入力の検証/サニタイズ最小権限 の付与、そして可能なら インラインスクリプトより検証済みアクション を使うことです。

5.1.2GITHUB_TOKEN の最小権限と PAT との対比

各実行に発行される GITHUB_TOKEN一時的(ephemeral) で、ジョブ終了とともに失効する スコープ付き の資格情報です。permissions: キーで contents: read のように 最小権限 に絞り、書き込みが要るジョブだけ昇格させます。一方、個人の PAT(Personal Access Token) は長期間有効で広い権限を持ちがちなため、ワークフローでの常用は避け、必要な場合もシークレットに保存して最小スコープにします。原則として「まず GITHUB_TOKEN、足りない時だけ最小スコープの別資格情報」です。

続きは無料登録で読めます

冒頭を無料で公開中。無料登録でこの節の全文と、第4章以降を含む全参考書・全問題集が読めます。