У меня есть API-интерфейс AWS AppSync, который использует роли IAM для аутентификации. Я использую клиент Amplify GraphQL для подключения к серверу AppSync. Изображение ниже описывает шаги, которые необходимо выполнить для получения учетных данных IAM, которые, как я предполагаю, способен выполнить Amplify. Однако я не могу найти документацию по настройке рабочего примера.
Обратите внимание, что я использую пул пользователей Cognito напрямую для аутентификации, а не внешний поставщик, такой как Google или Facebook.
Пока что я могу аутентифицировать пользователя и получить токен JWT (шаг 1):
const Amplify = require('aws-amplify').default
const { Auth } = require('aws-amplify')
Amplify.configure({
Auth: {
region: process.env.AWS_REGION,
userPoolId: process.env.COGNITO_USERPOOL_ID,
userPoolWebClientId: process.env.COGNITO_WEBCLIENT_ID,
},
})
Auth.signin(username, password)
.then((user) => {
const token = user.idToken.jwtToken
// I've got the token - what next?
})
Как я могу запросить учетные данные IAM из пула удостоверений (шаг 2) и использовать их для доступа к API AppSync (шаг 3) с помощью Amplify?
Если Amplify не может получить учетные данные сама, я могу использовать AWS.CognitoIdentityCredentials
для запроса их с помощью AWS SDK, однако я не вижу способа передачи их в Amplify для проверки подлинности запросов API (см. на эту проблему я создал для более подробной информации).