S3 console IAM policy for only 1 bucket
Trong quá trình làm dự án, sẽ có lúc nhu cầu của bạn như sau:
– Cho phép 1 IAM user được access vào S3 Management Console
– IAM user này có thể thực hiện các hành động như: upload, download, xem nội dung, xóa file của một (hoặc một vài bucket) nào đó nhưng không có quyền tương tự cho bucket khác
\=> Policy như nào cho đúng?
Solution:
Bạn gắn cho IAM user 1 policy như sau:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:ListAllMyBuckets",
"s3:GetAccountPublicAccessBlock",
"s3:GetBucketAcl",
"s3:GetBucketPolicyStatus",
"s3:GetBucketPublicAccessBlock",
"s3:ListAccessPoints"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::<bucket-name"
]
},
{
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::<bucket-name>/*"
]
}
]
}
Note: Hãy nhớ đừng dùng AmazonS3ReadOnlyAccess trong trường hợp này, vì nếu dùng IAM user sẽ không thể upload hay xóa file nhưng có thể download file từ các bucket khác, do cho phép quyền “s3:Get-*” cho tất cả các bucket