Политика пользователя IAM для RW в определенных папках
Я пытаюсь использовать инструмент CloudBerry Drive, чтобы прикрепить корзины S3 в качестве сетевого диска. У меня есть корзина и 2 папки внутри, принимая имя корзины как окружение и 2 папки как dev и prod. У меня есть 3 набора пользователей, которые будут использовать это - Admin, Dev и Prod. Администратор - должен иметь разрешения R/W для обеих папок. Dev - должен иметь доступ на запись только к папке dev. Prod - должен иметь доступ на чтение к папке dev и доступ на запись к папке prod.
Однако меня смущают разрешения IAM. Админ отлично работает с разрешениями полного доступа S3. Но другие 2 аккаунта не работают нормально.
Dev
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:DeleteObjectVersion",
"s3:RestoreObject",
"s3:PutObjectVersionTagging",
"s3:PutObjectTagging",
"s3:DeleteObject"
],
"Resource": "arn:aws:s3:::environment/dev/*"
}
]
}
С этим я должен быть в состоянии R/W в папку dev, что я не могу сделать. Используя CloudBerry Drive, я могу скопировать, вставить файл, но не загружается на S3. Кроме того, файлы в S3 перечислены здесь (что необходимо), но не могут получить к ним доступ (ошибка прилагается).
тычок
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:DeleteObjectTagging",
"s3:DeleteObjectVersion",
"s3:GetObjectVersionTagging",
"s3:ReplicateTags",
"s3:RestoreObject",
"s3:PutObjectVersionTagging",
"s3:DeleteObjectVersionTagging",
"s3:ListMultipartUploadParts",
"s3:ReplicateObject",
"s3:GetObjectVersionTorrent",
"s3:PutObject",
"s3:GetObjectAcl",
"s3:GetObject",
"s3:ObjectOwnerOverrideToBucketOwner",
"s3:GetObjectTorrent",
"s3:AbortMultipartUpload",
"s3:GetObjectVersionAcl",
"s3:GetObjectTagging",
"s3:PutObjectTagging",
"s3:GetObjectVersionForReplication",
"s3:DeleteObject",
"s3:ReplicateDelete",
"s3:GetObjectVersion"
],
"Resource": "arn:aws:s3:::environment/Prod"
}
]
}
С этим я должен быть в состоянии R/W в папку prod, что я не могу сделать. Используя CloudBerry Drive, я могу скопировать, вставить файл, но не загружается на S3.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:GetObjectVersionTorrent",
"s3:GetObjectAcl",
"s3:GetObject",
"s3:GetObjectTorrent",
"s3:GetObjectVersionTagging",
"s3:GetObjectVersionAcl",
"s3:GetObjectTagging",
"s3:GetObjectVersionForReplication",
"s3:GetObjectVersion",
"s3:ListMultipartUploadParts"
],
"Resource": [
"arn:aws:s3:::environment"
],
"Condition": {
"StringLike": {
"s3:prefix": [
"dev/*"
]
}
}
}
]
}
Файлы в S3 перечислены здесь (что необходимо), но не могут получить к ним доступ (ошибка прилагается).
Надеюсь, я прояснил свое требование: 1. У пользователя dev должен быть только R/W доступ к папке dev. 2. У пользователя prod есть доступ R/W к папке prod и доступ R к папке dev 3. Все это делается с помощью CloudBerry Drive. для S3.
Примечание: я много гуглил и перепробовал почти все, включая некоторые политики, которые показывают, как предоставить разрешение на запись в определенную папку пользователя.
1 ответ
Извините за написание отложенного ответа: Но в моем сценарии измените условие следующим образом:
"Condition":{"StringLike":{"s3:prefix":["home/David/*"]}}
Спасибо ceejayoz, что указал мне на эту ошибку.