Amazon Q Developer→BedrockのClaude Codeへ移行する手順
同じAWSアカウント内でAmazon Q DeveloperからClaude Code(Bedrock経由)へ切り替える手順と、IAMロールがどこまで共用できるかを解説します。
AWSアカウントはそのまま、IAMロールは別物と考える
すでにAmazon Q Developerを使っているAWS環境で、Claude CodeをAmazon Bedrock経由で使い始めたい場合、AWSアカウントや認証方法(SSOプロファイルなど)はそのまま使い回せますが、IAMロールに付いている権限はQ Developer用とBedrock用で別物になります。Q Developerを使えることは、Bedrockのモデル呼び出し権限を持つことを意味しません。ロールにbedrock:InvokeModel等の権限が無ければ、追加が必要です。
この記事では、共用できる部分とできない部分を切り分けたうえで、同じAWSアカウント内での切り替え手順を示します。
なぜ今切り替えを検討するか
AWSは公式ページで、2027年4月30日にAmazon Q DeveloperのIDEプラグイン(JetBrains・VS Code・Visual Studio・Eclipse向け)のサポートを終了すると告知しており、後継としてKiroへの移行を案内しています。またAmazon Q Developer CLIのオープンソースリポジトリ(aws/amazon-q-developer-cli)には、「このプロジェクトはアクティブなメンテナンスを終了し、重大なセキュリティ修正のみ受け付ける。最新の機能はクローズドソースのKiro CLIを使ってほしい」という注記があります。
IDEプラグインの終了時期が決まっている以上、後継をKiroにするか、すでにBedrockへのアクセス権があるならClaude Codeに寄せるかは検討に値します。
前提条件
- Amazon Q Developerを使っているAWSアカウントへのアクセス権
- Amazon Bedrockでのモデルアクセスが有効化されているか(未確認なら次のステップで確認します)
- Claude Codeがインストール済みであること
ステップ1: Bedrockでモデルアクセスを有効にする
Q Developerを使えていても、Bedrockのモデル呼び出し自体はアカウントごとに個別の有効化が必要です。
- Amazon Bedrockコンソールを開きます
- Model catalogでAnthropicモデルを選び、使用目的の申請フォームを送信します(承認は送信後すぐに反映されます)
- AWS Organizationsを使っている場合は、管理アカウントから
PutUseCaseForModelAccessAPIを1回呼べば、子アカウントにも自動で承認が広がります。このAPIにはbedrock:PutUseCaseForModelAccess権限が必要です
ステップ2: 認証方法は共用、認可は共用できない
Q DeveloperをIAM Identity Center経由のSSOプロファイルで使っている場合、そのログインの仕組み自体はClaude Codeでもそのまま使えます。Claude CodeはAWS SDKの標準的な認証情報チェーンを使うため、次のように同じプロファイル名でサインインし直すだけで済みます。
aws sso login --profile=your-profile-name
export AWS_PROFILE=your-profile-name社内のSSOがブラウザ経由の多要素認証を要求する環境では、認証情報の自動更新もあわせて設定しておくと使い勝手が変わりません。Claude Codeの設定ファイルにawsAuthRefreshとしてSSOログインコマンドを登録しておけば、認証情報が失効したときだけ自動でそのコマンドを実行し、更新後に元のリクエストを再試行します。
{
"awsAuthRefresh": "aws sso login --profile myprofile",
"env": {
"AWS_PROFILE": "myprofile"
}
}ここで共用できるのは「どうやって自分の身元を証明するか」という認証の部分だけです。Amazon Q Developerの利用権限は、Pro Tierであれば組織のIAM Identity Centerに紐づくサブスクリプション、個人利用であればAWS Builder IDやIAMユーザーとしてのログインで管理されており、Bedrockのモデル呼び出しを許可する個別のIAMアクションとは仕組みが違います。Q Developerを使えることと、ロールにBedrock呼び出し権限が付いていることは別問題です。ロールの権限を実際に確認し、足りなければ次のポリシーを追加してください。
Claude Codeが必要とするのは次のIAMポリシーで、公式ドキュメントが提示している内容そのままです。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowModelAndInferenceProfileAccess",
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream",
"bedrock:ListInferenceProfiles",
"bedrock:GetInferenceProfile"
],
"Resource": [
"arn:aws:bedrock:*:*:inference-profile/*",
"arn:aws:bedrock:*:*:application-inference-profile/*",
"arn:aws:bedrock:*:*:foundation-model/*"
]
},
{
"Sid": "AllowMarketplaceSubscription",
"Effect": "Allow",
"Action": [
"aws-marketplace:ViewSubscriptions",
"aws-marketplace:Subscribe"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:CalledViaLast": "bedrock.amazonaws.com"
}
}
}
]
}Q Developerを使っていたIAMロールやIAM Identity Centerの許可セットに、このポリシーを追加でアタッチする形になります。ロールを新規に作り直す必要はありませんが、ロールに該当の権限が無ければ追加してください。bedrock:GetInferenceProfileは、アプリケーション推論プロファイルのARNを基盤モデルに解決し、正しいリクエスト形式を選ぶために使われます。この権限が無いと、Claude Codeは別形式で1回余分に再試行してからリクエストを成立させるため、付与しておくとその再試行を省けます。
ステップ3: Claude Code側を設定する
権限を追加したら、Claude Code側で環境変数を設定します。
export CLAUDE_CODE_USE_BEDROCK=1
export AWS_REGION=us-east-1対話的にセットアップしたい場合は、claudeを起動してログインプロンプトで3rd-party platform → Amazon Bedrockを選ぶか、すでにログイン済みなら/setup-bedrockでウィザードを開きます。ウィザードはAWSプロファイル・APIキー・アクセスキーのどれで認証するかを聞き、リージョンとモデルの利用可否を確認したうえで~/.claude/settings.jsonに書き込みます。
複数人にロールアウトする場合は、モデルのバージョンをピン留めしておくと、実際に呼ばれるモデルを利用者ごとに揃えられます。ピン留めしないとsonnetやopusのようなエイリアスがClaude Codeの既定モデルに解決され、アカウントでまだ使えないモデルだったり、意図せず古いモデルのままだったりすることがあります。
IAMロールは結局どこまで共用できるか
共用できる範囲は次の3段階に分かれます。
| 要素 | 共用できるか | 理由 |
|---|---|---|
| AWSアカウント・リージョン | 共用できるかできる | 理由Bedrockのモデル有効化はアカウント単位の設定で、Q Developerの利用と独立している |
| 認証情報チェーン(SSOプロファイル・アクセスキー) | 共用できるかできる | 理由Claude CodeはAWS SDKの標準的な認証情報チェーンをそのまま使う |
| IAM権限セット(認可) | 共用できるか別途確認・追加が必要 | 理由Q Developerの権限はIAM Identity Centerのサブスクリプション管理、BedrockはbedrockネームスペースのIAMアクション。ロールに両方の権限を併存させる必要がある |
「IAMロールを共用できるか」という問いへの答えは、ロールという入れ物自体は使い回せても、その中身(アタッチする権限)は個別に確認して追加する必要がある、というのが実態です。
料金モデルの違い
移行を検討するときに見落としやすいのが、課金の仕組み自体が変わる点です。Amazon Q DeveloperはFree TierとPro Tierという枠で区切られており、たとえばコード変換(アップグレード作業)はFree Tierがユーザーあたり月1,000行、Pro Tierがユーザーあたり月4,000行までで、組織全体では契約しているPro Tierの数×4,000行がpayer account単位で合算されます(たとえば100契約であれば月400,000行)。この枠を超えた分は1行あたり0.003ドルの追加課金になります。Pro Tierの利用枠は、組織のIAM Identity Centerに紐づくサブスクリプションであればユーザー単位で、Builder IDで個人アップグレードした場合はそれとは別の枠になります。
Claude CodeをBedrock経由で使う場合はこのような月間行数やティアの枠組みはありません。Bedrockの料金ページでは、Anthropicモデルの利用は入力・出力それぞれ100万トークンあたりの単価が設定されたOn-Demand課金として掲載されており、Claude Codeからの呼び出しもこの単価がそのまま適用されます。ライセンス数や月間上限で管理していたコストを、トークン消費量で管理し直す必要があります。
よくあるつまずき
- SSOのリージョンとBedrockのリージョンを混同する: Claude CodeはIAM Identity Centerからの認証情報を、プロファイルの
sso_regionで指定したリージョンから取得します。このリージョンはBedrockを呼び出すリージョンと一致している必要はありません。v2.1.207ではBedrockのリージョンがsso_regionを上書きしてしまい、IAM Identity Centerのインスタンスが別リージョンにあるプロファイルがSession token not found or invalidエラーで認証に失敗する不具合がありました - Marketplace subscribe権限の付け忘れ: AWS公式ドキュメントによれば、サードパーティモデルを初めて呼び出すとBedrockがバックグラウンドで自動的にサブスクリプション処理を始めますが、IAMロールに
aws-marketplace:ViewSubscriptionsやaws-marketplace:Subscribeが無いとこの処理が失敗し、以降のAPI呼び出しはAccessDeniedExceptionで失敗し続けます - モデルを未ピン留めのまま複数人に展開する: 前述のとおりエイリアス解決に依存すると、ユーザーごとに実際に呼ばれるモデルがずれる可能性があります
- 認証情報を取り直したのに反映が遅い: Claude Codeは解決した認証情報を、有効期限の5分前まで(有効期限が無い形式なら1時間)キャッシュして使い回します。SSOプロファイルを手動で更新した直後でも、キャッシュが切れるまでは古い認証情報のままリクエストが飛ぶことがあります。すぐ反映させたい場合は
CLAUDE_CODE_SKIP_AWS_CRED_CACHE=1を設定してキャッシュを無効化します
まとめ
Amazon Q DeveloperとClaude Code(Bedrock経由)は同じAWSアカウント・同じ認証情報チェーンの上で共存できますが、IAMの権限セットは別物であり、Q Developer用のロールに該当の権限が無ければ追加する必要があります。IDEプラグインの2027年4月終了という期限が決まっている今、Bedrockへのアクセス権をすでに持っているチームであれば、ロールの権限を確認して足りない分を追加するだけで移行できるClaude Codeは検討先の1つになります。
Amazon BedrockでのIAM設定とクロスリージョン推論プロファイルの組み方はClaude Code Bedrock IAM設定ガイド、直接APIとの費用比較はAWS BedrockのClaude料金ガイド、Bedrock・Vertex・Foundryをまたいだ機能差はClaude Codeの機能比較を参照してください。