如何授予对 DynamoDB 表的访问权限?

Old*_*zer 5 amazon-dynamodb amazon-iam

在 IAM 中,我尝试为用户创建以下策略(混淆 arn 中的帐户 ID):

{
 "Version": "2012-10-17",
 "Statement": [
    {
        "Sid": "VisualEditor0",
        "Effect": "Allow",
        "Action": "dynamodb:*",
        "Resource": "arn:aws:dynamodb:us-west-2:999999999999:table/busUsers"
    }
 ]
}
Run Code Online (Sandbox Code Playgroud)

然而,它导致:

此策略定义了一些不提供权限的操作、资源或条件。要授予访问权限,策略必须具有具有适用资源或条件的操作。有关详细信息,请选择显示剩余了解更多

Show remaining 显示:

一项或多项操作没有适用的资源。

我查找了Learn more链接,它说要将Resource元素中的 arn 替换为*. 我现在很困惑。什么*意思?我想授予对我的特定 DynamoDB 表的访问权限。我该如何指定?


编辑:我删除了所有 DyanamoDB 操作,只选择了一个GetItem,它是: 在此处输入图片说明

当我取消选择时GetItem,两条错误消息都会消失。当我选择Any 时,第一条错误消息消失了。当我选择Resource Any 时,第二条错误消息消失了。

F_S*_*O_K 4

这是因为您向表资源授予所有 dynamodb 操作的权限,但并非所有这些操作实际上都适用于表。

例如 dynamodb:DescribeStream 不适用于表,仅适用于流,但您无论如何都会授予对此资源的权限。

您可以安全地忽略此警告。

编辑:您可能没有意识到只需单击“保存策略”即可正常工作。

编辑:感谢您发布您的屏幕截图。这里没有错误,只有警告,在这种情况下最好称为提示。

当您手动输入资源的 ARN 时,AWS 似乎无法识别该资源的类型(即表)。如果您通过表 ARN 生成器添加资源,则不会出现任何警告。无论哪种情况,您最终都会得到相同的政策。