

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

# 設定 Amazon S3 檔案存取
<a name="configuration-filesystem-s3files"></a>

Amazon S3 Files 提供共用檔案系統，可將任何 AWS 運算資源直接與 Amazon S3 中的資料連線。Amazon S3 檔案可讓您使用標準檔案系統操作，例如在本機掛載路徑上讀取和寫入，以檔案形式存取 Amazon S3 物件。進一步了解 [Amazon S3 檔案](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-files.html)。

**Topics**
+ [先決條件和設定](#configuration-filesystem-s3files-setup)
+ [執行角色和使用者許可](#configuration-filesystem-s3files-permissions)
+ [連線至檔案系統 (主控台)](#configuration-filesystem-s3files-config)

## 先決條件和設定
<a name="configuration-filesystem-s3files-setup"></a>

使用 Lambda 函數設定 Amazon S3 檔案之前，請確定您有下列項目：
+ Amazon S3 檔案系統和掛載目標在與 AWS 區域 Lambda 函數相同的帳戶中處於可用狀態。
+ 與掛載目標位於相同 VPC 中的 Lambda 函數。您必須在部署函數的每個子網路中具有掛載目標。
+ 允許 Lambda 函數與掛載目標之間 NFS 流量 （連接埠 2049) 的安全群組。[進一步了解設定安全群組](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-files-prereq-policies.html#s3-files-prereq-security-groups)。

如需詳細資訊，請參閱《*Amazon S3 使用者指南*》中的下列主題：
+ [Amazon S3 檔案入門](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-files-getting-started.html)
+ [Amazon S3 檔案先決條件](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-files-prereq-policies.html)
+ [Amazon S3 檔案最佳實務](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-files-best-practices.html)

## 執行角色和使用者許可
<a name="configuration-filesystem-s3files-permissions"></a>

您函數的執行角色必須具有下列許可，才能存取 Amazon S3 檔案系統：

**執行角色許可**
+ **s3files：ClientMount** – 掛載檔案系統時需要。
+ **s3files：ClientWrite** – 讀取寫入存取的必要項目。唯讀連線不需要。

這些許可包含在 [AmazonS3FilesClientReadWriteAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3FilesClientReadWriteAccess.html) 受管政策中。此外，您的執行角色必須具有[連線至檔案系統的 VPC 所需的許可](configuration-vpc.md#configuration-vpc-permissions)。

**注意**  
Amazon S3 檔案透過直接從 Amazon S3 讀取來最佳化輸送量。Amazon S3 的直接讀取僅支援設定 512 MB 或更多記憶體的函數。

您的函數也需要下列許可，才能直接從 Amazon S3 讀取：
+ **s3:GetObject**
+ **s3：GetObjectVersion**

如需必要許可的詳細資訊，請參閱《[Amazon S3 使用者指南》中的 Amazon S3 檔案的 IAM 許可](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-files-prereq-policies.html#s3-files-prereq-iam)。 *Amazon S3 *

當您在主控台中設定檔案系統時，Lambda 會使用您的許可來驗證掛載目標和存取點。若要設定函數以連線至檔案系統，您的使用者需要下列許可：

**使用者許可**
+ **s3files：ListFileSystems**
+ **s3files：ListAccessPoints**
+ **s3files：GetFileSystem**
+ **s3files：GetAccessPoint**
+ **s3files：CreateAccessPoint** – 如果從主控台將檔案系統連接至 函數，則為必要項目。

下列範例政策授予函數的執行角色許可，以掛載具有讀寫存取權的 Amazon S3 檔案系統，並直接從 Amazon S3 讀取。

```
{
    "Version": "2012-10-17", 		 	 	 
    "Statement": [
        {
            "Sid": "S3FilesLambdaAccess",
            "Effect": "Allow",
            "Action": [
                "s3files:ClientMount",
                "s3files:ClientWrite"
            ],
            "Resource": "*"
        },
        {
            "Sid": "S3DirectRead",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": "arn:aws:s3:::{{bucket-name}}/*"
        },
        {
            "Sid": "S3FilesConsoleSetup",
            "Effect": "Allow",
            "Action": [
                "s3files:ListFileSystems",
                "s3files:ListAccessPoints",
                "s3files:GetFileSystem",
                "s3files:GetAccessPoint",
                "s3files:CreateAccessPoint"
            ],
            "Resource": "*"
        }
    ]
}
```

## 連線至檔案系統 (主控台)
<a name="configuration-filesystem-s3files-config"></a>

此函數會透過 VPC 中的本機網路連線至檔案系統。您的函數連線到的子網路可能是包含檔案系統掛載點的子網路，或同一個可用區域中的子網路，其可將 NFS 流量 (連接埠 2049) 路由至檔案系統。

**注意**  
如果您的函數尚未連線至 VPC，請參閱[讓 Lambda 函數存取 Amazon VPC 中的資源](configuration-vpc.md)。

**設定 S3 檔案存取**

1. 開啟 Lambda 主控台中的 [函數頁面](https://console.aws.amazon.com/lambda/home#/functions)。

1. 選擇一個函數。

1. 選擇**組態**，然後選擇**檔案系統**。

1. 選擇**新增檔案系統** （或**編輯**以修改現有的組態）。

1. 選取 **S3 檔案**。

1. 設定下列屬性：
   + **S3 檔案系統** – 從下拉式清單中選擇檔案系統。
   + **存取點 **（選用） – 選擇存取點。如果檔案系統沒有存取點，Lambda 會在儲存時自動建立一個存取點 (UID/GID 1000：1000、根目錄 `/lambda`、許可 755)。如果存取點存在，您必須選擇一個存取點。
   + **Local mount path** (本機掛載路徑) - 檔案系統掛載於 Lambda 函數 (以 `/mnt/` 開頭) 的位置。

1. 選擇**儲存**。

您的檔案系統將在您下次叫用 Lambda 函數時連接。