Как определить, какая политика / роль предоставляет доступ к корзине S3 - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть настройка пула Cognito / федеративной идентификации, когда пользователи получают временные учетные данные IAM через AWS Amplify.Эти пользователи имеют доступ к getObject из пары корзин S3, даже если:

  • Для корзин отключен общий доступ
  • Страница политики корзин пуста
  • IAMРоль, связанная с группами Cognito, членами которых являются эти пользователи (доверительные отношения с cognito-identity.amazonaws.com), не имеет прикрепленных политик, предоставляющих какие-либо разрешения S3.Прикрепленные политики предназначены только для AppSync, Cognito и APIGateway

. Если я создаю новый сегмент и указываю getObject на содержащийся объект, пользователи получают 403 Запрещено, что указывает на то, что где-то определена определенная для сегмента политикапредоставление доступа.Проблема в том, что у нас так много политик и ролей, многие из которых используются в производстве, поэтому я не могу просто выполнить тестирование вкл / выкл, чтобы сузить его.

Есть ли способ как-то отследить, что предоставляет политика / рольдоступ к конкретному запросу S3 getObject?

EDIT Я запустил симулятор политики IAM для роли, связанной с группами Cognito, и он дает отказ для рассматриваемых объектов.

Для объектов, доступ к которым я пытаюсь правильно заблокировать, разрешения для них не установлены.В ячейках:

  • Блокировка новых общедоступных ACL-списков и загрузка общедоступных объектов (рекомендуется): True
  • Удалить общедоступный доступ, предоставленный через общедоступные ACL-списки (рекомендуется): True
  • Блокировать новые общедоступные политики корзины (рекомендуется): True
  • Блокировать общедоступный и кросс-учетный доступ, если в корзине есть общедоступные политики (рекомендуется): True

UPDATE Iя добавил запись в облачную трассу в мои ведра.В то время как событие с именем события = 'GetObject' регистрируется для любых загрузок, которые я делаю из корзины через консоль, никакие события не регистрируются для s3.getObject загрузок через AWS javascript SDK.Как я могу получить эти события в журнал?

1 Ответ

0 голосов
/ 22 февраля 2019

Использование CloudTrail для регистрации вызовов API Amazon S3 .

Событие, зарегистрированное в CloudTrail для действий S3, содержит информацию о запрошенном действии, дате и времени действия, параметрах запроса,и идентификатор пользователя , например:

  • arn: aws: iam :: 123456789012: пользователь / Алиса
  • arn: aws: sts :: 123456789012:предполагаемая роль / RoleToBeAssumed / MySessionName
...