

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 控制 NFS 用戶端對 EFS 檔案系統的網路存取
<a name="NFS-access-control-efs"></a>

您可以使用網路層安全性和 Amazon EFS 檔案系統原則來控制 NFS 用戶端對 EFS 檔案系統的存取。您可以使用可搭配 Amazon EC2 的網路層安全性機制，例如 VPC 安全群組規則和網路 ACL。您也可以使用 AWS IAM 透過 EFS 檔案系統政策和身分型政策來控制 NFS 存取。

**Topics**
+ [使用 VPC 安全群組](network-access.md)
+ [在 Amazon EFS 中使用介面 VPC 端點](efs-vpc-endpoints.md)

# 使用 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 地址與其相關聯。唯一可以掛載檔案系統的目標如下所示：
  + 本機 Amazon VPC 中的 Amazon EC2 執行個體
  + 已連接 VPC 中的 EC2 執行個體
  + 使用 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 執行個體，請使用下列規則建立安全群組：
   + 傳入規則，允許從您的 IP 地址或網路在**連接埠 22** 上使用 Secure Shell (SSH) 進行傳入存取。或者，限制**來源**地址以確保安全。
   + 允許掛載目標安全群組在 NFS 連接埠 2049 上傳出存取的傳出規則。將掛載目標安全群組識別為目的地。

1. 針對 EFS 掛載目標，請使用下列規則建立安全群組：
   + 允許從 EC2 安全群組存取 NFS 連接埠 2049 的傳入規則。會將 EC2 安全群組識別做為來源。
**注意**  
您不需要新增傳出規則，因為預設傳出規則允許所有傳出流量。

# 在 Amazon EFS 中使用介面 VPC 端點
<a name="efs-vpc-endpoints"></a>

若要建立虛擬私有雲端 (VPC) 和 Amazon EFS API 之間的私有連線，您可以建立介面 VPC 端點。端點可提供 Amazon EFS API 的安全連線，而不需要網際網路閘道、NAT 執行個體或虛擬私有網路 (VPN) 連線。如需詳細資訊，請參閱[《Amazon VPC 使用者指南》中的使用介面 VPC 端點存取 AWS 服務](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)。 **

介面 VPC 端點採用 AWS PrivateLink，此功能可使用私有 IP 地址在 AWS 服務之間進行私有通訊。若要使用 AWS PrivateLink，請使用 Amazon VPC 主控台、API 或 CLI 在 VPC 中建立 Amazon EFS 的介面 VPC 端點。這會在您的子網路中建立包含私有 IP 地址的彈性網路介面，用於完成 Amazon EFS API 要求。您也可以使用 或 VPC 對等 Direct Connect互連 VPCs Site-to-Site VPN，從內部部署環境或其他 VPC 存取 VPC 端點。若要進一步了解，請參閱《*Amazon* [VPC 使用者指南》中的使用 將您的 VPC 連接到 服務 AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-overview.html)。

## 建立 Amazon EFS 的介面端點
<a name="create-vpce-efs"></a>

若要為 Amazon EFS 建立介面 VPC 端點，請使用以下其中一種方式：
+ `com.amazonaws.region.elasticfilesystem`：為 Amazon EFS API 操作建立一個端點。
+ **`com.amazonaws.region.elasticfilesystem-fips`**：建立 Amazon EFS API 端點時，應遵守[聯邦資訊處理標準 (FIPS) 140-2](https://aws.amazon.com/compliance/fips/)。

如需 Amazon EFS 端點的完整清單，請參閱《》中的 [Amazon Elastic File System 端點和配額](https://docs.aws.amazon.com/general/latest/gr/elasticfilesystem.html)*Amazon Web Services 一般參考*。

如需如何建立介面端點的詳細資訊，請參閱《*Amazon* [VPC 使用者指南》中的使用介面 VPC 端點存取 AWS 服務](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)。

## 為 Amazon EFS 建立 VPC 端點政策
<a name="create-vpce-policy-efs"></a>

若要控制對 Amazon EFS API 的存取，您可以將 AWS Identity and Access Management (IAM) 政策連接至 VPC 端點。此政策會指定以下項目：
+ 可執行動作的主體。
+ 可執行的動作。
+ 可供執行動作的資源。

如需詳細資訊，請參閱《Amazon VPC 使用者指南》**中的[使用端點政策控制 VPC 端點的存取](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html)。

下列範例顯示 VPC 端點政策，拒絕所有人透過端點建立 EFS 檔案系統的權限。範例政策也會授予所有人執行所有其他動作的許可。

```
{
   "Statement": [
        {
            "Action": "*",
            "Effect": "Allow",
            "Resource": "*",
            "Principal": "*"
        },
        {
            "Action": "elasticfilesystem:CreateFileSystem",
            "Effect": "Deny",
            "Resource": "*",
            "Principal": "*"
        }
    ]
}
```