Nano Hash - криптовалюты, майнинг, программирование

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

Вариант использования:

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

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

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

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

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

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


Ответы:


1

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

26.05.2020
  • что такое сервисные объекты? 27.05.2020
  • Какой язык программирования вы используете? 27.05.2020
  • Javascript (Nodejs) 27.05.2020
  • Добавил пример к моему ответу. 27.05.2020
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..