AWS SDK для JS в браузере с CognitoUser вместо учетных данных IAM?
У меня есть браузерное приложение, которое взаимодействует с S3. Так как это был в основном собственный инструмент, после обработки аутентификации в API он напрямую получил ID и секрет для очень ограниченного пользователя IAM, который затем использовался для настройки AWS SDK в браузере.
Сейчас я пытаюсь изменить это приложение на использование Cognito для аутентификации, чтобы внешние пользователи могли получить к нему доступ без ущерба для нашей безопасности.
Я использовал AWS Amplify только для обработки части аутентификации, и теперь я пытаюсь выяснить, есть ли способ использовать учетные данные, полученные от Cognito, для настройки AWS JavaScript SDK и репликации той же функциональности с этого момента. (То, как в настоящее время Amplify обрабатывает взаимодействие с S3, не покрывает все потребности приложения)
Есть ли способ сделать это? Я нахожу документацию SDK чрезвычайно запутанной и не могу определить, можно ли вообще что-то сделать.
Кроме того, если есть способ использовать только JS SDK (без Amplify) для входа в систему пользователя через Cognito, это также будет предпочтительным для меня, но это вторичная проблема.
1 ответ
Да, вы можете легко сделать это с помощью Amplify, и я рекомендую этот подход.
Вот пример из документации по использованию модуля Route53 из AWS JS SDK, но вы, конечно, можете использовать любой из модулей AWS.
Через https://aws-amplify.github.io/docs/js/authentication
import Route53 from 'aws-sdk/clients/route53';
Auth.currentCredentials()
.then(credentials => {
const route53 = new Route53({
apiVersion: '2013-04-01',
credentials: Auth.essentialCredentials(credentials)
});
// more code working with route53 object
// route53.changeResourceRecordSets();
})