S3 - отзыв разрешения «full_control» у принадлежащего объекта - PullRequest
0 голосов
/ 28 июня 2018

Во время написания реализации сервера S3 возник вопрос, который я нигде не могу найти.

Например, я владелец корзины, а также владелец загруженного объекта.

Если я отзову разрешение "full_control" у владельца объекта (себя), смогу ли я получить доступ к этому объекту и изменить его? Какое поведение ожидается в следующем примере:

s3cmd setacl --acl-grant full_control:ownerID s3://bucket/object
s3cmd setacl --acl-revoke full_control:ownerID s3://bucket/object
s3cmd setacl --acl-grant read:ownerID s3://bucket/object

Спасибо

Ответы [ 2 ]

0 голосов
/ 11 июля 2018

Официальный ответ службы поддержки AWS:

T он краткий ответ на этот вопрос будет да, ведро / объект владелец имеет право на чтение и обновление ACL группы объектов / объектов, при условии, что нет вложенной политики, которая явно удаляет эти разрешения у владельца. Например, следующее политика помешает владельцу сделать что-нибудь на ведро, включая изменение ACL ведра:

 {
  "Id": "Policy1531126735810",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Example bucket policy",
      "Action": "s3:*",
      "Effect": "Deny",
      "Resource": "arn:aws:s3:::<bucket>",
      "Principal": "*"
    }
  ]
}

Однако, как пользователь root (владелец корзины), у вас все еще есть разрешение на удаление та политика, которая затем восстановит ваши права как владельца корзины обновить ACL.

По умолчанию все ресурсы S3, сегменты, объекты и подресурсы частный; только владелец ресурса, который является учетной записью AWS, которая создал его, может получить доступ к ресурсу [1]. Как владелец ресурса (AWS учетной записи), вы можете предоставить другим пользователям разрешение на прикрепление политики доступа к пользователям.

Пример: допустим, вы создали пользователя IAM с именем -S3User1- и дали это разрешение создавать сегменты в S3 и обновлять его ACL. Пользователь в вопрос тогда идет вперед и создать ведро и назвать его "S3user1-ковш". После этого он идет дальше и удаляет объекты List, Запись объектов, разрешение чтения сегмента и разрешение записи сегмента от учетной записи root в разделе ACL. На данный момент, если вы вошли в систему как корень и попытаться прочитать объекты в этом ведре, «Доступ «Отказано» будет выдано сообщение об ошибке. Однако, как пользователь root, вы сможете перейти к раздел «Разрешения» ведра и добавить эти разрешения назад.

0 голосов
/ 28 июня 2018

В эти дни рекомендуется использовать официальный Интерфейс командной строки AWS (CLI) вместо s3cmd.

Обычно вам следует избегать использования разрешений на уровне объектов для управления доступом. Лучше всего сделать их все " полный контроль владельца корзины ", а затем использовать Политики корзины для предоставления доступа к корзине или пути.

Если вы хотите предоставить доступ для каждого объекта, рекомендуется использовать предварительно подписанные URL-адреса Amazon S3 , которые предоставляют ограниченный по времени доступ к частному объекту. Когда время истекает, URL больше не работает. Ваше приложение будет отвечать за определение того, разрешен ли пользователю доступ к объекту, а затем создает предварительно подписанный URL-адрес (например, в виде ссылки или ссылки на странице HTML).

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