Как удалить пользователя из пула пользователей в NodeJS lambda от администратора - PullRequest
0 голосов
/ 04 июля 2018

Я столкнулся с проблемой, когда пользователь зарегистрировался, но не хочет подтверждать свою электронную почту. Решение состоит в том, чтобы удалить неподтвержденного пользователя из AWS Cognito.

Так как я не знаю его пароль, я пытаюсь написать функцию Lambda, которую я буду запускать через API Gateway. Эта лямбда должна удалить пользователя Cognito.

Я написал этот код, но он не работает.

var cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider({
    apiVersion: '2016-03-18',
});

var params = {
  UserPoolId: 'us-east-1_123456',
  Username: 'user@mail.com' // I want to remove this user
};


cognitoidentityserviceprovider.adminDeleteUser(params, function (err, data) {
    if (err) {
        callback(err, err.stack);
    } else {
        callback(data);
    }
});

Я получаю сообщение об ошибке:

пользователь не авторизован для выполнения ...

Из-за безопасности я не хочу устанавливать свои учетные данные администратора во внешней части, и я хочу сделать всю работу в этой лямбде ... Как это сделать?

Есть идеи? Какие-либо решения, чтобы предотвратить эту проблему?

1 Ответ

0 голосов
/ 04 июля 2018

Вы можете назначить роль лямбда-функции и выполнить вызов cognito api, не передавая ни одного аргумента библиотеке, которую вы используете для доступа к службам aws, таким образом поставщик учетных данных откатится к предполагаемой роли и получит роль выполнения лямбда-функции. идентичность.

Обычно роли - это способ авторизации, связанный с Amazon.

Кстати, это означает, что вам нужно создать роль iam, политику с разрешенными правильными действиями cognito и прикрепить ее к указанной роли.

...