Политика пользователя IAM для записи на жесткий диск в определенных папках

Политика пользователя IAM для записи на жесткий диск в определенных папках

Я пробую инструмент CloudBerry Drive, чтобы присоединить S3 buckets в качестве сетевого диска. У меня есть bucket и 2 папки внутри него, предполагая, что имя bucket — это environment, а 2 папки — dev и prod. У меня есть 3 группы пользователей, которые будут это использовать: Admin, Dev и Prod. Admin — должен иметь разрешения на чтение и запись для обеих папок. Dev — должен иметь доступ только на запись в папку dev. Prod — должен иметь доступ на чтение в папку dev и доступ на запись в папку prod.

Однако я запутался с разрешениями IAM. Администратор отлично работает с разрешениями полного доступа S3. Но другие 2 аккаунта не работают нормально.

Дев

{
"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 должен иметь доступ на чтение и запись только к папке dev. 2. Пользователь prod должен иметь доступ на чтение и запись к папке prod и доступ на чтение к папке dev. 3. Все это делается с помощью CloudBerry Drive для S3.

Примечание: я много гуглил и перепробовал почти все, включая некоторые политики, показывающие, как предоставить разрешение на запись определенной папке пользователя. введите описание изображения здесь

решение1

Извините за задержку с ответом: но в моем скрипте измените условие следующим образом:

"Condition":{"StringLike":{"s3:prefix":["home/David/*"]}}

Спасибо ceejayoz за то, что указал мне на эту ошибку.

Связанный контент