Как предоставить полный контроль владельца корзины для файла, выгруженного из redshift в одной учетной записи, в корзину s3 в другой учетной записи? - PullRequest
0 голосов
/ 05 июля 2018

У меня есть кластер красных смещений в учетной записи AWS «A» и корзина S3 в учетной записи «B». Мне нужно выгрузить данные из учетной записи красного смещения в A в корзину S3 в B.

Я уже предоставил необходимую политику сегментов и политику ролей для выгрузки данных. Данные также успешно выгружаются. Теперь проблема в том, что владельцем файла, созданного в результате этой выгрузки, является учетная запись. A и файл должен использоваться пользователем B. При попытке получить доступ к этому объекту я получаю отказано в доступе. Как мне это решить?

PS: разрешения ListBucket и GetObject предоставлены политикой IAM красного смещения.

Ответы [ 2 ]

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

Это то, что сработало для меня - цепочка ролей IAM.

Например, предположим, что компания A хочет получить доступ к данным в корзине Amazon S3, принадлежащей компании B. Компания A создает сервисную роль AWS для Amazon Redshift с именем RoleA и присоединяет ее к своему кластеру. Компания B создает роль с именем RoleB, которая авторизована для доступа к данным в сегменте компании B. Чтобы получить доступ к данным в сегменте компании B, компания A запускает команду COPY, используя параметр iam_role, который связывает RoleA и RoleB. На время операции UNLOAD RoleA временно предполагает, что RoleB имеет доступ к корзине Amazon S3.

Подробнее здесь: https://docs.aws.amazon.com/redshift/latest/mgmt/authorizing-redshift-service.html#authorizing-redshift-service-chaining-roles

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

Вдохновляясь, я могу вспомнить четыре вещи, которые могут заблокировать доступ пользователя учетной записи B к объектам в корзине S3 в той же учетной записи.

  1. Политики IAM пользователя:

Есть ли у пользователя (или группы, членом которого он является) прикрепленная политика IAM, которая позволяет ему выводить / читать объекты из корзины AWS? Вы можете проверить это, перейдя в консоль IAM и изучив пользователя.

  1. Список контроля доступа ковша S3:

Разрешает ли ведущий ACL-список разрешения на чтение / чтение для учетной записи хоста? Это может быть контейнер, предоставляющий разрешения удаленной учетной записи, но не учетной записи хоста. Вы можете проверить это, перейдя в консоль S3, выбрав корзину, а затем щелкнув «Разрешения» в окне вставки.

  1. Политика сегмента корзины S3:

Политика ведра S3 явно запрещает кому-либо доступ к списку / чтению? Если это так, ваш пользователь может быть этим кем-то. Чистая политика в порядке. Проверьте это тем же методом, что и # 2.

  1. Разрешения для отдельных объектов:

Каждый объект S3 имеет настройки разрешений. Возможно, служба Redshift в учетной записи A не устанавливает разрешения, необходимые для предоставления учетной записи B списка / доступа для чтения.

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