РЕДАКТИРОВАТЬ:
Я обновил ведущий ключ с userId на sub, который, согласно документации AWS, должен соответствовать идентификатору пользователя, вошедшему в систему, т.е. ${cognito-identity.amazonaws.com:sub}
, и он по-прежнему не работает
У меня есть настройка таблицы DynamoDB через MobileHub, и я мог размещать на ней элементы до сегодняшнего дня, когда я удалил свой пул Cognito и создал новый. Речь идет о таблице HighScore. Таблица UserDetails не изменяется
Я могу аутентифицироваться и получать ресурсы, требующие доступа "auth", но по какой-то причине доступ запрещен при попытке PutItem.
Ошибка:
Домен ошибки = com.amazonaws.AWSServiceErrorDomain Code = 6 "(null)" UserInfo = {__ type = com.amazon.coral.service # AccessDeniedException, Message = User: arn: aws: sts :: 123456789012: Предполагаемая роль / appName_auth_MOBILEHUB_AppId CognitoIdentityCredentials не авторизован для выполнения: Dynamodb: UpdateItem на ресурсе: arn: aws: Dynamodb: us-west-1: 123456789012: table / appName-mobilehub-appId-HighScore}
Вот моя политика 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}"
]
}
}
}
]
}