Одновременный доступ к двум таблицам DynamodB, принадлежащим к различным учетным записям, с использованием предположительной роли не работает - PullRequest
0 голосов
/ 15 июня 2019

У меня есть приложение Java, работающее в ECS, в котором я хочу прочитать данные из таблицы в учетной записи 1 (source_table) и записать их в таблицу в учетной записи 2 (destination_table). Я создал двух клиентов DynamodB с разными поставщиками учетных данных - для клиента source_table я использую STSAssumeRoleSessionCredentialsProvider с набором ролей в учетной записи 1; для клиента назначения я использую DefaultAWSCredentialsProviderChain.

Предполагаемый бит роли работает, и я могу читать с использованием исходного клиента, но использование целевого клиента не работает - он все еще пытается использовать учетные данные предполагаемой роли при попытке записи в destination_table и завершается неудачно с неавторизованной ошибкой (предполагается -ролл не авторизован для выполнения Put Item).

Я пытался использовать EC2ContainerCredentialsProviderWrapper на целевом клиенте, но та же ошибка.

Должно ли это работать? Или учетные данные совместно используются под капотом, что делает невозможным одновременное выполнение двух разных AWSCredentialProvider, как это?

Я заметил этот ответ, который использует статические учетные данные и, очевидно, работает, так что я в растерянности, почему это не работает.

1 Ответ

0 голосов
/ 18 июня 2019

Я понял это с помощью службы поддержки AWS.Это была проблема с моей конфигурацией IAM для роли в учетной записи 2. Я был введен в заблуждение сообщением об ошибке, в котором говорилось, что «предполагается, что роль не авторизована для выполнения операции добавления элемента», когда фактически моя собственная роль учетной записи 2 не смогла сделать это..

...