Кросс-аккаунт Amazon Athena - PullRequest
1 голос
/ 19 марта 2019

Можно ли создать базу данных и таблицу в службе Athena в моей учетной записи для доступа к данным S3 в другой учетной записи?

Я перешел по ссылке ниже и предполагаю, что в соответствии с этой документацией Amazon Athena и корзина S3 должны находиться в одной учетной записи, а доступ предоставляется пользователю в другой учетной записи.

https://console.aws.amazon.com/athena/home?force&region=us-east-1#query

Ответы [ 2 ]

1 голос
/ 23 марта 2019

В этом ответе содержится дополнительная информация:

  • Лямбда-функция в Account-A должна иметь возможность создавать таблицу в Amazon Athena в Account-B

Я не проверял это, но я думаю, что вам потребуется:

  • Role-A в Account-A для функции Lambda, которая:
    • Разрешения AssumeRole на Role-B
  • Role-B в Account-B, что:
    • Разрешает доступ к Amazon Athena и исходному хранилищу в Amazon S3
    • Trusts Role-A

Функция Lambda будет работать с Role-A.Затем он будет использовать учетные данные от Role-A для вызова AssumeRole на Role-B.Это вернет новый набор учетных данных, которые можно использовать для вызова Amazon Athena в Account-B.

1 голос
/ 19 марта 2019

Из Политики контроля доступа - Amazon Athena :

Для выполнения запросов в Афине у вас должны быть соответствующие разрешения для:

  • Действия Афины.
  • Места Amazon S3, где хранятся базовые данные, которые вы собираетесь запросить в Афине.
  • ...

ИтакПохоже, что Пользователь IAM , выполняющий запрос Athena, требует доступа к местоположению Amazon S3.

Это можно сделать, добавив Политику корзины в корзину S3 в другой учетной записи.который разрешает пользователю IAM доступ к корзине.

Чтобы объяснить лучше:

  • Account-A с IAM-User-A и AWS Athena
  • Account-B с Bucket-B, у которого есть Bucket Policy, предоставляющая доступ к IAM-User-A
...