Amazon Bedrock クロスリージョン推論で必要な最小権限 IAM ポリシーを検証してみた

Amazon Bedrock クロスリージョン推論で必要な最小権限 IAM ポリシーを検証してみた

2025.08.04

はじめに

生成 AI を個人的に利用する機会は多いです。ですが、AWS 上の Web サービスから Amazon Bedrock を呼び出す経験はありませんでした。今回、アプリケーションからクロスリージョン推論で必要な最小権限を試す機会がありました。検証結果と私の学びを共有します。

クロスリージョン推論とは

Amazon Bedrock のクロスリージョン推論は、複数リージョンのモデルリソースを活用する機能です。リクエストが自動的に利用可能なリージョンにルーティングされます。特定リージョンでモデルが混み合ってて利用できない場合でも他リージョンで推論が可能になります。

詳細な仕組みについては、以下の記事で詳しく解説されています。

ML-17303-image001.gif

画像引用: Getting started with cross-region inference in Amazon Bedrock | Artificial Intelligence

https://dev.classmethod.jp/articles/amazon-bedrock-cross-region-inference-support/

検証環境

検証用に簡単なチャットボットを構築しました。Lambda から Bedrock を呼び出す際の IAM ロールの IAM ポリシーの権限設定を確認します。

BedrockIAMPolicy.png

非常に簡素な作りですがメッセージを入力すれば、生成 AI で推論した結果が返ってきます。網走の面積まで把握していなかったのですが、そこ以外は網走の民から見ても違和感のない回答です。

Simple_Chat.png

検証にはアジアパシフィック地域内で Claude Sonnet 4 が利用可能なクロスリージョン推論プロファイルを利用します。

Notification_Center-114.png

https://dev.classmethod.jp/articles/amazon-bedrock-cross-region-inference-apac/

検証

以下、3 つのパターンで IAM ポリシーの検証した結果を説明します。

パターン1: 推論プロファイルのみ許可

アジアパシフィック地域のクロスリージョン推論プロファイルだけを許可した場合です。

Getting_started_with_cross-region_inference_in_Amazon_Bedrock___Artificial_Intelligence-2.png

画像引用: Getting started with cross-region inference in Amazon Bedrock | Artificial Intelligence

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": "bedrock:InvokeModel",
            "Resource": [
                "arn:aws:bedrock:ap-northeast-1:123456789012:inference-profile/apac.anthropic.claude-sonnet-4-20250514-v1:0"
            ],
            "Effect": "Allow"
        }
    ]
}

結果

ルーティング先のリージョンで指定したモデルを呼び出す権限がないためエラーになりました。

[ERROR]	2025-08-02T04:31:33.399Z	cad46bd0-cddc-498d-ae28-232edf30dc59	Error calling Bedrock: An error occurred (AccessDeniedException) when calling the Converse operation: User: arn:aws:sts::123456789012:assumed-role/TestRole/TestFunction is not authorized to perform: bedrock:InvokeModel on resource: arn:aws:bedrock:ap-northeast-1::foundation-model/anthropic.claude-sonnet-4-20250514-v1:0 because no identity-based policy allows the bedrock:InvokeModel action

パターン2: 推論プロファイル + 一部リージョンのモデル許可

アジアパシフィック地域のクロスリージョン推論プロファイルを許可し、日本のリージョンの指定モデルだけを許可した場合です。

Getting_started_with_cross-region_inference_in_Amazon_Bedrock___Artificial_Intelligence-3.png

画像引用: Getting started with cross-region inference in Amazon Bedrock | Artificial Intelligence

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": "bedrock:InvokeModel*",
            "Resource": "arn:aws:bedrock:ap-northeast-1:123456789012:inference-profile/apac.anthropic.claude-sonnet-4-20250514-v1:0",
            "Effect": "Allow"
        },
        {
            "Condition": {
                "StringLike": {
                    "bedrock:InferenceProfileArn": "arn:aws:bedrock:ap-northeast-1:123456789012:inference-profile/apac.anthropic.claude-sonnet-4-20250514-v1:0"
                }
            },
            "Action": "bedrock:InvokeModel*",
            "Resource": [
                "arn:aws:bedrock:ap-northeast-1::foundation-model/anthropic.claude-sonnet-4-20250514-v1:0",
                "arn:aws:bedrock:ap-northeast-2::foundation-model/anthropic.claude-sonnet-4-20250514-v1:0",
                "arn:aws:bedrock:ap-northeast-3::foundation-model/anthropic.claude-sonnet-4-20250514-v1:0"
            ],
            "Effect": "Allow"
        }
    ]
}

結果

日本のリージョンにルーティングされれば成功します。アジアの他リージョンへルーティングされるとエラーになります。

[ERROR]	2025-08-03T20:54:28.999Z	3db424e8-a840-4c8a-886a-439ec3e4e71f	Error in handler: Failed to get response from Bedrock: An error occurred (AccessDeniedException) when calling the Converse operation: User: arn:aws:sts::123456789012:assumed-role/TestRole/TestFunction is not authorized to perform: bedrock:InvokeModel on resource: arn:aws:bedrock:ap-south-1::foundation-model/anthropic.claude-sonnet-4-20250514-v1:0 because no identity-based policy allows the bedrock:InvokeModel action

ちなみに、ルーティング先を特定のリージョンに限定することはサポートされていません。

パターン3: 推論プロファイル + 全対象リージョンのモデル許可

最終的に必要だった設定です。クロスリージョン推論で利用される全リージョンのモデルを個別に許可します。

Getting_started_with_cross-region_inference_in_Amazon_Bedrock___Artificial_Intelligence-4.png

画像引用: Getting started with cross-region inference in Amazon Bedrock | Artificial Intelligence

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": "bedrock:InvokeModel*",
            "Resource": "arn:aws:bedrock:ap-northeast-1:123456789012:inference-profile/apac.anthropic.claude-sonnet-4-20250514-v1:0",
            "Effect": "Allow"
        },
        {
            "Condition": {
                "StringLike": {
                    "bedrock:InferenceProfileArn": "arn:aws:bedrock:ap-northeast-1:123456789012:inference-profile/apac.anthropic.claude-sonnet-4-20250514-v1:0"
                }
            },
            "Action": "bedrock:InvokeModel*",
            "Resource": [
                "arn:aws:bedrock:ap-northeast-1::foundation-model/anthropic.claude-sonnet-4-20250514-v1:0",
                "arn:aws:bedrock:ap-northeast-2::foundation-model/anthropic.claude-sonnet-4-20250514-v1:0",
                "arn:aws:bedrock:ap-northeast-3::foundation-model/anthropic.claude-sonnet-4-20250514-v1:0",
                "arn:aws:bedrock:ap-south-1::foundation-model/anthropic.claude-sonnet-4-20250514-v1:0",
                "arn:aws:bedrock:ap-south-2::foundation-model/anthropic.claude-sonnet-4-20250514-v1:0",
                "arn:aws:bedrock:ap-southeast-1::foundation-model/anthropic.claude-sonnet-4-20250514-v1:0",
                "arn:aws:bedrock:ap-southeast-2::foundation-model/anthropic.claude-sonnet-4-20250514-v1:0",
                "arn:aws:bedrock:ap-southeast-4::foundation-model/anthropic.claude-sonnet-4-20250514-v1:0"
            ],
            "Effect": "Allow"
        }
    ]
}

結果

どのリージョンにルーティングされても問題ありません。

補足情報

公式ドキュメントの IAM ポリシー例

推論プロファイル経由でのみモデルを呼び出すように制限する Condition を使った IAM ポリシーが、以下のドキュメントで紹介されています。

Prerequisites for inference profiles - Amazon Bedrock

抜粋
        {
            "Condition": {
                "StringLike": {
                    "bedrock:InferenceProfileArn": "arn:aws:bedrock:ap-northeast-1:123456789012:inference-profile/apac.anthropic.claude-sonnet-4-20250514-v1:0"
                }
            },
            "Action": "bedrock:InvokeModel*",
            "Resource": [
                "arn:aws:bedrock:ap-northeast-1::foundation-model/anthropic.claude-sonnet-4-20250514-v1:0",

最初はシンプルな許可ポリシーを作成していましたが、このドキュメントを発見してからより制限したポリシーに修正しました。

最初に作成した許可ポリシー
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:ap-northeast-1:123456789012:inference-profile/apac.anthropic.claude-sonnet-4-20250514-v1:0",
                "arn:aws:bedrock:ap-northeast-1::foundation-model/anthropic.claude-sonnet-4-20250514-v1:0",
                "arn:aws:bedrock:ap-northeast-2::foundation-model/anthropic.claude-sonnet-4-20250514-v1:0",
                "arn:aws:bedrock:ap-northeast-3::foundation-model/anthropic.claude-sonnet-4-20250514-v1:0",
                "arn:aws:bedrock:ap-south-1::foundation-model/anthropic.claude-sonnet-4-20250514-v1:0",
                "arn:aws:bedrock:ap-south-2::foundation-model/anthropic.claude-sonnet-4-20250514-v1:0",
                "arn:aws:bedrock:ap-southeast-1::foundation-model/anthropic.claude-sonnet-4-20250514-v1:0",
                "arn:aws:bedrock:ap-southeast-2::foundation-model/anthropic.claude-sonnet-4-20250514-v1:0",
                "arn:aws:bedrock:ap-southeast-4::foundation-model/anthropic.claude-sonnet-4-20250514-v1:0"
            ],
            "Effect": "Allow"
        }
    ]
}

対象リージョンの確認方法

許可がルーティング先のリージョンは以下のページで確認できます。

Supported_Regions_and_models_for_inference_profiles_-_Amazon_Bedrock.png

リンク: Supported Regions and models for inference profiles - Amazon Bedrock

マネージメントコンソールからも確認できます。Bedrock のサービスページでクロスリージョン推論の対象モデルを選択すると表示されます。

Notification_Center-114.png

推論プロファイルのリージョンは不変

推論プロファイルで使用されるリージョンは不変です。IAM ポリシーを厳密に定義することで新しいリージョンが追加されてルーティング後に権限エラーになる心配はありません。

Inference profiles are immutable, meaning that we don't add new Regions to an existing inference profile. However, we might create new inference profiles that incorporate new Regions. You can update your systems to use these inference profiles by changing the IDs in your setup to the new ones.
Supported Regions and models for inference profiles - Amazon Bedrock

リージョンが追加される場合は新しい推論プロファイルのバージョンが作成されるそうです。より多くのリージョンを利用したい場合は、新しいバージョンへの更新を検討しましょう。ただし、IAM ポリシーで厳密にリージョンを制限している場合は、ポリシーの修正が必要になります。

参考: GenU の IAM ポリシー

GenU(Generative AI Use Cases)v4.3.2 の MCP チャットボットでは、様々なモデルや、機能を試せるよう広範囲な権限が設定されていました。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": "bedrock:*",
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "s3:Abort*",
                "s3:DeleteObject*",
                "s3:PutObject",
                "s3:PutObjectLegalHold",
                "s3:PutObjectRetention",
                "s3:PutObjectTagging",
                "s3:PutObjectVersionTagging"
            ],
            "Resource": [
                "arn:aws:s3:::generativeaiusecasesstack-apifilebucket8fb29855-yncdgb5ey2es",
                "arn:aws:s3:::generativeaiusecasesstack-apifilebucket8fb29855-yncdgb5ey2es/*"
            ],
            "Effect": "Allow"
        }
    ]
}

おわりに

Amazon Bedrock のクロスリージョン推論で必要な IAM ポリシーを検証しました。推論プロファイルの権限だけでは不十分で、ルーティング対象の全リージョンのモデル権限が必要でした。

アプリケーションからクロスリージョン推論を利用する際の参考になれば幸いです。

参考

この記事をシェアする

facebookのロゴhatenaのロゴtwitterのロゴ

© Classmethod, Inc. All rights reserved.