Копировать данные из DynamoDB в Redshift через две разные учетные записи AWS?

По независящим от меня причинам у меня есть следующее:

  • Стол CustomerPhoneNumber в DynamoDB под одной учетной записью AWS.
  • Кластер Redshift под другой учетной записью AWS (тот же географический регион; ЕС)

Есть ли способ запустить COPY Команда для перемещения данных из Динамо в Redshift через учетные записи?

Как правило, если бы они были под одной учетной записью, это было бы сделано через IAM Роль довольно легко

copy public.my_table (col1, col2, col3) from 'dynamodb://CustomerPhoneNumber' iam_role 'arn:aws:iam::XXXXXXXXXXX:role/RandomRoleName' readratio 40;

Но, очевидно, это не работает в моем случае.

Есть идеи?

1 ответ

Ответ Джона выше больше не применим; Вот как вы можете это сделать -

  1. Учетная запись AWS с требуемым ресурсом, таким как DynamoDb, в этом случае (доверяющая учетная запись) должна иметь учетную запись, требующую доступа (доверенная учетная запись AWS)... как доверенная в своей роли только для чтения Dynamo db: arn: aws: iam::: role /
  2. Создайте политику, которая выполняет sts:AssumeRole (выше доверяющей роли учетной записи arn как ресурса),
  3. прикрепите эту политику к роли redshift-access-role(у которой есть все привилегии, необходимые для запуска команды копирования).
  4. Запустите команду как:

    iam_role 'arn:aws:iam::<trusTEDawsAccountId>:role/redshift_access_role,arn:aws:iam::<trusTINGawsAccountId>:role/<dynamodbreadrole>' 
    readratio 50
    

Подробности на: https://docs.aws.amazon.com/redshift/latest/mgmt/authorizing-redshift-service.html

Вы можете использовать CREDENTIALS и указать ключ доступа и секретный ключ для другой учетной записи. Добавьте следующее к вашему заявлению COPY:

credentials 'aws_access_key_id=AKIAXXXXX;aws_secret_access_key=yyyyyy'

Вы не можете использовать роли между учетными записями с Redshift. Чтобы процитировать документацию Amazon:

Роль IAM может быть связана с кластером Amazon Redshift, только если и роль IAM, и кластер принадлежат одной учетной записи AWS.

Авторизация операций COPY и UNLOAD с использованием ролей IAM

Очевидно , что stackru требует форматирования, код:

copy redshift_tbl from 'dynamodb://dynamotbl'
iam_role 'arn:aws:iam::<TRUSTEDacAWSid>:role/redshift_access_role,arn:aws:iam::<trusTINGacAWSid>:role/<dynamodb-role-in-trustingac>' 
readratio 50

* Примечание: в ролях нет пробелов между запятыми.

Другие вопросы по тегам