AWS S3 Bucket Policy Publi c чтение, ограниченная запись - PullRequest
0 голосов
/ 01 мая 2020

Я пытаюсь настроить политику для моего нового красивого контейнера с именем files.mybucket.com, в котором говорится:

  1. Каждый может читать мои объекты
  2. Только некоторые Пользователи IAM могут делать все остальное.

Вот то, что я пробовал до сих пор:

"Statement": [
    {
        "Sid": "getAll",
        "Effect": "Allow",
        "Principal": "*",
        "Action": "s3:GetObject",
        "Resource": [
            "arn:aws:s3:::files.mybucket.com",
            "arn:aws:s3:::files.mybucket.com/*"
        ]
    },
    {
        "Sid": "writeSome",
        "Effect": "Allow",
        "Principal": {
            "AWS": [
                "arn:aws:iam::111111111111:user/John",
                "arn:aws:iam::111111111111:user/Dave"
            ]
        },
        "Action": "s3:*",
        "Resource": [
            "arn:aws:s3:::files.mybucket.com",
            "arn:aws:s3:::files.mybucket.com/*"
        ]
    }
]

Кажется, что вышеупомянутое не имеет никакого эффекта: даже если я удаляю принцип "Джон" из заявления я все еще могу загружать вещи с его помощью через консоль и Cloudberry Explorer.

"Statement": [
    {
        "Sid": "getAll",
        "Effect": "Allow",
        "Principal": "*",
        "Action": "s3:GetObject",
        "Resource": [
            "arn:aws:s3:::files.mybucket.com",
            "arn:aws:s3:::files.mybucket.com/*"
        ]
    },
    {
        "Sid": "writeSome",
        "Effect": "Deny",
        "NotPrincipal": {
            "AWS": [
                "arn:aws:iam::111111111111:user/John",
                "arn:aws:iam::111111111111:user/Dave"
            ]
        },
        "Action": "s3:*",
        "Resource": [
            "arn:aws:s3:::files.mybucket.com",
            "arn:aws:s3:::files.mybucket.com/*"
        ]
    }
]

Это выглядит многообещающе, так как не дает пользователям писать (если я удаляю Джона, я больше не могу писать с ним НО это также блокирует получение запросов от неаутентифицированных людей (и я хочу, чтобы они могли видеть контент).

Итак, вопрос: как разрешить людям получать мои файлы И держать всех, кроме Джона и Дейва писать на ведре?

Это сводит меня с ума. Я ценю помощь.

1 Ответ

0 голосов
/ 01 мая 2020

Как правило:

  • Правила, которые применяются к всем , должны go в Политике Bucket
  • Правило, которое применяется только к указанным c пользователям; к пользователям IAM или группе IAM пользователей

Поэтому:

  • Создание политики корзины для предоставления доступа на чтение всем (первая часть вашей политики выше)
  • Для каждого пользователя, которому должен быть разрешен доступ к корзине, добавьте политики для пользователя IAM

Это позволяет избежать необходимости в политиках Deny, которые всегда вызывают проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...