単一バケットへのS3フルアクセスIAMポリシー

特定のS3バケットへの完全な読み書きアクセスを付与し、アカウント内の他のすべてのバケットへのアクセスを防ぐIAMポリシーを作成します。

Storage

詳細な説明

フルS3アクセス — 1つのバケットにスコープ

アプリケーションが特定のバケットでオブジェクトのアップロード、ダウンロード、削除、リストを行う必要がある場合、広範なS3権限を付与しつつ、その単一のバケットのみに制限するポリシーが必要です。これはすべてのリソースにs3:*を付与するよりもはるかに安全です。

ポリシーJSON

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "FullBucketAccess",
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:DeleteObject",
        "s3:ListBucket",
        "s3:GetBucketLocation",
        "s3:ListBucketMultipartUploads",
        "s3:AbortMultipartUpload",
        "s3:ListMultipartUploadParts",
        "s3:GetObjectTagging",
        "s3:PutObjectTagging"
      ],
      "Resource": [
        "arn:aws:s3:::my-app-bucket",
        "arn:aws:s3:::my-app-bucket/*"
      ]
    }
  ]
}

マルチパートアップロードアクション

大きなファイルのアップロード(通常100MB以上)の場合、AWS SDKは自動的にマルチパートアップロードを使用します。ListMultipartUploadPartsListBucketMultipartUploadsAbortMultipartUploadアクションがないと、大きなアップロードは失敗するか、不完全なパーツがストレージを消費したまま残ります。

このポリシーに含まれないもの

  • バケット管理アクション(CreateBucketDeleteBucketPutBucketPolicyPutBucketEncryption)— これらは通常インフラ管理者に限定されます。
  • クロスアカウントアクセス — そのためにはターゲットバケットのバケットポリシーも必要です。
  • ACL操作PutBucketAclPutObjectAclは意図的に除外されています;アクセス制御にはバケットポリシーを使用してください。

ユースケース

ユーザーアップロードの読み書き、ファイル処理、専用S3バケットでのオブジェクトライフサイクル管理が必要なアプリケーションバックエンド。CMS、ファイル処理パイプライン、データ取り込みサービスで一般的です。

試してみる — AWS IAM Policy Generator

フルツールを開く