Я нахожусь в конце своей веревки с этой проблемой. Я пытался аутентифицировать пользователя, зарегистрированного в Facebook, из Firebase, поэтому я могу разрешить загрузку изображений в ведро S3. Я залила документацию, образцы кодов, записи в блоге и т.д. Но я получаю следующее сообщение об ошибке:AWS Cognito не аутентифицируется с использованием Federated Identity
Error: Not authorized to perform sts:AssumeRoleWithWebIdentity
Это документация Я последовал без успеха: External Identity Providers » Facebook
Я также прочитать эту запись несколько раз Understanding Amazon Cognito Authentication и эта цитата, кажется, что происходит:
If you see this, double check that you are using an appropriate role for your identity pool and authentication type.
Я понимаю, что это говорит, но я не могу найти решение. Я не хочу хранить пользователей, я просто хочу пройти аутентификацию и получить временные учетные данные. Вот мои файлы кода, роли и политики.
JavaScript
AWS.config.update({
region: bucketRegion,
credentials: new AWS.CognitoIdentityCredentials({
IdentityPoolId: IdentityPoolId,
Logins: {
'graph.facebook.com': 'my-valid-auth-token-from-fb-after-login'
}
})
});
AWS.config.credentials.get(function(err) {
// error here
}
идентифицированные IAM политики Роль - Инлайн
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "myuserBucketActions",
"Action": [
"s3:GetBucketLocation",
"s3:ListBucketMultipartUploads"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::bucket-name"
},
{
"Sid": "myuserListBucket",
"Action": [
"s3:ListBucket"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::bucket-name",
"Condition": {
"StringLike": {
"s3:prefix": "folder-in-bucket/*"
}
}
},
{
"Sid": "myuserObjectActions",
"Action": [
"s3:AbortMultipartUpload",
"s3:GetObject",
"s3:PutObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::bucket-name/folder-in-bucket/*"
}
]
}
доверительных отношений для политики IAM Роль
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Federated": "graph.facebook.com"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"graph.facebook.com:appId": "FACEBOOK_APP_ID"
}
}
}
]
}
У меня есть правильный идентификатор приложения FB в доверительных отношениях и у поставщиков проверки подлинности в моем пуле. У меня также есть указанная выше роль auth, выбранная в разделе «Проверенная роль» в моем пуле. Я также не допускаю неавторизованных идентификаторов.
Я честно не знаю, что происходит не так. В этот момент я бросаю спагетти на стену, чтобы посмотреть, какие палки.
Быстрый вопрос: если я не могу заставить это работать и идти с не прошедшими проверку пользователями, а затем переключиться на аутентификацию, каковы потенциальные последствия?
Спасибо за любую помощь, которую вы можете мне дать!