You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从EC2实例通过CLI连接DynamoDB需配置何种特定IAM角色?

嘿,我来帮你搞定这个问题!你已经知道用全权限能连,但肯定不想给EC2开这么大的权限对吧?下面就给你拆解连接DynamoDB CLI需要的具体IAM权限,不管是用IAM角色绑定EC2还是用aws configure配置密钥,都能按最小权限原则来设置~

一、推荐方式:给EC2绑定IAM角色(无需存密钥,更安全)

这种方式下,EC2实例会自动获取IAM角色的权限,不用在实例里存储Access Key,是AWS官方推荐的最佳实践。你只需要给这个IAM角色附加仅包含所需操作的权限策略,而不是全权限的AdministratorAccess。

按操作类型划分的核心权限

根据你要通过CLI执行的DynamoDB操作,对应需要的权限如下:

  • 仅查看/列出表:dynamodb:ListTables、dynamodb:DescribeTable
  • 读取数据(比如aws dynamodb scan、get-item):dynamodb:GetItem、dynamodb:Scan、dynamodb:Query
  • 写入/修改数据(比如put-item、update-item、delete-item):dynamodb:PutItem、dynamodb:UpdateItem、dynamodb:DeleteItem
  • 创建/删除表:dynamodb:CreateTable、dynamodb:DeleteTable

示例自定义权限策略

你可以在IAM控制台创建一个自定义策略,只包含你实际需要的权限,比如下面这个是允许对指定DynamoDB表进行读写操作的策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:GetItem",
                "dynamodb:PutItem",
                "dynamodb:Scan",
                "dynamodb:Query",
                "dynamodb:UpdateItem",
                "dynamodb:DeleteItem",
                "dynamodb:DescribeTable",
                "dynamodb:ListTables"
            ],
            "Resource": "arn:aws:dynamodb:你的AWS区域:你的AWS账号ID:table/你的表名"
        }
    ]
}

把上面的占位符(你的AWS区域、账号ID、表名)替换成实际信息,然后将这个策略附加到EC2实例绑定的IAM角色上,之后EC2里的AWS CLI就能自动获取权限,不用再运行aws configure。

二、备选方式:用aws configure配置Access Key

如果你更倾向于用Access Key认证,同样需要给对应的IAM用户分配上述最小权限策略:

  1. 在IAM控制台创建一个新用户,勾选“编程访问”选项
  2. 给这个用户附加你自定义的DynamoDB权限策略(参考上面的示例)
  3. 在EC2实例中运行aws configure,输入生成的Access Key ID、Secret Access Key,以及和DynamoDB表一致的区域

排查小技巧

如果配置后还是无法连接,可以运行aws dynamodb list-tables --debug查看调试日志:

  • 如果出现AccessDeniedException,说明权限不足,检查策略里的Action和Resource是否正确
  • 如果是区域不匹配的错误,确保CLI配置的区域和DynamoDB表所在区域一致

内容的提问来源于stack exchange,提问作者Aman Aggarwal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:21:24