Amazon web services &引用;aws dynamodb列表表“;在ec2实例上不工作

Amazon web services &引用;aws dynamodb列表表“;在ec2实例上不工作,amazon-web-services,amazon-ec2,amazon-dynamodb,Amazon Web Services,Amazon Ec2,Amazon Dynamodb,我创建了一个node.js应用程序,它连接到DynamoDB。本地一切都很好,现在我正在尝试在AWS服务器上进行设置 首先,我从AWS DynamoDB控制台创建了DynamoDB表。它工作得很好 我已经从IAM管理控制台>角色创建了一个新角色来访问DynamoDB。并将该角色附加到EC2实例。 但是,当我启动任何aws dynamodb cli命令时,提到该区域会给我带来错误 因此,我转到IAM管理控制台>用户,并为我的管理员类型用户创建了一个访问密钥 现在,我使用先前生成的访问密钥使用EC2

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

  • 首先,我从AWS DynamoDB控制台创建了DynamoDB表。它工作得很好
  • 我已经从IAM管理控制台>角色创建了一个新角色来访问DynamoDB。并将该角色附加到EC2实例。 但是,当我启动任何aws dynamodb cli命令时,提到该区域会给我带来错误
  • 因此,我转到IAM管理控制台>用户,并为我的管理员类型用户创建了一个访问密钥
  • 现在,我使用先前生成的访问密钥使用
    EC2 user
    aws configure
    登录到EC2 CLI
  • AWS访问密钥ID[无]:访问密钥 AWS机密访问密钥[无]:机密 默认区域名称[无]:us-east-1 默认输出格式[无]:json
  • 但是当我使用下面的命令时,aws dynamodb列表表。它没有输出,没有错误

  • 听起来,由于您配置VPC的方式,您在连接DynamoDB时遇到了问题

    有一些选项,但如果您希望将VPC与internet隔离,则可以为DynamoDB启用VPC端点。这样,您就可以从VPC内访问DynamoDB,而无需通过公共互联网进行连接

    这里有一个关于如何做到这一点的分步指南:

    基本上,它包括以下步骤:

  • 您必须获取EC2实例所在VPC的VPC id
  • 为DynamoDB创建VPC端点,指定VPC id和区域DynamoDB服务名称:
  • aws ec2创建vpc端点——服务名称com.amazonaws..dynamodb——vpc id
    
    正如我所评论的,主要问题是附加安全组的出站规则。以下是需要做的事情

  • 将安全组出站规则设置为HTTPS
  • 设置凭据
  • 从IAM管理控制台>用户创建访问密钥
  • SSH到EC2实例
  • 使用
    aws Configure
    命令配置EC2实例的凭据,或直接修改
    ~/.aws/credentials
    文件
  • 附加角色
  • 从IAM管理控制台>角色创建角色。选择在AWS服务上执行操作所需的角色。例如
    AmazondynamodFullAccess
  • 打开VPC控制台,选择EC2实例
  • 从“操作”菜单附加角色
  • 这是很好的,尽管是可选的。如果在创建端点时遇到
    未授权操作
    错误,请从IAM控制台向用户分配
    AmazonEC2FullAccess
    权限。如果不需要,请稍后将其删除


    要从应用程序中使用AWS服务,请从中查找相关端点。

    您能否详细说明一下这些步骤。请检查您所在的地区。此外,请不要将管理员访问密钥放在您的实例上。改为将IAM角色附加到实例,并为其提供所需的最低权限。仅生成AWS密钥是不够的。或者使用搜索引擎查找类似“逐步配置dynamodb ec2”的内容@Bocks如何立即删除访问密钥?OP创建的安全组不允许任何出站连接。为DynamoDB创建VPC端点不会解决此问题。
    aws ec2 create-vpc-endpoint --service-name com.amazonaws.<region>.dynamodb --vpc-id <yourvpcid>