

Bedrockのjp.プロファイル、実は大阪も宛先に入っている
この記事は、構成と文章の整理にAIを使っています。
あくまで読みやすくするための補助で、内容そのものをAIにすべて任せて書いているわけではありませんが、ところどころ相談しながら整えています。
Bedrockで jp.anthropic.claude-sonnet-4-6 を呼んだらSCPのexplicit denyで弾かれた。AWS_REGION は ap-northeast-1(東京)にしてたのに。
AccessDeniedException:bedrock:InvokeModel on resource:arn:aws:bedrock:ap-northeast-3::foundation-model/anthropic.claude-sonnet-4-6with an explicit deny in a service control policyエラーに出てるリソースのリージョンが ap-northeast-3、つまり大阪になってた。クライアント側は東京指定なのに、なぜ大阪のARNでDenyされるのか最初分からなかった。
分かったこと
jp. は Geographic CRIS(cross-Region inference)のプロファイルで、東京固定じゃない。日本ジオグラフィーとして東京と大阪の2リージョンに自動ルーティングされる設計になってる。呼び出し側が ap-northeast-1 を指定していても、Bedrock側の空き状況次第で大阪に飛ばされることがあるらしい。
しかもGeo CRISは、プロファイル自体へのアクセス権限だけじゃなくて、宛先リージョンすべてのFM invoke権限も必要になる。なので今回みたいに大阪側だけSCPでdenyされてると、東京から呼んでるつもりでも失敗する。「利用申請がまだ通ってない」とかじゃなくて、単純にOrgポリシーの話だった。
もう一個ハマったのがこっち。
ValidationException:Invocation of model ID anthropic.claude-sonnet-4-6 with on-demand throughput isn't supported.Retry your request with the ID or ARN of an inference profile that contains this model.Claude Sonnet 4.6は素のfoundation model IDを直接呼べない。inference profile必須になってる。jp. や global. を使うか、自分でapplication inference profileを作るかのどれかが要る。
東京に固定したいなら
jp. のGeo CRISは構造上、大阪を宛先から外せない。東京だけで完結させたいなら選択肢は2つ。
- Org側で大阪(
ap-northeast-3)へのbedrock:InvokeModelを許可してしまってjp.を使い続ける - 東京だけを対象にした application inference profile を自分で作る
データ所在地の制約がないなら global. という手もある。世界中の商用リージョンに飛ぶ代わりに、jp.(Geo CRIS)よりトークン単価が約10%安いらしい。ただし宛先が完全に広がるので、そこは要件次第。
ちなみに
CRISは Cross-Region Inference の略で「クリス」って読む。ただし略称が4文字で単語は3つしかないので、「S」が何の略かはAWSの公式ドキュメントでは特に説明されてない。Serviceの略だと補足してる記事もあるけど、公式の裏は取れなかった。