Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Claude Codeの接続先を選ぶ

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on. →

Claude Codeの接続先を選ぶ

AI社会実装勉強会第64回 (https://machine-learning-workshop.connpass.com/event/410211/) の発表資料です。

More Decks by 西岡 賢一郎 (Kenichiro Nishioka)

Other Decks in Technology

Transcript

  1. 今日の範囲 前回は作る側の話。今日は、どこにつなぐかの話 データの行き先 認証と統制 費用 手放す機能 どこで処理され、どの国 の法律が及ぶか 鍵を配るのか、 SSO

    か。 経路を縛れるか 人数単位か従量か。上限 は誰が見張るか 他社モデルで落ちる機能。 Bedrock で消える機能。 代わりはあるか 対象は Claude Code 。 OpenAI の Codex も同じ作り(毎ターン、指示・道具・履歴を 1 つのリクエストで送る)なので、 要所で 1 行ずつ触れる。 法的な判断はしない。 一次資料に書いてあることと、設定で何ができるかだけを扱う。判断は各社の法務と専門家に。 聴き手:エンジニアと、業務側で AI を入れている人。判断する立場の人には最後のページに質問を 1 つ。 1
  2. 送っているもの Claude Code は、毎ターン 4 つをまとめて接続先に送っている 実物: 2 回目(ファイルを読んだ後)のリクエストの骨格(伏せ字) {

    "model": "claude-haiku-5-5", "system": [ "You are an agent… ( 7,091 文字) " ], "tools": "13 個( Bash ・ Read ・ Edit … ) ", "messages": [ { "role": "user", "content": "<system-reminder … アカウントのメール…( 490 文字) >" }, { "role": "user", "content": "memo.txt を読んで、 1 行で要約して " }, { "role": "system", "text": "# Environment … ( 9,126 文字) " }, { "role": "assistant", "type": "tool_use", "name": "Read", "file_path": "…/memo.txt" }, { "role": "user", "type": "tool_result", "content": " 取引先 : サンプル商事(架空) \n 今期の売上見込み : 1,200 万円 … " } ], "thinking": { "type": "adaptive" }, "metadata": "< 端末 ID ・アカウント ID ・セッション ID>", "safeguards": "< 権限の規則など 27,711 文字 >" } 「 memo.txt を読んで、 1 行で要約して」の 1 回分: 78,138 文字・ 17,204 トークン。 読んだファイルの中身は tool_result に、アカウントのメールアドレスは messages の先頭に入っていた。 内訳(文字数): tools 40% /権限の規則など 36% / messages 14% / system 10% 。 2026-10-26 ・私の環境の値。 Claude Code v2.1.310 ・ --safe-mode (自作の設定を読まない)・ Haiku ・ claude.ai の契約。手元の中継で記録したもの で、直結のときと細部は変わる。 2
  3. 届く先 接続先は 5 通り。切り替えの指定は環境変数 1 つ 接続先 推論を動かすのは 認証 切り替え

    claude.ai の契約( Pro / Max / Team / Enterprise ) Anthropic claude.ai にログイン 既定 Claude API ( Console ) Anthropic API キー/ Console に ログイン 既定(鍵を置く) Claude Platform on AWS ( Anthropic の API を AWS の 認証・請求で使う形) Anthropic (新しい workspace は AWS 上で運用) AWS の認証情報( SSO 可) CLAUDE_CODE_USE_ANTHROPIC_AWS=1 (+ workspace ID ) Amazon Bedrock (ほか Google の Agent Platform ) AWS AWS の認証情報( SSO 可) CLAUDE_CODE_USE_BEDROCK=1 互換 API ( DeepSeek ・さくら・ 自前) その提供元 その提供元の鍵 ANTHROPIC_BASE_URL=… 送るものはほぼ同じ(違うのは道具の数行)。変わるのは、届く先・認証のしかた・費用の形・使える機能。 認証情報と モデル ID は別に渡す。 Codex も config.toml の model_provider で同じ切り替えができる。 次のページで、実際に 5 か所に送った結果。そのあと 4 つの観点で見る。 〔公〕 Claude Code Docs: Authentication / Amazon Bedrock / Claude Platform on AWS / LLM gateway 3
  4. 届く先 同じ依頼を 5 か所に送ったら、全部動いた。違うのは届く先 接続先( Claude Code の設定) 推論を動かしたのは 結果

    気づいたこと claude.ai の契約(既定) Anthropic 成功 1 回分が 78,138 文字・ 17,204 トークン Bedrock jp. ( CLAUDE_CODE_USE_BEDROCK=1 ・ jp.anthropic.claude-haiku-5-5 ) AWS (東京・大阪) 成功・ 4.9 秒 CloudTrail にユーザー名とモデ ル ID が残る DeepSeek ( ANTHROPIC_BASE_URL を api.deepseek.com/anthropic に) DeepSeek 成功・ 2.8 秒 応答の model は claudehaiku-5-5 のまま OpenRouter 経由 → Kimi K2.6 Baidu (ゲートウェイが選んだ) 成功・ 7.5 秒 処理先を自分では指定していない (設定で絞れる) OpenRouter 経由 → Claude Haiku 5.5 Claude Platform on AWS (同上) 成功・ 2.8 秒 キャッシュの指定もそのまま通 る どれも動いた。動くかどうかでは選べないので、残りの 4 つの観点(行き先・認証・費用・機能)で選ぶ。 〔測〕 2026-10-26 ( claude.ai の契約)と 10-30 (他 4 つ)・私の環境・ --safe-mode ・ -p で「 memo.txt を読んで、 1 行で要約して」。 Codex も Bedrock ( GPT-6 Luna ・東京から global )と OpenRouter ( Kimi )で同じ依頼が通った。時間は 1 回の計測。 4
  5. データの行き先 「国内で使いたい」は、 3 つに分かれる 処理する場所 運営者の本社の国 モデルの開発元 データを計算するサーバが どの国にあるか その国の法律(米国なら

    CLOUD Act ) も及びうる どの国の会社が作ったモデルか 越境の心配に効く(どの国の法律が及びうるか) 越境とは別の話 例 処理する場所 運営者の本社の国 モデルの開発元 NTT データの tsuzumi 2 を Azure で Azure (リージョン非明記) 米国( Microsoft ) 日本 Kimi をさくらのクラウドで 国内 日本(さくら) 中国( Moonshot ) Claude を Bedrock の jp. で 東京・大阪 米国( AWS ) 米国( Anthropic ) Kimi を OpenRouter 経由で〔測 2026-1030 〕 Baidu (ゲートウェイが選 ぶ) 米国( OpenRouter )+中国 ( Baidu ) 中国( Moonshot ) 越境の心配に効くのは、処理する場所と運営者の 2 列。運営者の列は「本社の国の法律(米国なら CLOUD Act )も及びうる」という意味で、使えな いという意味ではない。契約先が日本法人( AWS は 2022-02 からアマゾン ウェブ サービス ジャパン、 Azure の MCA は日本法準拠)でも同じ。 日本法は処理が国内でも国外でも及ぶ。国産モデルを選ぶ理由は別にある(日本語の性能・政府での採用の動きなど)。 4 行目は私の実測:処理先は自 分では指定していない。 Baidu は OpenRouter の提供者一覧で「プロンプトを保持」。 5
  6. データの行き先 越境を一律に禁じる規定は見当たらない。見るのは学習・保持・及ぶ法律 一律の禁止は見当たらない どの国の法律が及ぶかは、場所とは別に決まる ・個人情報保護委員会 Q&A 12-3 :外国のサーバでも、運 営者が個人データを取り扱わない契約なら「外国にある第三 者への提供」に当たらない

    ・同委員会の注意喚起( 2023-06-02 ):問題は、入力が 応答以外の目的(学習など)で扱われること ・医療情報の安全管理ガイドライン( 7.0 版):国内法が及 ぶことを確実にし、国外法の適用可能性を確認する ・越境しても残る義務:安全管理措置・外的環境の把握・講 じた措置の公表 ・ CLOUD Act (米・ 2018 ):米国の事業者が管理するデータ は、所在地にかかわらず開示要求の対象になりうる ・ AWS ・ Microsoft とも自社ページで「保存場所にかかわら ず」対象になりうると認める。実績: AWS は米国外の企業・政 府データでゼロ( 2025-06 時点)、 Microsoft は 2025 年下 半期に 3 件 ・契約先が日本法人( AWS ジャパン)でも、本社が米国なら対 象になりうる。日本法は処理がどこでも及ぶ ・ DeepSeek :個人情報保護委員会の情報提供( 2025-0203 )。データは中国のサーバに保存され、中国の法令が適用され る 見るべきは 3 つ:学習に使われるか/残るか/どの国の法律が及ぶか。 「国産か」「国内か」は、この 3 つの代理には ならない。 ここに書いたのは一次資料の要旨。各社への当てはめと法的な判断は、法務と専門家に。 〔公〕個人情報保護委員会 Q&A ・注意喚起・情報提供/厚労省 医療情報 安全管理 GL 7.0 / 18 U.S.C. §2713 / AWS: CLOUD Act ・ AWS Japan FAQ / Microsoft: Government Requests Report 6
  7. データの行き先 同じ Claude でも、接続先によって国内で閉じられるかが違う 接続先 推論を動かすのは 推論の場所 国内で閉じられるか 学習に使われるか claude.ai

    の契約 Anthropic 指定できない できない Team ・ Enterprise は使 わない。 Pro ・ Max は設 定次第 Claude API ( Console ) Anthropic global か us ( inference_geo ) できない 使わない Claude Platform on AWS Anthropic (新しい workspace は AWS 上で運用) API と同じ できない 使わない Amazon Bedrock AWS jp. で東京・大阪に限定 できる(モデル次第) 使わない( AWS の規約) Bedrock の中でも、モデルで違う(東京リージョンから呼ぶとき) Claude Haiku 5.5 / Opus 5.5 : jp.anthropic.claude-haiku-5-5 など、 jp. で始まるモデル ID (推論プロファイル)がある。 Haiku 5.5 は 2026-10-30 に私のアカウントから実際に呼べた。 Opus 5.5 は ID が一覧にある。 GPT-6 Luna ( OpenAI ):東京からは global.openai.gpt-6-luna だけ。国内に閉じられない。 jp. は Claude 専用ではなく Amazon Nova にもあり、 Claude でも Sonnet 5.5 には無い。 処理の場所を決めるのはモデル ID 。契約先が日本法人でも、本社は米国の事業者で、 CLOUD Act の話は残る。 〔公〕 Claude API: Data residency / Claude Code: Claude Platform on AWS / Bedrock モデルカード 〔測〕 aws bedrock get-inference-profile ( 2026-10-30 ) 7
  8. 認証と統制 社内のメンバーに使わせるなら、 API キーを配らず SSO で Bedrock + IAM Identity

    Center ( SSO ) の利点( API キー配布と比べて) ・長く使える鍵が存在しない。 .env やリポジトリに鍵が 紛れ込む事故が起きない ・退職のときは ID 基盤でアカウントを止めるだけ。鍵の 回収が要らない ・誰が呼んだかが、一人ずつ CloudTrail に残る(共有キ ーだと「誰か」まで)。 2026-10-30 に自分の呼び出し ( IAM ユーザー)で確認:ユーザーとモデル ID が記録 されていた。 SSO ではロールセッション/ユーザー ID で一人ずつ残る ・会社の多要素認証が、そのまま効く 代償 ・セッションが数時間で切れる(権限セットの設定で 1 〜 12 時間) → Claude Code は settings の awsAuthRefresh に再ログインのコマンドを書く(切れたら自分で呼び直 す) → Codex は AWS の認証チェーン( SSO 可)で吸 収 ・ CI やサーバは SSO でなく IAM ロール 鍵を配らないのは claude.ai の契約でも同じ。 Bedrock の違いは、会社の ID 基盤に乗ることと、誰が呼んだかが残るこ と。 私の会社では、各人に IAM Identity Center でログインさせ、 API キーは配らない。 〔公〕 Claude Code Docs: Amazon Bedrock ( awsAuthRefresh )/ AWS IAM Identity Center / Bedrock: CloudTrail 8
  9. 認証と統制 行き先は、メンバー任せにせず設定で縛る AWS 側: IAM で jp. のプロファイルだけ許可 { "Effect":

    "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:ap-northeast-1:<account>: inference-profile/jp.anthropic.*", "arn:aws:bedrock:ap-northeast-1:: foundation-model/anthropic.*", "arn:aws:bedrock:ap-northeast-3:: foundation-model/anthropic.*" ] } Claude Code 側: managed settings で経路 とモデルを固定(接続先を問わず使える) // /Library/Application Support/ClaudeCode/ // managed-settings.json ( MDM で配る) { "allowedProviders": ["bedrock"], "env": { "CLAUDE_CODE_USE_BEDROCK": "1", "AWS_REGION": "ap-northeast-1", "ANTHROPIC_MODEL": "jp.anthropic.claude-haiku-5-5", "ANTHROPIC_DEFAULT_HAIKU_MODEL": "jp.anthropic.claude-haiku-5-5" }, "availableModels": ["jp.anthropic.claude-haiku-5-5", "jp.anthropic.claude-opus-5-5"], "enforceAvailableModels": true, "awsAuthRefresh": "aws sso login --profile work" } IAM 側で global を呼べなくし、 Claude Code 側で claude.ai の契約や API キーでは起動しなくする。 個人の settings.json では上書きできない。 アカウント ID と CLI のプロファイル名( work )は例。 foundation-model の 2 行は、 jp. が中で呼ぶ東京・大阪のモデル本体の許可。実測は env の USE_BEDROCK ・ AWS_REGION ・ ANTHROPIC_MODEL の 3 つで行い、残りは公式ドキュメントの組み合わせ。起動時の確認呼び出し( opus 5.5 ・ sonnet 4.5 への InvokeModel が CloudTrail に残った)も、この一覧の中だけになる。 Codex は amazon-bedrock-runtime で GPT-6 Luna に接続で きた( 2026-10-30 ・経路を縛る仕組みは未確認)。 〔公〕 Claude Code Docs: Settings ( allowedProviders ・ availableModels )/ Amazon Bedrock / AWS IAM 9
  10. 費用 費用の形が変わる。人数単位か、使った分だけか 接続先 単位 支払先 上限 claude.ai の契約 人数単位の定額 Anthropic

    プランの利用枠 Claude API ( Console ) トークン従量 Anthropic 自分で見張る( Console の上限設 定) Claude Platform on AWS トークン従量 AWS の請求書 自分で見張る( AWS Budgets な ど) Amazon Bedrock トークン従量 AWS の請求書 自分で見張る( AWS Budgets な ど) 単価の例( 100 万トークンあたり・入力/出力・ 2026-10-31 時点の公式の値) ・ Haiku 5.5 : $0.10 / $0.50 ( Claude API ・ Bedrock global とも同額。 10 万トークンまでの依頼)。推論の場所を限定すると 1.1 倍: Claude API の us も、 Bedrock の jp. ( $0.11 / $0.55 )も ・実額の目安: 2 ページの 1 回 17,204 トークンの入力は、 Haiku 5.5 で約 $0.0017 、 Opus 5.5 ( $4 / MTok )で約 $0.069 。キャッシュが効けば入力は 1/10 〜 1/20 Bedrock 料金ページは Global と Geo ( jp. など)の 2 表。 Geo は Global の 1.10 倍で、東京・大阪・米国のどこから呼んでも同じ。 Claude Code の費用表示は定価( = Global )の見積もりなので、 jp. の請求はその約 1.1 倍。 従量に替えると、この量が毎ターン課金の対象になる。定額のときは見えなかった毎ターンの量が、費用として見える。 〔公〕 Claude API: Pricing / AWS Bedrock 料金ページ( Anthropic ・ Global と Geo の 2 表・ 2026-10-31 )/ Claude Code Docs: Costs 〔測〕 17,204 トークンは 2026-10-26 の実測 10
  11. 手放す機能 他社のモデルにつなぐと、形式は通っても落ちる機能がある Claude Code が送るもの DeepSeek の Anthropic 互換 API

    での扱い system / tools / tool_use ・ tool_result / thinking 対応 モデル名( claude-opus-* など) claude-* は DeepSeek のモデルに読み替え。 deepseek-flash 等の 名前はそのまま通る。それ以外は 400 cache_control (キャッシュの指定) 無視 anthropic-beta ヘッダ(ベータ機能) 無視 document ブロック( PDF など) 非対応 mcp_servers 無視 〔測〕 2026-10-30 ・私の環境:同じ依頼が DeepSeek 2.8 秒・ OpenRouter 経由の Kimi K2.6 7.5 秒で成功。 DeepSeek は応答の model が claudehaiku-5-5 のまま。 Claude Code の費用表示は Claude の単価で計算される(実測: claude-* は該当モデルの単価、 deepseek-flash ・ kimi は Opus 5.5 の単価と一致。請求額とは別)。 OpenRouter 経由の処理先は 4 ・ 5 ページ。 エラーは出ない。形式は通って、機能が黙って落ちる。 Anthropic は「 Claude 以外のモデルへのルーティングはサポートしな い」と明記。 Codex は OpenAI の現行の API 形式( Responses )だけを話す。旧形式の Chat Completions は 2026-02 に削除。旧形式し か受けない相手には変換を挟む。 〔公〕 DeepSeek API Docs: Anthropic API / Claude Code Docs: LLM gateway / Codex Docs: Config reference 〔測〕 2026-10-30 11
  12. 手放す機能 Bedrock にすると、 claude.ai 連携と WebSearch が消える 使えなくなるもの 理由 代わり

    Chrome 連携・ computer use ・ Remote Control ・クラウドセッション claude.ai の契約が要る ブラウザ操作は MCP ( Playwright な ど)。 computer use ・ Remote Control ・クラウドセッションは代わりな し WebSearch Anthropic 側の検索バックエンドで動く道具。 Bedrock はこれを出していない( Platform on AWS ・ Foundry では使える) 検索の MCP を足す(検索語は外の検索サ ービスに出る) fast mode Anthropic 側の機能 代わりなし 利用状況の分析ダッシュボード Anthropic 側の機能 OpenTelemetry ・ CloudTrail ・ Bedrock の呼び出しログ 国内で閉じても、検索語は越境する。 検索の道具がどこで動くかは、どの接続先でも別に確かめる。 それとは別に、 Bedrock にしても Anthropic に行く通信が 2 つ残る: WebFetch の安全確認(ホスト名だけ。 skipWebFetchPreflight: true で止める)と、 v2.1.312 からのモデル設定の取得( CLAUDE_CODE_MODEL_CATALOG=off で止め る)。 〔公〕 Claude Code Docs: Feature availability / Data usage / Changelog 2.1.312 12
  13. 決める順番 接続先は、渡すデータの種類から決める。費用と機能は最後 1 2 3 4 5 渡すデータ 行き先の要件 認証と統制

    費用の形 手放す機能 コードだけか、顧客 の個人情報が混じる か 処理する場所か、運 営者の本社の国まで 見るか 鍵を配るか SSO か。 経路を縛るか 定額か従量か 検索・ブラウザ連携 を別の道具で足せる か。他社モデルなら 何が無視されるか 費用と機能は後から替えられる。データは一度外に出たら戻せない。だからこの順番。 今日やること: Claude Code で /status を打って、いまの接続先を確かめる。 Bedrock なら、起動時の表示か /model で、モデル ID に jp. が付いているかまで見る。 判断する立場の方へ:「そのデータは、どこで処理されていますか」( 2 ページで見た memo.txt の 7.8 万文字は、いまど こにあるか)。処理の場所はモデル ID で、学習と法律は契約で答えられる状態が、今日のゴール。 13