EFS策略条件键elasticfilesystem:AccessedViaMountTarget功能及配置咨询
elasticfilesystem:AccessedViaMountTarget 条件键详解
实际作用
这个条件键的核心是区分两种EFS访问方式:
- 通过挂载目标的NFS访问:也就是EC2实例通过NFS协议挂载EFS的常规场景,对应值
true - 直接API访问:比如通过AWS CLI、控制台或者第三方工具调用EFS API进行文件操作(比如
efs-utils的某些非挂载操作),对应值false
它的作用是限制EFS只能被某一种方式访问,和公网/内网访问的控制没有直接关联。
挂载报错的原因及解决
你设置elasticfilesystem:AccessedViaMountTarget: true后挂载失败,大概率是EFS资源策略的逻辑有误,常见问题包括:
- 缺少必要的Action权限:挂载EFS需要
elasticfilesystem:ClientMount权限,如果需要写入还要elasticfilesystem:ClientWrite,策略里必须包含这些Action - Condition逻辑或语法错误:要确保条件是在
Allow语句中,且格式正确。正确的示例策略如下:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": [ "elasticfilesystem:ClientMount", "elasticfilesystem:ClientWrite" ], "Resource": "arn:aws:elasticfilesystem:us-east-1:123456789012:file-system/fs-abc123", "Condition": { "Bool": { "elasticfilesystem:AccessedViaMountTarget": "true" } } } ] }
- 策略被其他拒绝语句覆盖:如果你的策略里有
Deny语句,要确保Allow语句的优先级更高(比如没有更严格的Deny条件匹配你的EC2实例) - 挂载目标安全组验证:再确认下挂载目标的安全组是否允许EC2实例的IP/IP段访问2049端口(NFS)
阻止EFS公网访问的正确方式
安全组 vs 条件键的区别
- 挂载目标安全组:是网络层控制,直接拦截或放行特定IP/端口的流量。如果安全组只允许VPC内私有IP段访问2049端口,公网IP根本连不上挂载目标,自然无法访问EFS
- elasticfilesystem:AccessedViaMountTarget:是IAM资源策略层控制,只区分访问方式(挂载/API),不管流量来自公网还是内网——公网访问EFS也是通过公网挂载目标进行的,所以这个条件键无法阻止公网访问
是否需要条件键来阻止公网访问?
不需要。只要你的挂载目标安全组配置正确(仅允许VPC内IP访问),或者干脆没有创建公网挂载目标,公网就无法访问你的EFS。这个条件键的作用和公网访问控制无关,不需要额外配置它来实现公网拦截。
如果你的EFS有公网挂载目标,想要阻止公网访问,正确的做法是:
- 删除公网挂载目标,只保留VPC内的私有挂载目标
- 或者在公网挂载目标的安全组中,拒绝所有公网IP的2049端口访问
内容的提问来源于stack exchange,提问作者RiaanDP
相关产品推荐
相关产品推荐

