首页 > 解决方案 > “aws dynamodb list-tables”不适用于 ec2 实例

问题描述

我创建了一个连接到 DynamoDB 的 node.js 应用程序。在本地一切正常现在我正在尝试在 AWS 服务器上进行设置。

  1. 首先,我从 AWS DynamoDB 控制台创建了 DynamoDB 表。它工作正常。
  2. 我从 IAM 管理控制台 > 角色创建了一个新角色以访问 DynamoDB。并将该角色附加到 EC2 实例。但是,当我启动任何 aws dynamodb cli 命令时,我在提及该区域时都会出错。
  3. 所以我去了 IAM 管理控制台 > 用户,并为我的管理员类型用户创建了一个访问密钥。
  4. ec2-user现在,我使用aws configure之前生成的访问密钥登录到 EC2 CLI。
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。它没有输出,没有错误。

标签: amazon-web-servicesamazon-ec2amazon-dynamodb

解决方案


正如我所评论的,主要问题是附加安全组的出站规则。这里有必要做的事情

  1. 将安全组出站规则设置为 HTTPS 在此处输入图像描述
  2. 设置凭据
    1. 从 IAM 管理控制台 > 用户创建访问密钥。
    2. SSH 到 EC2 实例。
    3. aws configure使用命令或直接修改~/.aws/credentials文件配置 EC2 实例的凭证。
  3. 附加角色
    1. 从 IAM 管理控制台 > 角色创建角色。选择对 AWS 服务执行操作所需的角色。例如AmazonDynamoDBFullAccess
    2. 打开 VPC 控制台并选择 EC2 实例。
    3. 从操作菜单附加角色 在此处输入图像描述

创建 VPC 端点虽然是可选的,但很好。如果您UnauthorizedOperation在创建终端节点时遇到错误,AmazonEC2FullAccess请从 IAM 控制台为用户分配权限。如果您不需要它,请稍后将其删除。

要从您的应用程序中使用 AWS 服务,请从此列表中找到相关的终端节点。


推荐阅读