← lunelukkio site トップへ / GitHub Actions
GHA-001
GitHub Actions × Claude Code クラウド連携
@claude メンション・認証3系統・Amazon Bedrock / Google Vertex AI の鍵レス OIDC 認証・Routines との比較
作成: 2026-05-29 / 出典確認日: 2026-05-29
出典:
code.claude.com/docs/en/github-actions、
github.com/anthropics/claude-code-action(README / docs/setup.md)、
code.claude.com/docs/en/routines(確認日 2026-05-29)
1. @claude メンション — GitHub Actions 上での Claude 起動
GitHub Issue または PR のコメントで @claude とメンションすると、
GitHub Actions ワークフローが起動し、コメントの指示に応じて Claude が自動実行される。
できることの例:
- コード実装・バグ修正(コミット・PR 作成まで自動)
- PR のコードレビュー・改善提案
- 質問応答(コードベースを参照した説明)
公式 Action は anthropics/claude-code-action@v1。
旧 @beta からの破壊的変更点:
direct_prompt → prompt にリネーム、
mode パラメータ廃止、max_turns / model 等は
claude_args に統合された。
基本ワークフロー例(ANTHROPIC_API_KEY 方式)
name: Claude PR Assistant
on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
jobs:
claude:
if: contains(github.event.comment.body, '@claude')
runs-on: ubuntu-latest
permissions:
contents: write
issues: write
pull-requests: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
# デフォルトモデルは Sonnet。Opus 4.8 を使う場合:
claude_args: --model claude-opus-4-8 --max-turns 10
図 1. issue_comment / pull_request_review_comment トリガーの基本ワークフロー例
図 2. @claude メンションから実行結果返却までの流れ
2. 認証3系統
Claude Code Action の認証方式は3系統ある。用途・コスト・セキュリティ要件で選択する。
| 方式 | 設定 | 課金 | 主な用途 |
|---|---|---|---|
| ANTHROPIC_API_KEY | anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} |
従量課金 | 最も簡単なセットアップ。/install-github-app のクイックセットアップが対応 |
| CLAUDE_CODE_OAUTH_TOKEN | claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} |
サブスク枠内(従量なし) | Pro/Max サブスクユーザ。ローカルで claude setup-token を実行してトークン生成 → GitHub Secrets に登録。有効期限あり |
| クラウドプロバイダ (Bedrock / Vertex) |
use_bedrock: "true" または use_vertex: "true" |
クラウド課金(自社管理) | データ所在地・コスト管理を自社で行いたい場合。OIDC 鍵レス認証と組み合わせる |
図 3. 認証3系統の比較表
図 4. 認証3系統の分岐図
3. クラウドプロバイダ連携 — 鍵レス OIDC 認証(核心)
静的な API キーを GitHub Secrets に保存せず、 GitHub OIDC トークン(一時的・短命)でクラウドロール/サービスアカウントに成りすます方式。 キー漏洩リスクをゼロにできる。
Amazon Bedrock — IAM OIDC + AssumeRole
🟢 公式ドキュメント確認済み
- IAM で GitHub OIDC Provider を追加
- URL:
https://token.actions.githubusercontent.com - Audience:
sts.amazonaws.com
- URL:
- IAM ロールを作成(
AmazonBedrockFullAccessをアタッチ)し、GitHub リポジトリからの AssumeRole を信頼ポリシーに追加 - ロール ARN を GitHub Secret
AWS_ROLE_TO_ASSUMEに保存 - ワークフローに
id-token: write権限とaws-actions/configure-aws-credentials@v4を追加
Bedrock のモデル ID にはリージョン接頭辞が付く。例:
us.anthropic.claude-sonnet-4-6(us-east-1 / us-west-2 の Cross-region inference)
name: Claude on Bedrock
on:
issue_comment:
types: [created]
jobs:
claude:
if: contains(github.event.comment.body, '@claude')
runs-on: ubuntu-latest
permissions:
id-token: write # OIDC に必須
contents: write
issues: write
pull-requests: write
steps:
- uses: actions/checkout@v4
- name: Configure AWS credentials (OIDC)
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
aws-region: us-east-1
- uses: anthropics/claude-code-action@v1
with:
use_bedrock: "true"
claude_args: --model us.anthropic.claude-sonnet-4-6
Google Vertex AI — Workload Identity Federation
🟢 公式ドキュメント確認済み
- GCP で Workload Identity Pool と Provider(GitHub OIDC)を作成
- サービスアカウントに
roles/aiplatform.user(Vertex AI User)を付与し、Workload Identity バインディングを追加 - GitHub Secrets に
GCP_WORKLOAD_IDENTITY_PROVIDER(Provider のリソース名)とGCP_SERVICE_ACCOUNTを登録
name: Claude on Vertex
on:
issue_comment:
types: [created]
jobs:
claude:
if: contains(github.event.comment.body, '@claude')
runs-on: ubuntu-latest
permissions:
id-token: write
contents: write
issues: write
pull-requests: write
steps:
- uses: actions/checkout@v4
- name: Authenticate to GCP (OIDC)
uses: google-github-actions/auth@v2
with:
workload_identity_provider: ${{ secrets.GCP_WORKLOAD_IDENTITY_PROVIDER }}
service_account: ${{ secrets.GCP_SERVICE_ACCOUNT }}
- uses: anthropics/claude-code-action@v1
with:
use_vertex: "true"
claude_args: --model claude-sonnet-4-6
図 5. Bedrock / Vertex OIDC ワークフロー例
図 6. OIDC 鍵レス認証フロー図(Bedrock / Vertex 共通)
3P プロバイダ利用時の推奨:
カスタム GitHub App(App ID と秘密鍵を
APP_ID / APP_PRIVATE_KEY Secret に登録し、
actions/create-github-app-token で一時トークンを生成)の利用が公式に推奨される。
GITHUB_TOKEN では権限が不足することがある。
4. GitHub Actions 版 vs. Routines(比較)
Claude Code には GitHub Actions 版のほかに Routines(クラウド実行)がある。 どちらを選ぶかはインフラ管理の範囲と実行環境の要件で決まる。
| 項目 | GitHub Actions 版 | Routines(マネージドクラウド) |
|---|---|---|
| 実行環境 | 自分の GitHub runner(ubuntu-latest 等) | Anthropic 管理クラウド(Claude Code on the web) |
| トリガー | issue_comment / PR review comment(@claude メンション) | スケジュール(cron)/ API / GitHub イベント(PR opened, Release 等) |
| ネットワーク | runner のネットワーク(制限なし) | デフォルト "Trusted"(一部制限あり) |
| ブランチ作成 | 任意のブランチ名で作成可 | デフォルトは claude/ 接頭辞のみ(明示許可で任意に変更可) |
| 実行上限 | GitHub Actions の分数制限に依存 | 1日の実行上限あり |
| インフラ管理 | 自分でワークフロー YAML を維持する | Anthropic が管理(設定のみ) |
| 認証 | API キー / OAuth トークン / Bedrock / Vertex | Claude Code サブスクアカウントに紐づく |
図 7. GitHub Actions 版 vs Routines 比較表
図 8. 実行環境の違い — GitHub Actions(自己管理 runner)vs Routines(マネージドクラウド)
5. コストと注意点
コスト構造
- API キー方式: GitHub Actions 実行分(分数)+ Anthropic API トークン従量課金の二重コスト
- OAuth トークン方式(Pro/Max サブスク): GitHub Actions 分数のみ。API 従量課金なし
- Bedrock / Vertex: GitHub Actions 分数 + クラウドプロバイダの推論コスト
コスト最適化
@claude指示を具体的に書く(余計な往復を減らす)claude_args: --max-turns 10で最大ターン数を制限- ワークフローに
timeout-minutes: 15を設定して暴走を防ぐ concurrency設定で同時実行数を制御
セキュリティ
- API キー・OAuth トークン・IAM ロール ARN は必ず GitHub Secrets に登録。コードにハードコードしない
- fork PR からの CI 再トリガー攻撃に注意。カスタム GitHub App の利用で緩和
- 必須権限:
contents: write,issues: write,pull-requests: write— 必要最小限のスコープで構成する - Bedrock / Vertex を使う場合は
id-token: writeを追加
関連項目
- [GHA-002] Claude 自動化の全体像 — GitHub Actions はイベント駆動型自動化の一形態。ヘッドレスモード・Routines・Agent SDK・hooks との比較全体像。
- [PY-001] Python の async/await — 非同期処理の基礎(GitHub Actions の並列ジョブと対比)
- Rust トピック — CI/CD 連携で利用する場合の参考
- claude-html-project — 本サイト構築プロジェクトの構成図解