S3 バケットのアクセス許可
AI-Starter が S3 バケット上のファイルへアクセスするための設定です。以下の機能を利用する場合に必要です。
- AgentCore Code Interpreter で生成されたファイルのダウンロード
- Bedrock Knowledge Base のドキュメントリンク(
ALL設定時)
設定手順
1. IAM インラインポリシーの追加
ECS タスクの IAM ロールに、S3 バケットへのアクセス権限をインラインポリシーで追加します。
- AWS マネジメントコンソールで IAM を開く
- 左メニューから ロール を選択し、
cmais-prd-ecs-task-roleを開く(環境に応じてprd部分を読み替える) - 許可を追加 > インラインポリシーを作成 を選択する
- JSON タブに切り替え、以下のポリシーを入力する(バケット名は適宜変更)
- ポリシー名に
S3DsAccessと入力し、ポリシーの作成 を押下する
インラインポリシーの例
json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": "arn:aws:s3:::my-bucket/*"
}
]
}複数のバケットを許可する場合は、Resource を配列で指定します。
json
"Resource": [
"arn:aws:s3:::bucket-a/*",
"arn:aws:s3:::bucket-b/*"
]2. シークレットの設定
Secrets Manager の cmais-prd/customize シークレットで、allowed_ds_buckets に許可する S3 の場所を指定します。カンマ区切りで複数指定できます。
- バケット全体: バケット名のみ(例:
bucket-a) - フォルダ(プレフィックス)単位:
バケット名/プレフィックス(例:shared-bucket/team-a/public)。オブジェクトキーがそのプレフィックスと一致するか、そのプレフィックス配下(プレフィックス/で始まるキー)である場合のみ許可されます。先頭・末尾の/は正規化されます。
text
allowed_ds_buckets: bucket-a,bucket-b,shared-bucket/team-a/public注意
allowed_ds_buckets に許可した範囲内では、AI-Starter にログイン済みのユーザーがファイルパスを指定してアクセスできるようになります。公開しても問題ない範囲のみを指定してください。