リージョン制限下のマルチアカウント環境でAmazon Bedrock クロスリージョン推論プロファイルを利用可能にする
はじめに
マルチアカウント環境において、一部のリージョン(東京、大阪、バージニアリージョン)を除いてリージョン制限が適用されている以下の構成で、Amazon Bedrock 推論プロファイルを利用可能にする方法を解説します。
今回の検証環境では、親OUに以下のサービスコントロールポリシー(SCP)が適用されており、AWS Control Tower は使用していません。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": ["*"],
"Resource": ["*"],
"Condition": {
"StringNotEquals": {
"aws:RequestedRegion": [
"ap-northeast-1",
"ap-northeast-3",
"us-east-1"
]
}
}
}
]
}
推論プロファイルの概要
Amazon Bedrockの推論プロファイルには、以下の2つのタイプがあります。
クロスリージョン (システム定義) 推論プロファイル(inference-profile)
- Amazon Bedrock で事前定義されている推論プロファイル
- モデルへのリクエストを複数のリージョンにルーティング可能
アプリケーション推論プロファイル(application-inference-profile)
- コストとモデルの使用を追跡するためにユーザーが作成する推論プロファイル
- モデル呼び出しリクエストを1つのリージョンまたは複数のリージョンにルーティング可能
クロスリージョン推論とは、複数のAWSリージョン間で推論リクエストを動的にルーティングし、最適な可用性とパフォーマンスを確保する機能です。
リージョン制限による問題
上記の2つの推論プロファイル(クロスリージョン推論プロファイルと複数のリージョンにルーティングするアプリケーション推論プロファイル)は、複数のリージョンにリクエストをルーティングするため、ルーティング先がSCPによってリージョン制限されている場合、実行ができなくなります。
例えば、子1OU配下のアカウントでは東京リージョンはリージョン制限されていませんが、マネジメントコンソール上でBedrockのAPAC Claude Sonnet 4 推論プロファイル
を東京リージョンで利用しようとするとエラーが発生します。
これは、APAC Claude Sonnet 4 推論プロファイル
がSCPで制限対象となっている以下のリージョンにもルーティングされるためです。
- ap-northeast-1
- ap-northeast-2
- ap-northeast-3
- ap-south-1
- ap-south-2
- ap-southeast-1
- ap-southeast-2
- ap-southeast-4
親OU配下全てで推論プロファイルを許可
親OU配下のすべてのアカウントで推論プロファイルを利用可能にする方法を説明します。
既存のリージョン制限のSCPに対して、以下のような条件を追加することで、東京、大阪、バージニアリージョンで推論プロファイルを利用できるようになります。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": ["*"],
"Resource": ["*"],
"Condition": {
"StringNotEquals": {
"aws:RequestedRegion": [
"ap-northeast-1",
"ap-northeast-3",
"us-east-1"
]
},
"ArnNotLike": {
"bedrock:InferenceProfileArn": "arn:aws:bedrock:ap-northeast-1:*:inference-profile/*",
"bedrock:InferenceProfileArn": "arn:aws:bedrock:ap-northeast-3:*:inference-profile/*",
"bedrock:InferenceProfileArn": "arn:aws:bedrock:us-east-1:*:inference-profile/*",
"bedrock:InferenceProfileArn": "arn:aws:bedrock:ap-northeast-1:*:application-inference-profile/*",
"bedrock:InferenceProfileArn": "arn:aws:bedrock:ap-northeast-3:*:application-inference-profile/*",
"bedrock:InferenceProfileArn": "arn:aws:bedrock:us-east-1:*:application-inference-profile/*"
}
}
}
]
}
この設定では、ArnNotLike
条件を使用して、指定した3つのリージョン(東京、大阪、バージニア)の推論プロファイル(クロスリージョン推論プロファイルとアプリケーション推論プロファイル)を使用する際のみ、リージョン制限を回避できるようにしています。
特定の子OUのみで推論プロファイルを許可する
次に、特定のOUのみで推論プロファイルの利用を許可する方法を説明します。
本番OUでは推論プロファイルを禁止し、PoC OUでは許可したい場面もあると思います。
今回の例では、子1OU配下では推論プロファイルを許可し、子2OUでは禁止する設定を行います。
まず、親OUに以下の設定を適用することで、東京、大阪、バージニアリージョンで推論プロファイルを利用できるようにします。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": ["*"],
"Resource": ["*"],
"Condition": {
"StringNotEquals": {
"aws:RequestedRegion": [
"ap-northeast-1",
"ap-northeast-3",
"us-east-1"
]
},
"ArnNotLike": {
"bedrock:InferenceProfileArn": "arn:aws:bedrock:ap-northeast-1:*:inference-profile/*",
"bedrock:InferenceProfileArn": "arn:aws:bedrock:ap-northeast-3:*:inference-profile/*",
"bedrock:InferenceProfileArn": "arn:aws:bedrock:us-east-1:*:inference-profile/*",
"bedrock:InferenceProfileArn": "arn:aws:bedrock:ap-northeast-1:*:application-inference-profile/*",
"bedrock:InferenceProfileArn": "arn:aws:bedrock:ap-northeast-3:*:application-inference-profile/*",
"bedrock:InferenceProfileArn": "arn:aws:bedrock:us-east-1:*:application-inference-profile/*"
}
}
}
]
}
ただし、この設定のみでは、親OU配下のすべてのアカウントで推論プロファイルが利用可能となってしまいます。
そのため、推論プロファイルを禁止したいOU(今回は子2OU)に対して、以下のSCPを追加で適用します。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenyBedrockInferenceProfile",
"Effect": "Deny",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource": "*",
"Condition": {
"ArnLike": {
"bedrock:InferenceProfileArn": "arn:aws:bedrock:ap-northeast-1:*:inference-profile/*",
"bedrock:InferenceProfileArn": "arn:aws:bedrock:ap-northeast-3:*:inference-profile/*",
"bedrock:InferenceProfileArn": "arn:aws:bedrock:us-east-1:*:inference-profile/*",
"bedrock:InferenceProfileArn": "arn:aws:bedrock:ap-northeast-1:*:application-inference-profile/*",
"bedrock:InferenceProfileArn": "arn:aws:bedrock:ap-northeast-3:*:application-inference-profile/*",
"bedrock:InferenceProfileArn": "arn:aws:bedrock:us-east-1:*:application-inference-profile/*"
}
}
}
]
}
このSCPでは、推論プロファイルを使用したBedrockのモデル呼び出し(bedrock:InvokeModel
とbedrock:InvokeModelWithResponseStream
)を明示的に拒否しています。ArnLike
条件により、指定した3つのリージョンの推論プロファイルを使用する際に、これらのアクションが拒否されます。
この設定により、上記のSCPが適用されていない子1OU配下のアカウントのみで、Bedrock推論プロファイルの利用が可能となります。
なお、親OU配下に子3OUを作成した場合、このSCPを子3OUにも適用すると推論プロファイルは制限され、適用しない場合は利用が可能になります。
推論プロファイルの権限について
子2OUで推論プロファイルの利用(実行)を拒否する場合、以下の2つのアクションを制限すれば十分です。
- bedrock:InvokeModel
- bedrock:InvokeModelWithResponseStream
なお、Converse APIおよび ConverseStream APIの実行権限も、これらの権限を利用します。
推論プロファイルの管理操作について
推論プロファイルの管理操作についても制限したい場合は、以下のアクションを追加で制限することが可能です。
- bedrock:CreateInferenceProfile - アプリケーション推論プロファイルを作成
- bedrock:GetInferenceProfile - 推論プロファイルの詳細情報を取得
- bedrock:ListInferenceProfiles - 利用可能な推論プロファイルの一覧を取得
- bedrock:DeleteInferenceProfile - アプリケーション推論プロファイルを削除
タグ管理のアクションについて
推論プロファイルに特化した機能ではありませんが、Bedrockのタグ管理に関するアクションもあります。これらも同様に制限可能です。
- bedrock:TagResource - 推論プロファイルにタグを追加
- bedrock:UntagResource - 推論プロファイルからタグを削除
- bedrock:ListTagsForResource - 推論プロファイルに付与されたタグ一覧を表示
これらのアクションを追加すると、制限対象のOUでは推論プロファイルに対するタグ操作も拒否されます。
最後に
リージョン制限が適用されたマルチアカウント環境でも、SCPの条件設定を適切に行うことで、Amazon Bedrock クロスリージョン推論プロファイルを利用できるようになります。
全OUで許可する方法と特定のOUのみで許可する方法の2つのパターンを紹介しましたが、組織のセキュリティ要件に応じて適切な方法を選択してください。
推論プロファイルを活用することで、複数リージョンでの可用性とパフォーマンスの向上が期待できますので、ぜひ活用してみてください。
参考