更新日:2026年8月4日

8分で読めます

Claudeが書き、GitLabがつなぐ:本番環境まで途切れないセキュリティ

Claude Securityはコーディングセッション内で脆弱性を検出します。そこから先はGitLabが引き継ぎ、スキャン、ポリシーの適用、そしてソフトウェアライフサイクル全体の監査エビデンス作成までを担います。

エージェント型コーディングの進化は速く、多くの企業のガバナンス体制が追いつけていないのが実情です。Claude security guidanceプラグインClaude Securityのようなコーディングアシスタントは、コードが書かれるのと同じセッション内で、よくある脆弱性を検出し修正できます。これはより安全なコードを書くうえで大きな価値がありますが、セキュリティはそこで終わりません。コミットは本番環境に至る道のりの一段階に過ぎず、マージ、依存関係の更新、インフラの変更、監査は、セッションが終わった後に発生します。

GitLabは、本番環境に至るまでの残りの工程のセキュリティを担います。Anthropic ClaudeからGitLabへと至る典型的なセキュリティワークフローには5つのハンドオフが存在し、本記事ではその一つひとつを取り上げながら、エージェント型コーディングを大規模に統制する方法を解説します。

すでにClaude security guidanceやClaude Securityを利用しているチームであれば、GitLab MCPサーバーを通じてそのコンテキストをGitLabに直接連携させ、既存のワークフローをそのまま維持できます。Claudeがコードを書く瞬間を担当し、そこから本番環境に至るまでのすべてを、単一のプラットフォーム上でGitLabが引き受けます。

検出から実効性のある統制へ

Claude security guidanceプラグインは、開発者一人ひとりのセッション内でコードをレビューし、エージェントの手を止めないほどの速さで問題を検出します。しかし、そのコードがセッションを離れた後は、セキュリティチームはセッション内で何が起きたかの記録と、次に何が起きるかを制御する仕組みを必要とします。

GitLabが提供するのは、コードの出どころを問わず、本番環境に届く前の段階で安全なコーディングのためのガードレールを定義できるだけの可視性と制御力です。

  • 一度定義し、全社に適用: セキュリティ設定プロファイルにより、必要なスキャンをリポジトリの外側からすべてのプロジェクトとパイプラインに適用できるため、カバレッジが一貫し、回避される心配もありません。
  • エージェントにも職務分掌を適用: マージリクエスト承認ポリシーにより、変更を書いたエージェント自身がそれを承認することはできません。エージェントも、それを指示した開発者自身も、指定された承認者なしに自分の作業をマージすることはできません。
  • 重大な脆弱性を出荷前にブロック: マージリクエスト承認ポリシーは、未解決の重大な検出結果があるマージを、指名された承認者が承認するまで保留します。これにより、見過ごされた、あるいは却下された脆弱性が気づかれないまま本番環境に届くことはありません。
  • すべての検出結果のステータスを、恒久的に追跡: 脆弱性レポートセキュリティダッシュボードにより、各検出結果が検出済みか、理由付きで却下されたか、解決済みかを確認できます。

対象となるすべてのプロジェクトでスキャナーを大規模に有効化し、回避できない仕組みにする対象となるすべてのプロジェクトでスキャナーを大規模に有効化し、回避できない仕組みにする

セッション内のスキャンから監査証跡へ

変更管理における監査要件は、エージェントも対象に含む形へと広がっています。SOC 2、PCI DSS、FedRAMPといったコンプライアンスフレームワークでは、あらゆる変更が出荷前にテスト・レビュー・承認されたことを示す文書化されたエビデンスが求められます。

GitLabは、コンプライアンス統制を実効性のあるものにし、監査人向けのエビデンス収集を自動化します:

  • スキャンとレビューの実施を証明: コンプライアンス統制は、すべてのマージリクエストでスキャンが実行されることを保証し、検出結果はマージリクエストと脆弱性レポートの両方に表示され、人の目で確認できます。
  • 監査人への回答は数分で完了: パイプラインログ承認記録監査イベントにより、何がスキャンされ、誰が承認したかを変更ごとに再現可能な履歴として確認でき、関わった人やエージェントとも紐づけられます。
  • 監査人が求めるフレームワークにエビデンスを対応付け: コンプライアンスフレームワークは、SOC 2や独自フレームワークなど、名前の付いた要件ごとにエビデンスをグループ化し、それぞれ特定の統制から構成されます。コンプライアンスステータスレポートでは、フレームワークごとにどの統制が合格・保留・不合格かを確認できます。

エージェントの活動を記録した監査ログ。セッション単位のイベントと開始時刻を表示エージェントの活動を記録した監査ログ。セッション単位のイベントと開始時刻を表示

送信するデータをコントロールする

レビューのためにコードやその背景にあるビジネスコンテキストを送る相手は、人よりもモデルのほうが多いかもしれません。規制業界、政府機関、知的財産に敏感な組織にとっては、認証情報や独自のロジック、規制対象データなど、何を環境の外に出すかを自ら決める必要があります。この判断は、スキャンが実行される前に、コードに触れるすべてのツールにわたって行われなければなりません。

GitLabを使えば、データが環境の外に出る前に、モデルに届く内容を自ら決められます:

  • シークレットや機密コードをモデル送信の対象外に: コンテキスト除外設定により、シークレットや機密ファイルを、エージェントがモデルに送るすべての内容から除外できます。
  • コードと推論を自社の境界内に、承認済みのモデルだけで完結: Self-Managed環境でセルフホストモデルを実行すれば、何も外部に出ることはありません。フローごとにモデルを選択し、許可するモデルを制限して、コードが学習データに使われないようにできます。
  • 送信内容をフィルタリング: GitLab Duoのプロンプトガードレールは、コード提案がモデルに届く前にシークレットをスキャンし、プロンプトが操作できるコンテンツを分離することでプロンプトインジェクションのリスクを抑えます。これは、すでに除外設定した内容に加えて機能します。

AIモデルへの送信から除外するファイルやディレクトリを定義するAIモデルへの送信から除外するファイルやディレクトリを定義する

単発のスキャンから、開発ライフサイクル全体を網羅するスキャン体制へ

Anthropicのドキュメントでも、Claude security guidanceプラグインはベストエフォート型の支援ツールであり、人によるコードレビューや各種セキュリティスキャナーに置き換わるものではなく、それらと並行して使うものだと明記されています。この位置づけは重要です。なぜなら、出荷した時点では存在しない脆弱性もあるからです。今日出荷した依存関係に、来年、自分のコードには一切変更がないまま重大な脆弱性が公表されることもあります。Log4Shellはその典型例で、何年も前に出荷されたアプリケーションが、2021年12月に脆弱性が公になった瞬間、突然攻撃可能な状態になりました。

依存関係、コンテナイメージ、インフラ構成、そしてすでにコミット履歴に残っているシークレットには、特定のセッションから独立して実行されるスキャンが必要です。

GitLabは、ソフトウェア配信ライフサイクル全体を保護します:

  • アタックサーフェス全体をカバー: 依存関係コンテナInfrastructure as Codeシークレット、そして動的アプリケーションセキュリティテスト(DAST)のスキャンが、セッション単位のレビューでは決して届かない領域をチェックします。取り込む依存関係、出荷するイメージ、プロビジョニングするインフラ、コミットに紛れ込むシークレット、そして稼働中のアプリケーションです。
  • スキャナーが見逃す欠陥も検出: 決定論的なスキャナーでは、ビジネスロジックの誤りや認証の不備、競合状態を検出できません。Security Review Flowは意図を推論することでこのカテゴリーを直接捉え、該当コードへのコメントとして投稿し、人が対応できるようにします。
  • 結果がぶれない、決定論的なスキャンを併用: LLMによるレビューは、同じコードでも実行のたびに異なる検出結果を返すことがあります。アドバンストSASTのような決定論的スキャンは、固定のアルゴリズムで関数境界を越えて汚染データを追跡し、CWEにマッピングされた再現性のある結果を返します。これこそ、コンプライアンス監査に必要な一貫したエビデンスです。

SAST、DAST、依存関係、コンテナ、シークレットの各スキャンをパイプラインで必須実行SAST、DAST、依存関係、コンテナ、シークレットの各スキャンをパイプラインで必須実行

すべてのエージェントと開発者に、共通のガードレールを

Claude security guidanceプラグインがレビューするのは、Claudeがセッション内で書いてコミットしたコードです。セッション内の「!」によるシェルエスケープを含め、開発者自身のシェルから行われたコミットは、プラグインのレビュー対象外です。Claude Securityは、開発者や管理者がオンデマンドで実行することで、コードベース全体や人が書いたコードにもレビューの範囲を広げます。

GitLabのスキャン実行ポリシーとマージリクエスト承認ポリシーは、すべての変更に対してパイプライン上で実行されます。そのため、コードを書いたのが人かエージェントか、スキャンを実行し忘れていないかといった事情に、カバレッジが左右されることはありません。

デフォルトブランチごとにセキュリティスキャンが実行されるよう設定するデフォルトブランチごとにセキュリティスキャンが実行されるよう設定する

本番に届くものを統制する

Claude security guidanceとClaude Securityは、コードが書かれたその瞬間に問題を検出し、修正することを助けます。しかし、そのコードがセッションを離れた後は、本番環境まで安全に届けることの責任は、エンタープライズのセキュリティチームとプラットフォームチームが負います。そこで必要になるのが、エージェントが何をしたかの可視性、セキュリティ手順が守られたことの証明、そして問題のある変更を出荷前に止められる仕組みです。

GitLabは、Claudeのワークフローをそこにつなぎます。GitLab側でガードレールを一度設定すれば、あらゆるエージェントも開発者も、その内側でより速く、より安全に出荷できるようになります。Claudeの役割は、安全なコードを書く手助けをすることです。GitLabはそこから本番環境までのすべてを、チームの速度を落とすことなく統制します。

GitLab Ultimateの無料トライアルを始める!

すでにUltimateをご利用の場合は、スキャン実行ポリシーとマージリクエスト承認ポリシーを設定し、今日からガードレールの適用を始めましょう。

関連リンク

ご意見をお寄せください

このブログ記事を楽しんでいただけましたか?ご質問やフィードバックがあればお知らせください。GitLabコミュニティフォーラムで新しいトピックを作成してあなたの声を届けましょう。

フィードバックを共有する

今すぐ開発をスピードアップ

DevSecOpsに特化したインテリジェントオーケストレーションプラットフォームで実現できることをご確認ください。