如何解决如何在EFS和EC2之间配置权限
我正在尝试使用CloudFormation通过EFS存储设置mongod实例,但是在理解如何配置文件系统权限以使其正常工作时遇到了问题。
任何现有系统都不会访问EFS,因此我可以根据需要进行完全配置。
我试图以以下AWS示例作为起点...
https://docs.amazonaws.cn/en_us/AWSCloudFormation/latest/UserGuide/aws-resource-efs-accesspoint.html
AccesspointResource:
Type: 'AWS::EFS::Accesspoint'
Properties:
FileSystemId: !Ref FileSystemResource
PosixUser:
Uid: "13234"
Gid: "1322"
SecondaryGids:
- "1344"
- "1452"
RootDirectory:
CreationInfo:
OwnerGid: "708798"
OwnerUid: "7987987"
Permissions: "0755"
Path: "/testcfn/abc"
在上面的示例中,他们似乎分配了任意的组和用户ID。上面给出了我要找出的内容,如何将EC2上的用户帐户配置为允许完全读/写访问?
我已经到了可以安装访问点的地步,但是我无法成功写入它。
我尝试过的...
在EC2上创建了一个新用户,并像这样分配了uid和gid ...
sudo usermod -u 13234 testuser1
sudo groupmod -g 1322 testuser1
然后我对那个用户进行sudo并尝试将文件写入安装点...不走运
然后我尝试像这样分配uid和gid ...
sudo usermod -u 7987987 testuser1
sudo groupmod -g 708798 testuser1
再次,写文件没有运气。
我真正要寻找的是最简单的配置,其中我可以让一个EC2用户具有对EFS文件夹的完全读/写访问权限。它将是新的EFS和新的EC2,因此,如果有帮助,我可以完全控制其设置。
可能的例子是假定我可能缺少一些有关NFS运作的现有知识。
解决方法
为了防万一,我最终像这样定义了我的访问点...
AccessPointResource:
Type: 'AWS::EFS::AccessPoint'
Properties:
FileSystemId: !Ref FileSystemResource
PosixUser:
Uid: "9960"
Gid: "9940"
RootDirectory:
CreationInfo:
OwnerGid: "9940"
OwnerUid: "9960"
Permissions: "0755"
Path: "/mongo-db"
然后在mongodb服务器EC2的用户数据中,添加了此内容...
sudo groupadd --system --gid 9940 mongod
sudo useradd --system --uid 9960 --gid 9940 mongod
我实际上不确定上面的gid和uid是否需要与我在AccessPoint中定义的内容匹配,但这似乎使它更容易,因为服务器会将文件的所有者显示为“ mongod mongod “。
我像这样安装EFS ...
sudo mkdir -p /mnt/var/lib/mongo
sudo sudo mount -t efs -o tls,accesspoint=${AccessPointId} ${FileSystemId}: /mnt/var/lib/mongo
对于原始的AWS提供的示例,我仍然有些困惑。如果我的理解是正确的,似乎它将始终创建一个无法写入的根目录。
也许有人可以弄清楚在哪个目录中拥有与PosixUser中指定的目录不同的目录可能会有所帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。