「それ、AI にやらせてみよう」Claude Code Action 活用テクニック with Amazon Bedrock
2025-10-02 | Author : 田中 星佳 (ニフティ株式会社), 小林 雅幸 (ニフティ株式会社)
はじめに
こんにちは。ニフティ株式会社の小林と田中です。普段は@nifty光のシステム開発・運用をしています。
弊社では Claude Code Action を導入し、業務の効率化に役立てています。
今回は、基本的な使い方に加え、実際に使ってみて分かった良いところをご紹介します。
X ポスト » | Facebook シェア » | はてブ »
builders.flash メールメンバー登録
builders.flash メールメンバー登録で、毎月の最新アップデート情報とともに、AWS を無料でお試しいただけるクレジットコードを受け取ることができます。
Claude Code Action とは
Claude Code Action とは、GitHub Actions のワークフロー上で Claude を動かして、AIにタスクを実施してもらうことができる仕組みです。
issue や PR のコメントで @claude とメンションするだけで、指示した通りにコードを実装し、PR の作成まで行ってくれます。
Claude の API のエンドポイントとして Amazon Bedrock の Claude のモデルを選択することができるため、AWS アカウントがあればすぐに使い始めることができます。
Claude Code Action の利点
最低限の環境構築をすれば簡単に使い始められる
GitHub リポジトリにワークフローの設定を追加するだけで、そのリポジトリで開発をするチームメンバー全員が使うことができます。
設定手順は以下になります。
- GitHub リポジトリに専用のアプリをインストール
- AWS アカウントにClaudeにアクセスするための IAM ロールを発行
- リポジトリにワークフロー用の yml ファイルを追加
と、簡単です。
エディタを開かなくて良い
Claude Code Action を使用すると、コード生成から PR の作成まで全て自動で行ってくれます。
テキストエディタや、専用のアプリ上で動く AI エージェントを使う場合は、AI が変更してくれたソースコードの差分を確認してからリポジトリにコミットし、更にそのブランチの PR を作成し…、とまだまだ手動でやらなければいけない作業が多いですが、Claude Code Action を使えば、人間がやることは PR 上での差分の確認のみです。
また、ジョブを走らせている間、エディタや PC そのものを起動しておく必要も無いので、家を出る前、会議の前、家に帰る前、などにジョブを開始しておけば時間の節約にもなります。
基本的な使い方
Claude Code Action を使えるようにする
1. Github の Claude にアクセスして、Claude Code Action を動かしたいリポジトリにアプリをインストールする
まず、こちら にアクセスし、Configure ボタンからリポジトリの選択に進み、インストールします。
インストール後、リポジトリの Settings タブの「GitHub Apps」に Claude が表示されていれば OK です。

2. AWSアカウントで、Claudeを使えるようにする
基盤モデルへのアクセスを許可する
今回は us-west-2 で Claude Sonnet 4 を使います。まだ Amazon Bedrock でモデルへのアクセスを許可をしていない場合は、許可します。
コンソールで「Amazon Bedrock」の「モデルアクセス」から「Claude Sonnet 4」を選択して許可します。

GitHub Action から AWS への認証を行うための OIDC を作成する
export ACCOUNT_ID=(AWSアカウントID)
aws iam create-open-id-connect-provider --url https://token.actions.githubusercontent.com
aws iam add-client-id-to-open-id-connect-provider \
--open-id-connect-provider-arn arn:aws:iam::${ACCOUNT_ID}:oidc-provider/token.actions.githubusercontent.com \
--client-id sts.amazonaws.com
モデル呼び出しの際に使う IAM ロールを作成する
アカウントIDなどを設定します。リポジトリ名と ref:refs/heads/ (ブランチ名) には `*` も使用できます。
export ACCOUNT_ID=(AWS アカウント ID)
export REPOSITORY=repo:(GITHUB ユーザー名)/(リポジトリ名):ref:refs/heads/(ブランチ名)
export ROLE_NAME=claude-code-action-role
IAM ロールの信頼関係とポリシーを設定するための json ファイルを作成する
cat > trust-policy.json << EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "RoleForGitHubActions",
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::${ACCOUNT_ID}:oidc-provider/token.actions.githubusercontent.com"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"token.actions.githubusercontent.com:aud": "sts.amazonaws.com"
},
"StringLike": {
"token.actions.githubusercontent.com:sub": "${REPOSITORY}"
}
}
}
]
}
EOF
インラインポリシーを作成する
cat > inline-policy.json << EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource": [
"arn:aws:bedrock:us-west-2:420466380198:inference-profile/us.anthropic.claude-sonnet-4-20250514-v1:0",
"arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-3-7-sonnet-20250219-v1:0",
"arn:aws:bedrock:*::foundation-model/anthropic.claude-sonnet-4-20250514-v1:0"
]
}
]
}
EOF
ロールを作成する
aws iam create-role --role-name $ROLE_NAME --assume-role-policy-document file://./trust-policy.json
aws iam put-role-policy --role-name $ROLE_NAME --policy-name allow-bedrock-invoke-model --policy-document file://./inline-policy.json
ロールの ARN を登録する
作ったロールの ARN を取得して、リポジトリの「Repository secrets」に新しいシークレット「CLAUDE_CODE_ACTION_ROLE」として登録しておきます。
aws iam get-role —role-name $ROLE_NAME | jq -r '.Role.Arn'

3. リポジトリにワークフロー用の yml ファイルを作成する
以下の yml ファイルを GitHub のメインブランチの .github/workflows/claude-code.yml に push します。ANTHROPIC_BEDROCK_BASE_URL, aws-region の 2 ヶ所に、モデルアクセスを許可したリージョンと同じリージョン名を記載してください。(今回は us-west-2)
name: Claude PR Assistant
on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
issues:
types: [opened, assigned]
pull_request_review:
types: [submitted]
jobs:
claude-code-action:
if: |
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
(github.event_name == 'issues' && contains(github.event.issue.body, '@claude'))
runs-on: ubuntu-latest
env:
ANTHROPIC_BEDROCK_BASE_URL: "https://bedrock-runtime.us-west-2.amazonaws.com“
permissions:
contents: read
pull-requests: read
issues: read
id-token: write
steps:
name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1
name: Configure AWS Credentials (OIDC)
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: $ secrets.CLAUDE_CODE_ACTION_ROLE
aws-region: us-west-2
uses: anthropics/claude-code-action@beta
with:
model: "us.anthropic.claude-sonnet-4-20250514-v1:0"
use_bedrock: "true"
コードを書いてもらう
準備が終わったら動作させてみましょう ! issue や PR のコメントで @claude とメンションしたら動き始めます。
例えばコードを実装させる場合は以下の手順で効率的に進めることができます。
- issue のコメントでメンションして、実装を依頼する
- Claude Code Action が処理中であることを示すコメントを投稿するため、終わるまで待つ

PR を作成する
終わったら、2 のコメント内に PR 作成用のリンクができるので、クリックして PR を作成します。

PR の差分を確認する
もし不十分な箇所があれば、ソースコードの特定の行へのコメントでも、PR 全体へのコメントでも、再度 @claude とメンションして修正の依頼をすれば、同じブランチ内に修正をコミットをしてくれます。(issue へコメントしてしまうと、新たなブランチが作られるので、微修正であれば PR のコメントで依頼して、同じブランチにコミットしてもらうのがベターです。)
修正が終わったらマージする
AI は間違える可能性があります。レビューや動作確認は必ず実施しましょう。
うまく動いていなさそうな時は
コードの修正を依頼したのにコミットしてくれない、など、お願いしたタスクが上手く実施できていない時がまれにあります。そのような場合は、ジョブの詳細を確認することを推奨します。
Claude Code Action が書いたコメント内の「View job」というリンクから、そのジョブで何をやろうとして、どこで失敗したのかを確認することができます。
タイムアウトなどで失敗してしまっている場合は、単純にジョブを再実行するだけで上手くいくこともあります。
Claude Code Action がやりたかった操作への権限が付与されていない場合もあります。
画像の例では、Bash に対する権限を与えていなかったため、そこでジョブが失敗していました。

ジョブが失敗した場合
このような場合は、以下のように、ワークフローの yml ファイルに allowed_tool という項目を追加すれば、権限を与えることができます。
- name: Run Claude PR Action
uses: anthropics/claude-code-action@beta
with:
timeout_minutes: "60"
use_bedrock: "true"
model: "us.anthropic.claude-sonnet-4-20250514-v1:0"
allowed_tools: "Bash"
どんなことができる ?
時間が掛かる大変なタスクを任せられる
@nifty光では、バッチ処理のAWS移行時に、Claude Code Actionを使用して、リポジトリ内のスクリプトファイル約60件に変更を加えました。
弊システムには約 90 個の Javaのバッチがあり、それぞれをキックする shell ファイルが存在します。また、バッチによってはファイルを出力するのですが、パターン 1 のように Java の処理の中でファイルを作るものと、パターン 2 のように、Java の処理の結果を受けた shell がファイルを作るものがあります。

shell から出力ファイルを Amazon S3 に転送
これらの処理をオンプレミス環境から Amazon ECS に移行したのですが、バッチ実行の終了と共にタスクが終了し、コンテナ内にある出力ファイルも消えてしまうため、ファイルの永続化が必要になりました。
今回の移行では「まずは全ての処理を AWS 上で動かすこと」を目標としていましたので、大規模なリファクタリングは実施せず、shell から出力ファイルを Amazon S3 に転送することにしました。
しかし、全てのバッチでこのS3への転送を手動で実装するとなると、仕様書やソースを見て「このバッチはファイル出力があるのか」「出力はどこでしているのか」「ファイル名は何なのか」を全て確認してから転送処理を書く必要があり、非常に時間が掛かることは明らかです。
ただ、裏を返せば、ソースを見ないとどう実装するべきか判断できないということは、ソースを見れば判断できるということです。
そこで、Claude Code Actionに実装をさせてみることにしました。

Claude Code Action に実装をさせてみる
まずは、どれか1つバッチを選んで、それについて実装していきます。 以下のようにファイルのパスと処理の流れを与え、shellファイルの末尾に転送用のCLIコマンドを書いてもらうよう依頼しました。
@claude
### hoge バッチのフロー
- まず path/to/shell/batch.sh が呼ばれます。
- shell ファイルの 30 行目で Java の実行ファイルが呼び出されます。その Java ファイルは path/to/java/BatchExec.java です。
- BatchExec.java の 50 行目でファイルが出力されます。
### タスク
- この出力ファイルを S3 に転送する CLI コマンドを、shell ファイルの最後に追記してください
- バケット名は〇〇です
Claude Code Action の実行が終わったら、結果を確認し、思い通りの実装でなければ修正を依頼し、完成させます。
リポジトリについて教えてもらう
詳細を把握できていないリポジトリについて教えてもらうこともできます。今回は、IaC のリポジトリに Claude Code Action を導入して、AWS の構成図を描いてもらいました。どのディレクトリにどんな情報があるかを教えて作ってみます。
@claude
drawio の xml 形式で AWS の構成図を作ってください
アカウントは2つあり、それぞれの定義は path/to/def/` 配下にあります
出来上がった構成図
出来た図がこちらです。(公開用に、実際の出力から一部内容を変更しています。) アイコンの配置や、線の繋ぎ方が不自然だったり、Amazon EFS のみ公式アイコンではなくオレンジの四角形で表示されるなど、人間が描くより見づらい図ではありますが、全体の概要を把握するには十分ではないでしょうか。また、プロンプト、AI の思考プロセス、実装の結果、などの履歴が全て GitHub 上に残るので、簡単にチームメンバーに共有できるのも良いところです。私は、弊社のOrganization内のリポジトリで、効果的な使用例を検索して参考にしています。
まとめ
Claude Code Actionを使用すると、実装やレビューなど、様々なタスクを効率的に進めることができます。また、初期設定も非常に簡単で、すぐに導入できます。
今回紹介した使い方以外にも、様々なことに活用できると思いますので、皆さまも導入してみてはいかがでしょうか。
筆者プロフィール

田中 星佳 (たなかせいか)
ニフティ株式会社
@nifty光のシステム開発・運用に従事しながら、アプリケーションやデータベースの AWS への移行を推進。業務では勿論、趣味の英語の勉強でも生成 AI を活用しています。

小林 雅幸 (こばやしまさゆき)
ニフティ株式会社
ニフティ株式会社にて、回線サービスの開発と運用を担当しています。
生成 AI の活用においては、運用業務に多くの工数を費やしていることに課題を感じており、その解決策として着目し、効率化に向けた PoC を実現しています。現在はシステムの AWS 移行を進める中で、生成 AI を導入することで、移行作業の効率化と時間短縮を図っています。