Политика IAM, разрешающая доступ к консоли DynamoDB для определенных таблиц

Можно ли создать политику AWS IAM, которая предоставляет доступ к консоли DynamoDB только для определенных таблиц? Я пытался:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt0000000001",
            "Action": [
                "dynamodb:DescribeTable",
                "dynamodb:ListTables",
                <other actions>
            ], 
            "Effect": "Allow",
            "Resource": [
                "arn:aws:dynamodb:<region>:<account>:table/FooTable",
                "arn:aws:dynamodb:<region>:<account>:table/BarTable"
            ]
        }
    ]
}

но для пользователя, к которому прикреплена эта политика, в списке таблиц DynamoDB указано "Not Authorized" (как это происходит, когда никакая политика не прикреплена).

Установка "Ресурса" в "*" и добавление нового оператора, как показано ниже, позволяет пользователю выполнять <другие действия> для FooTable и BarTable, но они также могут видеть все другие таблицы в списке таблиц.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt0000000001",
            "Action": [
                <other actions>
            ], 
            "Effect": "Allow",
            "Resource": [
                "arn:aws:dynamodb:<region>:<account>:table/FooTable",
                "arn:aws:dynamodb:<region>:<account>:table/BarTable"
            ]
        },
        {
            "Sid": "Stmt0000000002",
            "Action": [
                "dynamodb:DescribeTable",
                "dynamodb:ListTables"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}

2 ответа

Решение

Извините за плохие новости, но Консоль управления AWS требует обоих DescribeTable а также ListTables разрешения против всего DynamoDB для правильной работы.

Тем не менее, есть небольшой обходной путь... Вы можете дать пользователям консоли URL-адрес, который перенаправляет их непосредственно к таблице и отлично работает для просмотра и добавления элементов и т. Д.

Просто скопируйте URL-адрес пользователя, который имеет правильные разрешения, например:

https://REGION.console.aws.amazon.com/dynamodb/home?region=REGION#explore:name=TABLE-NAME

Я обнаружил, что помимо DynamoDB пользователям необходимо иметь групповые разрешения для CloudWatch и SNS. Смотрите здесь: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/using-identity-based-policies.html (тема: "Пример 5. Настройка политик разрешений для отдельных сред тестирования и производства").

Вы можете добавить предопределенную политику AmazonDynamoDBReadOnlyAccess к вашей.

Другие вопросы по тегам