単一バケットへの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は自動的にマルチパートアップロードを使用します。ListMultipartUploadParts、ListBucketMultipartUploads、AbortMultipartUploadアクションがないと、大きなアップロードは失敗するか、不完全なパーツがストレージを消費したまま残ります。
このポリシーに含まれないもの
- バケット管理アクション(
CreateBucket、DeleteBucket、PutBucketPolicy、PutBucketEncryption)— これらは通常インフラ管理者に限定されます。 - クロスアカウントアクセス — そのためにはターゲットバケットのバケットポリシーも必要です。
- ACL操作 —
PutBucketAclとPutObjectAclは意図的に除外されています;アクセス制御にはバケットポリシーを使用してください。
ユースケース
ユーザーアップロードの読み書き、ファイル処理、専用S3バケットでのオブジェクトライフサイクル管理が必要なアプリケーションバックエンド。CMS、ファイル処理パイプライン、データ取り込みサービスで一般的です。