在 AWS Transfer Family 中,身份验证是由 AWS Identity and Access Management (IAM) 所管理的。它不像其他 AWS 服务那样,在身份验证时自动调用 AWS Lambda 函数。但是,可以使用 AWS Lambda 来对 AWS Transfer Family 进行自定义身份验证。
以下是使用 AWS Lambda 进行身份验证的示例代码:
1.首先,创建一个名为 authenticationLambda 的 AWS Lambda 函数,它将检查传入的凭据以及用户是否应该得到授权。
exports.handler = (event, context, callback) => {
var userName = event.userName;
var password = event.password;
var ip = event.sourceIp;
// Put your authentication code here
var result = authenticate(userName, password, ip);
if (result != null) {
callback(null, {
Authorized: true,
User: result
});
} else {
callback(null, {
Authorized: false
});
}
};
function authenticate(userName, password, ip) {
// Put your authentication code here
}
2.接下来,使用 AWS Transfer Family 的 FTP 服务器,将步骤 1 中创建的 Lambda 函数添加到身份验证器中。可通过以下方式实现:
这样,当用户尝试通过 FTP 访问您的文件传输服务时,将使用 Lambda 函数进行自定义身份验证。