Копировать данные из 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 ответ
Ответ Джона выше больше не применим; Вот как вы можете это сделать -
- Учетная запись AWS с требуемым ресурсом, таким как DynamoDb, в этом случае (доверяющая учетная запись) должна иметь учетную запись, требующую доступа (доверенная учетная запись AWS)... как доверенная в своей роли только для чтения Dynamo db: arn: aws: iam::: role /
- Создайте политику, которая выполняет sts:AssumeRole (выше доверяющей роли учетной записи arn как ресурса),
- прикрепите эту политику к роли redshift-access-role(у которой есть все привилегии, необходимые для запуска команды копирования).
Запустите команду как:
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
* Примечание: в ролях нет пробелов между запятыми.