Может загружать файлы, но не может перечислять объекты S3 Bucket. Ошибка доступа запрещена

Я пытаюсь перечислить все файлы в моей корзине S3. Но постоянно получаю ошибку Доступ запрещен. Я думаю, что у меня есть необходимые разрешения в моем IAM пользователь:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "SID",
            "Effect": "Allow",
            "Action": [
                "s3:AbortMultipartUpload",
                "s3:DeleteObject",
                "s3:DeleteObjectVersion",
                "s3:GetBucketAcl",
                "s3:GetBucketCORS",
                "s3:GetBucketLocation",
                "s3:GetBucketLogging",
                "s3:GetBucketNotification",
                "s3:GetBucketPolicy",
                "s3:GetBucketRequestPayment",
                "s3:GetBucketTagging",
                "s3:GetBucketVersioning",
                "s3:GetBucketWebsite",
                "s3:GetLifecycleConfiguration",
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:GetObjectTorrent",
                "s3:GetObjectVersion",
                "s3:GetObjectVersionAcl",
                "s3:GetObjectVersionTorrent",
                "s3:ListAllMyBuckets",
                "s3:ListBucket",
                "s3:ListBucketMultipartUploads",
                "s3:ListBucketVersions",
                "s3:ListMultipartUploadParts",
                "s3:PutBucketAcl",
                "s3:PutBucketCORS",
                "s3:PutBucketLogging",
                "s3:PutBucketNotification",
                "s3:PutBucketPolicy",
                "s3:PutBucketRequestPayment",
                "s3:PutBucketTagging",
                "s3:PutBucketVersioning",
                "s3:PutBucketWebsite",
                "s3:PutLifecycleConfiguration",
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:PutObjectVersionAcl",
                "s3:RestoreObject"
            ],
            "Resource": [
                "arn:aws:s3:::bucket/*"
            ]
        }
    ]
}

Если я предоставлю полный доступ к S3, (политика AmazonS3FullAccess), я могу перечислить объекты. В чем может быть проблема? Я думаю, что я только удалил разрешения на удаление и создание сегментов в пользовательской политике.

Когда я добавляю полный доступ к той же политике:

        "Action": [
            "s3:*"
        ],

до сих пор я не могу перечислить объекты. Но с текущими разрешениями я могу загружать и удалять объекты.

2 ответа

Решение

Только что нашел ответ! Действия, разрешенные в политике, являются правильными. Проблема с Resource, Я использовал это:

"Resource": [
   "arn:aws:s3:::bucket/*"
]

Но похоже, что это не дает разрешения на корень ведра. Нет полного доступа. Итак, чтобы это работало, мы должны удалить / как это:

"Resource": [
   "arn:aws:s3:::bucket*"
]

Теперь это работает как шарм.

У меня была такая же проблема. Я использовал две машины, на одной был создан профиль aws, и я смог вывести список s3, но на второй машине, где мой профиль не был создан, и я использовал команду Set-AWSCredential, я не смог вывести список s3. В тот момент, когда я создал профиль, я смог получить доступ к s3 ls.

Другие вопросы по тегам