I am following this tutorial to mount efs on AWS EC2 instance but when Iam executing the mount command
sudo mount -t nfs4 -o vers=4.1 $(curl -s http://169.254.1
I found the accepted answer here to be incorrect & insecure, and Bao's answer above is very close - except you don't need NFS Inbound on your EC2 (mount target) security group. You just need a security group assigned to your EC2 (even with no rules) so that your EFS Security group can be limited to that security group... you know, for security! Here's what I found works:
EFS Target
, and leave all the rules blankEFS Mount
, and in this one add the inbound
rule for NFS. Set the SOURCE for this rule to the EFS Target
security group you created above. This limits EFS to only being able to connect to EC2 instances that have the EFS Mount
security group assigned (See below). If you're not worried about that, you can select "Any" from the Source dropdown and it'll work just the same, without the added level of securityEFS Target
group to your EC2 instance, assuming you're adding the extra securityEFS Mount
security group and remove the VPC Default group (if you haven't already)I don't like how they mixed vernacular here in terms of EC2 being a mount-target, but also EFS has individual mount-targets for each availability zone. Makes their documentation very confusing, but following the steps above allowed me to mount an EFS securely on an Ubuntu server.