如何在AWS Api网关的Aws Cognito中实施RBAC。
这是我在AWS Api网关中的示例授权
此示例是我的lambda函数,用于通过nodejs与AWS Cognito连接。
var mysql = require("mysql");
const uuidv4 = require("uuid/v4");
exports.endSession = (event, context, callback) => {
context.callbackWaitsForEmptyEventLoop = false;
const updateSession = () =>
new Promise((resolve, reject) => {
pool.query(
`UPDATE sessions SET end_time = CURRENT_TIMESTAMP() WHERE sessions.uuid = '${
event.uuid
}'`,
(err, res, field) => {
if (err) {
reject(err);
}
resolve(res);
}
);
});
updateSession()
.then(() => {
const resp = {
status: "success",
data: {
message: "Successfully end session"
}
};
callback(null, resp);
})
.catch(err => {
callback(null, err);
});
};
答案 0 :(得分:0)
一种方法可能是在与您的数据库进行验证之后,在Api Gateway上应用自定义授权者功能,以过滤掉不必要的流量。
这是自定义授权者功能的工作方式
以下是自定义授权者的链接 https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html