У меня есть веб-приложение, созданное с AWS Amplify и Cognito, используемые для аутентификации / авторизации. Cognito User Pools является поставщиком удостоверений.
Пользователи группируются в группы Cognito User Pools в зависимости от того, какие разрешения они должны иметь.
Я хочу, чтобы некоторые пользователи входили в несколько групп (например, администраторы), у которых должна быть сумма разрешений этих групп. Но так как пользователь может взять на себя только одну роль, мне нужно иметь возможность менять роли в приложении.
Я попытался выполнить это с помощью getCredentialsForIdentity
:
const cognito_identity = new AWS.CognitoIdentity({ apiVersion: '2014-06-30', region: 'eu-central-1' });
var params = {
IdentityId: 'some_identity',
CustomRoleArn: 'arn:aws:iam::<account_id>:role/editors',
};
cognito_identity.getCredentialsForIdentity(params, function(err, data) {
if (err) console.log(err, err.stack);
else console.log(data);
});
При вызове вышеуказанного кода происходит сбой с NotAuthorizedException: доступ к идентификатору 'some_identity' запрещен.
Что мне нужно сделать, чтобы это работало?