#aws-sdk-js
Вопрос:
У меня есть функциональный регистратор React, который использует putLogEvents из AWS SDK v3 для записи журналов в CloudWatch с использованием не прошедших проверку учетных данных. Мне интересно, возможно ли (или это имеет значение) использовать аутентификацию Cognito для размещения этих событий? Я думал, что видел, как это сделать в некоторых документах PDF, и написал для этого некоторый код, но не уверен, работает он или нет — по крайней мере, он не выдает никаких ошибок. Хотелось бы знать, есть ли у кого — нибудь какая-нибудь мудрость, связанная с этим-в первую очередь: А) Имеет ли это значение? Б) Как я могу проверить, отправляются ли мои журналы с использованием аутентифицированных учетных данных? Ба) Если они не отправляются, и это имеет значение — каков правильный шаблон для выполнения безопасного входа в систему в среде React?
В настоящее время у меня есть функция, которая подготавливает событие журнала (и создает поток журналов для сеанса пользователя, если такового не существует) и сначала создает клиента, используя пул не прошедших проверку подлинности, например:
const client = new CloudWatchLogsClient({
region: "xx-region-#",
credentials: fromCognitoIdentityPool({
client: new CognitoIdentityClient({ region: "xx-region-#" }),
identityPoolId: config.Auth.identityPoolId,
}),
});
Затем он использует сохраненный токен аутентификации для обновления учетных данных следующим образом:
const {
accessToken: { jwtToken, payload },
} = await Auth.currentSession();
let loginData = {
[COGNITO_ID]: jwtToken,
};
const creds = fromCognitoIdentityPool({
client: new CognitoIdentityClient({ region: "xx-region-#" }),
identityPoolId: config.Auth.identityPoolId,
logins: {
loginData
},
})
client.config.credentials = creds;
Есть у кого-нибудь мысли? Спасибо!