尝试挂载EFS文件系统。我唯一改变的是删除了EFS组创建的默认SG,并将其替换为EC2示例已经在其中的自定义SG。
AWS提供了挂载NFS共享所需的命令,它应该逐字运行。通常情况下,它确实如此。但有时你会得到这样的:
mount.nfs4: access denied by server while mounting fs-xxxxxxxx.efs.us-west-2.amazonaws.com:/
遗憾的是,故障排除文档在标题“Action to Take”(要采取的操作)下指出:
如果尝试使用IAM装载文件系统...
...并且对于您不尝试使用IAM挂载文件系统的操作没有任何建议。
首先,我很确定我没有做错什么,因为我已经使用了几十次剧本来将EFS(NFS)共享挂载到EC2示例,现在它们已经非常完善了。那么为什么有时会失败呢?
5条答案
按热度按时间fkvaft9z1#
事实证明,AWS并不总是像它通常感觉的那样光滑,有时候后端的东西会被搞砸。在这种情况下,更换SG可能在UI中看起来确实有效,但在后端没有生效。我只是猜测。
我所做的只是删除现有的EFS并创建完全相同的EFS。这一次我唯一不同的是在EFS创建时设置我的自定义EFS SG,而不是在创建和中提琴后替换它,我的剧本又开始工作了。
绝对没有直觉我能想到的(或记录在案的)原因,为什么在SG完全相同的情况下,从非默认SG开始与替换它应该有任何不同。无论在哪种情况下,您都在设置EFS以使用选定的SG,并且EFS没有反对。此外,我以前也这样做过,没有任何问题。所以我把它记为EFS/SG后端故障,浪费了很多时间来排除故障。
总而言之,如果一个 new EFS共享在尝试标准挂载时出现
mount.nfs4: access denied by server
错误(并且你知道你做的其他事情都是正确的)--只需删除它,然后重新创建它。不要想当然地认为你做错了什么,AWS服务不会偶尔出错。ntjbwcob2#
我也遇到过类似的问题,我遵循了StartupGuy的步骤,但这并没有解决我的问题,所以我跟踪了云跟踪事件,意识到访问策略也需要挂载访问权限。
这是fs-policy的默认操作:
您还需要将
"elasticfilesystem:ClientMount"
添加到fs策略中。ncecgwcz3#
当EFS上的目录不存在时,我收到了此错误消息,同时试图通过接入点访问。
1aaf6o9v4#
对我来说,问题是我有一个策略要求在传输过程中对驱动器进行加密,而示例创建向导创建了一个坏的/etc/fstab条目。
1.策略要求使用tls装载驱动器。此处给出了相关说明:https://docs.aws.amazon.com/efs/latest/ug/mounting-fs-mount-helper-ec2-linux.html,如果您使用mount helper,并指定-o tls。
1.由示例创建向导创建的/etc/fstab无法执行正确的装载。事实上,同一页上的“Using the NFS client”选项等同于创建的错误条目。
下面是传输中加密的正确/etc/fstab条目的外观:
文件系统-0123456789 abcdef 0:/ /管理程序/文件系统-1文件系统目录,_网络设备0 0
b1zrtrql5#
如果您设置了文件系统策略,并且正在使用"sudo mount-t nfs"或"nfs4",则会出现此错误。您可以执行以下操作之一:
来源:https://docs.aws.amazon.com/efs/latest/ug/mounting-IAM-option.html