如何通过使用Lambda作为身份提供者,允许SFTP访问EFS?

0

【以下的问题经过翻译处理】 我正在尝试构建一个SFTP服务器,用lambda函数来检查提供的用户名和密码是否与AWS Secrets Manager中的密码匹配。我遵循了这篇文章,但做了一些修改,我没有使用API Gateway,直接使用Lambda函数作为身份验证器,并从Secret Manager中获取以下数据:

 "Role" : "arn:aws:iam::xxxxxxxxxxx:role/my-transfer-role",
"PosixProfile": {
    "Uid": 1001,
    "Gid": 1001,
    "SecondaryGids": []
 },
 "HomeDirectory": "/"

到目前为止,我只能连接到SFTP服务器,但无法读取或写入EFS上的内容,显示“无法列出目录:/权限被拒绝”。

我创建了一个角色和一个策略,并将其附加到Transfer上,以便在EFS上具有权限,具体说明可参见此指南

请问这个配置有什么遗漏吗?谢谢。

1 回答
0

【以下的回答经过翻译处理】 HichamZouarhi@,考虑到您能够连接服务器并验证身份,总体Lambda IDP配置似乎正在工作。关于您的错误,我认为您需要在“HomeDirectory”中提供EFS id才能访问。现在,“HomeDirectory:/”假定EFS的根目录,并且可能会尝试列出可用的EFS资源。除非您对相同的事物有权限,否则将会发生错误。

您可以将HomeDirectory更新为您想要访问的EFS资源吗?示例:“HomeDirectory:/fs-000000/user”。此外,您需要确保您要访问的文件夹可使用您指定的POSIX配置:在您的情况下是“(1001、1001)”。

参考文献:

如果您有后续问题,请告诉我。

-- Sagar

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则