使用EFS Access Point挂载EC2超时,排查缺失配置项
问题背景
我有一个EFS文件系统,通过以下命令可正常挂载至EC2实例:
mount -t nfs4 -o nfsvers=4.1 myEfsId.efs.myRegion.amazonaws.com:/subfolder /mountDir
现希望通过EFS Access Point限制EC2实例仅能访问该EFS的/subfolder目录,Access Point定义如下:
EFSAccessPoint: Type: AWS::EFS::AccessPoint Properties: FileSystemId: myEFSId RootDirectory: CreationInfo: OwnerGid: "xxx" OwnerUid: "xxx" Permissions: "0750" Path: "/subfolder"
EC2实例关联的IAM角色包含以下权限:
{ "Action": [ "elasticfilesystem:ClientMount", "elasticfilesystem:ClientWrite" ], "Resource": [ "arn:aws:elasticfilesystem:myRegion:myAccountId:access-point/myAccessPointId" ], "Effect": "Allow" }
但执行以下挂载命令时出现超时:
mount -t nfs4 -o nfsvers=4.1,accesspoint=myAccessPointId myEFSId /mountDir
可能缺失的配置项
挂载命令格式错误
当前挂载命令的目标地址仅使用myEFSId,缺少完整的EFS域名,EC2无法正确解析EFS端点导致超时。正确命令应包含完整域名,且无需指定路径(Access Point已映射到/subfolder):mount -t nfs4 -o nfsvers=4.1,accesspoint=myAccessPointId myEfsId.efs.myRegion.amazonaws.com:/ /mountDirEFS文件系统资源策略缺失
除EC2角色权限外,EFS文件系统本身需配置资源策略,允许关联IAM角色通过指定Access Point访问。需添加类似策略:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::myAccountId:role/EC2InstanceRole" }, "Action": [ "elasticfilesystem:ClientMount", "elasticfilesystem:ClientWrite" ], "Resource": "arn:aws:elasticfilesystem:myRegion:myAccountId:file-system/myEFSId", "Condition": { "StringEquals": { "elasticfilesystem:AccessPointArn": "arn:aws:elasticfilesystem:myRegion:myAccountId:access-point/myAccessPointId" } } } ] }无此策略时,EFS会拒绝Access Point的挂载请求,表现为超时。
安全组规则不匹配
检查EC2实例安全组是否允许出站NFS端口(2049)访问EFS安全组;同时EFS安全组是否允许入站NFS端口(2049)来自EC2实例安全组。即使直接挂载正常,也需确认规则未变更。IAM角色信任关系或权限边界限制
验证EC2关联的IAM角色信任关系是否允许ec2.amazonaws.com扮演该角色;同时检查是否有权限边界限制了elasticfilesystem:ClientMount/ClientWrite动作,权限边界拒绝会导致挂载失败。VPC端点配置问题(若使用)
若EC2在私有子网并使用EFS VPC端点,需确认端点安全组允许NFS流量,且端点策略允许访问目标Access Point和EFS文件系统。
内容的提问来源于stack exchange,提问作者Izaya

