EDIT:
Я обновил начальный ключ с userId до sub, который согласно документации AWS должен совпадать с идентификатором userID зарегистрированного пользователя, т. Е. ${cognito-identity.amazonaws.com:sub}
, и он все еще не работает
У меня есть таблица DynamoDB, настроенная через MobileHub, и я был в состоянии использовать ее до сегодняшнего дня, пока я не удалил свой Cognito Pool и создал новый.Таблица, о которой идет речь, - HighScore.Таблица UserDetails не затронута
Я могу аутентифицироваться и получать ресурсы, требующие доступа "auth", но по какой-то причине доступ запрещен при попытке PutItem.
Ошибка:
Ошибка домена = com.amazonaws.AWSServiceErrorDomain Code = 6 "(null)" UserInfo = {__ type = com.amazon.coral.service # AccessDeniedException, сообщение = пользователь: arn: aws: sts ::123456789012: предполагаемая роль / appName_auth_MOBILEHUB_AppId / CognitoIdentityCredentials не авторизована для выполнения: dynamicodb: UpdateItem на ресурсе: arn: aws: Dynamodb: us-west-1: 123456789012: таблица / appName-mobilehub-appId 1013 * 1014 High High}}*
Вот моя политика IAM:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"dynamodb:BatchGetItem",
"dynamodb:DescribeTable",
"dynamodb:GetItem",
"dynamodb:ListTables",
"dynamodb:Query",
"dynamodb:Scan"
],
"Resource": [
"arn:aws:dynamodb:us-west-1:123456789012:table/appName-mobilehub-appId-HighScore",
"arn:aws:dynamodb:us-west-1:123456789012:table/appName-mobilehub-appId-UserDetails"
]
},
{
"Effect": "Allow",
"Action": [
"dynamodb:BatchWriteItem",
"dynamodb:DeleteItem",
"dynamodb:PutItem",
"dynamodb:UpdateItem"
],
"Resource": [
"arn:aws:dynamodb:us-west-1:123456789012:table/appName-mobilehub-appId-HighScore",
"arn:aws:dynamodb:us-west-1:123456789012:table/appName-mobilehub-appId-UserDetails"
],
"Condition": {
"ForAllValues:StringEquals": {
"dynamodb:LeadingKeys": [
"${cognito-identity.amazonaws.com:sub}"
]
}
}
}
]
}