case_687 SaaS・IT

金融機関のGitLab承認フローをClaude Codeで止めない実装パターン

金融機関のGitLab承認フローをClaude Codeで止めない実装パターン

Claude Code v2.1.233のGitLab MR対応とメモリ上限設定を使い、金融機関の多段承認フローを止めずにAI開発を回す実装パターンを、想定シナリオベースで具体的に解説します。

結論:Claude Codeのv2.1.233(2026年8月14日)とv2.1.234(同8月17日)で、GitLabのマージリクエスト連携とLinux向けメモリcgroup上限が相次いで追加されました。オンプレミスGitLab+共有CIランナーという構成が多い金融機関の内製システム開発チームにとって、この2つは「変更管理の証跡」と「暴走ビルドによる巻き添え停止の防止」という別々の課題を同時に埋める組み合わせです。

  • 要点1:認証済みglab CLIがあれば、フッターとステータスラインにMR(マージリクエスト)の状態が!N形式でDraft/Pending/Greenの3色で表示される(v2.1.234)。--worktreeフラグはGitLab MRのURLをそのまま受け付けるようになった(v2.1.233)。
  • 要点2:CLAUDE_CODE_TOOL_MEMORY_LIMIT環境変数で、LinuxのBashツール実行にcgroupベースのメモリ上限をオプトインで設定できる(v2.1.233)。1つのセッションの暴走ビルドが共有ランナー全体を巻き込んで止める事故を防ぐ設計。
  • 要点3:同じv2.1.233で追加されたforward_user_identity(gateway経由の利用者属性転送)と組み合わせると、「誰が」「何を」「どこまでの権限で」実行したかを追いやすい3層のガバナンス構成が組める。

対象読者:オンプレGitLab・共有CIランナーで内製システム開発を回している金融機関(銀行・証券・信販・保険等)のエンジニア・PM、情シス・コンプライアンス担当。この記事は公式ドキュメントと公式changelogを一次情報源に、仕組みの整理・設定手順・段階導入ロードマップ・つまずきやすい失敗パターンまでを解説します。

今日やること:手元のclaude --versionで2.1.233以上になっているか確認し、GitLabリポジトリでglab auth statusが通るかをチェックする。

地方銀行のシステム子会社で内製開発を担当しているエンジニアから、少し前にこんな相談を受けました。「Claude Codeを使いたいけど、うちはGitLabがオンプレで、ビルドサーバーも複数チームで共有している。1人のセッションが暴走してビルドを詰まらせたら、他チームの開発が止まる。それでも導入していいものか」というものです。GitHub前提で語られる情報は多いのに、GitLabをオンプレで運用し、共有インフラを大事に使う金融機関特有の悩みに答える情報は驚くほど少ない、というのが率直な印象でした。

2026年8月に入ってからのClaude Codeのアップデートを追っていくと、この悩みに直接効く変更が立て続けに入っています。8月14日のv2.1.233でGitLabのマージリクエスト(MR)連携とLinux向けメモリcgroup上限が同時に追加され、8月17日のv2.1.234でMRバッジがフッター・ステータスラインに表示されるようになりました。本記事では、これらの公式changelogの内容を整理したうえで、オンプレGitLab+共有CIランナーという構成を持つ金融機関の内製開発チームを想定した実装パターンとして組み立てます。

本記事の位置づけ:本記事は公式ドキュメント・公式changelogの内容整理と、それに基づく一般化された実装パターン解説(想定シナリオ)です。固有の金融機関名・実在の導入事例・実測の削減率は含みません。バージョン番号・機能の挙動はすべて公式ドキュメント/changelog記載の仕様であり、シナリオ部分(登場するチーム構成や課題感)は「想定シナリオ」であることを明記します。実際の監査要件・コンプライアンス要件を満たすかどうかは、貴社の監査部門・コンプライアンス部門・監査法人と個別に確認してください。

2026年8月の変更点を整理する — GitLab連携とメモリ上限

まず、今回扱う変更が実際にどのバージョン・どの日付で入ったのかを一次ソース(公式changelog)に基づいて整理します。バージョン番号は「バグ修正込みの高頻度リリース」であり、機能ごとに数日〜1週間ずれて段階的に入っている点に注意してください。

バージョン 公開日 変更内容(公式changelog原文の要約)
v2.1.232 2026年8月13日 サブエージェントのフォーク実行が既定化。プロンプトで@を入力して別セッションをメンションしSendMessageで直接送信できるように
v2.1.233 2026年8月14日 --worktreeフラグがGitLab MRのURLを受け付けるように。Linux向けにBashツールのメモリcgroup対応(CLAUDE_CODE_TOOL_MEMORY_LIMIT)をオプトインで追加。gateway向けにforward_user_identity設定を追加
v2.1.234 2026年8月17日 フッターとステータスラインにGitLab MRバッジを追加。claude.aiの利用上限リセット時にセッションを自動継続。Windows NT名前空間パス(\??\)を拒否するセキュリティ強化
v2.1.236 2026年8月19日 ANTHROPIC_DEFAULT_MODEL環境変数を追加。セッション間通知notify_when_idleを追加

本記事で中心的に扱うのは、v2.1.233とv2.1.234にまたがるGitLab MR連携と、v2.1.233のメモリcgroup上限の2つです。gatewayの支出上限・forward_user_identityについては、より詳しくClaude Code支出上限|gatewayで開発者別に設定で解説しているので、ガバナンス設計の全体像を知りたい方はあわせて参照してください。また、セッション間のメッセージング機能(SendMessageListAgents)はClaude Code複数セッション連携|並行開発を同期するで個別に扱っているため、本記事では深掘りしません。

なぜオンプレGitLab+共有CIランナーの金融機関で刺さるのか

ここからは、想定シナリオとして、複数のシステム開発チームが1つのGitLab(オンプレ運用)と、限られた台数の共有CIビルドサーバーを使い回している金融系のシステム子会社を例に考えます。この構成には、SaaSのGitHub+クラウドCIをふんだんに使えるスタートアップとは異なる、2つの制約があります。

  • 制約1:変更管理の証跡がGitLabのMRに一本化されている — 監査対応上、コード変更は必ずMRを経由し、レビュー・承認の記録が残る運用になっている。AIエージェントが直接pushしたりMRを経由せず変更を加えたりする運用は、内部統制の観点で採用しにくい。
  • 制約2:CIビルドサーバーが希少資源 — クラウドのオートスケールランナーのように必要なだけ立ち上げる、という選択肢が取りづらい。1つのジョブがメモリを食い潰して固まると、順番待ちの他チームのビルドキューが詰まる。

この2つの制約は、単体では目新しいものではありません。しかし「AIエージェントに実装作業の一部を任せたい」という話になった瞬間、両方が一気に効いてきます。AIエージェントは人間より多くのBashコマンドを短時間に実行しがちで、意図せず重いビルド・テストを連打してしまう可能性があるからです。v2.1.233〜234の変更は、この2つの制約それぞれに直接対応する機能が同じ週に入った、という巡り合わせになっています。

共有CIビルドサーバーの導入前後比較。導入前はジョブCのメモリ不足で他ジョブも待機中のまま止まっているが、導入後はメモリ上限でジョブCだけが制限され、他のジョブA・B・D・Eは実行中のまま

GitLab MRバッジの仕組みと運用条件

v2.1.234で追加されたMRバッジは、公式changelogによれば「GitLabリモートを持つリポジトリで、認証済みのglab CLIがある場合に、フッターとステータスラインへMR !NをDraft/Pending/Greenの状態付きで表示する」機能です。動作条件を整理すると次の通りです。

  • 前提条件1:作業中のGitリポジトリにGitLabのリモートが設定されていること
  • 前提条件2:glab CLIがPATH上にインストール済みで、glab auth loginによる認証が済んでいること
  • 注意点:Claude Codeはglabとそのログイン状態をセッション開始時に1回だけ確認する設計のため、glabを新しく入れた・ログインし直した場合はClaude Codeの再起動が必要

さらにv2.1.233で、--worktreeフラグがGitLab MRのURL(例:https://gitlab.example.com/group/repo/-/merge_requests/123)を直接受け付けるようになりました。特定のMRからブランチを切ってworktreeを作る、というワークフローがコマンド1つで完結します。claude agentsビュー(複数セッションを一覧するUI)でも、GitLabのMRは!N表記で他のセッションと並んで表示されます。

金融機関の内製開発チームにとってのポイントは、この機能が「AIに変更管理フローを迂回させる」のではなく「既存のMRベースの変更管理フローの中にAIの作業状況を可視化する」方向の機能だということです。レビュアーは、Claude Codeが作業中のブランチがどのMRに紐づいているか、Draft状態かGreen(マージ可能)状態かを、フッターを見るだけで把握できます。

GitLab CI/CDへの組み込み — 公式パイプライン例を読む

Claude CodeをGitLab CI/CDのジョブとして動かす統合は、公式ドキュメント(code.claude.com/docs/en/gitlab-ci-cd)によればGitLab側がメンテナンスするベータ機能で、Claude Code CLI/Agent SDK上に構築されています。公式が示す最小構成のジョブ例は次の通りです。

stages:
  - ai

claude:
  stage: ai
  image: node:24-alpine3.21
  rules:
    - if: '$CI_PIPELINE_SOURCE == "web"'
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
  variables:
    GIT_STRATEGY: fetch
  before_script:
    - apk update
    - apk add --no-cache git curl bash
    - curl -fsSL https://claude.ai/install.sh | bash
    - export PATH="$HOME/.local/bin:$PATH"
  script:
    - >
      claude
      -p "${AI_FLOW_INPUT:-'Review this MR and implement the requested changes'}"
      --permission-mode acceptEdits
      --allowedTools "Bash Read Edit Write mcp__gitlab"
      --debug

認証はANTHROPIC_API_KEYをmasked CI/CD変数として登録する方式が最速ですが、公式ドキュメントは本番運用としてAmazon Bedrock(AWS IAM・OIDCベース)またはGoogle CloudのAgent Platform(Workload Identity Federation)を使う「manual setup」を推奨しています。どちらもリージョン指定でデータの所在地要件を満たせる設計になっており、静的なクラウド認証情報をGitLabに保存せずに済む点は、金融機関の調達要件と相性が良い部分です。実行そのものは「各インタラクションが独立したコンテナで、ネットワークとファイルシステムのルールが厳格に適用される」サンドボックス方式で、変更は必ずMRを経由するため、レビュアーの承認フローはそのまま維持されます。

GitLab Runner自体をオンプレ・自社ネットワーク内に置く「セルフホストランナー」構成については、Claude Codeセルフホスト実行ガイド|4ステップで個別に扱っています。あわせて、コンテナベースでClaude Codeを動かす基本設計はDocker・コンテナをClaude Codeで構築する実践ガイドを参照してください。

GitHub Actions前提で書かれた情報とGitLab CI/CD向けの情報は、似ているようで前提条件が異なります。両者の違いを一度整理しておきます。

観点 GitHub Actions統合 GitLab CI/CD統合
メンテナンス主体 Anthropic GitLab(公式ドキュメント記載)
提供状態 一般提供 ベータ
MR/PR表示 PRバッジ・レビューコメント MR !Nバッジ(フッター・ステータスライン、v2.1.234〜)
エンタープライズ認証経路 Bedrock/Vertex等(GitHub側の設定に準拠) Claude API/Bedrock(OIDC)/Google CloudのAgent Platform(Workload Identity Federation)

共有CIランナーを守る — メモリcgroup上限(CLAUDE_CODE_TOOL_MEMORY_LIMIT)

v2.1.233の公式changelogは、この機能を一文でこう説明しています。

「Added opt-in memory cgroup support for Bash tool commands on Linux (CLAUDE_CODE_TOOL_MEMORY_LIMIT) so a runaway build can’t stall the session(Linux向けにBashツールコマンドのメモリcgroup対応をオプトインで追加。暴走したビルドがセッションを止められないようにする)」

ポイントを整理すると次の3つです。

  • Linux限定:cgroupはLinuxカーネルの機能なので、macOS/Windows環境では対象外です。共有CIランナー(多くはLinuxコンテナ)での利用が主戦場になります。
  • オプトイン:既定では無効。CLAUDE_CODE_TOOL_MEMORY_LIMIT環境変数を明示的に設定した場合のみ有効になります。
  • 「セッションを止められないように」という設計思想:暴走ビルドそのものを事前に禁止するのではなく、暴走が起きてもClaude Codeのセッション自体・ひいては共有ランナー上の他ジョブが巻き添えで止まらないようにする、という守備的な位置づけです。

なお、具体的な値の指定方法(メガバイト単位かバイト数か等の書式)については、2026年8月時点で公式のsettingsドキュメントページにまだ反映されておらず、公式changelogの上記一文以上の詳細を確認できていません。導入時は、その時点のclaude --helpまたは最新の公式ドキュメント(code.claude.com/docs)で正確な構文を必ず確認してください。本記事では機能の存在と目的までを扱い、値の書式は「確認できていない」ものとして扱います。

CLAUDE_CODE_TOOL_MEMORY_LIMITの仕組み。Linuxサーバーのcgroupメモリ上限の枠内でBashツール実行のメモリ使用量を制限し、他のプロセスへの影響を防ぐ図

共有ランナーの運用担当から見ると、この機能が効くのは典型的には次のようなケースです。テストスイートの一部がメモリリークを起こす、依存パッケージのビルドが意図せず大きなキャッシュを展開する、AIエージェントが「とりあえず全部ビルドし直す」ような広いコマンドを実行してしまう——いずれも、複数チームがランナーを共有している環境では、1セッションの暴走が全体のビルドキューを止める「巻き添え停止」につながります。cgroup上限を敷いておけば、暴走したプロセスがメモリ上限に達した時点でそのプロセスだけが制限され、ランナーごと固まる事態を避けやすくなります。

3層のガバナンス設計 — MR承認・メモリ上限・利用者属性

ここまでの2つの機能に、既存のgateway支出上限・forward_user_identity(v2.1.233で追加、詳細は前述の支出上限記事参照)を組み合わせると、金融機関の内製開発チームが説明しやすい3層の統制構成になります。

担う機能 答える問い
変更管理層 GitLab MR連携(--worktreeのMR URL対応、MRバッジ) 「誰が承認した変更が、どのブランチに入ったか」
資源保護層 CLAUDE_CODE_TOOL_MEMORY_LIMITによるメモリcgroup上限 「1セッションの暴走が、共有ランナー全体を止めていないか」
利用者帰属層 gatewayのforward_user_identity・支出上限 「誰が、どれだけ使ったか」
3層のガバナンス構成図。変更管理層(誰が承認した変更か)、資源保護層(共有ランナーを守る)、利用者帰属層(誰が、どれだけ使ったか)の3層を積み重ねた図

この3層は独立した機能の寄せ集めであり、Anthropicが「金融機関向けガバナンスパッケージ」として一括提供しているわけではありません。あくまで、2026年8月中旬の一連のアップデートを並べたときに、変更管理・資源保護・利用者帰属という3つの異なる問いにそれぞれ答えられる状態になった、というのが実態に近い表現です。導入担当としては、この3層をそれぞれ個別の設定項目として社内のセキュリティ・監査要件と突き合わせ、どこまでを設定すれば自社の統制方針を満たせるかを、コンプライアンス部門・監査法人と個別にすり合わせる作業が引き続き必要です。

段階導入ロードマップ(想定モデル)

いきなり全チームに展開するのではなく、影響範囲を区切りながら段階的に導入する想定モデルを示します。数値・期間はあくまで一般的な進め方の目安であり、実測データではありません。

Phase 1(1〜2ヶ月):1チーム・1ランナーでの検証:影響範囲が小さいプロジェクトを1つ選び、glab認証・MRバッジ表示・CLAUDE_CODE_TOOL_MEMORY_LIMITの設定を試す。共有ランナーではなく専用の検証環境で、暴走ビルドを意図的に起こしてcgroup上限が効くかを確認する。

Phase 2(3〜4ヶ月):共有ランナーへの本番投入とガバナンス整備:検証を終えたチームから、共有CIランナー上での運用に移す。並行して、gatewayの支出上限・forward_user_identityを設定し、利用者帰属の記録を情シス・コンプライアンス部門と合意する。

Phase 3(5〜8ヶ月):全社ポリシーへの落とし込み:MRバッジ・メモリ上限の設定をチームごとの裁量ではなく、組織のmanaged settingsとして標準化する。監査対応で求められる「AI利用の証跡」要件と、3層の構成要素(MR履歴・メモリ上限設定・利用者帰属ログ)を1対1でマッピングした資料を用意する。

段階導入ロードマップ。フェーズ1(1〜2ヶ月・検証)からフェーズ2(3〜4ヶ月・共有ランナー本番投入)、フェーズ3(5〜8ヶ月・全社ポリシー化)への3段階の流れ

【要注意】よくある失敗パターンと回避策

失敗1:GitHub前提の情報をそのままGitLab環境に適用する

❌ 「Claude CodeのCI/CD連携」で検索して出てくる情報の多くはGitHub Actions前提で書かれており、それをそのままGitLabの.gitlab-ci.ymlに置き換えようとして詰まる。

⭕ GitLab向けの統合は公式ドキュメント(code.claude.com/docs/en/gitlab-ci-cd)が別ページとして用意されており、GitLab側がメンテナンスするベータ機能という位置づけも異なる。GitHub Actions版の情報と混同せず、GitLab版のドキュメントを一次情報として参照する。GitHub Actions向けのCI/CD自動構築はClaude CodeでCI/CDパイプライン自動構築|GitHub Actions設定5パターンで別途扱っているので、GitHub環境の場合はそちらを参照する。

失敗2:glabの認証切れに気づかずMRバッジが消えたまま運用する

glab auth loginのトークンが期限切れになっても、Claude Codeはセッション開始時に1回しか認証状態を確認しないため、MRバッジが表示されなくなっていることに誰も気づかない。

⭕ セッションを再起動すれば再確認される設計なので、MRバッジが出ない場合はまずglab auth statusを手元で確認し、再認証後にClaude Codeを再起動する運用を、チームのオンボーディング手順に明記しておく。

失敗3:メモリ上限を「設定すれば安全」と誤解する

CLAUDE_CODE_TOOL_MEMORY_LIMITを設定した時点で、共有ランナーの資源保護が完全に解決したと考えてしまう。

⭕ この機能はLinux限定・Bashツール実行が対象で、公式changelogの表現も「暴走ビルドがセッションを止められないようにする」という守備的なものにとどまる。ランナー全体のリソース監視(CPU・ディスクI/O含む)や、既存のジョブタイムアウト設定と併用するのが前提になる。メモリcgroup単体を「銀の弾丸」として扱わない。

失敗4:3層のガバナンス設定を「導入すれば監査対応完了」と早合点する

❌ GitLab MR連携・メモリ上限・利用者帰属の3つを設定したことをもって、社内の監査要件・コンプライアンス要件を満たしたと自己判断してしまう。

⭕ これらはあくまで技術的な仕組みであり、自社の監査要件(何を、どの粒度で、どれだけの期間保持する必要があるか等)と1対1で突き合わせる作業は別途必要。設定した機能の一覧と自社の監査チェックリストをマッピングした資料を、コンプライアンス部門・監査法人と一緒に作成することを推奨する。

よくある失敗パターン4つのまとめ図。GitHub前提の情報流用、glab認証切れの見落とし、メモリ上限だけで安全と誤解、設定だけで監査対応完了と誤解の4項目と、公式ドキュメントで都度確認する方針

よくある質問

Q1. GitLab MRバッジはGitLab.com・オンプレ(Self-Managed)どちらでも使えますか?

公式changelogの条件は「GitLabリモートを持つリポジトリ」と「認証済みのglab CLI」の2点で、GitLab.comとSelf-Managed(オンプレ)を区別する記載は確認できていません。ただし、glab CLI側の対応バージョン・ネットワーク到達性(オンプレ環境からのAPIアクセス可否)は別途確認が必要です。導入前に検証環境でglab auth statusが通るかを必ず確認してください。

Q2. CLAUDE_CODE_TOOL_MEMORY_LIMITはmacOSでも使えますか?

使えません。公式changelogに明記されている通り、cgroupはLinuxカーネルの機能であるため、この機能はLinux限定です。macOS・Windows環境のBashツール実行には別の保護策(タイムアウト設定・監視等)を検討する必要があります。

Q3. これらの機能を設定すれば、金融機関の監査要件を満たせますか?

本記事で扱った機能は、変更管理の可視化・資源保護・利用者帰属という技術的な仕組みを提供するものであり、特定の監査基準・規制要件への適合を保証するものではありません。自社に適用される監査要件・コンプライアンス要件を満たすかどうかは、貴社のコンプライアンス部門・監査法人に個別に確認してください。

Q4. Amazon BedrockやGoogle CloudのAgent Platform経由でもGitLab連携は使えますか?

GitLab CI/CDとの統合自体は、公式ドキュメントでClaude API・Amazon Bedrock・Google CloudのAgent Platformのいずれの経路でも設定例が示されています。一方、MRバッジ機能(glab CLI認証ベース)は開発者のローカル環境・CI実行環境どちらで動くかで条件が変わり得るため、自社の実行経路に沿って公式ドキュメントの該当タブを確認してください。

Q5. 既にGitHub Actionsで同様の運用をしている場合、GitLabに移行する必要はありますか?

移行の必要はありません。GitHub Actions向けの統合はClaude CodeでCI/CDパイプライン自動構築|GitHub Actions設定5パターンで別途扱っており、GitLab固有の変更(MRバッジ・メモリcgroup)はGitLabを既に採用している組織向けの追加選択肢という位置づけです。

まとめ:今日からできる3つのアクション

2026年8月中旬の一連のアップデートは、単体で見ると地味な機能追加の積み重ねです。しかし、オンプレGitLab・共有CIランナーという構成を持つ金融機関の内製開発チームから見ると、「変更管理の可視化」「共有資源の保護」「利用者帰属の記録」という3つの実務課題にそれぞれ直接効く組み合わせになっています。

  1. 今日やることclaude --versionでv2.1.233以上を確認し、検証環境の1リポジトリでglab auth loginとMRバッジ表示を試す
  2. 今週中:共有CIランナーで動かしている既存ジョブのうち、メモリを食い潰しやすいものを洗い出し、CLAUDE_CODE_TOOL_MEMORY_LIMITの検証対象候補にする
  3. 今月中:MR連携・メモリ上限・gatewayの利用者帰属を、自社の監査チェックリストと1対1でマッピングした資料をコンプライアンス部門と作成する

次回は、v2.1.236で追加されたANTHROPIC_DEFAULT_MODELnotify_when_idleを含む、複数セッション運用まわりのアップデートを別の業種の実装パターンとして整理する予定です。

金融機関でのClaude Code導入・ガバナンス設計を検討中の方へ

Uravationでは、Claude Codeの導入支援・個別指導を提供しています。オンプレGitLab環境での変更管理設計、共有CI基盤の保護設定、監査要件とのマッピング資料作成まで、100社以上の支援実績に基づいて伴走します。「うちの構成でどこまで設定すればいいか」といった個別相談からお気軽にどうぞ。

お問い合わせはこちら

出典

著者:佐藤傑(さとう・すぐる)

株式会社Uravation代表取締役。X(@SuguruKun_ai)フォロワー約10万人。100社以上の企業向けAI研修・導入支援を手がける。著書『AIエージェント仕事術』(SBクリエイティブ)。SoftBank IT連載執筆。

Next Step

この事例を、自社の業務に置き換える。

対象業務、利用データ、評価基準、社内展開の順番まで整理すると、AI開発ツール導入の失敗を減らせます。

導入を相談する

チームで学ぶなら: Claude Code 法人研修(2日間ハンズオン) / 1人で習得するなら: 個別指導(週1マンツーマン)