Почему моя политика сегмента AWS S3 не отменяет мою политику IAM?

У меня есть пользователь в моей учетной записи IAM с именем "testuser" с правами администратора, например:

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

И затем у меня есть политика в моем ведре S3, которая запрещает этому пользователю доступ, например:

{
  "Statement": [
    {
  "Effect": "Deny",
  "Principal": {
    "AWS": "my-account-id:user/testuser"
  },
  "Action": "s3:*",
  "Resource": "arn:aws:s3:::my-bucket-name/*"
    }
  ]
}

Итак, явное запрещение в политике корзины S3 должно переопределить разрешение из политики IAM, верно? Но когда я вхожу в систему как тестовый пользователь, у меня по-прежнему есть доступ ко всему в этом сегменте - у меня даже есть доступ для изменения или удаления политики сегмента для этого сегмента (и всех остальных сегментов тоже). Почему мое явное отрицание ничего не делает?


person Dasmowenator    schedule 21.07.2012    source источник
comment
Под доступом ко всему вы имеете в виду просто перечисление содержимого корзины или вы также можете получать / размещать файлы?   -  person Frederick Cheung    schedule 22.07.2012
comment
Я имею в виду все - просмотр файлов, добавление файлов, просмотр политики корзины, редактирование политики корзины и т. Д.   -  person Dasmowenator    schedule 22.07.2012


Ответы (1)


Попробуйте использовать полную форму ARN для идентификатора пользователя в политике корзины:

"Principal": {
  "AWS":["arn:aws:iam::accountid:user/testuser"]
}
person Ian Roberts    schedule 21.07.2012
comment
спасибо за ответ - к сожалению, это не подействовало - person Dasmowenator; 22.07.2012
comment
Указанные вами политики должны предотвращать testuser получение / размещение / удаление объектов в корзине, но не запрещать им выводить список содержимого корзины. Для этого вам нужно будет использовать "Resource": ["arn:aws:s3:::my-bucket-name/*","arn:aws:s3:::my-bucket-name"] в правиле запрета (потому что такие действия, как ListBucket, управляются ARN bucket, а не bucket / * one). - person Ian Roberts; 22.07.2012
comment
@Ian, ваше объяснение в приведенном выше комментарии остается в силе даже спустя более 1,5 лет. Мне это просто помогло. - person slayedbylucifer; 13.02.2014
comment
Как написать политику корзины, чтобы переопределить политику IAM для всех пользователей в этой учетной записи? - person Alexandre Thenorio; 05.12.2017