微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在EFS和EC2之间配置权限

如何解决如何在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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?