Основные разрешения AWS IAM для корзины S3 - PullRequest
9 голосов
/ 31 января 2012

Я пытаюсь определить базовый набор разрешений для пользователя / ключа IAM, чтобы иметь доступ только к одному сегменту в S3 - доступ только для чтения / записи в отдельном сегменте.

Чтонабор разрешений - это минимум, необходимый для этой работы?У меня есть все параметры, выбранные в генераторе политики IAM для S3, все разрешения включены для корзины, кроме CreateBucket и DeleteBucket.Я также создал набор ключей, специфичных для этого пользователя.

Когда я пытаюсь получить доступ к корзине с этими учетными данными, у меня возникает проблема с перечислением корзин, даже если свойство ListAllMyBuckets включено.

У кого-нибудь есть опыт настройки базовой конфигурации, подобной этой?Похоже, это было бы довольно распространенным ...

Ответы [ 2 ]

12 голосов
/ 31 января 2012

Пример политики для Amazon S3 охватывает различные варианты использования, похожие или связанные с вашим - в частности, вы, возможно, захотите объединить Пример 1. Разрешить каждому пользователю иметь домашний каталог в Amazon S3 с Пример 2. Разрешить пользователю перечислять только объекты в его или ее домашнем каталоге в корпоративном сегменте - вам просто нужно настроить Resource, чтобы вместо этого указать целевой корневой каталог сегментов, т.е. заменить /home/bob/* на *.

Обратите внимание, что Пример 2 облегчает ListBucket , который является операцией над корзиной , которая возвращает информацию о некоторых элементах в корзине , тогда как ListAllMyBuckets - это операция для службы , которая возвращает список всех сегментов, принадлежащих отправителю запроса , поэтому, скорее всего, не применимо к Ваш вариант использования (см. мой комментарий относительно разъяснения последнего).

0 голосов
/ 17 марта 2015

Это позволит перечислить все сегменты, если вы не отрицаете это где-то еще (я уверен, что операторы deny сначала оцениваются на 99%; порядок не имеет значения для политик IAM):

    {
        "Effect": "Allow",
        "Action": [
            "s3:ListAllMyBuckets"
        ],
        "Resource": "*"
    }

Разрешить всеВы хотите для своих ведер (Не забудьте также / *):

    {
        "Effect": "Allow",
        "Action": [
            "s3:<Put your actions here; cherry pick from the AWS documentation>"
        ],
        "Resource": [
            "arn:aws:s3:::<Bucket name here>",
            "arn:aws:s3:::<Bucket name here>/*"
        ]
    }
...