Lambda作身份提供者时SFTP访问EFS权限异常排查
解决SFTP连接EFS后权限拒绝的问题
以下是你可能缺失的关键配置项,逐一排查:
检查EFS文件系统的POSIX权限
你通过Lambda返回的PosixProfile指定了Uid=1001、Gid=1001,EFS的根目录(或用户需要访问的目录)必须对该用户/用户组赋予读写执行权限。可以挂载EFS到EC2实例后修改权限:# 替换为你的EFS文件系统ID和区域 sudo mount -t efs fs-xxxxxx:/ /mnt/efs # 将目录所有者改为1001:1001 sudo chown 1001:1001 /mnt/efs # 设置对应权限(可根据需求调整为775等) sudo chmod 755 /mnt/efs修改完成后重新测试SFTP连接。
验证Transfer服务角色的权限策略
确保my-transfer-role的权限策略包含EFS必要操作,且资源指定为目标EFS的ARN,示例策略如下:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "elasticfilesystem:ClientMount", "elasticfilesystem:ClientWrite", "elasticfilesystem:ClientRead" ], "Resource": "arn:aws:elasticfilesystem:你的区域:你的账号ID:file-system/你的EFS文件系统ID" } ] }避免使用过于宽泛的资源范围(如
*),并确认策略已正确附加到角色。检查EFS与Transfer服务器的安全组配置
EFS的安全组需要允许NFS协议(端口2049)的入站流量,来源为Transfer服务器的安全组;同时Transfer服务器的安全组要允许出站访问EFS的2049端口。确认HomeDirectory与EFS挂载的对应关系
若HomeDirectory设为"/",需确保Transfer服务器的EFS挂载配置指向EFS根目录。另外,检查Transfer服务器的HomeDirectoryType是否设置为PATH(默认是LOGICAL,使用物理路径时PATH更适配当前配置)。
内容的提问来源于stack exchange,提问作者Hicham Zouarhi
相关产品推荐
相关产品推荐

