AWSで、S3の特定のバケットにのみアクセスできるユーザーの作成方法です。
例えば、upload-testというS3バケットにのみアクセス可能なユーザーを作成したい場合は、IAMのインラインポリシーで、以下のように記述します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "arn:aws:s3:::*"
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": "arn:aws:s3:::upload-test"
},
{
"Effect": "Allow",
"Action": [
"s3:DeleteBucketWebsite",
"s3:DeleteObject",
"s3:DeleteObjectVersion",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:PutObject",
"s3:PutObjectAcl",
"s3:ListMultipartUploadParts",
"s3:AbortMultipartUpload"
],
"Resource": "arn:aws:s3:::upload-test/*"
}
]
}
このユーザーのAWS ACCESS KEYを渡しておけば、AWS CLIやS3 Browser等のGUIツールで、upload-testというS3バケットにのみアクセス可能となります。
※他バケットはアクセスは不可能ですが、バケット一覧は取得できますので、バケット名は確認できてしまいます。