

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

# 使用 VPC 安全组
<a name="network-access"></a>

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

您可以为您的 EFS 文件系统授予入站和出站访问权限。为此，您添加一些规则，以支持 EFS 实例使用网络文件系统（NFS）端口通过挂载目标连接到 EFS 文件系统。
+ 每个挂载文件系统的 EC2 实例都必须有一个安全组，其规则应支持在 **NFS 端口 2049** 上对挂载目标进行出站访问。
+ EFS 挂载目标需要有一个安全组，其规则应支持从待挂载文件系统的每个 EC2 实例通过 NFS 端口 2049 进行入站访问。

下表显示了所需的特定安全组规则：


| 安全组 | 规则类型 | 协议 | 端口： | 源/目标 | 
| --- | --- | --- | --- | --- | 
| EC2 实例 | 出站 | TCP | 2049 | 挂载目标安全组 | 
| 挂载目标 | 入站 | TCP | 2049 | EC2 实例安全组 | 

## 使用 Amazon EFS 的源端口
<a name="source-ports"></a>

为了支持各种不同的 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 端口 2049（`-m tcp -p tcp –dport 2049`）的连接。

## 网络访问的安全注意事项
<a name="sg-information"></a>

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

能否使此网络连接由以下各因素共同决定：
+ **由挂载目标的 VPC 提供的网络隔离** – 文件系统挂载目标不能具有关联的公有 IP 地址。可挂载文件系统的唯一目标包括：
  + 本地 VPC 中的 Amazon EC2 实例
  + 已连接的 EC2 实例 VPCs
  + 使用 AWS Direct Connect 和 AWS Virtual Private Network (VPN) 连接到 Amazon VPC 的本地服务器
+ **客户端和挂载目标的 VPC 子网的网络访问控制列表 (ACLs)，用于从挂载目标子网外部进行访问** — 要挂载文件系统，客户端必须能够与挂载目标的 NFS 端口 2049 建立 TCP 连接并接收返回流量。
+ **客户端和挂载目标的 VPC 安全组的规则（用于所有访问）** – 要使 EC2 实例能够挂载文件系统，以下安全组规则必须生效：
  +  文件系统必须具有一个挂载目标，其网络接口具有的安全组的规则支持在 NFS 端口 2049 上具有来自实例的入站连接。您可以按 IP 地址（CIDR 范围）或安全组启用入站连接。挂载目标网络接口上的入站 NFS 端口的安全组规则来源是文件系统访问控制的关键要素。文件系统挂载目标的网络接口不使用 NFS 端口 2049 以外的入站规则以及任何出站规则。
  +  挂载实例必须具有一个网络接口，其安全组规则支持建立到文件系统的某个挂载目标上的 NFS 端口 2049 的出站连接。您可以按 IP 地址（CIDR 范围）或安全组启用出站连接。

有关更多信息，请参阅 [管理挂载目标](accessing-fs.md)。

## 创建安全组
<a name="security-group-create"></a>

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

以下是为 Amazon EFS 创建安全组时要执行的一般步骤。有关创建安全组的说明，请参阅《Amazon VPC 用户指南**》中的[创建安全组](https://docs.aws.amazon.com/vpc/latest/userguide/creating-security-groups.html)。

1. 对于 EC2 实例，请使用以下规则创建安全组：
   + 入站规则，支持在**端口 22** 上使用 Secure Shell（SSH）从您的 IP 地址或网络进行入站访问。或者，限制**源**地址以提高安全性。
   + 出站规则，支持通过 NFS 端口 2049 对挂载目标安全组进行出站访问。将挂载目标安全组识别为目标。

1. 对于 EFS 挂载目标，请使用以下规则创建安全组：
   + 入站规则，支持通过 NFS 端口 2049 从 EC2 安全组进行访问。将 EC2 安全组识别为源。
**注意**  
您不需要添加出站规则，因为默认出站规则支持所有出站流量。