AWS S3: Невозможно получить объекты, находящиеся в собственности, из корзины с общедоступным доступом (не аутентифицированными средствами) - PullRequest
0 голосов
/ 17 октября 2018

Итак, вот ситуация :

  • У меня есть Bucket B. Он принадлежит учетной записи A_1
  • Это ведение имеет открытый доступ на чтение для всего(через политику сегментов И через ACL. Я ставлю оба только для того, чтобы попробовать, без результата)
  • В этот сегмент можно записать учетную запись A_2, только с ACL * 1010 с полным контролем владельца корзины*
  • Корзина настроена для обслуживания объектов через Cloudfront

-> Файлы, загруженные A_2, правильно дают полный контроль A_1 при просмотре в консоли S3

НО - Cloudfront получает отказ в доступе к файлам, принадлежащим A_2 (хорошо работает с файлами, принадлежащими A_1) - используя веб-URL S3, я могу получить доступ к файлам, принадлежащим A_1 (общедоступный ACL на корзине), но не к принадлежащим A_2

ВОПРОС : Почему политика корзины не применяется к файлам, принадлежащим A_2, для которых A_1 имеет FULL_CONTROL?

ПРИМЕЧАНИЕ - я смог«обойти» проблему путем создания идентификатора доступадля моего облачного фронта и просить A_2 специально предоставить чтение канонического идентификатора учетной записи облачного фронта, но это громоздко.


Политика Bucket:

{
  "Version": "2012-10-17",
  "Statement": [
    {
        "Sid": "Grant read access to the world",
        "Effect": "Allow",
        "Principal": "*",
        "Action": "s3:GetObject",
        "Resource": "arn:aws:s3:::my_bucket/*"
    },
    {
        "Sid": "Grant write access to other account user",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::8566072xxxxx:root"
        },
        "Action": [
            "s3:ListBucket",
            "s3:PutObject"
        ],
        "Resource": [
            "arn:aws:s3:::my_bucket/*",
            "arn:aws:s3:::my_bucket"
        ]
    }
  ]
}

1 Ответ

0 голосов
/ 18 октября 2018

Права доступа S3 подчиняются трем концептуально различным наборам тестов - принципал IAM (пользователь или роль), сегмент и контекст объекта.

Если владельцы блоков и объектов совпадают, доступобъекту может быть предоставлен в политике сегмента, которая оценивается в контексте блока.Если владельцы отличаются, владельцы объекта должны использовать ACL объекта для предоставления разрешений.

https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-auth-workflow-object-operation.html

Заканчиваемый ACL bucket-owner-full-control не меняет фактическое владение объектом, поэтомутолько дает владельцу корзины возможность предоставлять доступ к объектам с политиками пользователей и ролей, но не с политикой корзины.

Ваша пользовательская политика - это причина, по которой вы можете получить к ним доступ в консоли.

Политика корзины все еще может явно запрещать доступ к объектам, не принадлежащим владельцу корзины, ноэто не может дать им.

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