Каждый пользователь должен создать роль IAM для нескольких учетных записей в своей учетной записи AWS, которую может принять на себя роль IAM в вашей учетной записи. Вам нужно будет поделиться подробностями с каждым пользователем, чтобы они могли правильно настроить эту роль IAM, и им нужно будет поделиться с вами ARN роли IAM. Вы можете помочь им, предварительно создав образец политики IAM с правильными разрешениями и задокументируя эту политику для них, чтобы они могли скопировать / вставить ее в новую политику в своей учетной записи. Вам также необходимо согласовать имя общей таблицы DynamoDB (возможно, лучше всего сделать одно и то же имя в каждой учетной записи).
Запустите свой экземпляр EC2 с вашей ролью IAM (которая дает доступ к вашей главной таблице DynamoDB , и имеет разрешение принимать роли в учетных записях пользователей). При необходимости ваше приложение может взять на себя соответствующую роль в учетной записи пользователя и, используя этот второй набор учетных данных (STS), создать новый объект службы с помощью AWS SDK по вашему выбору. Итак, теперь у вас есть 1 + N сервисных объектов: 1 для вашей основной учетной записи и N для N учетных записей пользователей, с которыми вы пытаетесь работать.
Вы используете Node.js, в котором служба DynamoDB объект построен примерно так:
const options = { region: abc, credentials: xyz };
const dynamodb = new AWS.DynamoDB(options);
Не используйте для этого пользователей IAM - вместо этого используйте роли. Не записывайте файлы конфигурации с учетными данными - используйте профиль экземпляра для вашего экземпляра EC2 и используйте предполагаемые роли IAM для разных учетных записей для доступа к таблицам пользователей.