"Список таблиц aws DynamoDB" не работает на экземпляре ec2 - PullRequest
2 голосов
/ 13 марта 2019

Я создал приложение node.js, которое подключается к DynamoDB. Все отлично работает локально Теперь я пытаюсь настроить на серверах AWS.

  1. Сначала я создал таблицы DynamoDB из консоли AWS DynamoDB. Работает нормально.
  2. Я создал новую роль из консоли управления IAM> Роли для доступа к DynamoDB. И прикрепил эту роль к экземпляру EC2. Но когда я запускаю любую команду aws dynamicodb cli, мне было ошибочно упоминать регион.
  3. Итак, я зашел в консоль управления IAM> Пользователи и создал ключ доступа для моего пользователя с правами администратора.
  4. Теперь я вхожу в EC2 CLI, используя ec2-user и aws configure с ранее сгенерированным ключом доступа.
AWS Access Key ID [None]: ACCESS KEY
AWS Secret Access Key [None]: SECRET
Default region name [None]: us-east-1
Default output format [None]: json
  1. Но когда я использую следующую команду aws dynamodb list-tables. Это не дает никакого вывода, никакой ошибки.

Ответы [ 2 ]

0 голосов
/ 14 марта 2019

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

  1. Установить исходящее правило группы безопасности HTTPS enter image description here
  2. Учетные данные установки
    1. Создать ключ доступаиз консоли управления IAM> Пользователи.
    2. SSH к экземпляру EC2.
    3. Настройте учетные данные для экземпляра EC2 с помощью команды aws configure или напрямую измените файл ~/.aws/credentials.
  3. Attach Role
    1. Создание роли из управления IAMконсоль> Роли.Выберите роль, которая необходима для выполнения операции в сервисе AWS.Например, AmazonDynamoDBFullAccess
    2. Откройте консоль VPC и выберите экземпляр EC2.
    3. Присоедините роль из меню «Действия» enter image description here

Хорошо, хотя и необязательно, создавать конечную точку VPC .Если вы столкнулись с ошибкой UnauthorizedOperation при создании конечной точки, назначьте пользователю AmazonEC2FullAccess разрешение с консоли IAM.Удалите его позже, если он вам не нужен.

Чтобы использовать сервис AWS из своего приложения, найдите соответствующую конечную точку из этого списка .

0 голосов
/ 13 марта 2019

Похоже, у вас проблемы с подключением к DynamoDB из-за того, как вы настроили свой VPC.

Есть несколько вариантов, но если вы предпочитаете сохранять свой VPC изолированным от Интернета, тогда вы можете включить конечные точки VPC для DynamoDB. Таким образом, вы можете получить доступ к DynamoDB из своего VPC, не подключаясь к общедоступному Интернету.

Здесь есть пошаговое руководство, как это сделать: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/vpc-endpoints-dynamodb.html

По сути, он включает в себя следующие шаги:

  1. вы должны получить идентификатор VPC для VPC, где находится ваш экземпляр EC2
  2. создать конечную точку VPC для DynamoDB, указав идентификатор VPC и имя региональной службы DynamodB:
aws ec2 create-vpc-endpoint --service-name com.amazonaws.<region>.dynamodb --vpc-id <yourvpcid>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...