是否可以将 dynamoDb 权限范围设置为仅具有某些前缀的 table?

Is it possible to setup dynamoDb permission scope to only table with some prefix?

假设我正在使用共享 aws 帐户。我想设置我的 table 前缀为 "x-team",例如:

另一个团队也有其他 table 具有不同的前缀命名方案。为了限制我们的应用范围,我们希望设置每个团队使用的不同凭证。

在此文档 http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ddb-api-permissions-ref.html 中,他们使用通配符 *,但没有说明可以将通配符用于 table 的前缀名称方案。

是的,这是可能的。

此策略将允许用户创建、读取、更新和删除以其用户名和下划线命名的表:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllAPIActionsOnUserSpecificTable",
            "Effect": "Allow",
            "Action": [
                "dynamodb:*"
            ],
            "Resource": "arn:aws:dynamodb:us-west-2:494057818753:table/${aws:username}_*"
        },
        {
            "Sid": "AdditionalPrivileges",
            "Effect": "Allow",
            "Action": [
                "dynamodb:ListTables",
                "dynamodb:DescribeTable"
            ],
            "Resource": "*"
        }
    ]
}

这在 this example in the AWS DynamoDB documentation 的底部非常简短地提到了。

显然,如果您想使用与用户名不同的前缀,您可以这样做,您只需为每个要支持的前缀制定单独的策略。