Skip to content

S3 バケットのアクセス許可

AI-Starter が S3 バケット上のファイルへアクセスするための設定です。以下の機能を利用する場合に必要です。

設定手順

1. IAM インラインポリシーの追加

ECS タスクの IAM ロールに、S3 バケットへのアクセス権限をインラインポリシーで追加します。

  1. AWS マネジメントコンソールで IAM を開く
  2. 左メニューから ロール を選択し、cmais-prd-ecs-task-role を開く(環境に応じて prd 部分を読み替える)
  3. 許可を追加 > インラインポリシーを作成 を選択する
  4. JSON タブに切り替え、以下のポリシーを入力する(バケット名は適宜変更)
  5. ポリシー名に 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 にログイン済みのユーザーがファイルパスを指定してアクセスできるようになります。公開しても問題ない範囲のみを指定してください。