「Claude Codeを社内で使いたいけれど、APIキーがAnthropic直接だと情シスが首を縦に振らない」 — 法人導入の相談で、ここ数ヶ月ずっと聞かれる話です。社内データの持ち出し懸念や、契約・支払いの一元化が壁になります。

解決策のひとつが Amazon Bedrock 経由でClaude Codeを使う構成 です。本記事では、Bedrockルートの全体像、必要な設定、Anthropic直接利用との違いを整理します。

Bedrock経由で使えるとなぜ嬉しいのか

Amazon Bedrockは、AWSが提供する各社の基盤モデルを統合APIで呼び出すサービスです。Claudeシリーズも提供されていて、Anthropicと直接契約しなくてもAWS経由でClaudeを使えます。

法人にとっての魅力は次のあたりです。

  • 既存のAWSアカウントで請求が一本化される — 新規ベンダー追加の稟議が要らない
  • データの送信先がAWSリージョン内 — 「米国本社のAnthropicに直接データが行く」よりも社内承認が下りやすい
  • IAMで権限制御 — 既存のAWS IAMポリシーの枠組みで、誰がモデルを呼べるかを制御できる
  • CloudTrailでログが取れる — どのアカウントがいつ呼び出したかが監査ログに残る

「セキュリティ要件で詰まる中堅以上の企業ほど、Bedrockルートが現実解になる」というのが私の感覚です。逆に、個人や数人のチームなら、Anthropic直接契約のシンプルさを優先したほうがよく、無理にBedrockを通す必要はありません。

Claude Code 側の設定はわりとシンプル

Claude CodeをBedrockに向ける作業自体は、環境変数を数本入れるだけです。

export CLAUDE_CODE_USE_BEDROCK=1
export AWS_REGION=ap-northeast-1
export ANTHROPIC_MODEL='anthropic.claude-opus-4-7-20251201-v1:0'
export AWS_PROFILE=your-profile-name

このあと普段どおり claude を起動すると、APIの呼び出し先がBedrockに切り替わります。AWS_PROFILE または AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY でクレデンシャルが解決できれば、それ以上特別な準備は不要です。

注意点が2つあります。

  1. モデルIDはBedrock側の表記を使うanthropic.claude-opus-4-7-20251201-v1:0 のように、AnthropicのモデルIDとは別の表記。AWSコンソールのBedrock → ベースモデル一覧から正確な文字列をコピーするのが安全
  2. モデルアクセスの事前申請 — Bedrockは各モデルへのアクセスを利用者がOptInする必要がある。AWSコンソールから「モデルアクセスをリクエスト」を実施しておく

私は最初、モデルIDをAnthropicのドキュメントから写してきて claude が延々エラーを返す、というハマり方をしました。Bedrock側のID表記を確認するだけで解決します。

IAM 権限はモデル呼び出しに絞る

Bedrock経由運用で大事なのは、IAMで「何ができるか」を必要最小限に絞ることです。社内利用者にAWSの広い権限を渡すと、Claude Code を入り口に別のサービスまで触れてしまいます。

最低限あれば動く権限はこの3つです。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "bedrock:InvokeModel",
        "bedrock:InvokeModelWithResponseStream",
        "bedrock:ListFoundationModels"
      ],
      "Resource": "*"
    }
  ]
}

加えて、Resource を arn:aws:bedrock:ap-northeast-1::foundation-model/anthropic.claude-opus-4-7-* のように絞ると、他社モデルに勝手に切り替えられるリスクも消せます。

私の関与した案件では、情シスが「Claude Code利用者には専用のIAMロールを切って、Bedrock InvokeModel だけ許可する」運用に落ち着きました。SSO経由で aws sso login してロールを引き受けるとClaude Codeが動く、というシンプルな設計です。

料金体系はAnthropic直接とは別建て

Bedrock経由の料金は、AWSの利用料金として請求されます。Anthropicと別契約なので、Claude Pro/Max/Teamの定額プランは適用されません。従量課金になります

Claudeの1Mトークンあたり単価は、直接利用とおおむね同水準ですが、為替と時期で微妙に動くので、契約前に必ず最新の表を確認してください。法人想定だと、月の利用額を予測するために、3〜5名で1〜2週間試用して実測コストを掴むのがおすすめです。

私が支援した50名規模の会社では、社内10名にBedrock経由でClaude Code を配って、月のBedrock利用料は約30万円でした。一人あたり3万円弱、Teamプラン相当の単価です。「定額のほうが安いケースは多いが、IAMでの権限管理を取りに行く場合は従量を許容する」、という整理が現実的です。

ハマりポイントと運用Tips

実際に法人で回してわかった、つまずきやすい点を3つ。

第一に、リージョンを揃えるAWS_REGION がap-northeast-1なのに、対象モデルが us-east-1 でしかOptInされていないと、当然動きません。組織のデフォルトリージョン方針と、Bedrockで使うモデルの提供リージョンを合わせます。

第二に、CloudTrail のログ転送を最初に設定。「誰がいつ何を呼んだか」の監査ログは、半年後に「あれはどうなってたか」を遡れるかが分かれ目です。CloudTrailのデータイベントをBedrock InvokeModelで有効化しておきます。

第三に、社内ガイドラインで「Bedrock経由のClaude Codeに投げてよい情報の範囲」を明文化。Bedrock経由でもClaude Codeのプロンプトに何を貼るかは利用者次第。個人情報・未公開数字・取引先固有名などの取扱ルールを、利用開始時にドキュメント1枚で配ります。

私の見ている範囲だと、3つ目の「ガイドライン文書」がない法人ほど、3ヶ月後に小さな事故報告が出ます。技術設定より、運用ルールのほうが効きます。

まとめ

  • Bedrock経由のClaude Code は、AWSアカウントで請求一本化・IAMでの権限制御・CloudTrailでの監査ログを取りたい法人向けの構成
  • 切り替えは CLAUDE_CODE_USE_BEDROCK=1 などの環境変数を数本入れるだけ
  • モデルIDはBedrock側の表記、モデルアクセスのOptInが必要
  • IAMはBedrock InvokeModelだけに絞り、Resourceで対象モデルも絞ると安全
  • 料金は従量。Teamプラン定額より高くつく場面もある
  • 技術設定と同じくらい、利用ガイドラインの文書化が事故予防に効く