Я пытаюсь ограничить роль IAM, чтобы иметь возможность доступа только к определенной подпапке (префиксу ключа) в корзине S3.Вот политика JSON, которую я использую, но в настоящее время пользователь по-прежнему может обращаться к другим папкам в корзине:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::somebucket",
"arn:aws:s3:::somebucket/*"
]
},
{
"Sid": "VisualEditor2",
"Effect": "Allow",
"Action": [
"s3:ListBucketVersions",
"s3:ListBucketByTags",
"s3:GetBucketAcl"
],
"Resource": [
"arn:aws:s3:::mybucket"
]
},
{
"Sid": "VisualEditor3",
"Effect": "Allow",
"Action": [
"s3:GetObjectAcl",
"s3:GetObject",
"s3:GetObjectVersion"
],
"Resource": [
"arn:aws:s3:::mybucket/datasets/company1/*"
]
}
]
}
В настоящее время, используя эту роль, я все еще могу выполнять, например,
aws s3 cp s3://mybucket/datasets/company2/dataset.csv
* 1006.* и загрузите набор данных.Что я делаю не так?
Когда я пытаюсь смоделировать политику, она кажется правильной (попытка getObject для mybucket/datasets/company2/dataset.csv
неявно завершается неудачей, но на практике этого не происходит. Никаких других политик, связанных сэтот пользователь.