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

Agu*_*ama 5 amazon-dynamodb amazon-iam

假设我正在使用共享的AWS帐户。我想用前缀“ x-team”设置表,例如:

  • x-team_customer_order
  • x-team_customer

另一个团队还拥有其他具有不同前缀命名方案的表。为了限制我们的应用范围,我们想要设置每个团队使用的不同凭据。

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

Ben*_*ser 4

对的,这是可能的。

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

{
    "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": "*"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

AWS DynamoDB 文档中此示例的底部非常简短地提到了这一点。

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