Как создать / получить доступ к нескольким таблицам Dynamo DB в разных AWS учетных записях из службы EC2? - PullRequest
2 голосов
/ 26 мая 2020

Пример использования:

  1. Пользователь хочет, чтобы таблица Dynamo DB была создана в его учетной записи AWS с помощью моей службы. Это необязательно, зависит от пользователя, мы также должны создать таблицу db Dynamo в нашей учетной записи AWS.

  2. Теперь пользователь будет помещать данные и все операции, используя мои в таблице Dynamo DB, созданной в его / ее учетной записи AWS.

Что я пробовал:

Пользователь может создать роль IAM, и мы можем переключить роль, а затем получить доступ к сервису динамо-базы данных и выполнить все операции, но, выполняя в EC2, можем ли мы взять на себя несколько ролей одновременно? как будет иметь несколько пользователей. Возможно ли это для нескольких пользователей, если да, то как?

В этом случае пользователю необходимо создать роль, а затем нам нужно принять ее, чтобы уменьшить количество пользователей, возможно ли, что мы создадим пользователя IAM в наша учетная запись AWS, а затем «пользователь» просто нужно будет внести в белый список нашего пользователя IAM, и тогда нам будет хорошо go, может быть, мы можем использовать для этого ключ доступа и секретный ключ.

Возможно ли это Каковы возможные решения для достижения того, к чему мы стремимся?

1 Ответ

4 голосов
/ 26 мая 2020

Каждый пользователь должен создать роль 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 для разных учетных записей для доступа к таблицам пользователей.

...