У меня проблема с доступом к новой таблице DynamoDB через успешно аутентифицированного пользователя Cognito.
При попытке сканирования таблицы (с использованием AWS JavaScript SDK) я получаю следующее AccessDeniedException:
Unable to scan. Error: {
"message": "User: arn:aws:sts::MY-ACCOUNT-NUM:assumed-role/Cognito_VODStreamTestAuth_Role/CognitoIdentityCredentials
is not authorized to perform: dynamodb:Scan on resource: arn:aws:dynamodb:us-east-1:MY-ACCOUNT-NUM:table/VideoCatalog",
"code": "AccessDeniedException",
"time": "2019-01-27T02:25:27.686Z",
"requestId": "blahblah",
"statusCode": 400,
"retryable": false,
"retryDelay": 18.559011800834146
}
Аутентифицированная политика пользователя Cognito была расширена следующим разделом DynamoDB:
{
"Sid": "AllowedCatalogActions",
"Effect": "Allow",
"Action": [
"dynamodb:BatchGetItem",
"dynamodb:GetItem",
"dynamodb:Scan",
"dynamodb:Query",
"dynamodb:UpdateItem"
],
"Resource": [
"arn:aws:dynamodb:us-east-2:MY-ACCOUNT-NUM:table/VideoCatalog"
]
}
Разве этого недостаточно, чтобы предоставить моим аутентифицированным пользователям Cognito доступ к любой таблице DynamoDB, которую я мог бы создать,пока я указываю ресурс таблицы, как я делаю выше?Или мне также нужно добавить "Детальный контроль доступа" на вкладке "Контроль доступа" таблицы?
Могу сказать, что я создал VideoCatalog DynamoDBтаблица под моей ролью администратора IAM без полномочий root (представлена выше как MY-ACCOUNT-NUM).Это проблема?(До того, как перейти к таблице DynamoDB, я использовал файл JSON на S3 в качестве каталога видео.)
IAM confused!