Mac で Cyberduck を使用しており、ユーザーが s3 の IAM ポリシーを介して特定のディレクトリにアクセスできないようにしようとしています。ユーザーが想定されていないフォルダー名前空間にアクセスするのをブロックするところまで機能していますが、ユーザーが指定されたフォルダーより上のレベルのファイルに引き続きアクセスできることに気付きました (ユーザーがアクセスしているフォルダー)。 Cyberduck 内からのアクセスを許可することをイメージと呼びます)。例:
/images/
/afile1
/afile2
/afile3
/restrictedFolder1/
/restrictedFolder2/
私が疑問に思っているのは、そのユーザーのフォルダー外のファイルへのアクセスを制限できる場合、またはできない場合は、IAM を介してそれらのファイルを非表示にする (またはクエリで返すこともできない) ことですか?
私のポリシー:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowUserToSeeBucketListInTheConsole",
"Action": [
"s3:ListAllMyBuckets",
"s3:GetBucketLocation"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::*"
]
},
{
"Sid": "AllowListingOfBrandcentralPRDBucket",
"Action": [
"s3:ListBucket",
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::mybucket"
],
"Condition": {
"StringEquals": {
"s3:prefix": [
"",
"images/"
],
"s3:delimiter": [
"/"
]
}
}
},
{
"Sid": "ListObjectsForTheImagesFolder",
"Action": [
"s3:ListBucket"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::mybucket"
],
"Condition": {
"StringNotEquals": {
"s3:prefix": [
"images/initial/",
"images/REJECTED/",
"assets/"
]
}
}
},
{
"Sid": "GrantPromissionsForTheImagesFolder",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:GetObjectAcl",
"s3:PutObject",
"s3:PutObjectAcl"
],
"Resource": [
"arn:aws:s3:::mybucket/images/*"
]
}
]
}