发布于: Nov 30, 2022

【概要】Amazon Web Services 上提供了 Amazon Elastic File System (EFS),是托管的 NFS 服务。用户可以基于 EFS 快速的部署一个超过 PB 级别的 NFS 文件系统。

无论在何种存储架构下,数据安全防护一直是重中之重。传统的 NFS 服务是企业应用里非常常见的网络存储服务。用户在搭建 NFS 服务时,需要对权限进行相应的设置,以防止未授权的客户端非法访问远程文件存储。NFS 的权限管理主要依赖 Linux 文件系统的文件权限管理机制,并通过 /etc/exports 进行文件系统共享的参数设置,如授权客户端的网段,是否只读等。如果需要更进一步的认证机制,需要部署 Kerberos,相应的配置也并不轻松。

当我们将现有的 NFS 服务迁移上云,或是需要在云的环境下面构建 NFS 服务时,同样也要考虑到权限的控制。 Amazon Web Services 上提供了 Amazon Elastic File System (EFS),是托管的 NFS 服务。用户可以基于 EFS 快速的部署一个超过 PB 级别的 NFS 文件系统。用户不需要管理文件系统的底层存储机制,只要往 EFS 写入文件或删除文件,EFS 即可自动进行扩展和收缩。同时这些数据也是跨多个可用区来进行保护,相当于实现了同城灾备的保护级别。

在权限控制这块,EFS 在 NFS 文件权限控制的基础上,结合 Amazon Web Services 云上已有的安全认证机制,如安全组 (Security Group),身份与访问管理服务 (IAM) 和 EFS 独特的接入点 (Access Point) 机制,简化了权限控制的配置工作,同时可以更为细粒度的进行管理和审计。

 

安全组可以理解为是 Amazon VPC 中挂载到虚拟网卡上的防火墙,通过设定规则可以指定入站和出站的白名单。在之前的博客中,我们演示了如何通过向导快速部署一个 EFS 文件系统,其中挂载目标和 EC2 实例均使用的是 VPC 的默认安全组,因此二者之前的所有网络流量都是放通的。接下来我们可以创建自定义的安全组来做更为精细的权限控制。如下图所示:

我们可以为挂载目标和 EC2 实例各创建一个安全组(分别命名为 efsmountpoint 和 nfsclient,如果 EC2 实例已有安全组则可利用现有安全组)。EC2 实例的安全组可按照业务需求开通相应的入站端口即可,出站默认是所有流量放通。挂载目标的安全组入站规则设置为放通 NFS 端口 2049, 来源可以设置为 EC2 实例的安全组 id(即 nfsclient),这样即可以通过安全组限制只有指定的 EC2 实例能够挂载文件系统。

如下是控制台上关于挂载目标安全组的设置截图:

注意到每个挂载目标最多可以同时设置 5 个安全组。

 

相关文章