使用 VPC 安全组 - Amazon Elastic File System
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 VPC 安全组

使用 Amazon EFS 时,您可以为 EC2 实例指定 VPC 安全组,为与文件系统关联的 EFS 挂载目标指定 VPC 安全组。安全组将充当防火墙,您添加的规则将定义流量。在入门练习中,您在启动 EFS 实例时创建了一个安全组。然后,您将另一个安全组与 EFS 挂载目标相关联(即,您的默认 VPC 的默认安全组)。这种方法适用于入门练习。但是,对于生产系统,您应设置具有最低权限的安全组,以便与 Amazon EFS 一起使用。

您可以为您的 EFS 文件系统授予入站和出站访问权限。为此,您需要添加规则,允许 EFS 实例使用网络文件系统 (NFS) 端口通过挂载目标连接到 EFS 文件系统。

  • 每个装载文件系统的 EC2 实例都必须有一个安全组,其规则允许通过 NFS 端口对挂载目标进行出站访问。

  • EFS 挂载目标需要有一个安全组,其规则允许您要在其上挂载文件系统的每个 EC2 实例进行入站访问。

用于使用 Amazon EFS 的源端口

为了支持各种不同的 NFS 客户端,Amazon EFS 允许来自任何源端口的连接。如果您要求仅授权的用户可以访问 Amazon EFS,我们建议您使用以下客户端防火墙规则。使用 SSH 连接到文件系统并运行以下命令:

iptables -I OUTPUT 1 -m owner --uid-owner 1-4294967294 -m tcp -p tcp --dport 2049 -j DROP

该命令在 OUTPUT 链 (-I OUTPUT 1) 开头插入新的规则。该规则禁止任何未授权的非内核进程 (-m owner --uid-owner 1-4294967294) 打开到 NFS 端口 (-m tcp -p tcp –dport 2049) 的连接。

网络访问的安全注意事项

NFS 4.1 (NFSv4.1) 版本的客户机只有在能够与文件系统挂载目标之一的 NFS 端口(TCP 端口 2049)建立网络连接时才能装载文件系统。同样, NFSv4.1 客户端只有在能够建立网络连接的情况下才能在访问文件系统时声明用户和组 ID。

能否使此网络连接由以下各因素共同决定:

  • 由挂载目标的 VPC 提供的网络隔离 – 文件系统挂载目标不能具有关联的公有 IP 地址。可挂载文件系统的唯一目标包括:

    • 本地 Amazon VPC 中的亚马逊 EC2 实例

    • EC2 已连接的实例 VPCs

    • 使用 Amazon Direct Connect 和 Amazon Virtual Private Network (VPN) 连接到 Amazon VPC 的本地服务器

  • 客户端和挂载目标的 VPC 子网的网络访问控制列表 (ACLs),用于从挂载目标子网外部进行访问 — 要挂载文件系统,客户端必须能够与挂载目标的 NFS 端口建立 TCP 连接并接收返回流量。

  • 所有访问权限的客户端和挂载目标的 VPC 安全组规则 — 要使 EC2 实例挂载文件系统,以下安全组规则必须生效:

    • 文件系统必须具有一个挂载目标,其网络接口具有的安全组的规则允许在 NFS 端口上具有来自实例的入站连接。您可以按 IP 地址(CIDR 范围)或安全组启用入站连接。挂载目标网络接口上的入站 NFS 端口的安全组规则来源是文件系统访问控制的关键要素。文件系统挂载目标的网络接口不使用 NFS 端口以外的入站规则以及任何出站规则。

    • 挂载实例必须具有一个网络接口,其安全组规则允许建立到文件系统的某个挂载目标上的 NFS 端口的出站连接。您可以按 IP 地址(CIDR 范围)或安全组启用出站连接。

有关更多信息,请参阅 管理挂载目标

创建安全组

为 EC2 实例和 EFS 挂载目标创建安全组

以下是您在为 Amazon EFS 创建安全组时要执行的一般步骤。有关创建安全组的说明,请参阅 Amazon VPC 用户指南中的创建安全组

  1. 对于您的 EC2 实例,请使用以下规则创建安全组:

    • 允许入站访问的入站规则,允许从任何主机使用安全外壳 (SSH)。或者,限制地址。

    • 允许所有流量离开的出站规则。创建安全组时,默认情况下会使用出站规则创建安全组,因此您无需添加出站规则。

  2. 对于您的 EFS 挂载目标,请使用以下规则创建安全组:

    • 允许从 EC2 安全组进行访问的入站规则。将 EC2 安全组标识为来源。

    • 在所有 NFS 端口上打开 TCP 连接的出站规则。将 EC2 安全组标识为目标。