2014-02-21 3 views
4

Я пытаюсь отфильтровать список имен таблиц в пользовательском интерфейсе администратора DynamoDB с использованием IAM.Фильтрация списка таблиц через IAM в интерфейсе администратора DynamoDB

Когда я использую эту политику он показывает все таблицы:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Sid": "XXXXXXX", 
     "Effect": "Allow", 
     "Action": [ 
     "dynamodb:DescribeTable", 
     "dynamodb:ListTables" 
     ], 
     "Resource": [ 
     "*" 
     ] 
    } 
    ] 
} 

Когда я использую эту политику он не показывает ничего (просто «Не авторизован» сообщение):

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Sid": "XXXXXXX", 
     "Effect": "Allow", 
     "Action": [ 
     "dynamodb:DescribeTable", 
     "dynamodb:ListTables" 
     ], 
     "Resource": [ 
     "us-east-1:XXXXXXXXXXX:table/table_to_show" 
     ] 
    } 
    ] 
} 

Кто-нибудь знает, если это возможное?

ответ

2

Похоже, что вам нужно изменить ARN таблицы Dynamo DB в этом формате.

"Ресурс": "ARN: AWS: dynamodb: нам-запад-2: 123456789012: таблица/Книги"

Using IAM to Control Access to DynamoDB Resources.

Еще один момент: Чтобы перечислить что-то в консоли администратора, вам потребуется больше разрешений, чем описание и список, поскольку список показывает атрибуты и т. Д. Попробуйте добавить все это (это будет эффективно прочитано в отдельной таблице).

  "dynamodb:ListTables", 
      "dynamodb:DescribeTable", 
      "dynamodb:GetItem", 
      "dynamodb:BatchGetItem", 
      "dynamodb:Query", 
      "dynamodb:Scan" 
+0

Спасибо, но ARN находятся в правильном формате - они отлично работают для всего остального. Я привел мои данные в примерах. – dwb

+0

Я добавляю дополнительную информацию в приведенный выше ответ - попробуйте. –

3

Есть две проблемы с вашей политикой.

Как указано в приведенном выше комментарий урна неправильно оно должно быть, начиная с arn:aws:dynamodb:*

Второй ListTables операции в dynamoDB не допускается доступ на уровне ресурсов Цитаты из AWS Documentation You can use resource-level ARNs in IAM policies for all DynamoDB actions, with the exception of ListTables. The ListTables action returns the table names owned by the current account making the request for the current region; it is the only DynamoDB action that does not support resource-level ARN policies. Так это ты попробуйте любую другую операцию, которую он пройдет, как DescribeTable

Решение этой проблемы заключается в том, что вы должны добавить политику только для ListTables с "Resource":["*"]

+0

Благодарим вас за ответ. Я пытался помешать пользователю увидеть все имена таблиц, поэтому, основываясь на этой цитате из документации, это не представляется возможным. – dwb