

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

# 使用 Amazon S3 檔案
<a name="s3-files"></a>

## 什麼是 S3 檔案？
<a name="s3-files-what-is"></a>

S3 檔案是一種共用檔案系統，可直接將任何 AWS 運算資源與 Amazon S3 中的資料連線。它可讓您以具有完整檔案系統語意和低延遲效能的檔案形式，快速直接存取所有 S3 資料，而不會讓您的資料離開 S3。每個以檔案為基礎的應用程式、代理程式和團隊都可以使用他們已經依賴的工具，以檔案系統的形式存取和使用您的 S3 資料。S3 Files 使用 Amazon EFS 建置，為您提供檔案系統的效能和簡易性，以及 S3 的可擴展性、耐用性和成本效益。您可以使用檔案和目錄操作來讀取、寫入和組織資料，而 S3 Files 會管理儲存貯體和檔案系統之間的變更同步。

## S3 檔案如何運作？
<a name="s3-files-how-it-works"></a>

當您建立連結至 S3 儲存貯體或其中字首的 S3 檔案系統，並將其掛載在運算資源上，例如 EC2 執行個體或 Lambda 函數時，S3 檔案會先以檔案形式顯示儲存貯體物件的可周遊檢視。當您瀏覽目錄和開啟檔案時，相關聯的中繼資料和內容會放置在檔案系統的高效能儲存體上。當您讀取檔案時，S3 檔案會隨需將檔案內容載入至高效能儲存體，而不會複製整個資料集。當您寫入資料時，您的寫入會移至高效能儲存體，並同步回 S3 儲存貯體。S3 檔案會以智慧方式將檔案系統操作翻譯為有效的 S3 請求。許多讀取操作會完全繞過檔案系統，並直接從 S3 提供資料。

您可以設定要載入高效能儲存體的檔案大小閾值 （預設 128 KB)，因為小型檔案的延遲最為重要。不符合此閾值的資料會直接從 S3 讀取。對於已同步至 S3, S3 檔案也會直接從 S3 串流，因為 S3 已針對高輸送量進行最佳化，而檔案系統的高效能儲存層已針對低延遲小型檔案存取進行最佳化。最近修改且尚未同步至 S3 的資料一律會從檔案系統提供。如需詳細資訊，請參閱[自訂 S3 檔案的同步](s3-files-synchronization-customizing.md)。

未在可設定的時段 (1 到 365 天，預設 30 天） 內讀取的資料會自動從高效能儲存體過期。您的授權資料一律會保留在 S3 中，背景同步可讓檔案系統和儲存貯體在兩個方向上保持一致。如需詳細資訊，請參閱[了解同步的運作方式](s3-files-synchronization.md)。

支援掛載 S3 檔案系統的運算服務包括 Amazon EC2 AWS Lambda、Amazon EKS 和 Amazon ECS。如需詳細資訊，請參閱[在運算資源上掛載 S3 儲存貯體](s3-files-attach-compute.md)。

![\[圖表顯示 S3 儲存貯體、S3 檔案系統和運算資源之間的資料流程。\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/images/S3Files_Compute_dataflow.png)


## 您是第一次使用 S3 檔案嗎？
<a name="s3-files-first-time"></a>

如果您是第一次使用 S3 檔案，請依照 使用 S3 主控台或 AWS CLI 建立您的第一個 S3 檔案系統[教學課程：S3 檔案入門](s3-files-getting-started.md)。

## 重要概念
<a name="s3-files-key-concepts"></a>

下列術語用於整個 S3 檔案文件：

**檔案系統**  
連結至 S3 儲存貯體的共用檔案系統。

**高效能儲存**  
檔案系統中主動使用檔案資料和中繼資料所在的低延遲儲存層。S3 檔案會自動管理此儲存體，在您存取檔案時將資料複製到其中，並移除未在可設定的過期時段內讀取的資料。您為存放在高效能儲存體上的資料支付儲存速率。

**同步**  
S3 檔案讓您的作用中工作資料集和檔案系統和 S3 儲存貯體之間的變更保持一致的程序。將資料從 S3 儲存貯體匯入檔案系統。將您透過檔案系統所做的變更匯出回 S3 儲存貯體。S3 Files 會自動雙向執行同步。

**掛載目標**  
掛載目標可讓您在 VPC 的單一可用區域內，透過網路存取檔案系統。您需要至少一個掛載目標，才能從運算資源存取檔案系統，而且每個可用區域最多可以建立一個掛載目標。

**存取點**  
存取點是檔案系統的應用程式特定進入點，可簡化共用資料集的大規模資料存取管理。您可以使用存取點，對透過存取點提出的所有檔案系統請求強制執行使用者身分和許可。當您使用 AWS 管理主控台建立檔案系統時，S3 檔案會自動為檔案系統建立一個存取點。

## 功能
<a name="s3-files-performance-storage"></a>

**沒有完整資料複寫的高效能**  
S3 檔案只會將作用中的工作集複製到檔案系統的高效能儲存體，而非整個資料集，以提供低延遲的檔案存取。小型、經常存取的檔案會從低於毫秒的高效能儲存提供到單一位數毫秒延遲。大型讀取會以每秒高達 TB 的彙總輸送量直接從 S3 串流。這表示您可以為互動式工作負載取得檔案系統效能，並為串流工作負載取得 S3 輸送量，而無須付費存放或匯入您未使用或無法受益於低延遲的資料。如需詳細資訊，請參閱[效能規格](s3-files-performance.md)。

**智慧型讀取路由**  
S3 檔案會自動將讀取請求路由到最適合它們的儲存層 (S3 檔案系統或 S3 儲存貯體），同時維護完整的檔案系統語意，包括一致性、鎖定和 POSIX 許可。從高效能儲存提供少量、隨機讀取的主動使用檔案，以降低延遲。直接從 S3 儲存貯體提供不在檔案系統上的大型循序讀取和資料讀取，以獲得高輸送量，無需檔案系統資料費用。

**自動同步**  
S3 檔案會自動讓您的檔案系統和 S3 儲存貯體在兩個方向上保持一致。透過檔案系統所做的變更會複製回 S3 儲存貯體，而直接對 S3 儲存貯體所做的變更會反映在檔案系統的檢視中。您可以自訂同步行為，包括匯入哪些資料，以及它在檔案系統上停留多久。如需詳細資訊，請參閱[了解同步的運作方式](s3-files-synchronization.md)。

**可擴展效能**  
S3 檔案會自動擴展輸送量和 IOPS，以符合您的工作負載活動。您不需要佈建或管理效能容量，只需為使用量付費。

**區域耐久性**  
寫入高效能儲存層的資料具有與 Amazon S3 相同的耐用性。它會以備援方式將資料跨同一 AWS 區域內多個地理位置分隔的可用區域存放，為您的資料提供高耐用性和可用性。

**加密**  
S3 檔案會使用 TLS 加密傳輸中的所有資料，並使用 AWS KMS 金鑰加密所有靜態資料。您可以使用 AWS 擁有的金鑰 （預設） 或您自己的客戶受管金鑰。如需詳細資訊，請參閱[加密](s3-files-encryption.md)。

**檔案系統語意**  
S3 檔案支援 NFS 4.2 版和 4.1 版通訊協定。它提供file-system-access語意，例如read-after-write資料一致性、檔案鎖定和 POSIX 許可。

## 如何支付 S3 檔案的費用？
<a name="s3-files-billing"></a>

您為存放在高效能儲存體上的部分作用中資料支付儲存速率，並支付從檔案系統高效能儲存體讀取和寫入的檔案系統存取費用。對於已同步至 S3, S3 檔案也會直接從 S3 串流，因為 S3 已針對高輸送量進行最佳化，而檔案系統的高效能儲存層已針對低延遲小型檔案存取進行最佳化。這些讀取只會產生標準 S3 GET 請求成本，無需檔案系統存取費用。檔案系統存取費用適用於同步操作：將資料匯入檔案系統會產生寫入費用，而將變更匯出回 S3 會產生讀取費用。如需詳細資訊，請參閱[如何計量 S3 檔案](s3-files-metering.md)。如需目前的定價，請參閱 [S3 檔案定價頁面](https://aws.amazon.com/s3/pricing/)。

**Topics**
+ [

## 什麼是 S3 檔案？
](#s3-files-what-is)
+ [

## S3 檔案如何運作？
](#s3-files-how-it-works)
+ [

## 您是第一次使用 S3 檔案嗎？
](#s3-files-first-time)
+ [

## 重要概念
](#s3-files-key-concepts)
+ [

## 功能
](#s3-files-performance-storage)
+ [

## 如何支付 S3 檔案的費用？
](#s3-files-billing)
+ [

# S3 檔案的先決條件
](s3-files-prereq-policies.md)
+ [

# 教學課程：S3 檔案入門
](s3-files-getting-started.md)
+ [

# 在運算資源上掛載 S3 儲存貯體
](s3-files-attach-compute.md)
+ [

# 建立和管理 S3 檔案資源
](s3-files-resources.md)
+ [

# 了解同步的運作方式
](s3-files-synchronization.md)
+ [

# 監控和稽核 S3 檔案
](s3-files-monitoring-logging.md)
+ [

# 效能規格
](s3-files-performance.md)
+ [

# S3 檔案的安全性
](s3-files-security.md)
+ [

# 如何計量 S3 檔案
](s3-files-metering.md)
+ [

# S3 檔案最佳實務
](s3-files-best-practices.md)
+ [

# 不支援的功能、限制和配額
](s3-files-quotas.md)
+ [

# 對 S3 檔案進行故障診斷
](s3-files-troubleshooting.md)

# S3 檔案的先決條件
<a name="s3-files-prereq-policies"></a>

開始使用 S3 檔案之前，請確定您已完成下列先決條件。

## AWS 帳戶和運算設定
<a name="s3-files-prereq-account-setup"></a>
+ 您有 AWS 帳戶。
+ 在您要建立檔案系統的所需 AWS 區域中，您擁有運算資源和 S3 一般用途儲存貯體。如需詳細資訊，請參閱[建立一般用途儲存貯體](create-bucket-overview.md)。
+ 您的 S3 儲存貯體已啟用版本控制。S3 檔案需要 S3 版本控制，才能同步檔案系統和 S3 儲存貯體之間的變更。如需詳細資訊，請參閱[在儲存貯體上啟用版本控制](manage-versioning-examples.md)。
+ 您的 S3 儲存貯體必須使用下列其中一種加密類型：使用 Amazon S3 受管金鑰 (SSE-S3) 進行伺服器端加密，或使用 AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS) 進行伺服器端加密。

## S3 檔案用戶端
<a name="s3-files-prereq-client"></a>

若要搭配 Amazon EC2 使用 S3 檔案，您必須安裝用戶端 `amazon-efs-utils`，這是 Amazon EFS 和 Amazon S3 檔案的共用開放原始碼工具集合。若要使用 S3 檔案，您需要 3`amazon-efs-utils`.0.0 版或更新版本。用戶端包含掛載協助程式，可簡化掛載 S3 檔案系統，並啟用 Amazon CloudWatch 指標來監控檔案系統的掛載狀態。

### 步驟 1：安裝用戶端
<a name="s3-files-prereq-client-install"></a>
+ 透過 Secure Shell (SSH) 存取 Amazon EC2 執行個體的終端機，並使用適當的使用者名稱登入。如需詳細資訊，請參閱《*Amazon Elastic Compute Cloud 使用者指南*》中的[連線至 EC2 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instance.html)。
+ 對於使用 Amazon Linux 的使用者，請執行下列動作，從 Amazon 的儲存庫安裝 efs-utils：

  ```
  sudo yum -y install amazon-efs-utils
  ```
+ 如果您使用其他支援的 Linux 發行版本，您可以執行下列動作：

  ```
  curl https://amazon-efs-utils.aws.com/efs-utils-installer.sh | sudo sh -s -- --install
  ```
+ 如需其他 Linux 發行版本，請參閱 GitHub 上 amazon-efs-utils README 中的[其他 Linux 發行版本](https://github.com/aws/efs-utils/?tab=readme-ov-file#on-other-linux-distributions)。

### 步驟 2：安裝 botocore
<a name="s3-files-prereq-client-botocore"></a>

`amazon-efs-utils` 用戶端使用 botocore 與其他 AWS 服務互動。例如，您需要安裝 botocore，才能使用 Amazon CloudWatch 監控您的檔案系統。如需安裝和升級 botocore 的說明，請參閱 GitHub 上 amazon-efs-utils README 中的[安裝 botocore](https://github.com/aws/efs-utils#install-botocore)。

### 啟用 S3 檔案的 FIPS 模式
<a name="s3-files-prereq-client-fips"></a>

如果您需要遵守聯邦資訊處理標準 (FIPS)，則必須在用戶端中啟用 FIPS 模式。啟用 FIPS 模式需要修改作業系統上的 `s3files-utils.conf` 檔案。

請依照下列步驟，在用戶端中為 S3 檔案啟用 FIPS 模式：

1. 使用您選擇的文字編輯器，開啟 `/etc/amazon/efs/s3files-utils.conf` 檔案。

1. 尋找包含下列文字的行：

   ```
   fips_mode_enabled = false
   ```

1. 將文字變更為下列內容：

   ```
   fips_mode_enabled = true
   ```

1. 儲存您的變更。

## (IAM) 角色和政策
<a name="s3-files-prereq-iam"></a>

若要使用 S3 檔案，您必須將 IAM 角色和連接的政策設定為兩種用途：
+ 從檔案系統存取您的儲存貯體
+ 將檔案系統連接至 AWS 運算資源

### 從檔案系統存取儲存貯體的 IAM 角色
<a name="s3-files-prereq-iam-creation-role"></a>

建立 S3 檔案系統時，您必須指定 S3 檔案擔任的 IAM 角色，以讀取和寫入 S3 儲存貯體。此角色允許 S3 檔案同步檔案系統和 S3 儲存貯體之間的變更。此角色也會授予許可，以管理 S3 檔案用來偵測 S3 儲存貯體中變更和觸發同步的 Amazon EventBridge 規則。您也必須確保來源儲存貯體的儲存貯體政策不會拒絕從運算資源存取。

**注意**  
當您使用 AWS 管理主控台建立檔案系統時，S3 檔案會自動建立此具有必要許可的 IAM 角色。

此 IAM 角色需要下列項目：
+ 內嵌政策，如下所示：

  ```
  {
      "Version": "2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "S3BucketPermissions",
              "Effect": "Allow",
              "Action": [
                  "s3:ListBucket",
                  "s3:ListBucketVersions"
              ],
              "Resource": "arn:aws:s3:::bucket",
              "Condition": {
                  "StringEquals": {
                      "aws:ResourceAccount": "accountId"
                  }
              }
          },
          {
              "Sid": "S3ObjectPermissions",
              "Effect": "Allow",
              "Action": [
                  "s3:AbortMultipartUpload",
                  "s3:DeleteObject*",
                  "s3:GetObject*",
                  "s3:List*",
                  "s3:PutObject*"
              ],
              "Resource": "arn:aws:s3:::bucket/*",
              "Condition": {
                  "StringEquals": {
                      "aws:ResourceAccount": "accountId"
                  }
              }
          },
          {
              "Sid": "UseKmsKeyWithS3Files",
              "Effect": "Allow",
              "Action": [
                  "kms:GenerateDataKey",
                  "kms:Encrypt",
                  "kms:Decrypt",
                  "kms:ReEncryptFrom",
                  "kms:ReEncryptTo"
              ],
              "Condition": {
                  "StringLike": {
                      "kms:ViaService": "s3.region.amazonaws.com",
                      "kms:EncryptionContext:aws:s3:arn": [
                          "arn:aws:s3:::bucket",
                          "arn:aws:s3:::bucket/*"
                      ]
                  }
              },
              "Resource": "arn:aws:kms:region:accountId:*"
          },
          {
              "Sid": "EventBridgeManage",
              "Effect": "Allow",
              "Action": [
                  "events:DeleteRule",
                  "events:DisableRule",
                  "events:EnableRule",
                  "events:PutRule",
                  "events:PutTargets",
                  "events:RemoveTargets"
              ],
              "Condition": {
                  "StringEquals": {
                      "events:ManagedBy": "elasticfilesystem.amazonaws.com"
                  }
              },
              "Resource": [
                  "arn:aws:events:*:*:rule/DO-NOT-DELETE-S3-Files*"
              ]
          },
          {
              "Sid": "EventBridgeRead",
              "Effect": "Allow",
              "Action": [
                  "events:DescribeRule",
                  "events:ListRuleNamesByTarget",
                  "events:ListRules",
                  "events:ListTargetsByRule"
              ],
              "Resource": [
                  "arn:aws:events:*:*:rule/*"
              ]
          }
      ]
  }
  ```

  將預留位置值取代為您自己的值。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/s3-files-prereq-policies.html)
+ 允許 S3 檔案擔任 IAM 角色的信任政策。將下列信任政策新增至 IAM 角色，以允許 S3 Files 服務擔任該角色。將 *accountId* 和*區域*取代為您的值。

  ```
  {
      "Version": "2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "AllowS3FilesAssumeRole",
              "Effect": "Allow",
              "Principal": {
                  "Service": "elasticfilesystem.amazonaws.com"
              },
              "Action": "sts:AssumeRole",
              "Condition": {
                  "StringEquals": {
                      "aws:SourceAccount": "accountId"
                  },
                  "ArnLike": {
                      "aws:SourceArn": "arn:aws:s3files:region:accountId:file-system/*"
                  }
              }
          }
      ]
  }
  ```

### 將檔案系統連接至 AWS 運算資源的 IAM 角色
<a name="s3-files-prereq-iam-compute-role"></a>

掛載 S3 檔案系統的運算資源必須連接 IAM 角色 （例如 EC2 執行個體描述檔） 與允許運算資源與 S3 檔案系統和來源 S3 儲存貯體互動的政策。您也必須確保來源儲存貯體的儲存貯體政策不會拒絕從運算資源存取。

將下列兩個政策新增至連接至運算資源的 IAM 角色：
+ **運算資源連線至 S3 檔案系統並與之互動的許可**

  IAM 角色必須包含掛載協助程式的許可，以連線至 S3 檔案系統並與之互動。如果您想要將運算資源的完整讀取和寫入存取權授予 S3 檔案系統，或`AmazonS3FilesClientReadOnlyAccess`將 授予唯讀存取權，您可以連接 `AmazonS3FilesClientFullAccess` 受管 AWS 政策，例如 受管政策。如果您想要啟用 Amazon CloudWatch 監控，也可以連接 `AmazonElasticFileSystemUtils`受管政策。如需 S3 檔案可用受管政策的詳細資訊和完整清單，請參閱 [AWS Amazon S3 檔案的受管政策](s3-files-security-iam-awsmanpol.md)。您也可以將 `s3files:ClientMount`或 等個別 IAM 許可 `s3files:ClientWrite`（唯讀連線不需要） 新增至運算資源的 IAM 角色，以提供這些許可。
+ **將運算資源讀取存取權授予 S3 物件的內嵌政策**

  將下列內嵌政策新增至 IAM 角色。此政策授予運算資源許可，以直接從相同帳戶中連結的 S3 儲存貯體讀取物件，以最佳化讀取效能。以 S3 *儲存貯*體名稱取代儲存貯體，或以字首取代儲存貯體名稱。

  ```
  {
      "Version": "2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "S3ObjectReadAccess",
              "Effect": "Allow",
              "Action": [
                  "s3:GetObject",
                  "s3:GetObjectVersion"
              ],
              "Resource": "arn:aws:s3:::bucket/*"
          },
          {
              "Sid": "S3BucketListAccess",
              "Effect": "Allow",
              "Action": "s3:ListBucket",
              "Resource": "arn:aws:s3:::bucket"
          }
      ]
  }
  ```

## Security groups (安全群組)
<a name="s3-files-prereq-security-groups"></a>

建立檔案系統和掛載目標後，您必須設定正確的安全群組以開始使用檔案系統。運算資源和掛載目標上的安全群組必須允許所需的流量，如下表所示：


| 安全群組 | 規則類型 | 通訊協定 | 站點 | 來源/目的地 | 
| --- | --- | --- | --- | --- | 
| EC2 執行個體 | 傳出 | TCP | 2049 | 掛載目標安全群組 | 
| 掛載目標 | 傳入 | TCP | 2049 | EC2 執行個體安全群組 | 

# 教學課程：S3 檔案入門
<a name="s3-files-getting-started"></a>

在本教學課程中，您會建立 S3 檔案系統並將其掛載至 EC2 執行個體。然後，您可以測試基本檔案操作。您可以使用 S3 主控台或 AWS CLI 來開始使用 S3 檔案。

## 使用 AWS 主控台開始使用 S3 檔案
<a name="s3-files-getting-started-console"></a>

S3 主控台上的 S3 檔案工作流程包含下列步驟：
+ 建立 S3 檔案系統
+ 在 EC2 執行個體上掛載檔案系統並執行檔案系統操作

### 先決條件
<a name="s3-files-getting-started-console-prereqs"></a>

開始使用之前，請確定您有下列項目：
+ 您已完成 [AWS 帳戶和運算設定](s3-files-prereq-policies.md#s3-files-prereq-account-setup)。
+ 您使用 Amazon EC2 進行設定，並且熟悉啟動 EC2 執行個體。如需詳細資訊，請參閱*《Amazon EC2 使用者指南》*中的 [Amazon EC2 入門](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html)。在本教學課程中，請使用 EC2 執行個體的預設 VPC。
+ 您已[將檔案系統連接至 AWS 運算資源的 IAM 角色](s3-files-prereq-policies.md#s3-files-prereq-iam-compute-role)將 連接到 EC2 執行個體，以便它可以與您的 S3 檔案系統和 S3 儲存貯體互動。

### 步驟 1：建立 S3 檔案系統
<a name="s3-files-getting-started-console-step1"></a>
+ 開啟位於 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 的 Amazon S3 主控台。
+ 在頁面頂端的導覽列中，確認您位於 EC2 執行個體和 S3 儲存貯體所在的 AWS 區域。
+ 在左側導覽窗格中，選擇**一般用途儲存貯體**。
+ 選取您要為其建立檔案系統的儲存貯體。
+ 選擇**檔案系統**索引標籤。
+ 選擇 **Create file system (建立檔案系統)**。
+ 檢閱並確認 VPC。在本教學課程中，請使用您的預設 VPC。
+ 選擇**建立**。

當您使用 AWS 管理主控台建立檔案系統時，S3 檔案會自動在預設 VPC 的每個可用區域中建立一個掛載目標，並為檔案系統建立一個存取點。這可能需要幾分鐘的時間。建立所有資源後，您的檔案系統將可用於下一個步驟。

### 步驟 2：在 EC2 執行個體上掛載檔案系統
<a name="s3-files-getting-started-console-step2"></a>
+ 在檔案系統**概觀**頁面上，選擇**連接至** ** EC2 執行個體下的連接**。這會開啟新頁面，將您的檔案系統掛載到 EC2 執行個體。
+ 從下拉式清單中選取所需的 EC2 執行個體 **可用的 EC2 執行個體**。
+ 在 EC2 執行個體上輸入您要掛載檔案系統的路徑。例如 `/mnt/s3files/`。
+ 請確定您已在 EC2 執行個體和掛載目標[Security groups (安全群組)](s3-files-prereq-policies.md#s3-files-prereq-security-groups)上設定正確的 ，以允許所需的流量流動。
+ 請確定您擁有正確的 IAM 角色，並將必要的許可連接到 EC2 執行個體，以便它可以與您的 S3 檔案系統和 S3 儲存貯體互動。如需詳細資訊，請參閱[將檔案系統連接至 AWS 運算資源的 IAM 角色](s3-files-prereq-policies.md#s3-files-prereq-iam-compute-role)。在本教學課程中，您可以考慮將 受管政策新增至 EC2 執行個體的 IAM 角色`AmazonS3FilesClientFullAccess`，以授予用戶端完整存取權。
+ 遵循頁面上顯示的連接說明來開啟 CloudShell、掛載檔案系統，以及執行基本檔案系統操作。

## 使用 CLI AWS 開始使用 S3 檔案
<a name="s3-files-getting-started-cli"></a>

 AWS CLI 上的 S3 檔案工作流程包含下列步驟：

1. 建立 檔案系統。

1. 為您的檔案系統建立掛載目標。

1. 使用掛載目標在 EC2 執行個體上掛載檔案系統。

1. 測試檔案操作，例如列出目錄、將文字寫入檔案、讀取檔案和複製檔案。然後，驗證您的變更是否反映在 S3 儲存貯體中。

### 先決條件
<a name="s3-files-getting-started-cli-prereqs"></a>

開始使用之前，請確定您有下列項目：
+ 您已安裝並設定 AWS CLI。如需詳細資訊，請參閱[安裝或更新至最新版本的 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。
+ 您已完成中所述的所有先決條件[S3 檔案的先決條件](s3-files-prereq-policies.md)。
+ 您使用 Amazon EC2 進行設定，並且熟悉啟動 EC2 執行個體。您需要 AWS 帳戶、具有管理存取權的使用者、金鑰對和安全群組。如需詳細資訊，請參閱*《Amazon EC2 使用者指南》*中的 [Amazon EC2 入門](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html)。

### 步驟 1：建立 S3 檔案系統
<a name="s3-files-getting-started-cli-step1"></a>

[連線至 EC2 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect.html)。執行 `create-file-system`命令來建立檔案系統。

```
aws s3files create-file-system --region aws-region --bucket bucket-arn --role-arn iam-role
```

將以下內容取代為所需的值：
+ *aws-region* ：儲存貯體 AWS 的區域。例如 `us-east-1`。
+ *bucket-arn* ：S3 儲存貯體的 ARN。
+ *iam-role* ：S3 檔案假設從 S3 儲存貯體讀取和寫入的 IAM 角色 ARN。請確定您已將正確的許可新增至此 IAM 角色。如需詳細資訊，請參閱[從檔案系統存取儲存貯體的 IAM 角色](s3-files-prereq-policies.md#s3-files-prereq-iam-creation-role)。

成功建立檔案系統後，S3 檔案會將檔案系統描述傳回為 JSON。記下下一個步驟的檔案系統 ID。

### 步驟 2：建立掛載目標
<a name="s3-files-getting-started-cli-step2"></a>

掛載目標可讓您在單一可用區域內存取 VPC 中的檔案系統。您需要掛載目標，才能從運算資源存取檔案系統。每個可用區域最多可以建立一個掛載目標。建議您在營運所在的每個可用區域中建立掛載目標。

執行下列`create-mount-target`命令，為您的檔案系統建立掛載目標。您必須確定*子網路 ID* 與 EC2 執行個體位於相同的 VPC 中。您必須在與 EC2 執行個體相同的可用區域中建立掛載目標。

```
aws s3files create-mount-target --region aws-region --file-system-id file-system-id --subnet-id subnet-id
```

這裡的 *file-system-id* 是您在 `create-file-system`命令回應中收到的檔案系統 ID。掛載目標最多可能需要 \$15 分鐘才能建立。

### 步驟 3：在 EC2 執行個體上掛載檔案系統
<a name="s3-files-getting-started-cli-step3"></a>

在掛載檔案系統之前，請確定您已在運算資源和掛載目標[Security groups (安全群組)](s3-files-prereq-policies.md#s3-files-prereq-security-groups)上設定正確的 ，以允許所需的流量流動。如需安全群組的詳細資訊，請參閱 [VPC 使用者指南](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html)。

執行下列命令來掛載檔案系統：
+ 使用下列指令建立要用作檔案系統掛載點的目錄 `/mnt/s3files`：

  ```
  sudo mkdir /mnt/s3files
  ```
+ 掛載檔案系統：

  ```
  sudo mount -t s3files file-system-id:/ /mnt/s3files
  ```

如果您沒有檔案系統 ID，您可以執行下列動作來尋找它：

```
aws s3files get-file-system --region aws-region --file-system-id file-system-id
```

### 步驟 4：測試檔案操作
<a name="s3-files-getting-started-cli-step4"></a>

在掛載的檔案系統上測試基本檔案操作，如下所示：
+ 變更為您掛載的目錄：

  ```
  cd /mnt/s3files
  ```
+ 您可以列出目錄的內容，以檢查來源儲存貯體或字首的內容是否已匯入。同步通常在幾秒鐘內發生，但可能需要更長的時間，尤其是第一個檔案。如果您的儲存貯體是空的，以下命令也會傳回空的結果。

  ```
  ls
  ```
+ 您也可以測試其他檔案操作：
  + 建立檔案：

    ```
    echo "Hello, S3 Files!" > test.txt
    ```
  + 讀取 檔案：

    ```
    cat test.txt
    ```
  + 建立目錄：

    ```
    mkdir test-directory
    ```
  + 將檔案複製到 目錄：

    ```
    cp /mnt/s3files/test.txt /mnt/s3files/test-directory/
    ```

然後，您可以前往 S3 儲存貯體，並檢查目錄是否`test-directory`反映在您的儲存貯體中。請注意，將變更同步回 S3 儲存貯體可能需要約 1 分鐘的時間。

# 在運算資源上掛載 S3 儲存貯體
<a name="s3-files-attach-compute"></a>

您可以在運算資源上掛載 S3 檔案系統，以檔案形式存取 S3 資料。您的運算資源必須在與 S3 檔案系統相同的 Amazon Virtual Private Cloud (Amazon VPC) 中執行。所有運算資源會透過 NFS 連接埠 2049 上的掛載目標與檔案系統通訊。

S3 檔案支援下列運算環境：
+ [Amazon Elastic Compute Cloud (Amazon EC2) 執行個體](s3-files-mounting.md)
+ [AWS Lambda 函數](s3-files-mounting-lambda.md)
+ [Amazon Elastic Kubernetes Service (Amazon EKS) 叢集](s3-files-mounting-eks.md)
+ [Amazon Elastic Container Service (Amazon ECS) 叢集](s3-files-mounting-ecs.md)

# 在 Amazon EC2 上掛載 S3 檔案系統
<a name="s3-files-mounting"></a>

若要在 EC2 執行個體上掛載 S3 檔案系統，您必須使用 S3 檔案掛載協助程式。掛載協助程式可協助您在執行支援分佈的 EC2 執行個體上掛載 S3 檔案系統。掛載檔案系統時，掛載協助程式會定義稱為 的新網路檔案系統類型`s3files`，這與 Linux 中的標準`mount`命令完全相容。掛載協助程式也支援使用 EC2 Linux 執行個體上`/etc/fstab`組態檔案中的項目，在執行個體開機時間自動掛載 S3 檔案系統。掛載協助程式是開放原始碼工具集合的一部分，這些工具會在您安裝 S3 Files 用戶端 (amazon-efs-utils) 時安裝。

![\[圖表顯示 S3 儲存貯體、S3 檔案系統和 Amazon EC2 執行個體之間的資料流程。\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/images/S3Files_EC2_dataflow.png)


## 在 EC2 執行個體上掛載的先決條件
<a name="s3-files-mounting-prereqs"></a>
+ 您有一個 S3 檔案系統，至少有一個可用的掛載目標。
+ 您的 EC2 執行個體與您將用來掛載檔案系統的掛載目標位於相同的可用區域。
+ IAM 執行個體描述檔會連接至具有 S3 檔案必要許可的 EC2 執行個體。如需詳細資訊，請參閱[將檔案系統連接至 AWS 運算資源的 IAM 角色](s3-files-prereq-policies.md#s3-files-prereq-iam-compute-role)。
+ 您已設定必要的 [Security groups (安全群組)](s3-files-prereq-policies.md#s3-files-prereq-security-groups)。
+ 您已在 EC2 執行個體上安裝 amazon-efs-utils 套件。如需詳細資訊，請參閱[S3 檔案用戶端](s3-files-prereq-policies.md#s3-files-prereq-client)。

## 掛載協助程式如何運作？
<a name="s3-files-mounting-how-it-works"></a>

當您發出掛載命令時，掛載協助程式會執行下列動作：
+ 從 EC2 執行個體設定檔擷取 IAM 憑證。
+ 初始化 efs-proxy 程序，以建立與掛載目標的 TLS 加密連線。
+ 啟動 amazon-efs-mount-watchdog 監控程序，以監控 TLS 掛載的運作狀態。此程序會在第一次掛載 S3 檔案系統時自動啟動。
+ 在指定的掛載點掛載檔案系統。

掛載協助程式使用 TLS 版本 1.2 來與檔案系統通訊。使用 TLS 需要憑證，而且這些憑證是由信任的 Amazon 憑證授權單位所簽署。如需加密運作方式的詳細資訊，請參閱 [S3 檔案的安全性](s3-files-security.md)。

掛載協助程式使用以下針對 S3 檔案最佳化的掛載選項：


| 選項 | Value | Description | 
| --- | --- | --- | 
| nfsvers | 4.2 | NFS 通訊協定版本。 | 
| rsize | 1048576 | 將 NFS 用戶端針對每個網路 READ 請求可接收的最大資料位元組數設定為最大可用的 1048576 (1 MB)，以避免效能降低。 | 
| wsize | 1048576 | 將 NFS 用戶端可為每個網路 WRITE 請求傳送的最大資料位元組數設定為最大可用 1048576 (1 MB)，以避免效能降低。 | 
| hard | — | 設定 NFS 請求逾時後 NFS 用戶端的復原行為，以便在伺服器回覆之前無限期重試 NFS 請求，以確保資料完整性。 | 
| timeo | 600 | 將 NFS 用戶端在重試 NFS 請求之前用來等待回應的逾時值設定為 600 分秒 (60 秒），以避免效能降低。 | 
| retrans | 2 | 將 NFS 用戶端在嘗試進一步復原動作之前重試請求的次數設定為 2。 | 
| noresvport | — | 告知 NFS 用戶端在重新建立網路連線時使用新的非特權 TCP 來源連接埠。使用 noresvport有助於確保您的檔案系統在重新連線或網路復原事件後有不間斷的可用性。 | 

此外，將 S3 檔案系統掛載為 S3 檔案時，掛載協助程式會自動使用 `tls`和 `iam` 掛載選項，需要這些選項才能建立連線。這是因為 S3 檔案一律使用 TLS 加密和 IAM 身分驗證掛載檔案系統，因此無法停用。

## 如何在 EC2 執行個體上掛載 S3 檔案系統？
<a name="s3-files-mounting-steps"></a>
+ 透過安全殼層 (SSH) 或 EC2 主控台上的 EC2 Instance Connect 連線至 EC2 執行個體。 EC2 如需詳細資訊，請參閱[連線至 EC2 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect.html)。
+ 使用下列指令建立要用作檔案系統掛載點的目錄 `/mnt/s3files`：

  ```
  sudo mkdir /mnt/s3files
  ```
+ 掛載 S3 檔案系統：

  ```
  FS="{YOUR_FILE_SYSTEM_ID}"
  sudo mount -t s3files $FS:/ /mnt/s3files
  ```
+ 確認檔案系統已掛載。

  ```
  df -h /mnt/s3files
  ```

  您應該會看到類似以下的回應：

  ```
  Filesystem      Size  Used Avail Use% Mounted on
  {s3files-dns}    8.0E  129M  8.0E   1% {path/to/mount}
  ```

  您也可以透過列出本機掛載點的內容來驗證檔案系統掛載和檢查掛載選項。如果掛載成功，此命令會顯示特定目錄的掛載詳細資訊，包括您的掛載選項。

  ```
  findmnt -T /mnt/s3files
  ```

如需掛載命令的詳細資訊，請參閱 [GitHub 文件](https://github.com/aws/efs-utils/blob/master/README.md#mountefs)。

您現在可以使用標準檔案系統操作，將 S3 物件讀取和寫入為本機掛載路徑上的檔案。如果您的 S3 儲存貯體中有物件，則可以使用下列命令將物件檢視為檔案。

```
ls /mnt/s3files
```

您可以使用 [CloudWatch 指標](s3-files-monitoring-cloudwatch.md)監控檔案系統儲存、效能、用戶端連線和同步錯誤。

## 如何使用存取點在 EC2 執行個體上掛載 S3 檔案系統
<a name="s3-files-mounting-access-points-inline"></a>

當您使用存取點掛載檔案系統時，掛載命令會包含`access-point-id`掛載選項。

```
sudo mount -t s3files -o accesspoint=access-point-id file-system-id /mnt/s3files
```

其中：
+ *access-point-id* 是您存取點的 ID。
+ *file-system-id* 是您 S3 檔案系統的 ID。

## 在 EC2 執行個體啟動時自動掛載 S3 檔案系統
<a name="s3-files-mounting-auto"></a>

您可以透過更新檔案，將 EC2 執行個體設定為在執行個體啟動或重新啟動時自動掛載 S3 `/etc/fstab` 檔案系統。`/etc/fstab` 檔案包含檔案系統的相關資訊，並供作業系統用來判斷在開機時要掛載的檔案系統。

**警告**  
使用 `_netdev` 選項，此選項用於在自動掛載檔案系統時識別網路檔案系統。若 `_netdev` 已遺失，EC2 執行個體可能會停止回應。此結果是因為網路檔案系統在運算執行個體開始聯網後需要初始化。如需詳細資訊，請參閱[自動掛載失敗且執行個體沒有回應](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/builtInFS-fstab-issues.html)。

您可以使用掛載協助程式來設定 Amazon EC2 執行個體，以便在執行個體啟動時自動掛載 S3 檔案系統：
+ 使用 S3 `/etc/fstab` 檔案系統的 項目更新 EC2 檔案。
+ 當您使用 EC2 啟動執行個體精靈建立新的 EC2 執行個體時，連接 S3 檔案系統。

### 更新 /etc/fstab 檔案
<a name="s3-files-mounting-auto-fstab"></a>

執行下列步驟來更新 EC2 Linux 執行個體`/etc/fstab`上的 ，以便執行個體在執行個體重新啟動時，使用掛載協助程式自動重新掛載 S3 檔案系統。
+ [連線至 EC2 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect.html)。
+ 在編輯器中開啟 `/etc/fstab` 檔案，並將以下行新增至 檔案：

  ```
  file-system-id:/ mount-directory s3files _netdev 0 0
  ```

  其中：
  + *file-system-id* 是 S3 檔案系統的 ID （例如 `fs-0123456789abcdef0`)。
  + *mount-directory* 是 EC2 執行個體上的掛載點目錄 （例如 `/mnt/s3files`)。
  + `_netdev` 指定檔案系統是網路檔案系統，確保執行個體在嘗試掛載之前等待網路可用性。
+ 儲存檔案並關閉編輯器。
+ 在 fstab 中掛載所有檔案系統，以測試 fstab 項目：

  ```
  sudo mount -a
  ```
+ 確認檔案系統已掛載：

  ```
  findmnt -T mount-directory
  ```

**使用 nofail 選項**

建議您將 `nofail`選項新增至生產環境中的 fstab 項目。此選項可讓執行個體開機，即使檔案系統無法掛載：

```
file-system-id:/ mount-directory s3files _netdev,nofail 0 0
```

**使用存取點自動掛載**

若要使用 S3 檔案存取點自動掛載，請包含 `accesspoint`選項：

```
file-system-id:/ mount-directory s3files _netdev,accesspoint=access-point-id 0 0
```

**使用子目錄自動掛載**

若要自動掛載檔案系統的特定子目錄，請指定路徑：

```
file-system-id:/path/to/directory mount-directory s3files _netdev 0 0
```

### 使用 EC2 啟動執行個體精靈
<a name="s3-files-mounting-auto-wizard"></a>
+ 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。
+ 選擇**啟動執行個體**。
+ 請依照本文件，使用 AWS 主控台中的啟動執行個體精靈來啟動 EC2 執行個體。按一下**啟動執行個體**之前，請先設定您的網路並新增 S3 檔案系統，如下列步驟所示。
+ 請務必在**網路設定**中選取子網路。
+ 選取預設安全群組，以確保您的 EC2 執行個體可以存取您的 S3 檔案系統。您無法使用此安全群組透過 Secure Shell (SSH) 存取您的 EC2 執行個體。若要透過 SSH 存取，您可以編輯預設安全性並新增規則，以允許 SSH 或允許 SSH 的新安全群組。您可以使用以下設定：
  + Type (類型)：SSH
  + Protocol (通訊協定)：TCP
  + Port Range (連接埠範圍)：22
  + Source (來源)：Anywhere (任何位置) 0.0.0.0/0
+ 在**儲存**區段下，按一下**檔案系統**，然後選擇 **S3 檔案**。
+ 在檔案系統下拉式清單下，會根據您先前在網路設定中選取的子網路，在可用區域中看到您的檔案系統。選擇您要掛載的 S3 檔案系統。如果您沒有任何檔案系統，請按一下建立新的檔案系統來建立新的檔案系統。
+ 在 EC2 執行個體上輸入要掛載檔案系統的本機掛載路徑 （例如 `/mnt/s3files`)。
+ 將產生命令來掛載檔案系統並將其新增至 fstab。您可以選擇將命令新增至使用者資料，或在 EC2 執行個體啟動後手動執行。然後，您的 EC2 執行個體將設定為在啟動時以及重新啟動時掛載 S3 檔案系統。
+ 選擇**啟動執行個體**。

## 從另一個 VPC 掛載 S3 檔案系統
<a name="s3-files-mounting-cross-vpc"></a>

當您使用 VPC 對等互連或傳輸閘道來連接 VPCs 時，位於一個 VPC 中的 Amazon EC2 執行個體可以存取另一個 VPC 中的 S3 檔案系統。

傳輸閘道是網路傳輸中樞，您可以用於互相連接 VPC 和現場部署網路。如需使用 VPC 傳輸閘道的詳細資訊，請參閱《Amazon VPC 傳輸閘道指南》**中的[開始使用傳輸閘道](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-getting-started.html)。VPC 對等連接是在兩個 VPC 之間的網路連線。這種連線類型可讓您使用私有網際網路通訊協定第 4 版 (IPv4) 或網際網路通訊協定第 6 版 (IPv6) 地址，在兩者間路由流量。您可以使用 VPC 對等互連來連接相同 AWS 區域內或 AWS 區域之間的 VPCs。如需 VPC 對等互連的詳細資訊，請參閱[什麼是 VPC 對等互連？](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html) *Amazon VPC 使用者指南*中的 。

從不同的 VPC 掛載檔案系統時，您需要手動解析掛載目標。您應該使用對應可用區域中掛載目標的 IP 地址，如下所示，並將 *mount-target-ip-address*、*file-system-id* 和 *mount-directory* 取代為您的值。

```
sudo mount -t s3files -o mounttargetip=mount-target-ip-address file-system-id mount-directory
```

為了確保檔案系統的高可用性，建議您一律使用與 NFS 用戶端位於相同可用區域的掛載目標 IP 地址。

或者，您可以使用 Amazon Route 53 做為 DNS 服務。在 Route 53 中，您可以透過建立私有託管區域和資源記錄集，從另一個 VPC 解析掛載目標 IP 地址。如需如何執行此操作的詳細資訊，請參閱《*Amazon Route 53 開發人員指南*》中的[使用私有託管區域](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-private.html)。

如需從另一個 VPC 掛載的詳細資訊，請造訪 [GitHub ReadMe](https://github.com/aws/efs-utils/blob/master/README.md)。

## 從不同 AWS 區域掛載 S3 檔案系統
<a name="s3-files-mounting-cross-region"></a>

如果您要從與檔案系統位於不同 AWS 區域的另一個 VPC 掛載 S3 檔案系統，則需要編輯`s3files-utils.conf`檔案。在 `/etc/amazon/efs/s3files-utils.conf` 中找出下列各行：

```
#region = us-east-1
```

如果檔案系統所在區域的 ID 不在 us-east-1 中，請取消註解該行，並取代該區域的 ID 值。

然後，在組態中變更區域之後，您需要在掛載命令中指定掛載目標 IP：

```
sudo mount -t s3files -o mounttargetip=mount-target-ip-address file-system-id mount-directory
```

## 卸載 S3 檔案系統
<a name="s3-files-mounting-unmount"></a>

若要卸載連線至執行 Linux 之 EC2 執行個體的 S3 檔案系統，請使用 `umount`命令，如下所示：

```
umount mount-directory
```

我們建議您不要指定任何其他 `umount` 選項。請避免設定任何其他與預設值不同的 `umount` 選項。您可以執行 `findmnt`命令，確認您的 S3 檔案系統已卸載。如果卸載成功，掛載目錄上的 `findmnt`命令將不會產生輸出。

# 在 AWS Lambda 函數上掛載 S3 檔案系統
<a name="s3-files-mounting-lambda"></a>

雖然 AWS Lambda 函數提供執行期間可用的暫時性本機儲存，但許多無伺服器工作負載，例如機器學習推論、資料處理和內容管理，都需要存取大型參考資料集、共用檔案或持久性儲存。透過將 S3 檔案系統連接到 Lambda 函數，您可以輕鬆地跨函數叫用共用資料、讀取大型參考資料檔案，以及將函數輸出寫入持久性和共用存放區，所有這些都透過本機掛載路徑。

![\[圖表顯示 S3 儲存貯體、S3 檔案系統和 AWS Lambda 函數之間的資料流程。\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/images/S3Files_Lambda_dataflow.png)


## 先決條件
<a name="s3-files-mounting-lambda-prereqs"></a>

在 Lambda 函數上掛載 S3 檔案系統之前，請確定您有下列項目：
+ **檔案系統、掛載目標和存取點** — S3 檔案系統、至少一個掛載目標和一個存取點都必須可用。如果您使用 AWS 管理主控台建立檔案系統，S3 檔案會自動在預設 VPC 的每個可用區域中建立一個掛載目標，並為檔案系統建立一個存取點 (UID/GID 1000/1000 和`/Lambda`作為存取點範圍）。
+ **Lambda 函數** — 具有執行角色的 Lambda 函數，有權掛載檔案系統。請參閱*AWS Lambda 《 使用者指南*》中的[執行角色和使用者許可](https://docs.aws.amazon.com/lambda/latest/dg/configuration-filesystem-s3files.html#configuration-filesystem-s3files-permissions)。
+ **VPC** — Lambda 函數必須與掛載目標位於相同的 VPC 中。您指派給 Lambda 函數的子網路必須位於具有掛載目標的可用區域中。
+ 您已設定必要的 [Security groups (安全群組)](s3-files-prereq-policies.md#s3-files-prereq-security-groups)。

## 如何在 Lambda 函數上掛載 S3 檔案系統
<a name="s3-files-mounting-lambda-steps"></a>
+ 在 S3 主控台上，選擇左側導覽窗格中**的檔案系統**。
+ 選取您要掛載在 Lambda 函數上的檔案系統。
+ 在**概觀**索引標籤中，選擇**連接至** **Lambda 函數下的連接**。
+ 從下拉式清單中選取可用的 Lambda 函數。可用清單只會顯示具有掛載目標的相同 VPC 和子網路內的函數。
+ 指定本機掛載路徑。
+ 如果您有多個存取點，請選取存取點。
+ 按一下**連接**。您的檔案系統現在將在您下次叫用 Lambda 函數時連接。

如需詳細資訊，請參閱[使用 設定 Amazon S3 檔案存取 AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/configuration-filesystem-s3files.html)。

您可以使用 [Amazon CloudWatch](s3-files-monitoring-cloudwatch.md) 監控檔案系統儲存、效能、用戶端連線和同步錯誤。

# 在 Amazon EKS 上掛載 S3 檔案系統
<a name="s3-files-mounting-eks"></a>

您可以使用支援動態佈建和靜態佈建的 Amazon EFS 容器儲存介面 (CSI) 驅動程式，將 S3 檔案系統連接至 Amazon EKS 叢集。這包括安裝 efs-csi-driver，這是 Amazon EFS 和 S3 檔案的 CSI 驅動程式。

![\[圖表顯示 S3 儲存貯體、S3 檔案系統和 Amazon EKS 叢集之間的資料流程。\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/images/S3Files_EKS_dataflow.png)


## 先決條件
<a name="s3-files-mounting-eks-prereqs"></a>

在 EKS 叢集上掛載 S3 檔案系統之前，請確定您有下列項目：
+ 您的 S3 檔案系統至少有一個可用的掛載目標。
+ 您已設定必要的 [Security groups (安全群組)](s3-files-prereq-policies.md#s3-files-prereq-security-groups)。
+ EKS 叢集必須與掛載目標位於相同的 VPC 中。
+ Amazon EFS CSI 驅動程式需要 AWS Identity and Access Management (IAM) 許可，才能連線至 S3 檔案系統並與之互動。如需詳細資訊，請參閱[將檔案系統連接至 AWS 運算資源的 IAM 角色](s3-files-prereq-policies.md#s3-files-prereq-iam-compute-role)。
+ AWS 建議使用 EKS Pod 身分。如需詳細資訊，請參閱[設定 EKS Pod 身分的概觀](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html)。
+ 如需服務帳戶 IAM 角色和為您的叢集設定 IAM OpenID Connect (OIDC) 提供者的相關資訊，請參閱[為您的叢集建立 IAM OIDC 提供者](https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html)。
+ 已在裝置或 AWS CloudShell 上安裝 `kubectl` 命令列工具。版本可以與您的叢集 Kubernetes 版本相同，或是為最多比該版本更舊一版或更新一版的次要版本。例如，如果您的叢集版本是 1.29，則可以搭配使用 1.28、1.29 或 1.30 `kubectl`版。若要安裝或升級 `kubectl`，請參閱[設定 kubectl 和 eksctl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html)。

## 如何在 EKS 叢集上掛載 S3 檔案系統
<a name="s3-files-mounting-eks-steps"></a>

Amazon EFS CSI 驅動程式需要 IAM 許可才能與檔案系統互動。建立 IAM 角色，並將 `AmazonS3FilesCSIDriverPolicy`受管政策連接至該角色。將 EFS CSI 驅動程式新增至 EKS 叢集，並指定 IAM 角色，以允許 CSI 驅動程式存取 AWS APIs和檔案系統。您可以使用 AWS 管理主控台或 AWS API。如需詳細資訊，請參閱[搭配 Amazon EKS 使用 S3 檔案系統儲存](https://docs.aws.amazon.com/eks/latest/userguide/s3files-csi.html)。

您也可以在 Amazon EKS 上使用具有 AWS Batch 的 S3 檔案系統。若要將 S3 檔案系統磁碟區連接至 Amazon EKS 上的 AWS 批次任務，您可以使用具有持久磁碟區宣告的 Amazon EKS Pod。如需詳細資訊，請參閱《 *AWS 批次 API 參考指南*》中[註冊任務定義](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html)和 [EKS 持久性磁碟區宣告](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksPersistentVolumeClaim.html)頁面的 [persistentVolumeClaim](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksVolume.html#Batch-Type-EksVolume-persistentVolumeClaim) 一節。

您可以使用 [Amazon CloudWatch](s3-files-monitoring-cloudwatch.md) 監控檔案系統儲存、效能、用戶端連線和同步錯誤。

# 在 Amazon ECS 上掛載 S3 檔案系統
<a name="s3-files-mounting-ecs"></a>

您可以將 S3 檔案系統連接至 Amazon ECS 任務定義，然後部署任務以從容器存取 S3 資料。

![\[圖表顯示 S3 儲存貯體、S3 檔案系統和 Amazon ECS 任務之間的資料流程。\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/images/S3Files_ECS_dataflow.png)


在 Amazon ECS 中，S3 檔案磁碟區支援一般可用性的 AWS Fargate 和 ECS 受管執行個體。Amazon EC2 啟動類型不支援 S3 檔案磁碟區。如果您在任務定義中設定 S3 檔案磁碟區，並嘗試在 EC2 啟動類型上執行它，任務將會失敗。

## 先決條件
<a name="s3-files-mounting-ecs-prereqs"></a>

將 S3 檔案系統連接到 ECS 任務之前，請確定您有下列項目：
+ 您的 S3 檔案系統至少有一個掛載目標處於可用狀態。
+ ECS 任務必須與掛載目標位於相同的 VPC 中。
+ 將許可新增至您的 ECS 任務 IAM 角色，以存取 S3 檔案系統。如需詳細資訊，請參閱[將檔案系統連接至 AWS 運算資源的 IAM 角色](s3-files-prereq-policies.md#s3-files-prereq-iam-compute-role)。
+ 您已設定必要的 [Security groups (安全群組)](s3-files-prereq-policies.md#s3-files-prereq-security-groups)。

## 如何在 ECS 任務上掛載 S3 檔案系統
<a name="s3-files-mounting-ecs-steps"></a>
+ 在 S3 主控台上，選擇左側導覽窗格中**的檔案系統**。
+ 選取您要掛載的檔案系統。
+ 在**概觀**索引標籤中，選擇**連接至** **ECS 任務下的連接**。
+ 從下拉式清單中選取所需的 ECS 任務定義。
+ 指定本機掛載路徑。
+ 您可以選擇性地指定存取點、根目錄和傳輸加密連接埠。
+ 在任務定義中連接檔案系統後，您可以透過下列方式使用此任務定義啟動任務：
  + 您可以將任務部署為獨立的一次性執行。如需詳細資訊，請參閱《[Amazon ECS 開發人員指南》中的將應用程式作為 Amazon ECS 任務執行](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/standalone-task-create.html)。 **
  + 您也可以將任務定義部署為服務。如需詳細資訊，請參閱《[Amazon ECS 開發人員指南》中的使用 Amazon ECS 服務部署檢視服務歷史記錄](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-deployment.html)。 **

如需詳細資訊，請參閱[搭配 Amazon ECS 使用 S3 檔案系統儲存](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/s3files-volumes.html)。

您可以使用 [Amazon CloudWatch](s3-files-monitoring-cloudwatch.md) 監控檔案系統儲存、效能、用戶端連線和同步錯誤。

# 建立和管理 S3 檔案資源
<a name="s3-files-resources"></a>

此頁面說明如何建立、設定和管理 S3 檔案資源。若要使用 CLI AWS 管理您的資源，請參閱 [S3 檔案 API 參考](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Operations_Amazon_S3_Files.html)。

**檔案系統**  
連結至 S3 儲存貯體的共用檔案系統。它會將部分主動使用的 S3 資料儲存為檔案和目錄，讓您的應用程式和使用者可以從低延遲效能中受益。您可以使用標準檔案系統操作來存取資料，包括讀取、寫入和鎖定檔案。  
+ [建立檔案系統](s3-files-file-systems-creating.md)
+ [刪除檔案系統](s3-files-file-systems-deleting.md)

**掛載目標**  
掛載目標提供 VPC 中單一可用區域內檔案系統的網路存取權。您需要至少一個掛載目標，才能從運算資源存取檔案系統，而且每個可用區域最多可建立一個掛載目標。我們建議您在您操作的每個可用區域中建立一個掛載目標，以便您的運算資源始終具有檔案系統的本機網路路徑，從而改善可用性和延遲。當您使用 AWS 管理主控台建立檔案系統時，S3 檔案會自動在預設 VPC 的每個可用區域中建立一個掛載目標。  
+ [建立掛載目標](s3-files-mount-targets-creating.md)
+ [管理掛載目標](s3-files-mount-targets-managing.md)
+ [刪除掛載目標](s3-files-mount-targets-deleting.md)

**檔案系統政策**  
檔案系統政策是選用的 IAM 資源政策，您可以為 S3 檔案系統建立該政策，以控制 NFS 用戶端對檔案系統的存取。  
+ [建立檔案系統政策](s3-files-file-system-policies-creating.md)
+ [刪除檔案系統政策](s3-files-file-system-policies-deleting.md)

**存取點**  
存取點是檔案系統的應用程式特定進入點，可簡化共用資料集的大規模資料存取管理。您可以使用存取點，對透過存取點提出的所有檔案系統請求強制執行使用者身分和許可。此外，存取點可以限制用戶端只能存取指定根目錄及其子目錄中的資料。當您使用 AWS 管理主控台建立檔案系統時，S3 檔案會自動為檔案系統建立一個存取點。  
除非您請求增加，否則檔案系統最多可以有 10，000 個存取點。如需詳細資訊，請參閱[不支援的功能、限制和配額](s3-files-quotas.md)。  
+ [建立 S3 檔案系統的存取點](s3-files-access-points-creating.md)
+ [刪除 S3 檔案系統的存取點](s3-files-access-points-deleting.md)

**Tags** (標籤)  
標籤是您定義並與 S3 檔案資源建立關聯的鍵/值對，以協助組織、識別和管理它們。  
+ [標記 S3 檔案資源](s3-files-tagging.md)

**Topics**
+ [

# 建立檔案系統
](s3-files-file-systems-creating.md)
+ [

# 刪除檔案系統
](s3-files-file-systems-deleting.md)
+ [

# 建立掛載目標
](s3-files-mount-targets-creating.md)
+ [

# 管理掛載目標
](s3-files-mount-targets-managing.md)
+ [

# 刪除掛載目標
](s3-files-mount-targets-deleting.md)
+ [

# 建立檔案系統政策
](s3-files-file-system-policies-creating.md)
+ [

# 刪除檔案系統政策
](s3-files-file-system-policies-deleting.md)
+ [

# 建立 S3 檔案系統的存取點
](s3-files-access-points-creating.md)
+ [

# 刪除 S3 檔案系統的存取點
](s3-files-access-points-deleting.md)
+ [

# 標記 S3 檔案資源
](s3-files-tagging.md)

# 建立檔案系統
<a name="s3-files-file-systems-creating"></a>

您可以使用 AWS 主控台、 AWS 命令列界面 (AWS CLI) 或任何現有或新 Amazon S3 S3 API 來建立檔案系統。如需建立新儲存貯體的資訊，請參閱 [建立一般用途儲存貯體](create-bucket-overview.md)。

## 建立檔案系統所需的 IAM 許可
<a name="s3-files-file-systems-creating-permissions"></a>

建立 S3 檔案系統時，您必須指定 S3 檔案擔任的 IAM 角色，以讀取和寫入 S3 儲存貯體。此角色允許 S3 檔案同步檔案系統和 S3 儲存貯體之間的變更。當您使用 AWS 主控台建立檔案系統時，S3 檔案會自動建立此具有必要許可的 IAM 角色。如果您使用的是 AWS CLI 或 S3 API，請參閱 [從檔案系統存取儲存貯體的 IAM 角色](s3-files-prereq-policies.md#s3-files-prereq-iam-creation-role)。

如需管理 API 操作許可的詳細資訊，請參閱 [S3 檔案如何與 IAM 搭配使用](s3-files-security-iam.md)。

## 檔案系統的狀態
<a name="s3-files-file-systems-creating-status"></a>

檔案系統可以具有下表所述的其中一個狀態值，您可以使用 `get-file-system`命令取得這些值。


| 檔案系統狀態 | Description | 
| --- | --- | 
| AVAILABLE | 檔案系統狀態良好，可存取和使用。 | 
| CREATING | S3 檔案正在建立新的檔案系統。 | 
| DELETING | S3 檔案正在刪除檔案系統，以回應使用者起始的刪除請求。 | 
| DELETED | S3 檔案已刪除檔案系統，以回應使用者起始的刪除請求。 | 
| ERROR | 檔案系統出故障且無法復原。若要存取檔案系統資料，請將此檔案系統的備份還原至新檔案系統中。如需錯誤的相關資訊，請參閱 StatusMessage 欄位。 | 

**注意**  
當您嘗試建立範圍為具有大量物件字首的檔案系統時，S3 檔案會傳回錯誤。此錯誤提醒您，大型遞迴重新命名或移動操作可能會影響檔案系統效能並提高 S3 請求成本，因為每個檔案都需要對 S3 儲存貯體進行單獨的複製和刪除請求。如果您仍然想要建立範圍限定於該字首的檔案系統，您可以新增 `--AcceptBucketWarning` 參數。

## 使用 S3 主控台
<a name="s3-files-file-systems-creating-console"></a>

本節說明如何使用 Amazon S3 主控台為 S3 檔案建立檔案系統。
+ 開啟位於 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 的 Amazon S3 主控台。
+ 在頁面頂端的導覽列中，確認您位於所需的 AWS 區域。
+ 在左側導覽窗格中選擇**檔案系統**。
+ 選取**建立檔案系統**。
+ 在建立頁面上，選擇要從中建立檔案系統的 S3 儲存貯體或字首。您可以直接輸入 S3 URI （例如，`s3://bucket-name/prefix`)，或選擇**瀏覽 S3** 以導覽並選擇您的儲存貯體或字首。
+ 為您的檔案系統選取 VPC。S3 檔案會自動選取您的預設 VPC。這是運算資源連接到檔案系統的 VPC。若要使用不同的 VPC，請從下拉式清單中選擇一項。
+ 選取**建立**並等待檔案系統的狀態變成 `Available`。

** AWS 管理主控台上的預設設定**

S3 檔案將使用下列組態建立您的檔案系統：
+ **加密** — S3 檔案會從來源 S3 儲存貯體設定加密組態，並將其套用至檔案系統中的靜態資料。
+ **IAM 角色** — S3 檔案會建立新的 IAM 角色，其會擔任此角色來管理檔案系統和儲存貯體之間的資料同步。
+ **掛載目標** — S3 檔案會在您選擇的 VPC 的每個可用區域中自動建立一個掛載目標。
+ **存取點** — S3 檔案會為檔案系統建立一個存取點。

## 使用 AWS CLI
<a name="s3-files-file-systems-creating-cli"></a>

當您使用 AWS CLI 時，您可以依序建立這些資源。首先，您會建立檔案系統。然後，您可以使用對應的 CLI AWS 命令，為檔案系統建立掛載目標和任何其他選用標籤。

下列`create-file-system`範例命令顯示如何使用 AWS CLI 為 S3 檔案建立檔案系統。

```
aws s3files create-file-system --region aws-region --bucket s3-bucket-arn --client-token idempotency-token --role-arn iam-role
```

將以下內容取代為所需的值：
+ *aws-region* ：儲存貯體 AWS 的區域。例如 `us-east-1`。
+ *bucket-arn* ：S3 儲存貯體的 ARN。
+ *等冪性字符* ：等冪性字符。這是選用的。
+ *iam-role* ：S3 檔案假設從 S3 儲存貯體讀取和寫入的 IAM 角色 ARN。請確定您已將正確的許可新增至此 IAM 角色。如需詳細資訊，請參閱[從檔案系統存取儲存貯體的 IAM 角色](s3-files-prereq-policies.md#s3-files-prereq-iam-creation-role)。

成功建立檔案系統後，S3 檔案會將檔案系統描述傳回為 JSON。

# 刪除檔案系統
<a name="s3-files-file-systems-deleting"></a>

當您刪除檔案系統時，檔案系統、其資料及其組態會永久移除。刪除之前，請確定沒有應用程式正在使用檔案系統，以避免服務中斷。刪除之前，您必須先刪除與檔案系統相關聯的所有掛載目標和存取點。如需詳細資訊，請參閱[刪除掛載目標](s3-files-mount-targets-deleting.md)及[刪除 S3 檔案系統的存取點](s3-files-access-points-deleting.md)。

當您刪除檔案系統時，S3 檔案會檢查檔案系統中的所有變更是否已與連結的 S3 儲存貯體同步。如果有尚未同步的變更，S3 檔案會傳回錯誤，且刪除不會繼續。這可確保在刪除檔案系統之前，所有資料都安全地存放在 S3 儲存貯體中。如果您想要繼續刪除並接受任何未同步的變更將會遺失，您可以使用「強制刪除」選項重試刪除請求。在 AWS CLI 中，將 `--ForceDelete`旗標新增至刪除 API 呼叫。在 AWS 主控台上，選擇刪除檔案系統時出現的錯誤訊息中的**強制**按鈕，同時出現未同步的變更。

## 使用 S3 主控台
<a name="s3-files-file-systems-deleting-console"></a>

本節說明如何使用 Amazon S3 主控台刪除 S3 檔案的檔案系統。
+ 開啟位於 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 的 Amazon S3 主控台。
+ 在頁面頂端的導覽列中，確認您位於要刪除的檔案系統 AWS 區域。
+ 在左側導覽窗格中，選擇**一般用途儲存貯體**。
+ 選擇檔案系統連接的一般用途儲存貯體。
+ 選取**檔案系統**索引標籤，然後選取您要刪除的檔案系統。
+ 選擇 **刪除**。
+ 在確認視窗中，輸入 `confirm`。

## 使用 AWS CLI
<a name="s3-files-file-systems-deleting-cli"></a>

下列`delete-file-system`範例命令顯示如何使用 AWS CLI 刪除 S3 檔案的檔案系統。

```
aws s3files delete-file-system --file-system-id file-system-id
```

# 建立掛載目標
<a name="s3-files-mount-targets-creating"></a>

您需要掛載目標才能從運算資源存取檔案系統，而且每個可用區域最多可以建立一個掛載目標。我們建議您在每個操作的可用區域建立一個掛載目標。當您使用 S3 主控台建立檔案系統時，S3 檔案會自動在預設 VPC 的每個可用區域中建立一個掛載目標。

您可以一次在一個 VPC 中為檔案系統建立掛載目標。如果您想要修改掛載目標的 VPC，您必須先刪除檔案系統的所有現有掛載目標，然後在新的 VPC 中建立掛載目標。如果 VPC 在可用區域中有多個子網路，您僅可在其中一個子網路中建立一個掛載目標。在可用區域的所有 EC2 執行個體都可以共用單一掛載目標。

## 使用 S3 主控台
<a name="s3-files-mount-targets-creating-console"></a>

本節說明如何使用 Amazon S3 主控台來建立 S3 檔案的掛載目標。

1. 開啟位於 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 的 Amazon S3 主控台。

1. 在頁面頂端的導覽列中，確認您位於要建立掛載目標的檔案系統 AWS 區域中。

1. 在左側導覽窗格中，選擇**一般用途儲存貯體**。

1. 選擇檔案系統所連接的一般用途儲存貯體。

1. 選取**檔案系統**索引標籤，然後選取所需的檔案系統。

1. 選取**掛載目標**索引標籤，然後選取**建立掛載目標**。

1. 在建立掛載目標頁面上，會自動選取您的預設 VPC。選擇可用區域和子網路 ID。掛載目標建立後，無法編輯 VPC、可用區域和子網路 ID。
**注意**  
IP 地址類型必須符合子網路的 IP 類型。此外，IP 地址類型會覆寫子網路的 IP 定址屬性。例如，如果 IP 地址類型為IPv4-only，且您的子網路已啟用 IPv6 定址屬性，則子網路中建立的網路介面會從子網路的範圍接收 IPv4 地址。如需詳細資訊，請參閱[修改子網路的公有 IP 定址屬性](https://docs.aws.amazon.com/vpc/latest/userguide/modify-subnets.html)。

1. 如果您知道要放置掛載目標的 IP 地址，請在符合 IP 地址類型的 IP 地址方塊中輸入該地址。如果您未指定值，S3 檔案會從指定的子網路中選取未使用的 IP 地址。

1. 選擇要與掛載目標建立關聯的安全群組。請參閱 [Security groups (安全群組)](s3-files-prereq-policies.md#s3-files-prereq-security-groups) 的先決條件，以了解開始使用 檔案系統所需的安全群組組態。

1. 選擇**建立掛載目標**。

## 使用 AWS CLI
<a name="s3-files-mount-targets-creating-cli"></a>

下列`create-mount-target`範例命令顯示如何使用 AWS CLI 為 S3 檔案建立掛載目標。

```
aws s3files create-mount-target --region aws-region --file-system-id file-system-id --subnet-id subnet-id
```

掛載目標最多可能需要 \$15 分鐘才能建立。

# 管理掛載目標
<a name="s3-files-mount-targets-managing"></a>

您可以新增或移除與掛載目標相關聯的安全群組。安全群組會定義傳入和傳出存取。當您變更與掛載目標相關聯的安全群組時，請確保您授予必要的傳入和傳出存取權限。這樣做可讓您的運算資源與檔案系統通訊。請參閱先決條件[Security groups (安全群組)](s3-files-prereq-policies.md#s3-files-prereq-security-groups)中的 ，以了解開始使用檔案系統所需的安全群組組態。

## 使用 S3 主控台
<a name="s3-files-mount-targets-managing-console"></a>

本節說明如何使用 Amazon S3 主控台來新增或移除 S3 檔案中掛載目標的安全群組。

1. 登入 AWS 管理主控台，並在 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)：// 開啟 Amazon S3 主控台。

1. 在頁面頂端的導覽列中，確認您位於掛載目標存在的所需 AWS 區域中。

1. 在左側導覽窗格中，選擇**一般用途儲存貯體**。

1. 選擇檔案系統所連接的一般用途儲存貯體。

1. 選取**檔案系統**索引標籤，然後選取所需的檔案系統。

1. 選取**掛載目標**索引標籤，然後選取您要編輯的掛載目標。

1. 選擇**編輯**。您將看到掛載目標的詳細資訊。

1. 從安全群組下拉式清單中新增或移除安全群組。

1. 選擇**儲存**。

## 使用 AWS CLI
<a name="s3-files-mount-targets-managing-cli"></a>

下列`update-mount-target`範例命令顯示如何使用 AWS CLI 在 S3 檔案中新增或移除掛載目標的安全群組。

```
aws s3files update-mount-target --region aws-region --mount-target-id mount-target-id --security-groups security-group-ids-separated-by-space
```

# 刪除掛載目標
<a name="s3-files-mount-targets-deleting"></a>

當您刪除掛載目標時， 操作會強制中斷檔案系統的任何掛載，這可能會中斷使用這些掛載的運算資源和應用程式。為了避免應用程式中斷，請在刪除掛載目標前停止應用程式並卸載檔案系統。

您可以使用 AWS 管理主控台、 AWS CLI 或以程式設計方式使用 AWS SDKs 來刪除檔案系統的掛載目標。

## 使用 S3 主控台
<a name="s3-files-mount-targets-deleting-console"></a>

本節說明如何使用 Amazon S3 主控台刪除 S3 檔案的掛載目標。

1. 登入 AWS 管理主控台，並在 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)：// 開啟 Amazon S3 主控台。

1. 在頁面頂端的導覽列中，確認您位於要刪除的掛載目標 AWS 區域。

1. 在左側導覽窗格中，選擇**一般用途儲存貯體**。

1. 選擇檔案系統所連接的一般用途儲存貯體。

1. 選取**檔案系統**索引標籤，然後選取所需的檔案系統。

1. 選取**掛載目標**索引標籤，然後選取您要刪除的掛載目標。

1. 選擇 **刪除**。

1. 在確認視窗中，輸入 **confirm** ，然後選擇**刪除**。

## 使用 AWS CLI
<a name="s3-files-mount-targets-deleting-cli"></a>

下列`delete-mount-target`範例命令顯示如何使用 AWS CLI 刪除 S3 檔案的掛載目標。

```
aws s3files delete-mount-target --region aws-region --mount-target-id mount-target-id
```

# 建立檔案系統政策
<a name="s3-files-file-system-policies-creating"></a>

您可以使用檔案系統政策，授予或拒絕 NFS 用戶端在檔案系統上執行掛載、寫入和根存取等操作的許可。檔案系統具有空白 （預設） 檔案系統政策，或正好有一個明確的政策。您可以在建立檔案系統後，使用 AWS 管理主控台、 AWS CLI 或 AWS SDK 隨時更新檔案系統政策。

您可以使用 Amazon S3 主控台、CLI、以程式設計方式搭配 AWS SDKs AWS 或 S3 檔案 API 來更新檔案系統政策。這些政策變更可能需要幾分鐘的時間才會生效。S3 檔案系統政策有 20，000 個字元的限制。如需使用 S3 檔案系統政策、支援的動作、支援的條件金鑰和範例的詳細資訊，請參閱 [S3 檔案如何與 IAM 搭配使用](s3-files-security-iam.md)。

## 使用 S3 主控台
<a name="s3-files-file-system-policies-creating-console"></a>

本節說明如何使用 Amazon S3 主控台為 S3 檔案建立檔案系統政策。

1. 登入 AWS 管理主控台，並在 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)：// 開啟 Amazon S3 主控台。

1. 在頁面頂端的導覽列中，確認您位於檔案系統所在的 AWS 區域。

1. 在左側導覽窗格中選擇**檔案系統**。

1. 選擇所需的檔案系統。

1. 選取**許可**索引標籤，然後選取**編輯**。

1. 您可以使用政策編輯器來新增自己的檔案系統政策。

1. 完成編輯策略後，請選擇**儲存**。

## 使用 AWS CLI
<a name="s3-files-file-system-policies-creating-cli"></a>

下列`put-file-system-policy`範例命令顯示如何使用 AWS CLI 為 S3 檔案建立檔案系統政策。下列檔案系統政策僅授予 IAM 角色 `ClientMount`（唯讀） `ReadOnly` 許可。將範例 AWS 帳戶 ID *111122223333* 取代為 AWS 您的帳戶 ID。

```
aws s3files put-file-system-policy --file-system-id file-system-id --policy '{
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/ReadOnly"
            },
            "Action": [
                "s3files:ClientMount"
            ]
        }
    ]
}'
```

# 刪除檔案系統政策
<a name="s3-files-file-system-policies-deleting"></a>

您可以使用 Amazon S3 主控台和 AWS CLI 刪除檔案系統政策。

## 使用 S3 主控台
<a name="s3-files-file-system-policies-deleting-console"></a>

本節說明如何使用 Amazon S3 主控台刪除 S3 檔案的檔案系統政策。

1. 登入 AWS 管理主控台，並在 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)：// 開啟 Amazon S3 主控台。

1. 在頁面頂端的導覽列中，確認您位於檔案系統所在的 AWS 區域。

1. 在左側導覽窗格中選擇**檔案系統**。

1. 選擇您的檔案系統。

1. 選取**許可**索引標籤，然後選取**刪除**。

1. 在確認視窗中，輸入 **confirm** ，然後選擇**刪除**。

## 使用 AWS CLI
<a name="s3-files-file-system-policies-deleting-cli"></a>

下列`delete-file-system-policy`範例命令顯示如何使用 AWS CLI 刪除 S3 檔案的檔案系統政策。

```
aws s3files delete-file-system-policy --file-system-id file-system-id
```

# 建立 S3 檔案系統的存取點
<a name="s3-files-access-points-creating"></a>

存取點是檔案系統的應用程式特定進入點，可簡化共用資料集的大規模資料存取管理。您可以使用存取點，對透過存取點提出的所有檔案系統請求強制執行使用者身分和許可。此外，存取點可以限制用戶端只能存取指定根目錄及其子目錄中的資料。當您使用 AWS 管理主控台建立檔案系統時，S3 檔案會自動為檔案系統建立一個存取點。

除非您請求增加，否則檔案系統最多可以有 10，000 個存取點。如需詳細資訊，請參閱[不支援的功能、限制和配額](s3-files-quotas.md)。您可以使用 S3 主控台、 AWS CLI 或 AWS SDK 建立存取點。

S3 檔案系統的存取點無法在建立後編輯。如果您想要進行更新，您必須刪除現有的存取點並建立新的存取點。

## 使用 S3 主控台
<a name="s3-files-access-points-creating-console"></a>

本節說明如何使用 Amazon S3 主控台來建立 S3 檔案系統的存取點。

1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 開啟 Amazon S3 主控台。

1. 在頁面頂端的導覽列中，確認您位於要為其建立存取點的檔案系統 AWS 區域中。

1. 在左側導覽窗格中選擇**檔案系統**。

1. 選擇所需的檔案系統。

1. 選取**存取點**索引標籤，然後選取**建立存取點**。

1. 在建立頁面上，輸入存取點**的名稱**。

1. （選用） 指定存取點的根目錄路徑。使用此存取點的用戶端將僅限於此目錄及其子目錄。根據預設，S3 Files 會假設存取點的根目錄是檔案系統的根目錄。

1. （選用） 在 **POSIX 使用者**面板中，您可以指定要使用的完整 POSIX 身分，強制使用存取點的用戶端執行所有檔案操作的使用者和群組資訊。
   + **使用者 ID**：輸入使用者的數字 POSIX 使用者 ID。
   + **群組 ID**：輸入使用者的數字 POSIX 群組 ID。
   + **次要群組 ID**：輸入選用逗號分隔的次要群組 ID 清單。

1. （選用） 對於**根目錄建立許可**，您可以指定當 S3 檔案建立根目錄路徑時要使用的許可，如果已指定且根目錄尚不存在。
**注意**  
如果您未指定任何根目錄擁有權和許可，且根目錄尚不存在，S3 檔案將不會建立根目錄。嘗試使用存取點掛載檔案系統將會失敗。
   + **擁有者使用者 ID**：輸入用作為根目錄擁有者的數字 POSIX 使用者 ID。
   + **擁有者群組 ID**：輸入用作根目錄擁有者群組的數字 POSIX 群組 ID。
   + **許可**：輸入目錄的 Unix 模式。常見的組態是 755。確定已為存取點使用者設定執行位元，以便他們能夠掛載。

1. （選用） 在**標籤**下，您可以選擇將標籤新增至存取點。

1. 選擇 **Create access point (建立新的存取點)**。

## 使用 AWS CLI
<a name="s3-files-access-points-creating-cli"></a>

下列`create-access-point`範例命令顯示如何使用 AWS CLI 為 S3 檔案系統建立存取點。

```
aws s3files create-access-point --file-system-id file-system-id --root-directory root-directory --posix-user posix-user
```

例如：

```
aws s3files create-access-point --file-system-id fs-abcdef0123456789a --client-token 010102020-3 \
  --root-directory "Path=/s3files/mobileapp/east,CreationInfo={OwnerUid=0,OwnerGid=11,Permissions=775}" \
  --posix-user "Uid=22,Gid=4" \
  --tags Key=Name,Value=east-users
```

**注意**  
如果在同一個檔案系統上快速連續傳送多個建立存取點的請求，且檔案系統接近存取點限制，您可能會遇到這些請求的限流回應。這是為了確保檔案系統不超過存取點配額。

# 刪除 S3 檔案系統的存取點
<a name="s3-files-access-points-deleting"></a>

刪除存取點時，請確保在刪除之前沒有應用程式正在使用存取點，以避免服務中斷。刪除後，存取點及其組態會永久移除。

## 使用 S3 主控台
<a name="s3-files-access-points-deleting-console"></a>

本節說明如何使用 Amazon S3 主控台刪除 S3 檔案的存取點。

1. 登入 AWS 管理主控台，並在 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)：// 開啟 Amazon S3 主控台。

1. 在頁面頂端的導覽列中，確認您位於具有要刪除之存取點的檔案系統 AWS 區域。

1. 在左側導覽窗格中，選擇**一般用途儲存貯體**。

1. 選擇檔案系統所連接的一般用途儲存貯體。

1. 選取**檔案系統**索引標籤，然後選取您要使用的檔案系統。

1. 選取**存取點**索引標籤，然後選取您要刪除的存取點。

1. 選擇 **刪除**。

1. 在確認視窗中，輸入 **confirm** ，然後選擇**刪除**。

## 使用 AWS CLI
<a name="s3-files-access-points-deleting-cli"></a>

下列`delete-access-point`範例命令顯示如何使用 AWS CLI 刪除 S3 檔案的存取點。

```
aws s3files delete-access-point --access-point-id access-point-id
```

# 標記 S3 檔案資源
<a name="s3-files-tagging"></a>

為了協助您管理 S3 檔案資源，您可以將自己的中繼資料以標籤形式指派給每個資源。透過標籤，您可以用不同的方式分類 AWS 資源，例如依用途、擁有者或環境。當您有許多相同類型的資源時，此分類非常有用，因為您可以根據指派給該資源的標籤快速識別特定資源。您可以標記帳戶中已存在的 S3 檔案系統和存取點資源。本主題說明標籤並示範如何建立它們。

## 標籤限制
<a name="s3-files-tagging-restrictions"></a>

以下基本限制適用於標籤：
+ 每一資源最多標籤數 – 50
+ 對於每一個資源，每個標籤金鑰必須是唯一的，且每個標籤金鑰只能有一個值。
+ 索引鍵長度上限 - 128 個 UTF-8 Unicode 字元
+ 值的長度上限 - 256 個 UTF-8 Unicode 字元
+ 允許的字元包括：以 UTF-8 表示的字母、數字和空格，以及下列字元：`+ - = . _ : / @`。
+ 標籤鍵與值皆區分大小寫。
+ 字`aws:`首會保留供 AWS 使用。如果標籤具有此字首的標籤金鑰，則您無法編輯或刪除標籤的金鑰或值。具 `aws:` 字首的標籤，不算在受資源限制的標籤計數內。

您無法僅根據資源的標籤更新或刪除資源；您必須指定資源識別符。例如，若要刪除使用名為 的標籤金鑰標記的檔案系統`DeleteMe`，您必須使用 `DeleteFileSystem`動作搭配檔案系統的資源識別符，例如檔案系統 ID。

當您標記公有或共用資源時，您指派的標籤僅適用於 AWS 您的帳戶。其他 AWS 帳戶都無法存取這些標籤。對於共用資源的標籤型存取控制，每個 AWS 帳戶必須指派自己的一組標籤，以控制對資源的存取。

## 使用 S3 主控台
<a name="s3-files-tagging-console"></a>

您可以使用 S3 檔案主控台來管理 資源上的標籤。
+ 開啟位於 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 的 Amazon S3 主控台。
+ 在頁面頂端的導覽列中，確認您位於所需的 AWS 區域。
+ 在左側導覽窗格中選擇**檔案系統**。
+ 您可以在建立資源時指定資源的標籤，例如 S3 檔案系統或存取點。或者，您也可以前往 資源的 屬性，在建立後新增、修改或刪除標籤。

## 使用 AWS CLI
<a name="s3-files-tagging-cli"></a>

如果您使用的是 S3 檔案 API、CLI AWS 或 AWS SDK，您可以使用 `TagResource` S3 檔案 API 動作將標籤套用至現有資源。此外，某些資源建立動作可讓您在建立資源時指定資源的標籤，例如建立檔案系統時。

用於管理標籤的 AWS CLI 命令，以及對等的 S3 檔案 API 動作，會列在下表中。


| CLI 命令 | Description | 同等 API 操作 | 
| --- | --- | --- | 
| tag-resource | 新增標籤或更新現有的標籤 | TagResource | 
| list-tags-for-resource | 擷取現有的標籤 | ListTagsForResource | 
| untag-resource | 刪除現有的標籤 | UntagResource | 

# 了解同步的運作方式
<a name="s3-files-synchronization"></a>

S3 檔案可讓檔案系統和連結的 S3 儲存貯體自動同步。您主動使用的資料會複製到檔案系統，因此您可以使用標準 Linux 檔案操作，以低延遲讀取和寫入檔案。S3 檔案需要在連結的 S3 儲存貯體上啟用 S3 版本控制。當您在檔案系統上編輯檔案時，S3 檔案會將您的變更複製回 S3 儲存貯體，做為對應物件的新版本，確保保留舊版本。當其他應用程式新增、修改或刪除 S3 儲存貯體中的物件時，S3 檔案會自動反映檔案系統中的變更。當因為同時變更檔案系統和 S3 儲存貯體中的相同資料而發生衝突時，S3 檔案會在發生[衝突時將 S3 儲存貯體視為事實來源](#s3-files-sync-source-of-truth)。

為了最佳化儲存成本，S3 檔案會從檔案系統中移除您最近未使用的資料。您的資料會長期存放在連結的 S3 儲存貯體中，並在您下次存取時擷取回檔案系統。

## S3 儲存貯體可透過檔案系統存取
<a name="s3-files-sync-bucket-accessible"></a>

建立 S3 檔案系統之後，您可以在[運算資源上掛載 S3 儲存貯](s3-files-attach-compute.md)體，並立即開始存取 S3 儲存貯體資料。根據預設，當您第一次透過列出目錄的內容或在其中開啟檔案來存取目錄時，S3 檔案會從 S3 儲存貯體匯入該目錄中所有檔案的中繼資料，以及小於匯入大小閾值 （預設 128 KB) S3的檔案資料。目錄的第一次存取可能會有較高的延遲，但後續的讀取和寫入速度明顯更快。透過預先匯入中繼資料，S3 檔案可讓您瀏覽目錄內容、檢視檔案大小，以及檢查低延遲的許可。

例如，假設 S3 儲存貯體包含具有 1，000 個物件`data/images/`的字首。第一次執行 時`ls /mnt/s3files/data/images/`，S3 檔案會匯入所有 1，000 個檔案的中繼資料，並以非同步方式將低於匯入大小閾值的檔案資料複製到檔案系統。此初始清單可能需要幾秒鐘的時間，但該目錄中個別檔案`cat`的後續命令如 `stat`、 `ls -la`或 會以低延遲傳回。

對於大於匯入大小閾值的檔案，S3 檔案只會匯入中繼資料，而資料不會複製到檔案系統，而是在您存取時直接從 S3 儲存貯體讀取。您可以調整此閾值，以更符合工作負載。例如，對於重複存取相同檔案並受益於低延遲讀取的工作負載，您可以提高匯入量，以預先匯入更多資料。對於循序串流資料的工作負載，較低的閾值可能更具成本效益，因為當資料以大型區塊而非小型隨機讀取循序讀取時，預先匯入資料的延遲效益較不具意義。如需詳細資訊，請參閱[自訂 S3 檔案的同步](s3-files-synchronization-customizing.md)。

## 檔案系統中的變更會自動反映在 S3 儲存貯體中
<a name="s3-files-sync-changes-to-bucket"></a>

當您在檔案系統中建立、修改或刪除檔案時，S3 檔案會自動將這些變更複製到 S3 儲存貯體。新檔案會變成新的 S3 物件，現有檔案的變更會變成新的物件版本，而刪除的檔案會變成 S3 刪除標記。

您透過檔案系統在檔案和目錄上設定的 POSIX 許可，例如擁有者 (UID)、群組 (GID) 和許可位元，會在對應的 S3 物件上儲存為使用者定義的 S3 物件中繼資料。當您使用 `chmod`、 `chown`或 變更許可時`chgrp`，S3 檔案會將這些變更連同任何資料變更一起匯出到您的 S3 儲存貯體。當 S3 檔案從您的 S3 儲存貯體匯入物件時，它會讀取此中繼資料，並在檔案系統上套用對應的 POSIX 許可。沒有 POSIX 許可中繼資料的物件會獲指派預設許可。

當您修改檔案系統中的檔案時，S3 檔案會等待最多 60 秒，在該時間彙總檔案的任何後續變更，然後再複製到 S3 儲存貯體。這表示在單一 S3 PUT 請求中擷取對相同檔案的快速連續寫入，而不是為每個個別變更產生新的物件版本，從而降低 S3 請求成本和儲存成本。如果您在 S3 檔案將變更複製回 S3 儲存貯體後繼續修改檔案，它會視需要複製後續變更。

例如，如果應用程式開啟日誌檔案並在 30 秒內附加 50 次，S3 檔案會將全部 50 個批次附加到單一 S3 PUT 請求。如果應用程式在第一次同步後繼續寫入，S3 檔案會在後續同步中複製其他變更。

## S3 儲存貯體的變更會自動出現在您的檔案系統中
<a name="s3-files-sync-changes-from-bucket"></a>

S3 檔案會使用 S3 事件通知來監控 S3 儲存貯體中的變更。當另一個使用 S3 API 的應用程式新增、修改或刪除 S3 儲存貯體中的物件時，S3 檔案會自動針對目前存放在檔案系統高效能儲存中的檔案，反映檔案系統中的這些變更。資料已從檔案系統過期的檔案不會更新，直到您下次存取它們為止，此時 S3 檔案會從 S3 儲存貯體擷取最新版本。

## 了解重新命名和移動操作的影響
<a name="s3-files-sync-rename-move"></a>

Amazon S3 使用平面儲存結構，透過其金鑰名稱來識別物件。雖然 S3 檔案可讓您在目錄中組織資料，但 S3 沒有目錄的原生概念。在您的檔案系統中顯示為目錄的項目，是 S3 儲存貯體中物件金鑰共用的常見字首。此外，S3 物件不可變，且不支援原子重新命名。因此，當您重新命名或移動檔案時，S3 檔案必須使用更新後的金鑰將資料寫入新的物件，並刪除原始物件。當您重新命名或移動目錄時，S3 檔案必須針對共用該字首的每個物件重複此程序。因此，當您重新命名或移動包含數千萬個檔案的目錄時，S3 請求成本和同步時間會大幅增加。

當您嘗試建立範圍超過 1.25 億個物件的字首的檔案系統時，S3 檔案會傳回錯誤。此錯誤會提醒您，大型遞迴重新命名或移動操作可能會影響檔案系統效能，因為每個檔案都需要對 S3 儲存貯體提出個別的寫入和刪除請求。如果您仍然想要建立範圍限定於該字首的檔案系統，您可以新增 `--AcceptBucketWarning` 參數。

由於 S3 檔案會在 S3 儲存貯體上個別重新命名物件，因此在重新命名完成之前，兩個目錄都會顯示在 S3 儲存貯體上。在重新命名目錄之後，但在重新命名完全同步之前寫入的物件將不會移動。為了簡化資料重組工作，建議您不要在重新命名相符目錄時，透過 S3 儲存貯體建立新物件。

例如，如果您執行 `mv /mnt/s3files/projects/alpha /mnt/s3files/projects/beta`，重新命名會立即在檔案系統上完成。在 S3 儲存貯體上，S3 檔案會開始將每個物件複製和刪除至 S3 儲存貯體中的新金鑰 （以 取代`projects/alpha/`字首`projects/beta/`)，並刪除原始物件。在此過程中，S3 儲存貯體會暫時在 `projects/alpha/`和 下包含物件`projects/beta/`。移動所有物件後，只會`projects/beta/`保留 。

## 未使用的資料已從檔案系統過期，以最佳化儲存
<a name="s3-files-sync-expiration"></a>

S3 檔案會透過自動移除最近未從檔案系統讀取的檔案資料，來最佳化儲存成本。您的資料會安全地存放在 S3 儲存貯體中。S3 檔案只會從檔案系統移除複本。名稱、大小和許可等檔案中繼資料絕不會從檔案系統中移除，因此您可以低延遲繼續瀏覽檔案系統。

如果檔案系統中的檔案未讀取 30 天 （可設定），且其變更已同步至 S3 儲存貯體，S3 檔案會從檔案系統移除檔案資料。下次讀取該檔案時，S3 檔案會從 S3 儲存貯體擷取對應物件的最新版本，並將其複製回檔案系統。

例如，假設您在 1 月`/mnt/s3files/data/batch-jan.parquet`在 中處理資料集，而且不會再次存取該資料集。30 天後，S3 檔案會從檔案系統移除檔案資料。檔案仍會出現在具有正確大小和許可的目錄中，但資料不再位於檔案系統上。當您在 4 月再次讀取檔案時，S3 檔案會從 S3 儲存貯體擷取檔案，並將其複製回檔案系統。第一個讀取的延遲可能較高，但後續讀取速度很快。

## S3 儲存貯體是發生衝突時的事實來源
<a name="s3-files-sync-source-of-truth"></a>

當透過檔案系統修改相同的檔案，且對應的 S3 物件也在 S3 檔案將檔案系統變更同步回 S3 儲存貯體之前變更時，就會發生衝突。例如，您可以在另一個應用程式上傳對應物件的新版本時，透過掛載的檔案系統編輯檔案，或直接在連結的 S3 儲存貯體中刪除檔案。

S3 檔案在嘗試將檔案系統變更同步回 S3 儲存貯體時，或收到 S3 事件通知指出物件已變更時，偵測到衝突。您的 S3 儲存貯體做為資料的長期存放區，因此當發生衝突時，S3 檔案會將 S3 儲存貯體視為事實來源。這可提供可預測的一致性，確保 S3 儲存貯體中的版本一律優先。發生衝突時，S3 檔案會將衝突的檔案從檔案系統中的目前位置移至遺失和找到的目錄，並將最新版本從連結的 S3 儲存貯體匯入檔案系統。

例如，假設您`/mnt/s3files/report.csv`透過檔案系統編輯 。在 S3 檔案將您的變更同步回 S3 儲存貯體之前，另一個應用程式會將新版本的 `report.csv`直接上傳至 S3 儲存貯體。當 S3 檔案偵測到衝突時，會將您的 版本移至失物招領目錄`report.csv`，並將其取代為 S3 儲存貯體中的 版本。

失物招領目錄位於檔案系統的根目錄中，名稱為 `.s3files-lost+found-file-system-id`。當 S3 檔案將檔案移至遺失並找到的目錄時，它會在檔案名稱前面加上識別符，以區分可能隨時間移動的相同檔案的多個版本。失物招領目錄中的檔案不會複製到 S3 儲存貯體。您可以刪除檔案並從此目錄中複製檔案，但無法移動或重新命名其中的檔案或刪除目錄本身。如果您想要在 S3 儲存貯體中保留檔案系統變更，而非最新版本，請將檔案從失物清單複製回其原始路徑。您可以從失物招領目錄中檔案的延伸屬性擷取檔案的原始路徑。然後S3 檔案會將它複製到 S3 儲存貯體，做為物件的新版本。如需詳細資訊，請參閱[對 S3 檔案進行故障診斷](s3-files-troubleshooting.md)。

**注意**  
S3 檔案移至遺失和找到目錄的衝突檔案會無限期保留在其中，並計入您的檔案系統儲存成本。您應該從遺失和找到的目錄中刪除檔案，以便在不再需要儲存時釋放儲存空間。

預設同步設定適用於大多數工作負載，以低延遲、以檔案為基礎的 S3 資料存取。如需如何設定這些參數的詳細資訊，請參閱 [自訂 S3 檔案的同步](s3-files-synchronization-customizing.md)。

**Topics**
+ [

## S3 儲存貯體可透過檔案系統存取
](#s3-files-sync-bucket-accessible)
+ [

## 檔案系統中的變更會自動反映在 S3 儲存貯體中
](#s3-files-sync-changes-to-bucket)
+ [

## S3 儲存貯體的變更會自動出現在您的檔案系統中
](#s3-files-sync-changes-from-bucket)
+ [

## 了解重新命名和移動操作的影響
](#s3-files-sync-rename-move)
+ [

## 未使用的資料已從檔案系統過期，以最佳化儲存
](#s3-files-sync-expiration)
+ [

## S3 儲存貯體是發生衝突時的事實來源
](#s3-files-sync-source-of-truth)
+ [

# 自訂 S3 檔案的同步
](s3-files-synchronization-customizing.md)

# 自訂 S3 檔案的同步
<a name="s3-files-synchronization-customizing"></a>

S3 檔案可讓您透過同步組態，控制檔案系統和連結的 S3 儲存貯體之間的資料流。預設設定會平衡大多數工作負載的延遲和成本，但您可以調整它們以符合您的存取模式。預先匯入更多資料可降低讀取延遲，同時產生更高的儲存和寫入費用。匯入較少的資料可降低儲存成本，但表示從 S3 提供更高的讀取延遲。每個組態有兩個元件：匯入資料規則，可控制哪些資料會複製到檔案系統，以及何時和過期資料規則，可控制未使用的資料保留在檔案系統上的時間。您可以使用 AWS 管理主控台或 PutSynchronizationConfiguration API 更新這些規則。

## 匯入資料規則
<a name="s3-files-sync-import-rules"></a>

匯入資料規則會控制將資料從儲存貯體複製到檔案系統的方式。每個檔案系統最多可以有 10 個匯入資料規則。每個匯入資料規則都有下列參數：

**字**首 – 套用規則的 S3 字首。為檔案系統中的整個儲存貯體 （檔案系統範圍） 或特定字首 （例如 "data/ml/") 指定空字串 ("")。除非使用「」指定整個儲存貯體，否則字首必須以正斜線 (/) 結尾。您必須僅包含根目錄的一個匯入規則。預設："" （整個儲存貯體或檔案系統範圍）。

**trigger** – 何時匯入資料：ON\$1DIRECTORY\$1FIRST\$1ACCESS 或 ON\$1FILE\$1ACCESS。預設：ON\$1DIRECTORY\$1FIRST\$1ACCESS。
+ **ON\$1DIRECTORY\$1FIRST\$1ACCESS** – 在您第一次存取目錄時匯入檔案資料。例如，當您第一次透過列出目錄的內容或在其中開啟檔案來存取目錄時，會匯入該目錄中小於 sizeLessThan 閾值的所有直接子檔案的資料。此選項適用於第一次存取檔案時需要低延遲的工作負載。
+ **ON\$1FILE\$1ACCESS** – 只有在第一次讀取檔案時，才會匯入檔案資料。此選項可將匯入的資料降至最低，因為第一次讀取時會有較高的延遲。

**sizeLessThan** – 要自動匯入的檔案大小上限 （以位元組為單位）。雖然 S3 檔案匯入所有檔案的中繼資料，但只會匯入小於此閾值之檔案的資料。下限：0 個位元組 （未匯入資料，仍會匯入中繼資料）。上限：52，673，613，135，872 位元組 (48 TiB)。預設：131，072 位元組 (128 KB)。

### 字首比對行為
<a name="s3-files-sync-prefix-matching"></a>

當多個匯入資料規則符合檔案時，S3 檔案會套用具有最特定字首的規則。例如，假設您有三個規則：
+ 規則 1：字首 = "" （整個儲存貯體）、sizeLessThan = 64 KB、觸發 = ON\$1FILE\$1ACCESS
+ 規則 2：字首 = "hot/"、sizeLessThan = 1 MB、觸發 = ON\$1DIRECTORY\$1FIRST\$1ACCESS
+ 規則 3：字首 = "hot/largeData/"， sizeLessThan = 256 KB， trigger = ON\$1DIRECTORY\$1FIRST\$1ACCESS

對於 hot/largeData/data.txt 的檔案，S3 檔案會套用規則 3。對於 hot/data.txt 的檔案，S3 檔案會套用規則 2。對於 cold/data.txt 的檔案，S3 檔案會套用規則 1，因為冷/字首沒有特定規則。

## 過期資料規則
<a name="s3-files-sync-expiration-rules"></a>

過期資料規則控制何時從檔案系統移除未使用的資料，以最佳化儲存成本。S3 檔案會在指定的持續時間內未讀取資料，且其變更已同步至 S3 儲存貯體後移除資料。每當讀取檔案時，其過期計時器就會重設，延長資料保留在檔案系統中的時間。您可以在過期資料規則中指定下列參數：

**daysAfterLastAccess** – 從檔案系統移除資料時，上次讀取後的天數。最短：1 天。上限：365 天。預設：30 天。

如果您有經常存取相同資料的長時間執行工作負載，請考慮較長的過期期間 (30–90 天）。對於暫時資料，請考慮較短的期間 (1-7 天）。

## 範例組態
<a name="s3-files-sync-example-configs"></a>

**一般用途檔案共用 （預設組態）** – 開發人員和資料科學家團隊會掛載 S3 檔案系統，以共用程式碼、組態檔案和小型資料集。大多數檔案都低於 128 KB，而且會在一天中重複讀取。預設組態適用於此工作負載：ON\$1DIRECTORY\$1FIRST\$1ACCESS 會在第一次存取目錄中的任何檔案時匯入中繼資料和小型檔案資料，這在相同目錄中的檔案可能會一起存取時很有效，例如專案中的來源檔案或部署中的組態檔案。任何使用者後續存取都很快速。當使用者開啟大型檔案，例如日誌封存時，S3 檔案會自動直接從 S3 串流，以獲得高輸送量。30 天過期時段會保留檔案系統上主動使用的檔案，無需手動清除。

**具有重複讀取的 ML 訓練** – 訓練任務會跨多個 epoch 重複讀取數千個小型檔案 (<10 MB)。若要將延遲降至最低，請使用 ON\$1DIRECTORY\$1FIRST\$1ACCESS 設定高 sizeLessThan 閾值 （例如 10 MB)，以便在訓練指令碼先列出每個目錄時預先載入檔案資料。設定短暫過期 （例如 3 天），以便在訓練任務完成後，立即從檔案系統移除資料。

具有**廣泛檔案探索的代理程式工作負載** – AI 代理程式會探索大型文件、程式碼或知識庫檔案的儲存庫來回答查詢，並在搜尋相關內容時讀取許多小型檔案一次。將 sizeLessThan 設定為 0，這樣就不會將資料匯入檔案系統。代理程式可以低延遲瀏覽完整的目錄樹狀目錄來探索檔案，而每個檔案讀取都是直接從 S3 提供。如此可讓接觸許多檔案的工作負載保持低成本，但很少重新檢視相同的檔案，並在您新增更多客服人員並行讀取時自然擴展。

**冷熱字首** – 檔案系統包含 下經常存取的組態檔案，`config/`以及 下不常存取的封存資料`archive/`。建立兩個匯入規則：一個用於具有`config/`高 sizeLessThan 和 ON\$1DIRECTORY\$1FIRST\$1ACCESS 的 ，另一個用於`archive/`將 sizeLessThan 設定為 0 且 ON\$1FILE\$1ACCESS 的 。這會將組態檔案保留在檔案系統上，以便快速存取，同時避免很少讀取的封存資料儲存成本。

# 監控和稽核 S3 檔案
<a name="s3-files-monitoring-logging"></a>

S3 檔案與下列 AWS 服務整合，以協助您監控檔案系統：

**Amazon CloudWatch**  
根據預設，S3 檔案指標資料會在 1 分鐘內自動傳送至 CloudWatch，除非針對某些個別指標另有說明。您也可以在指定的期間內監看單一指標，並根據多個期間內相對於指定閾值的指標值執行一或多個動作。此動作是傳送到 Amazon Simple Notification Service (Amazon SNS) 主題或 Amazon EC2 Auto Scaling 政策的通知。  
如需詳細資訊，請參閱[使用 Amazon CloudWatch 監控 S3 檔案](s3-files-monitoring-cloudwatch.md)。

**CloudTrail**  
CloudTrail 會擷取由您的帳戶 AWS 發出或代表您的帳戶發出的 API 呼叫和相關事件，並將日誌檔案交付至您指定的 Amazon S3 儲存貯體。S3 檔案會記錄管理事件，包括建立檔案系統、建立掛載目標，以及掛載檔案系統以運算執行個體。S3 檔案不會記錄資料事件，例如檔案讀取和寫入操作。  
如需詳細資訊，請參閱[使用適用於 S3 檔案的 CloudTrail 記錄](s3-files-logging-cloudtrail.md)。

**Topics**
+ [

# 使用 Amazon CloudWatch 監控 S3 檔案
](s3-files-monitoring-cloudwatch.md)
+ [

# 使用適用於 S3 檔案的 CloudTrail 記錄
](s3-files-logging-cloudtrail.md)

# 使用 Amazon CloudWatch 監控 S3 檔案
<a name="s3-files-monitoring-cloudwatch"></a>

您可以使用 [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 監控 S3 檔案系統，該系統會收集來自 Amazon S3 檔案的原始資料並將其處理為可讀指標。這些指標會保留 15 個月，因此您可以存取歷史資訊，並更清楚檔案系統的效能。

S3 檔案指標資料會自動傳送至 CloudWatch。大多數指標會每隔 1 分鐘傳送一次，而儲存指標則會每 15 分鐘傳送一次。您可以建立 [CloudWatch 警示](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Alarms.html)，在指標超過您指定的閾值時傳送通知。您也可以使用 CloudWatch 儀表板，這是 CloudWatch 主控台中可自訂的首頁，可用於在單一檢視中監控資源。如需詳細資訊，請參閱[建立自訂 CloudWatch 儀表板](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create_dashboard.html)。

## S3 檔案 CloudWatch 指標
<a name="s3-files-monitoring-cloudwatch-metrics"></a>

S3 檔案指標使用 `AWS/S3Files` 命名空間。系統會針對單一維度 報告所有指標`FileSystemId`。`AWS/S3Files` 命名空間包含下列指標：


| 指標 | Description | 單位和有效統計資料 | 
| --- | --- | --- | 
| StorageBytes | 檔案系統的總大小，以位元組為單位，其中包含資料和中繼資料。此指標每 15 分鐘會發送到 CloudWatch。 | 單位：位元組。最小值、最大值、平均值 | 
| Inodes | S3 檔案檔案系統中的索引 （例如檔案、目錄、符號連結） 總數。此指標每 15 分鐘會發送到 CloudWatch。 | 單位：計數。總和 | 
| PendingExports | 待匯出至 S3 儲存貯體的檔案和目錄總數。 | 單位：計數。總和 | 
| ImportFailures | 重試後無法匯入檔案系統的物件總數 （例如，不正確的 IAM 許可）。 | 單位：計數。總和 | 
| ExportFailures | 匯出失敗且不會重試的檔案和目錄總數。此指標可協助您識別終端機匯出失敗，以便疑難排解並採取動作 （例如，更新 IAM 許可）。 | 單位：計數。總和 | 
| DataReadBytes | 從檔案系統讀取的位元組數。 SampleCount會提供資料讀取操作的數量。您可以檢視每個單位時間的此指標，來計算資料讀取輸送量。 | 單位：位元組 （最小值、最大值、平均值、總和）、計數 (SampleCount) | 
| DataWriteBytes | 寫入檔案系統的位元組數。 SampleCount會提供資料寫入操作的數量。您可以檢視每個單位時間的此指標，來計算資料寫入輸送量。 | 單位：位元組 （最小值、最大值、平均值、總和）、計數 (SampleCount) | 
| MetadataReadBytes | 從檔案系統讀取的中繼資料位元組數目。 SampleCount會提供中繼資料讀取操作數目。 | 單位：位元組 （最小值、最大值、平均值、總和）、計數 (SampleCount) | 
| MetadataWriteBytes | 寫入檔案系統的中繼資料位元組數。 SampleCount會提供中繼資料寫入操作的數量。 | 單位：位元組 （最小值、最大值、平均值、總和）、計數 (SampleCount) | 
| LostAndFoundFiles | 失物招領目錄中的檔案總數。失物招領目錄位於檔案系統的根目錄中，名稱為 .s3files-lost\$1found-file-system-id。失物招領目錄中的檔案不會複製到 S3 儲存貯體。當因為同時變更檔案系統和 S3 儲存貯體中的相同資料而發生衝突時，S3 檔案會將 S3 儲存貯體視為事實來源，並將衝突的檔案移至遺失和找到的目錄。 | 單位：計數。總和 | 
| ClientConnections | 檔案系統的作用中用戶端連線數目。 | 單位：計數。總和 | 

## 用戶端連線指標
<a name="s3-files-monitoring-cloudwatch-client-metrics"></a>

S3 檔案可讓用戶端直接從連結的 S3 儲存貯體讀取檔案資料，以最佳化讀取效能。為了支援此功能，S3 Files 用戶端會發出連線指標，以監控用戶端是否可以建立必要的連線。

這些指標由 S3 Files 用戶端 (amazon-efs-utils) 發出，並發佈至 `efs-utils/S3Files` CloudWatch 命名空間。指標發射預設為啟用，作為 S3 檔案體驗的一部分。


| 指標 | Description | 單位和有效統計資料 | 
| --- | --- | --- | 
| NFSConnectionAccessible | 指出用戶端是否可以透過 NFS 掛載連線至檔案系統。值為 1 表示可存取連線。值為 0 表示無法存取連線。 | 單位：無。最小值、最大值、平均值 | 
| S3BucketAccessible | 指出用戶端是否具有從連結的 S3 儲存貯體讀取資料所需的許可。值為 1 表示用戶端具有必要的許可。值為 0 表示用戶端沒有必要的許可。 | 單位：無。最小值、最大值、平均值 | 
| S3BucketReachable | 指出連結的 S3 儲存貯體和字首是否存在，並且可從用戶端連線。值為 1 表示可以連接儲存貯體和字首。值 0 表示無法存取儲存貯體或字首。 | 單位：無。最小值、最大值、平均值 | 

## 存取 CloudWatch 指標
<a name="s3-files-monitoring-cloudwatch-access"></a>

您可以使用 CloudWatch 主控台、CLI AWS 或 CloudWatch API 檢視 S3 檔案指標。

### 使用 CloudWatch 主控台檢視指標
<a name="s3-files-monitoring-cloudwatch-access-console"></a>

1. 在 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇**指標**，然後選擇**所有指標**。

1. 選擇 **S3Files** 命名空間。

1. 選擇**檔案系統指標**。

1. 選取您要檢視的指標。

1. 選擇**圖形化指標**索引標籤來設定圖形顯示。

### 使用 AWS CLI 檢視指標
<a name="s3-files-monitoring-cloudwatch-access-cli"></a>

使用 `get-metric-statistics` 命令。例如，若要檢視 `DataReadBytes`：

```
aws cloudwatch get-metric-statistics \
  --namespace AWS/S3Files \
  --metric-name DataReadBytes \
  --dimensions Name=FileSystemId,Value=file-system-id \
  --start-time 2025-01-20T00:00:00Z \
  --end-time 2025-01-20T23:59:59Z \
  --period 3600 \
  --statistics Sum
```

# 使用適用於 S3 檔案的 CloudTrail 記錄
<a name="s3-files-logging-cloudtrail"></a>

Amazon S3 Files 已與 CloudTrail 整合，CloudTrail 是一種服務，可提供由使用者、角色或 S3 Files 中的 AWS 服務所採取之動作的記錄。CloudTrail 會將 S3 檔案的所有 API 呼叫擷取為事件，包括來自 S3 檔案主控台的呼叫，以及對 S3 檔案 API 操作的程式碼呼叫。

如果您建立線索，您可以將 CloudTrail 事件持續交付至 Amazon S3 儲存貯體，包括 S3 檔案的事件。即使您未設定追蹤，依然可以透過 CloudTrail 主控台中的**事件歷史記錄**檢視最新事件。您可以使用 CloudTrail 所收集的資訊，判斷對 S3 檔案提出的請求、提出請求的 IP 地址、提出請求的人員、提出請求的時間，以及其他詳細資訊。

## CloudTrail 中的 S3 檔案資訊
<a name="s3-files-logging-cloudtrail-info"></a>

當您建立 AWS 帳戶時，會在您的帳戶上啟用 CloudTrail。當 Amazon S3 檔案中的活動發生時，該活動會與**事件歷史記錄**中的其他 AWS 服務事件一起記錄在 CloudTrail 事件中。您可以在 AWS 帳戶中檢視、搜尋和下載最近的事件。如需詳細資訊，請參閱《[CloudTrail 使用者指南》中的使用 CloudTrail 事件歷史記錄檢視](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)事件。 *CloudTrail *

若要持續記錄您 AWS 帳戶中的事件，包括 S3 檔案的事件，請建立追蹤。線索能讓 CloudTrail 將日誌檔案交付至 Amazon S3 儲存貯體。根據預設，當您在主控台中建立線索時，線索會套用至所有 AWS 區域。線索會記錄 AWS 分割區中所有區域的事件，並將日誌檔案交付至您指定的 Amazon S3 儲存貯體。此外，您可以設定其他 AWS 服務，以進一步分析和處理 CloudTrail 日誌中所收集的事件資料。

如需詳細資訊，請參閱 *CloudTrail 使用者指南*中的下列主題：
+ [為 AWS 您的帳戶建立追蹤](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ [AWS 服務與 CloudTrail 日誌的整合](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html)
+ [設定 CloudTrail 的 Amazon SNS 通知](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/configure-sns-notifications-for-cloudtrail.html)
+ [接收多個區域的 CloudTrail 日誌檔案](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html)及[接收多個帳戶的 CloudTrail 日誌檔案](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html)

CloudTrail 會記錄所有 [S3 檔案 APIs](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Operations_Amazon_S3_Files.html)。例如，對 `CreateFileSystem`、`CreateMountTarget` 和 `TagResource` 作業的呼叫都會在 CloudTrail 日誌檔案中產生項目。當您在運算資源上掛載檔案系統時，S3 檔案也會產生 CloudTrail 日誌。

每一筆事件或日誌專案都會包含產生請求者的資訊。身分資訊可協助您判斷下列事項：
+ 是否使用根使用者或 IAM 使用者憑證提出該請求。
+ 提出該請求時，是否使用了特定角色或聯合身分使用者的暫時安全憑證。
+ 該請求是否由另一項 AWS 服務提出。

如需詳細資訊，請參閱《[CloudTrail 使用者指南》中的 CloudTrail userIdentity 元素](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)。 *CloudTrail *

S3 檔案不會記錄資料事件。資料事件包括在檔案系統上執行的檔案讀取和寫入操作。

## 了解 S3 檔案日誌檔案項目
<a name="s3-files-logging-cloudtrail-entries"></a>

追蹤是一種組態，能讓事件以日誌檔案的形式交付到您指定的 Amazon S3 儲存貯體。CloudTrail 日誌檔案包含一或多個日誌專案。一個事件為任何來源提出的單一請求，並包含請求動作、請求的日期和時間、請求參數等資訊。CloudTrail 日誌檔並非依公有 API 呼叫的堆疊追蹤排序，因此不會以任何特定順序出現。

### 範例：CreateFileSystem
<a name="s3-files-logging-cloudtrail-example-createfs"></a>

以下範例顯示的是展示 `CreateFileSystem` 動作的 CloudTrail 日誌項目：

```
{
    "eventVersion": "1.11",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "111122223333",
        "arn": "arn:aws:sts::111122223333:assumed-role/myRole/i-0123456789abcdef0",
        "accountId": "111122223333",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "111122223333",
                "arn": "arn:aws:iam::111122223333:role/myRole",
                "accountId": "111122223333",
                "userName": "myRole"
            },
            "attributes": {
                "creationDate": "2026-03-20T12:58:28Z",
                "mfaAuthenticated": "false"
            },
            "ec2RoleDelivery": "2.0"
        }
    },
    "eventTime": "2026-03-20T17:43:19Z",
    "eventSource": "s3files.amazonaws.com",
    "eventName": "CreateFileSystem",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "192.0.2.0",
    "userAgent": "aws-cli/2.0",
    "requestParameters": {
        "bucket": "arn:aws:s3:::amzn-s3-demo-bucket",
        "prefix": "images/",
        "clientToken": "myClientToken",
        "roleArn": "arn:aws:iam::111122223333:role/myS3FilesRole"
    },
    "responseElements": {
        "creationTime": "Mar 20, 2026, 5:43:19 PM",
        "fileSystemArn": "arn:aws:s3files:us-west-2:111122223333:file-system/fs-abcd123456789ef0",
        "fileSystemId": "fs-abcd123456789ef0",
        "bucket": "arn:aws:s3:::amzn-s3-demo-bucket",
        "prefix": "images/",
        "clientToken": "myClientToken",
        "status": "creating",
        "roleArn": "arn:aws:iam::111122223333:role/myS3FilesRole",
        "ownerId": "111122223333",
        "tags": []
    },
    "requestID": "dEXAMPLE-feb4-11e6-85f0-736EXAMPLE75",
    "eventID": "eEXAMPLE-2d32-4619-bd00-657EXAMPLEe4",
    "readOnly": false,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::S3Files::FileSystem",
            "ARN": "arn:aws:s3files:us-west-2:111122223333:file-system/fs-abcd123456789ef0"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management",
    "tlsDetails": {
        "tlsVersion": "TLSv1.3",
        "cipherSuite": "TLS_AES_128_GCM_SHA256",
        "clientProvidedHostHeader": "s3files.us-west-2.api.aws"
    }
}
```

### 範例：CreateMountTarget
<a name="s3-files-logging-cloudtrail-example-createmt"></a>

下列範例顯示 `CreateMountTarget`動作的 CloudTrail 日誌項目：

```
{
    "eventVersion": "1.11",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "111122223333",
        "arn": "arn:aws:sts::111122223333:assumed-role/myRole/i-0123456789abcdef0",
        "accountId": "111122223333",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "111122223333",
                "arn": "arn:aws:iam::111122223333:role/myRole",
                "accountId": "111122223333",
                "userName": "myRole"
            },
            "attributes": {
                "creationDate": "2026-03-20T13:09:56Z",
                "mfaAuthenticated": "false"
            },
            "ec2RoleDelivery": "2.0"
        }
    },
    "eventTime": "2026-03-20T18:05:14Z",
    "eventSource": "s3files.amazonaws.com",
    "eventName": "CreateMountTarget",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "192.0.2.0",
    "userAgent": "aws-cli/2.0",
    "requestParameters": {
        "fileSystemId": "fs-abcd123456789ef0",
        "subnetId": "subnet-01234567890abcdef",
        "securityGroups": [
            "sg-c16d65b6"
        ]
    },
    "responseElements": {
        "availabilityZoneId": "usw2-az2",
        "ownerId": "111122223333",
        "mountTargetId": "fsmt-1234567",
        "fileSystemId": "fs-abcd123456789ef0",
        "subnetId": "subnet-01234567890abcdef",
        "ipv4Address": "192.0.2.0",
        "ipv6Address": "2001:db8::1",
        "networkInterfaceId": "eni-0123456789abcdef0",
        "vpcId": "vpc-01234567",
        "securityGroups": [
            "sg-c16d65b6"
        ],
        "status": "creating"
    },
    "requestID": "dEXAMPLE-feb4-11e6-85f0-736EXAMPLE75",
    "eventID": "eEXAMPLE-2d32-4619-bd00-657EXAMPLEe4",
    "readOnly": false,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::S3Files::FileSystem",
            "ARN": "arn:aws:s3files:us-west-2:111122223333:file-system/fs-abcd123456789ef0"
        },
        {
            "accountId": "111122223333",
            "type": "AWS::S3Files::MountTarget",
            "ARN": "arn:aws:s3files:us-west-2:111122223333:mount-target/fsmt-1234567"
        },
        {
            "accountId": "111122223333",
            "type": "AWS::EC2::Subnet",
            "ARN": "arn:aws:ec2:us-west-2:111122223333:subnet/subnet-01234567890abcdef"
        },
        {
            "accountId": "111122223333",
            "type": "AWS::EC2::NetworkInterface",
            "ARN": "arn:aws:ec2:us-west-2:111122223333:network-interface/eni-0123456789abcdef0"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management",
    "tlsDetails": {
        "tlsVersion": "TLSv1.3",
        "cipherSuite": "TLS_AES_128_GCM_SHA256",
        "clientProvidedHostHeader": "s3files.us-west-2.api.aws"
    }
}
```

# 效能規格
<a name="s3-files-performance"></a>

S3 檔案會自動擴展輸送量和 IOPS，以符合您的工作負載，而不需要您佈建或管理容量。此頁面說明 S3 檔案的效能特性。

## 效能摘要
<a name="s3-files-performance-summary"></a>


|  |  | 
| --- |--- |
| 每個檔案系統的總讀取輸送量 | 每秒高達 TB | 
| 每個檔案系統的總寫入輸送量 | 1–5 GiB/s | 
| 具有 S3 檔案的每個 S3 儲存貯體的最大讀取 IOPS | 無限制 （將多個檔案系統連接到相同的儲存貯體） | 
| 具有 S3 檔案的每個 S3 儲存貯體的最大寫入 IOPS | 無限制 （將多個檔案系統連接到相同的儲存貯體） | 
| 每個檔案系統的讀取 IOPS 上限 | 250,000 | 
| 每個檔案系統的寫入 IOPS 上限 | 50,000 | 
| 每個用戶端讀取輸送量上限 | 3 GiB/s | 

## S3 檔案如何提供效能
<a name="s3-files-performance-how"></a>

S3 檔案會從兩個儲存層提供資料，並自動將每項操作路由至最適合的層。

**高效能儲存** – 檔案系統中主動使用檔案資料和中繼資料所在的低延遲儲存層。S3 檔案會自動管理此儲存體，在您存取檔案時將資料複製到其中，並移除未在可設定的過期時段內讀取的資料。您為存放在高效能儲存體上的資料支付儲存速率。

**直接來自 S3** – 已同步至 S3 的大型資料讀取 (128 KB 或更大），而不在檔案系統上的資料讀取會直接從 S3 儲存貯體提供。此層可為循序讀取提供高輸送量，因此非常適合分析、媒體處理和其他串流工作負載。

由於 S3 檔案會自動套用此雙層模型，因此您不需要在延遲和輸送量之間進行選擇。小型檔案工作負載可取得檔案系統效能。大型檔案工作負載會取得 S3 輸送量。混合工作負載同時取得兩者。

## 讀取效能
<a name="s3-files-performance-read"></a>

讀取輸送量會隨著連線的運算執行個體數量和每個執行個體內的平行處理程度而擴展。每個用戶端的讀取輸送量上限為 3 GiB/s。S3 檔案支援每秒高達 TB 的彙總讀取輸送量和每個檔案系統高達 250，000 個讀取 IOPS。

## 寫入效能
<a name="s3-files-performance-write"></a>

寫入會移至高效能儲存體，並立即耐用。視區域而定，S3 檔案支援每秒 1-5 GiB 的彙總寫入輸送量和每個檔案系統高達 50，000 個寫入 IOPS。寫入效能會隨著工作負載活動彈性擴展。

當您在檔案系統中修改檔案時，S3 檔案會等待約 60 秒，在該時間彙總檔案的任何後續變更，然後再複製到 S3 儲存貯體。這表示在單一 S3 PUT 請求中擷取對相同檔案的快速連續寫入，而不是為每個個別變更產生新的物件版本，從而降低 S3 請求成本和儲存成本。如果您在 S3 檔案將變更複製回 S3 儲存貯體後繼續修改檔案，它會視需要複製後續變更。

## 第一次存取延遲
<a name="s3-files-performance-first-access"></a>

第一次存取目錄時，S3 檔案會匯入該目錄中所有檔案的中繼資料，並根據您的匯入組態，匯入小型檔案的資料。因此，您的初始存取需要比後續操作更長的時間。匯入後，所有後續目錄清單和檔案存取會以低延遲傳回。

## 同步效能
<a name="s3-files-performance-sync"></a>

S3 檔案會在背景中同步檔案系統和 S3 儲存貯體之間的變更。

**從 S3 匯入變更** – 當另一個應用程式新增或修改 S3 儲存貯體中的物件時，S3 檔案通常會在幾秒鐘內反映檔案系統中的變更。S3 檔案處理每個檔案系統每秒最多 2，400 個物件變更，匯入資料輸送量每秒最多 700 MB。

**匯出變更至 S3** – 當您透過檔案系統寫入檔案時，S3 檔案會將變更批次處理約 60 秒，以將快速連續寫入合併至單一 S3 物件版本，進而降低 S3 請求和儲存版本成本。在批次處理時段之後，S3 檔案會將檔案複製到 S3 儲存貯體。S3 檔案匯出每個檔案系統每秒最多 800 個檔案，匯出資料輸送量每秒最多 2，700 MB。


| 操作指標 | Value | 單位 | 
| --- | --- | --- | 
| 從 S3 儲存貯體 IOPS 匯入 | 2,400 | 每個檔案系統的每秒物件數 | 
| 從 S3 儲存貯體輸送量匯入 | 700 | 每秒 MB | 
| 匯出至 S3 儲存貯體 IOPS | 800 | 每個檔案系統的每秒檔案數 | 
| 匯出至 S3 儲存貯體輸送量 | 2，700 | 每秒 MB | 

Amazon S3 使用平面儲存結構，透過其金鑰名稱來識別物件。雖然 S3 檔案可讓您在目錄中組織資料，但 S3 沒有目錄的原生概念。在您的檔案系統中顯示為目錄的項目，是 S3 儲存貯體中物件金鑰共用的常見字首。此外，S3 物件是不可變的，不支援原子重新命名。因此，當您重新命名或移動檔案時，S3 檔案必須使用更新的金鑰將資料寫入新物件，並刪除原始物件。當您重新命名或移動目錄時，S3 檔案必須針對共用該字首的每個物件重複此程序。因此，當您重新命名或移動包含數千萬個檔案的目錄時，S3 請求成本和同步時間會大幅增加。100，000 個檔案的目錄重新命名需要幾分鐘的時間才能完全反映在 S3 儲存貯體中，但重新命名在檔案系統上是即時的。如需詳細資訊，請參閱[了解重新命名和移動操作的影響](s3-files-synchronization.md#s3-files-sync-rename-move)。

如果您的工作負載產生變更的速度比同步速率快，S3 檔案會將變更排入佇列，並依序處理。您可以使用 `PendingExports` CloudWatch 指標監控待處理匯出的計數。如需詳細資訊，請參閱[使用 Amazon CloudWatch 監控 S3 檔案](s3-files-monitoring-cloudwatch.md)。

## 監控效能
<a name="s3-files-performance-monitoring"></a>

您可以使用 Amazon CloudWatch 監控檔案系統的效能。S3 檔案會發佈指標，包括 `DataReadBytes`、`MetadataReadBytes`、 `DataWriteBytes`和 `MetadataWriteBytes`，您可以用來追蹤一段時間內的輸送量和 IOPS。如需詳細資訊，請參閱[使用 Amazon CloudWatch 監控 S3 檔案](s3-files-monitoring-cloudwatch.md)。

# S3 檔案的安全性
<a name="s3-files-security"></a>

的雲端安全性 AWS 是最高優先順序。身為 AWS 客戶，您可以受益於資料中心和網路架構，這些架構專為滿足最安全敏感組織的需求而建置。

安全性是 AWS 與您之間的共同責任。[‬共同責任模型‭](https://aws.amazon.com/compliance/shared-responsibility-model/)‬ 將此描述為雲端*‬的‭*‬安全和雲端*‬內*‬的安全：

**雲端本身的安全**  
AWS 負責保護在 中執行 AWS 服務的基礎設施 AWS 雲端。 AWS 也提供您可以安全使用的服務。在 [AWS 合規計劃](https://aws.amazon.com/compliance/programs/)中，第三方稽核員會定期測試並驗證我們的安全功效。若要了解適用於 Amazon S3 檔案的合規計劃，請參閱[AWS 合規計劃範圍內的服務](https://aws.amazon.com/compliance/services-in-scope/)。

**雲端內部的安全**  
您的責任取決於您使用 AWS 的服務。您也必須對其他因素負責，包括資料的機密性、您公司的要求和適用法律和法規。

本文件可協助您了解如何在使用 Amazon S3 檔案時套用共同責任模型。

## 資料保護
<a name="s3-files-security-data-protection"></a>

 AWS [共同責任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)適用於 S3 檔案中的資料保護。如此模型所述， AWS 負責保護執行所有 的全域基礎設施 AWS 雲端。您負責維護在此基礎設施上託管內容的控制權。您也必須負責您所使用 AWS 服務的安全組態和管理任務。如需有關資料隱私權的詳細資訊，請參閱[資料隱私權常見問答集](https://aws.amazon.com/compliance/data-privacy-faq)。如需有關歐洲資料保護的相關資訊，請參閱 *AWS 安全部落格*上的 [AWS 共同責任模型和 GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) 部落格文章。

基於資料保護目的，我們建議您保護 AWS 帳戶登入資料，並使用 IAM Identity Center AWS 或 AWS Identity and Access Management (IAM) 設定個別使用者。如此一來，每個使用者都只會獲得授與完成其任務所必須的許可。我們也建議您採用下列方式保護資料：
+ 每個帳戶均要使用多重要素驗證 (MFA)。
+ 使用 SSL/TLS 與 AWS 資源通訊。我們需要 TLS 1.2 並建議使用 TLS 1.3。
+ 使用 AWS CloudTrail 設定 API 和使用者活動記錄。如需有關使用 CloudTrail 追蹤擷取 AWS 活動的資訊，請參閱[CloudTrail 使用者指南》中的使用 CloudTrail 追蹤](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html)。 *AWS CloudTrail *
+ 使用 AWS 加密解決方案，以及 AWS 服務中的所有預設安全控制。
+ 使用進階的受管安全服務 (例如 Amazon Macie)，協助探索和保護儲存在 Amazon S3 的敏感資料。
+ 如果您在 AWS 透過命令列界面或 API 存取 時需要 FIPS 140-3 驗證的密碼編譯模組，請使用 FIPS 端點。如需有關 FIPS 和 FIPS 端點的更多相關資訊，請參閱[聯邦資訊處理標準 (FIPS) 140-3](https://aws.amazon.com/compliance/fips/)。

我們強烈建議您絕對不要將客戶的電子郵件地址等機密或敏感資訊，放在標籤或自由格式的文字欄位中，例如**名稱**欄位。這包括當您使用主控台、API、 AWS CLI 或 AWS SDKs來使用 S3 檔案或其他 AWS 服務時。您在標籤或自由格式文字欄位中輸入的任何資料都可能用於計費或診斷日誌。如果您提供外部伺服器的 URL，我們強烈建議請勿在驗證您對該伺服器請求的 URL 中包含憑證資訊。

**Topics**
+ [

## 資料保護
](#s3-files-security-data-protection)
+ [

# 加密
](s3-files-encryption.md)
+ [

# S3 檔案如何與 IAM 搭配使用
](s3-files-security-iam.md)

# 加密
<a name="s3-files-encryption"></a>

S3 檔案提供全方位的加密功能，可保護靜態和傳輸中的資料。

## 靜態加密
<a name="s3-files-encryption-at-rest"></a>

您的 S3 儲存貯體會使用 Amazon S3 的加密機制進行加密。如需 S3 中資料加密的資訊，請參閱[使用加密保護資料](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html)。

S3 檔案會使用伺服器端加密來加密 S3 檔案系統中的靜態資料。伺服器端加密是指接收資料的應用程式或服務在目的地將資料加密。在 S3 檔案系統中，資料和中繼資料預設會在寫入儲存體之前加密，並在讀取時自動解密。這些程序由 S3 檔案透明處理，因此您不需要修改應用程式。檔案系統中的所有靜態資料都會使用 AWS Key Management Service (KMS) 金鑰，使用下列其中一種方法進行加密：
+ （預設） 伺服器端加密搭配 AWS 擁有的 KMS 金鑰 (SSE-KMS)
+ 伺服器端加密搭配客戶受管 KMS 金鑰 (SSE-KMS-CMK)

使用 AWS KMS 金鑰需支付額外費用。如需詳細資訊，請參閱 [AWS Key Management Service 開發人員指南中的 KMS 關鍵概念](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html)和 [AWS KMS 定價](https://aws.amazon.com/kms/pricing/)。 *AWS *

### 伺服器端加密搭配 AWS 擁有的 KMS 金鑰 (SSE-KMS)
<a name="s3-files-encryption-aws-owned-key"></a>

這是在 S3 檔案系統中加密靜態資料的預設金鑰。 AWS 擁有的金鑰是 AWS 服務擁有和管理的 KMS 金鑰集合。當您使用 AWS 擁有的金鑰時，S3 檔案會擁有和管理 S3 檔案系統中靜態資料和中繼資料的加密。如需 AWS 擁有金鑰的詳細資訊，請造訪 [AWS KMS 金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html)。

### 伺服器端加密搭配客戶受管 AWS KMS 金鑰 (SSE-KMS-CMK)
<a name="s3-files-encryption-sse-kms"></a>

建立檔案系統時，您可以選擇設定您管理的 AWS Key Management Service (AWS KMS) 金鑰。當您搭配 S3 檔案系統使用 SSE-KMS 加密時， AWS KMS 金鑰必須與檔案系統位於相同的區域。

## AWS KMS 的 S3 檔案金鑰政策
<a name="s3-files-encryption-key-policies"></a>

金鑰政策是控制對客戶受管金鑰存取的主要方式。如需金鑰政策的詳細資訊，請參閱 [Key Management Service 開發人員指南中的 AWS KMS 中的金鑰政策](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)。 *AWS *下列清單說明 S3 檔案支援用於加密靜態檔案系統的所有 AWS KMS 相關許可：

kms:Encrypt  
（選用） 將純文字加密為加密文字。此許可會納入預設的金鑰政策中。

kms:解密  
（必要） 解密加密文字。加密文字為之前已加密的純文字。此許可會納入預設的金鑰政策中。

kms:ReEncrypt  
（選用） 使用新的客戶受管金鑰加密伺服器端的資料，而不會公開用戶端資料的純文字。資料會先解密，然後重新加密。此許可會納入預設的金鑰政策中。

kms:GenerateDataKeyWithoutPlaintext  
（必要） 傳回以客戶受管金鑰加密的資料加密金鑰。此許可會納入 kms:GenerateDataKey\$1 下預設的金鑰政策中。

kms:創建權限  
（必要） 將授予新增至金鑰，以指定誰可以使用金鑰，以及在哪些條件下使用。授予是金鑰政策的備用許可機制。如需授予的詳細資訊，請參閱 *AWS Key Management Service 開發人員指南*中的 [AWS KMS 中的授予](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)。此許可會納入預設的金鑰政策中。

kms:描述金鑰  
（必要） 提供指定客戶受管金鑰的詳細資訊。此許可會納入預設的金鑰政策中。

kms:ListAliases  
（選用） 列出帳戶中的所有金鑰別名。當您使用主控台來建立加密的檔案系統時，此許可會填入選擇 KMS 金鑰清單。我們建議您使用此許可，以提供最佳使用者體驗。此許可會納入預設的金鑰政策中。

## 金鑰狀態及其效果
<a name="s3-files-encryption-key-states"></a>

KMS 金鑰的狀態會直接影響對您加密檔案系統的存取：

已啟用  
正常操作 - 檔案系統的完整讀取和寫入存取權。

Disabled  
檔案系統在一段時間後變得無法存取。可以重新啟用。

待刪除  
檔案系統變得無法存取。在等待期間可以取消刪除。請注意，取消刪除金鑰後，金鑰需要移至啟用狀態。

已刪除  
檔案系統永久無法存取。此動作無法反轉。

**警告**  
如果您停用或刪除用於檔案系統的 KMS 金鑰，或撤銷對金鑰的 S3 檔案存取權，您的檔案系統將無法存取。如果您沒有備份，這可能會導致資料遺失。在變更加密金鑰之前，請務必確保您已備妥適當的備份程序。

## 傳輸中加密
<a name="s3-files-encryption-in-transit"></a>

S3 檔案需要使用 Transport Layer Security (TLS) 加密傳輸中的資料。當您使用掛載協助程式掛載檔案系統時，在用戶端和檔案系統之間傳輸的所有資料都會使用 TLS 加密。掛載協助程式會初始化 efs-proxy 程序，以與您的檔案系統建立安全的 TLS 連線。掛載協助程式也會建立稱為 amazon-efs-mount-watchdog 的程序，以監控掛載的運作狀態，並在第一次掛載 S3 檔案系統時自動啟動。它可確保每個掛載的 efs-proxy 程序正在執行，並在卸載檔案系統時停止程序。如果程序因某些原因而意外終止，監視程式程序會重新啟動它。

以下說明傳輸中 TLS 加密的運作方式：

1. 在用戶端和檔案系統之間建立安全的 TLS 連線

1. 所有 NFS 流量都會透過此加密連線路由

1. 資料會在傳輸前加密，並在接收時解密

加密傳輸中的資料會變更您的 NFS 用戶端設定。檢查您的主動掛載檔案系統時，您會看到一個掛載至 127.0.0.1 或 localhost 的檔案系統，如下列範例。

```
$ mount | column -t
127.0.0.1:/  on  /home/ec2-user/s3files        type  nfs4         (rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=20127,timeo=600,retrans=2,sec=sys,clientaddr=127.0.0.1,local_lock=none,addr=127.0.0.1)
```

您可以使用掛載協助程式掛載檔案系統，該協助程式一律使用 TLS 加密傳輸中的資料。因此，掛載時，NFS 用戶端會重新設定為掛載至本機連接埠。

# S3 檔案如何與 IAM 搭配使用
<a name="s3-files-security-iam"></a>

此頁面說明 AWS Identity and Access Management (IAM) 如何使用 S3 檔案，以及如何使用 IAM 政策來控制檔案系統的存取。

S3 檔案使用 IAM 進行兩種不同的存取控制類型：
+ **API 存取** — 控制誰可以建立、管理和刪除 S3 檔案資源，例如檔案系統、掛載目標和存取點。您可以使用連接到 IAM 使用者、群組或角色的身分型政策來控制此存取。
+ **用戶端存取** — 控制用戶端 （您掛載的運算資源） 在連線後可以使用檔案系統執行的操作，例如以根使用者身分讀取、寫入或存取檔案。您可以使用資源型政策、身分型政策、存取點和 POSIX 許可的組合來控制此存取。

您可以使用 IAM，允許用戶端在檔案系統上執行特定動作，包括唯讀、寫入和根存取。IAM 身分識別政策或檔案系統資源政策中的動作具有「允許」許可，可允許存取該動作。身分識別和資源政策均不需要同時授與許可。

連結 S3 儲存貯體上的 S3 儲存貯體政策也會控管從運算資源和檔案系統到 S3 儲存貯體的存取。您也必須確保來源儲存貯體的儲存貯體政策不會拒絕從運算資源或檔案系統存取。如需詳細資訊，請參閱 [Amazon S3 的儲存貯體政策](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html)。

## 身分型政策
<a name="s3-files-security-iam-identity-based"></a>

身分型政策是您連接到 IAM 使用者、群組或角色的 JSON 政策。您可以透過撰寫自訂政策或連接 AWS 受管政策來提供這些許可。如需 API 存取和用戶端存取之可用 受管政策的詳細資訊，請參閱 [AWS Amazon S3 檔案的 受管政策](s3-files-security-iam-awsmanpol.md)。

S3 檔案也允許用戶端直接從來源 S3 儲存貯體讀取檔案資料，以最佳化讀取效能。在運算資源上掛載 S3 檔案系統時，您必須將內嵌政策新增至運算資源的 IAM 角色，以授予從指定 S3 儲存貯體讀取物件的許可。掛載協助程式會使用這些許可來讀取 S3 資料。如需此政策的詳細資訊，請參閱 [將檔案系統連接至 AWS 運算資源的 IAM 角色](s3-files-prereq-policies.md#s3-files-prereq-iam-compute-role)。

## 資源型政策
<a name="s3-files-security-iam-resource-based"></a>

檔案系統政策是您直接連接到檔案系統的 IAM 資源型政策，以控制用戶端存取。您可以使用檔案系統政策，授予或拒絕用戶端執行掛載、寫入和根存取等操作的許可。

檔案系統具有空白 （預設） 檔案系統政策，或正好有一個明確的政策。S3 檔案系統政策有 20，000 個字元的限制。如需建立和管理檔案系統政策的資訊，請參閱 [建立檔案系統政策](s3-files-file-system-policies-creating.md)。

## 用戶端的 S3 檔案動作
<a name="s3-files-security-iam-client-actions"></a>

您可以在檔案系統政策中指定下列動作，以控制用戶端存取：


| Action | Description | 
| --- | --- | 
| s3files:ClientMount | 提供檔案系統的唯讀存取權。 | 
| s3files:ClientWrite | 在檔案系統上提供具有寫入權限。 | 
| s3files:ClientRootAccess | 存取檔案系統時，提供使用根使用者的功能。 | 

## 用戶端的 S3 檔案條件索引鍵
<a name="s3-files-security-iam-condition-keys"></a>

您可以在檔案系統政策的 `Condition`元素中使用下列條件索引鍵，以進一步精簡存取控制：


| 條件金鑰 | Description | 運算子 | 
| --- | --- | --- | 
| s3files:AccessPointArn | 用戶端所連線之 S3 檔案存取點的 ARN。 | String | 

## 檔案系統政策範例
<a name="s3-files-security-iam-policy-examples"></a>

### 範例：授予只讀存取權
<a name="s3-files-security-iam-policy-example-readonly"></a>

下列檔案系統政策僅授予 IAM 角色 `ClientMount`（唯讀） `ReadOnly` 許可。將 *111122223333* 取代為 AWS 您的帳戶 ID。

```
{
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/ReadOnly"
            },
            "Action": [
                "s3files:ClientMount"
            ]
        }
    ]
}
```

### 範例：授予對 S3 檔案存取點的存取權
<a name="s3-files-security-iam-policy-example-accesspoint"></a>

下列檔案系統政策使用條件元素，在透過指定的存取點進行掛載時，授予特定存取點對檔案系統的完整存取權。將存取點 ARN 和帳戶 ID 取代為您的值。如需詳細資訊，請參閱[建立 S3 檔案系統的存取點](s3-files-access-points-creating.md)。

```
{
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::555555555555:role/S3FilesAccessPointFullAccess"
            },
            "Action": [
                "s3files:Client*"
            ],
            "Condition": {
                "StringEquals": {
                    "s3files:AccessPointArn": "arn:partition:s3files:region:account-id:file-system/fs-1234567890/access-point/fsap-0987654321"
                }
            }
        }
    ]
}
```

## POSIX 權限
<a name="s3-files-security-iam-posix"></a>

IAM 授權成功後，S3 檔案會在檔案和目錄層級強制執行標準 POSIX (Unix 樣式） 許可。POSIX 許可會根據與每個檔案和目錄相關聯的使用者 ID (UID)、群組 ID (GID) 和許可位元 （讀取、寫入、執行） 來控制存取。存取點可以對所有請求強制執行特定的 POSIX 使用者身分，簡化共用資料集的存取管理。如需詳細資訊，請參閱[建立 S3 檔案系統的存取點](s3-files-access-points-creating.md)。

## Security groups (安全群組)
<a name="s3-files-security-iam-security-groups"></a>

安全群組可做為網路層級防火牆，控制運算資源與檔案系統掛載目標之間的流量。如需設定安全群組以開始使用 S3 檔案的詳細資訊，請參閱 [Security groups (安全群組)](s3-files-prereq-policies.md#s3-files-prereq-security-groups)。

# AWS Amazon S3 檔案的 受管政策
<a name="s3-files-security-iam-awsmanpol"></a>

 AWS 受管政策是由 AWS AWS 受管政策建立和管理的獨立政策旨在為許多常用案例提供許可，以便您可以開始將許可指派給使用者、群組和角色。

請記住， AWS 受管政策可能不會授予特定使用案例的最低權限許可，因為這些許可可供所有 AWS 客戶使用。我們建議您定義特定於使用案例的[客戶管理政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies)，以便進一步減少許可。

您無法變更 AWS 受管政策中定義的許可。如果 AWS 更新受 AWS 管政策中定義的許可，則更新會影響政策連接的所有委託人身分 （使用者、群組和角色）。當新的 AWS 服務 啟動或新的 API 操作可用於現有服務時， AWS 最有可能更新 AWS 受管政策。

如需詳細資訊，請參閱 *IAM 使用者指南*中的 [AWS 受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。

## AWS 受管政策： AmazonS3FilesFullAccess
<a name="s3-files-security-iam-awsmanpol-amazons3filesfullaccess"></a>

您可將 `AmazonS3FilesFullAccess` 政策連接到 IAM 身分。此政策授予 Amazon S3 檔案的完整存取權，包括建立和管理檔案系統、掛載目標和存取點的許可。如需此政策的詳細資訊，請參閱《 AWS 受管政策參考[https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3FilesFullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3FilesFullAccess.html)》中的 。

## AWS 受管政策： AmazonS3FilesReadOnlyAccess
<a name="s3-files-security-iam-awsmanpol-amazons3filesreadonlyaccess"></a>

您可將 `AmazonS3FilesReadOnlyAccess` 政策連接到 IAM 身分。此政策授予 Amazon S3 檔案的唯讀存取權，包括檢視檔案系統、掛載目標、存取點和相關組態的許可。如需此政策的詳細資訊，請參閱《 AWS 受管政策參考[https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3FilesReadOnlyAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3FilesReadOnlyAccess.html)》中的 。

## AWS 受管政策： AmazonS3FilesClientFullAccess
<a name="s3-files-security-iam-awsmanpol-amazons3filesclientfullaccess"></a>

您可將 `AmazonS3FilesClientFullAccess` 政策連接到 IAM 身分。此政策會授予 S3 檔案系統的完整用戶端存取權，包括以根使用者身分掛載、讀取、寫入和存取檔案的能力。如需此政策的詳細資訊，請參閱《 AWS 受管政策參考[https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3FilesClientFullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3FilesClientFullAccess.html)》中的 。

## AWS 受管政策： AmazonS3FilesClientReadWriteAccess
<a name="s3-files-security-iam-awsmanpol-amazons3filesclientreadwriteaccess"></a>

您可將 `AmazonS3FilesClientReadWriteAccess` 政策連接到 IAM 身分。此政策授予對 S3 檔案系統的讀取和寫入用戶端存取權，包括掛載、讀取和寫入的能力。此政策不會授予根存取權。如需此政策的詳細資訊，請參閱《 AWS 受管政策參考[https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3FilesClientReadWriteAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3FilesClientReadWriteAccess.html)》中的 。

## AWS 受管政策： AmazonS3FilesClientReadOnlyAccess
<a name="s3-files-security-iam-awsmanpol-amazons3filesclientreadonlyaccess"></a>

您可將 `AmazonS3FilesClientReadOnlyAccess` 政策連接到 IAM 身分。此政策授予 S3 檔案系統的唯讀用戶端存取權，包括掛載和讀取檔案系統的能力。如需此政策的詳細資訊，請參閱《 AWS 受管政策參考[https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3FilesClientReadOnlyAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3FilesClientReadOnlyAccess.html)》中的 。

## AWS 受管政策： AmazonS3FilesCSIDriverPolicy
<a name="s3-files-security-iam-awsmanpol-amazons3filescsidriverpolicy"></a>

您可將 `AmazonS3FilesCSIDriverPolicy` 政策連接到 IAM 身分。此政策授予 Amazon EFS 容器儲存介面 (CSI) 驅動程式代表 Amazon EKS 叢集管理 S3 檔案存取點的許可。如需此政策的詳細資訊，請參閱《 AWS 受管政策參考[https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3FilesCSIDriverPolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3FilesCSIDriverPolicy.html)》中的 。

## AWS 受管政策： AmazonElasticFileSystemUtils
<a name="s3-files-security-iam-awsmanpol-amazonelasticfilesystemutils"></a>

您可將 `AmazonElasticFileSystemUtils` 政策連接到 IAM 身分。此政策授予 S3 Files 用戶端公用程式 (amazon-efs-utils) 執行操作的許可，例如描述掛載目標、發佈 CloudWatch 指標和日誌，以及與 AWS Systems Manager 通訊。如需此政策的詳細資訊，請參閱《 AWS 受管政策參考[https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonElasticFileSystemUtils.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonElasticFileSystemUtils.html)》中的 。

## AWS 受管政策的 Amazon S3 檔案更新
<a name="s3-files-security-iam-awsmanpol-updates"></a>

檢視自 S3 檔案開始追蹤 Amazon S3 檔案的 AWS 受管政策更新以來的詳細資訊。


| 變更 | 描述 | Date | 
| --- | --- | --- | 
|  `AmazonElasticFileSystemUtils` — 已更新  |  新增 Amazon CloudWatch PutMetricData 許可，以支援發佈用戶端連線指標。  | 2026 年 4 月 7 日 | 
|  `AmazonS3FilesCSIDriverPolicy` — 新增  |  新的 受管政策，授予 Amazon EFS CSI 驅動程式代表 Amazon EKS 叢集管理 S3 檔案存取點的許可。  | 2026 年 4 月 7 日 | 
|  `AmazonS3FilesClientReadOnlyAccess` — 新增  |  新的 受管政策，授予 S3 檔案檔案系統的唯讀用戶端存取權。  | 2026 年 4 月 7 日 | 
|  `AmazonS3FilesClientReadWriteAccess` — 新增  |  新的 受管政策，授予對 S3 檔案系統的讀取和寫入用戶端存取權。  | 2026 年 4 月 7 日 | 
|  `AmazonS3FilesClientFullAccess` — 新增  |  新的 受管政策，授予用戶端對 S3 檔案系統的完整存取權，包括根存取權。  | 2026 年 4 月 7 日 | 
|  `AmazonS3FilesReadOnlyAccess` — 新增  |  新的 受管政策，授予對 S3 檔案資源的唯讀存取權。  | 2026 年 4 月 7 日 | 
|  `AmazonS3FilesFullAccess` — 新增  |  授予 S3 檔案資源完整存取權的新受管政策。  | 2026 年 4 月 7 日 | 
|  S3 檔案已開始追蹤變更  |  Amazon S3 Files 開始追蹤其 AWS 受管政策的變更。  | 2026 年 4 月 7 日 | 

# 如何計量 S3 檔案
<a name="s3-files-metering"></a>

S3 檔案定價基於兩個維度：存放在檔案系統高效能儲存體上的資料量，以及應用程式和同步程序執行的檔案系統操作。此頁面說明如何測量每個維度，以便您了解和最佳化成本。

如需目前的定價，請參閱 [Amazon S3 定價](https://aws.amazon.com/s3/pricing/)。

## 如何計量檔案系統儲存體
<a name="s3-files-metering-storage"></a>

當您透過 S3 檔案系統使用檔案時，S3 檔案會將您從 S3 儲存貯體主動使用的資料儲存到檔案系統的高效能儲存體。您需為檔案系統高效能儲存上的資料量付費，以 GB 月為單位。這包括從 S3 儲存貯體複製的資料、透過檔案系統寫入的資料，以及檔案和目錄的中繼資料。

如果檔案系統中的檔案未在可設定的時段 (1 到 365 天，預設 30 天） 內讀取，且其變更已同步至 S3 儲存貯體，S3 檔案會自動從檔案系統的高效能儲存體中移除該檔案的資料。這可讓您的儲存成本與作用中的工作資料集成比例，而不是 S3 儲存貯體的總大小。您的資料會安全地存放在 S3 儲存貯體中。S3 檔案只會從檔案系統的高效能儲存中移除複本。下次讀取該檔案時，S3 檔案會從 S3 儲存貯體擷取對應物件的最新版本，並將其複製回檔案系統的高效能儲存體。如需詳細資訊，請參閱[了解同步的運作方式](s3-files-synchronization.md)。

## 如何計量檔案系統操作
<a name="s3-files-metering-operations"></a>

S3 檔案會測量每個檔案系統操作的讀取或寫入。每個操作都有最小計量大小。

讀取檔案內容等**資料讀取**是以資料讀取的大小計量，每個讀取操作至少 32 KB。在某些情況下，直接從 S3 儲存貯體 （請參閱下文） 提供讀取以進行效能最佳化，而且此類操作不會針對資料讀取進行計量，而且只會針對 4 KB 中繼資料讀取進行計量。

寫入或附加至檔案等**資料寫入**會以寫入資料的大小計量，每次寫入操作至少 32 KB。

**中繼資料操作**，例如列出目錄、檢視檔案屬性、建立或刪除檔案和目錄、重新命名和變更許可，都會計算為每次操作 4 KB 的讀取。遞交操作 （由 觸發`fsync`或在寫入後關閉檔案） 是唯一計量為寫入的中繼資料操作，大小為 4 KB。

所有計量大小都會四捨五入到下一個 1 KB 界限。

## 直接從 Amazon S3 提供讀取時如何計量
<a name="s3-files-metering-s3-reads"></a>

對於已同步至 S3, S3 檔案會自動直接從 S3 串流，即使資料位於高效能儲存體上，因為 S3 已針對高輸送量進行最佳化，而檔案系統的高效能儲存已針對低延遲小型檔案存取進行最佳化。

在這種情況下，您需要支付 S3 GET 請求的費用，而不是檔案系統資料讀取的費用。S3 檔案只會針對此類讀取測量 4 KB 中繼資料讀取操作。

## 如何計量同步
<a name="s3-files-metering-sync"></a>

S3 檔案可讓檔案系統和連結的 S3 儲存貯體自動同步。除了 SS3 檔案代您產生的標準 S3 請求費用之外，這些同步操作也會計量為檔案系統操作。

**將資料匯入檔案系統：**當 S3 檔案將資料從 S3 儲存貯體複製到檔案系統的高效能儲存體時，會將操作計量為檔案系統寫入。這包括當您第一次存取目錄時、當您讀取其資料不在檔案系統高效能儲存體上的檔案時，以及當 S3 檔案反映直接對 S3 儲存貯體所做的變更時，所複製的資料。計量大小是寫入檔案系統高效能儲存體的資料量。

**匯出變更至 S3 儲存貯體：**當 S3 檔案將檔案系統變更複製回 S3 儲存貯體時，系統會將操作計量為檔案系統讀取。只有從檔案系統讀取的資料才會計入此費用。如果您變更的檔案包含從未複製到檔案系統高效能儲存體的資料，則會以 S3 GET 請求定價從您的 S3 儲存貯體讀取該部分資料，而不會產生檔案系統讀取費用。例如，如果您將資料附加至檔案，S3 檔案會使用分段上傳，以避免在將資料附加至檔案系統之前，將整個物件匯入檔案系統的高效能儲存體。這可最佳化您的檔案系統儲存成本。

**重新命名和移動操作：**S3 沒有目錄的原生概念。檔案系統中顯示為目錄的項目，是 S3 儲存貯體中物件金鑰共用的常見字首。此外，S3 物件不可變，且不支援原子重新命名。因此，當您重新命名或移動檔案時，S3 檔案必須使用更新後的金鑰 （以 S3 PUT 請求計量） 將資料寫入新物件，並刪除原始物件。重新命名操作的同步也會測量為從檔案系統讀取任何資料的檔案系統。如果檔案的資料從未複製到檔案系統的高效能儲存體，則檔案系統只會測量 4 KB 中繼資料讀取操作。當您重新命名或移動目錄時，S3 檔案必須針對共用該字首的每個物件重複此程序 （和計量）。如需詳細資訊，請參閱[了解重新命名和移動操作的影響](s3-files-synchronization.md#s3-files-sync-rename-move)。

**資料過期：**當 S3 檔案從檔案系統移除未使用的資料時，不收取檔案系統操作費用。

## 計量範例
<a name="s3-files-metering-examples"></a>

**第一次列出大型目錄**

當您第一次列出目錄時，S3 檔案會匯入該目錄中所有檔案的中繼資料。每個檔案的中繼資料匯入會計量為 4 KB 寫入。根據您的匯入組態，S3 檔案也可能預先擷取該目錄中小型檔案的資料，並將其複製到檔案系統的高效能儲存體，以最佳化效能。每個檔案的資料匯入都會以檔案大小 （最少 32 KB) 的寫入計量。您可以設定匯入規則來控制哪些檔案具有其資料匯入。如需詳細資訊，請參閱[自訂 S3 檔案的同步](s3-files-synchronization-customizing.md)。

**讀取大型檔案**

對於已同步至 S3, S3 檔案也會直接從 S3 串流，因為 S3 已針對高輸送量進行最佳化，而檔案系統的高效能儲存層已針對低延遲小型檔案存取進行最佳化。您支付 S3 GET 請求定價以及 4 KB 中繼資料讀取操作。不收取檔案系統資料讀取費用。

**讀取不在檔案系統高效能儲存中的小型檔案**

S3 檔案會從 S3 儲存貯體讀取資料並提供給用戶端，並以非同步方式將資料匯入檔案系統的高效能儲存體，讓未來的讀取速度更快。這會計量為檔案系統讀取傳輸的資料大小 （最少 32 KB)。將資料非同步匯入檔案系統的高效能儲存體時，會以傳輸的資料大小進行寫入計量。當您從檔案系統讀取其資料已過期的檔案時，會遵循類似的程序。資料過期不會產生任何額外的檔案系統操作費用。

**撰寫檔案**

您的寫入會測量為寫入資料大小的檔案系統寫入 （最少 32 KB)。最後一次寫入後大約 60 秒，S3 檔案會將檔案複製到 S3 儲存貯體。這是因為當您修改檔案系統中的檔案時，S3 檔案會等待最多 60 秒，在該時間彙總檔案的任何後續變更，然後再複製到 S3 儲存貯體。這表示在單一 S3 PUT 請求中擷取對相同檔案的快速連續寫入，而不是為每個個別變更產生新的物件版本，從而降低 S3 請求成本和儲存成本。此同步計量為檔案系統讀取，用於從檔案系統的高效能儲存體讀取資料，以及標準 S3 PUT 請求。

# S3 檔案最佳實務
<a name="s3-files-best-practices"></a>

此頁面說明使用 S3 檔案系統的建議最佳實務。

## 效能和成本最佳化
<a name="s3-files-best-practices-performance"></a>
+ **平行處理工作負載** – S3 檔案旨在支援高度平行工作負載。將讀取分散到多個檔案和多個運算執行個體，有助於將彙總輸送量最大化。您也可以在相同儲存貯體中建立多個範圍為不同特定字首的檔案系統 （而不是在整個儲存貯體上建立一個檔案系統），以水平擴展並改善彙總輸送量。
+ **將您的檔案系統範圍限定為工作負載所需的最小字首，以將重新命名的影響降至最低** – S3 沒有目錄的原生概念。當您重新命名或移動目錄時，S3 檔案必須使用更新的金鑰將資料寫入新物件，並刪除該目錄中每個檔案的原始檔案。使用數百萬個檔案重新命名目錄可以大幅增加 S3 請求成本和同步時間。將您的檔案系統範圍限定在您的作用中資料集，或建構您的資料，以便您預期重新命名的目錄包含較少的檔案。如需詳細資訊，請參閱[了解重新命名和移動操作的影響](s3-files-synchronization.md#s3-files-sync-rename-move)。
+ **使用大型 IO 大小** – S3 Files 會測量每個至少 32 KB 的讀取和寫入操作。使用較大的 IO 大小 (1 MB 或更多） 可攤銷每個操作的額外負荷，而且比許多小型讀取或寫入更具成本效益。使用掛載協助程式時，預設的 NFS 讀取和寫入緩衝區大小會設定為 1 MB，以獲得最佳效能。
+ **調校匯入組態中的 sizeLessThan 值以符合您的檔案大小** – 根據預設，S3 檔案會在您第一次存取目錄時快取小於 128 KB 的檔案資料。大於此閾值的檔案會直接從 S3 讀取。如果您的工作負載對較大的檔案執行小型延遲敏感讀取，請增加 sizeLessThan 閾值，以符合檔案系統的高效能儲存體上所需的檔案大小，以實現低延遲存取。如需詳細資訊，請參閱[自訂 S3 檔案的同步](s3-files-synchronization-customizing.md)。
+ **設定過期時段以符合工作負載生命週期** – 尚未在過期時段內讀取的資料會自動從檔案系統中移除。對於批次任務或訓練執行等短期工作負載，請使用較短的過期時間 (1-7 天） 將儲存成本降至最低。對於在幾週內重新檢視相同資料的工作負載，請使用較長的過期時間 (30–90 天） 來繼續受益於低延遲。如需詳細資訊，請參閱[自訂 S3 檔案的同步](s3-files-synchronization-customizing.md)。
+ 針對**混合工作負載使用字首範圍規則** – 如果您的儲存貯體同時包含經常存取和不常存取的資料，請為每個字首建立個別的匯入規則。這可讓您積極匯入熱字首的資料，同時保留僅限中繼資料的冷字首。如需詳細資訊，請參閱[自訂 S3 檔案的同步](s3-files-synchronization-customizing.md)。
+ **在每個可用區域中建立掛載目標** – 我們建議您在您操作的每個可用區域中建立一個掛載目標，以便您可以降低跨可用區域資料傳輸成本並改善效能。這可確保您的運算資源一律具有檔案系統的本機網路路徑，同時改善可用性和延遲。當您使用 AWS 管理主控台建立檔案系統時，S3 檔案會自動在所選 VPC 的每個可用區域中建立一個掛載目標。

## 同步
<a name="s3-files-best-practices-sync"></a>
+ **了解 S3 檔案一致性模型** – 當檔案系統中的檔案與 S3 儲存貯體中的對應物件同時修改時，S3 檔案會將 S3 儲存貯體視為事實來源，並將檔案移至失物清單。若要避免衝突，請指定一個路徑 （檔案系統或 S3) 做為主要寫入器。
+ **監控同步運作**狀態 – 使用 CloudWatch 指標來追蹤檔案系統和 S3 儲存貯體之間的同步狀態。不斷增長`PendingExports`表示您的工作負載產生的變更比同步速率快，這表示同步需要更長的時間才能完成。非零 `ExportFailures` CloudWatch 指標表示無法匯出且需要動作的檔案。如需詳細資訊，請參閱[對 S3 檔案進行故障診斷](s3-files-troubleshooting.md)。

## 存取控制
<a name="s3-files-best-practices-access"></a>
+ **遵循最低權限原則** – 僅授予每個 IAM 角色和檔案系統政策所需的最低許可。例如，如果運算資源只需要從檔案系統讀取資料，請連接 `AmazonS3FilesClientReadOnlyAccess`受管政策，而非 `AmazonS3FilesClientFullAccess`。此外，請考慮建立範圍限定於特定字首而非整個儲存貯體的檔案系統，以便用戶端只能存取該字首內的資料。
+ **請勿修改 S3 檔案 IAM 角色** – 請勿修改或刪除 S3 檔案擔任的 IAM 角色，以與您的 S3 儲存貯體同步。變更或移除此角色可能會中斷檔案系統和 S3 儲存貯體之間的同步。
+ **請勿修改 S3 檔案 EventBridge 規則** – S3 檔案會建立 EventBridge 規則 （字首為 DO-NOT-DELETE-S3-Files)，以偵測 S3 儲存貯體中的變更。請勿停用、修改或刪除此規則。移除它可防止 S3 檔案偵測儲存貯體中新的或變更的物件，導致您的檔案系統過時。
+ **考慮限制對 所寫入日誌的存取 `efs-utils`** – 會將 S3 物件金鑰名稱直接`efs-utils`寫入其存放在目錄 的日誌中`/var/log/amazon/efs`。如果您的 S3 金鑰名稱包含敏感資訊，您應該透過 POSIX 許可限制對此目錄的存取。例如，您可以透過命令 限制存取`sudo chmod 700 /var/log/amazon/efs`。

## 監控
<a name="s3-files-best-practices-monitoring"></a>
+ 在**同步失敗時設定警示** – 在 上建立 CloudWatch 警示`ExportFailures`，`ImportFailures`並在檔案無法同步時收到通知。失敗的匯出可能表示許可問題、加密金鑰問題或路徑長度限制。如需詳細資訊，請參閱[對 S3 檔案進行故障診斷](s3-files-troubleshooting.md)。

# 不支援的功能、限制和配額
<a name="s3-files-quotas"></a>

此頁面說明使用 S3 檔案時的限制和配額。

## 不支援的 S3 功能
<a name="s3-files-unsupported-s3-features"></a>
+ **封存儲存類別** – 無法透過檔案系統存取 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 儲存類別中的物件。同樣地，S3 Intelligent-Tiering Archive Access 或 Deep Archive Access 層中的物件無法透過檔案系統存取。您必須先使用 S3 API 還原這些物件。
+ **S3 存取控制清單 (ACLs)** – 透過檔案系統進行變更後，不會保留 S3 ACLs。我們建議您停用 ACLs，並使用 政策來控制對儲存貯體中所有物件的存取，無論物件上傳到儲存貯體的對象為何。如需詳細資訊，請參閱[使用 ACLs管理存取](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acls.html)。
+ **自訂 S3 物件中繼資料** – 透過檔案系統進行變更後，不會保留 S3 物件上的自訂使用者定義中繼資料。

## 檔案系統限制
<a name="s3-files-filesystem-limitations"></a>
+ **硬連結** – S3 檔案不支援硬連結。檔案系統中的每個檔案對應至單一 S3 物件金鑰。
+ **路徑元件大小** – S3 檔案不支援路徑中任何單一目錄或檔案名稱超過 255 個位元組的物件。路徑元件是從 S3 物件金鑰衍生的目錄或檔案名稱。例如， 金鑰`dir1/dir2/file.txt`有三個路徑元件：`dir1`、 `dir2`和 `file.txt`。
+ **S3 金鑰大小限制** – 完整路徑名稱超過 1，024 位元組 S3 物件金鑰大小限制的檔案或目錄無法匯出至 S3。
+ **Symlink 目標** – 如果 S3 物件是符號連結，其目標必須是非空白且不超過 4，080 個位元組的有效路徑。
+ **POSIX 許可中繼資料大小** – POSIX 許可中繼資料超過 2 KB 的檔案或目錄無法匯出至 S3。

## 配額
<a name="s3-files-quotas-resource"></a>

您可以聯絡 AWS Support 來增加下列配額。


| 資源 | 預設配額 | 
| --- | --- | 
| 每個 AWS 帳戶的檔案系統 | 1,000 | 
| 每個檔案系統的存取點 | 10,000 | 

若要請求提高，請開啟[AWS 支援中心](https://console.aws.amazon.com/support/home)，選擇**建立案例**，然後選擇**服務限制提高**。

下列配額無法變更。


| 資源 | 配額 | 
| --- | --- | 
| 每個檔案系統的連線數 | 25,000 | 
| 每個可用區域每個檔案系統掛載目標 | 1 | 
| 每個掛載目標的安全群組 | 5 | 
| 每個檔案系統的標籤 | 50 | 
| 每個檔案系統的 VPCs  | 1 | 

也有個別檔案系統特有的配額。


| 資源 | 配額 | 
| --- | --- | 
| 檔案大小上限 | 52，673，613，135，872 位元組 (48 TiB) | 
| 目錄深度上限 | 1，000 個層級 | 
| 檔案名稱長度上限 | 255 個位元組 | 
| 符號連結目標長度上限 | 4，080 個位元組 | 
| S3 物件金鑰長度上限 | 1,024 位元組 | 
| 每個用戶端的開啟檔案上限 | 32,768 | 
| 每個用戶端的作用中使用者帳戶上限 | 128 | 
| 每個檔案的最大鎖定數 | 所有連線執行個體的 512 | 
| 每個掛載的最大鎖定數 | 8，192 個跨最多 256 個檔案處理對 | 
| 檔案系統政策大小限制 | 20，000 個字元 | 

## 不支援的 NFS 功能
<a name="s3-files-unsupported-nfs"></a>

S3 檔案支援 NFSv4.1 和 NFSv4.2,但有下列例外：
+ pNFS
+ 用戶端委派或回呼
+ 強制鎖定 （所有鎖定都是建議）
+ 拒絕共用
+ 存取控制清單 (ACL)
+ Kerberos 型安全性
+ NFSv4.1 資料保留
+ 目錄上的 SetUID
+ 封鎖裝置、角色裝置、屬性目錄和具名屬性
+ `nconnect` 掛載選項

# 對 S3 檔案進行故障診斷
<a name="s3-files-troubleshooting"></a>

此頁面可協助您診斷和解決 S3 檔案的常見問題。
+ [掛載命令失敗](#s3-files-troubleshooting-mount-fails)
+ [檔案操作的許可遭拒](#s3-files-troubleshooting-permission-denied)
+ [智慧讀取路由無法運作](#s3-files-troubleshooting-read-routing)
+ [檔案系統持續傳回 NFS 伺服器錯誤](#s3-files-troubleshooting-encrypted-fs)
+ [檔案系統寫入後 S3 儲存貯體中缺少物件](#s3-files-troubleshooting-missing-object)
+ [顯示在失物招領目錄中的檔案](#s3-files-troubleshooting-lost-found)
+ [同步落後](#s3-files-troubleshooting-sync-behind)
+ [啟用用戶端偵錯日誌](#s3-files-troubleshooting-debug-logs)

## 掛載命令失敗
<a name="s3-files-troubleshooting-mount-fails"></a>

`mount -t s3files` 命令失敗並發生錯誤。

**常見原因和動作：**
+ **"mount.s3files： command not found"** – S3 Files 用戶端 (amazon-efs-utils) 未安裝或低於 3.0.0 版。安裝或升級用戶端。如需詳細資訊，請參閱[S3 檔案的先決條件](s3-files-prereq-policies.md)。
+ **「無法解析檔案系統 DNS 名稱」**：EC2 執行個體執行所在的可用區域中沒有掛載目標。在該可用區域中建立掛載目標，或在具有掛載目標的可用區域中啟動執行個體。如需詳細資訊，請參閱[建立掛載目標](s3-files-mount-targets-creating.md)。
+ **連線逾時** – 安全群組組態不允許 NFS 流量。確認掛載目標的安全群組允許來自執行個體安全群組的連接埠 2049 上的傳入 TCP，且執行個體的安全群組允許連接埠 2049 上的傳出 TCP 傳送至掛載目標的安全群組。如需詳細資訊，請參閱[S3 檔案的先決條件](s3-files-prereq-policies.md)。
+ **掛載期間「拒絕存取」**：連接至運算資源的 IAM 角色沒有必要的 S3 檔案許可。確認角色已連接 `AmazonS3FilesClientFullAccess`或 `AmazonS3FilesClientReadOnlyAccess`受管政策，或至少已連接 `s3files:ClientMount`許可。如需詳細資訊，請參閱[S3 檔案的先決條件](s3-files-prereq-policies.md)。
+ **botocore 未安裝** – 掛載協助程式需要 botocore 才能與 AWS 服務互動。按照 GitHub 上 amazon-efs-utils README 中的指示安裝 botocore。

## 檔案操作的許可遭拒
<a name="s3-files-troubleshooting-permission-denied"></a>

您可以掛載檔案系統，但在讀取、寫入或存取檔案時收到「拒絕許可」或「不允許操作」錯誤。

**常見原因和動作：**
+ **缺少寫入許可** – 如果您可以讀取但無法寫入，請確認連接至運算資源的 IAM 角色包含 `s3files:ClientWrite`許可，或連接 `AmazonS3FilesClientReadWriteAccess`或 `AmazonS3FilesClientFullAccess`受管政策。如需詳細資訊，請參閱 [AWS Amazon S3 檔案的 受管政策](s3-files-security-iam-awsmanpol.md)。
+ **缺少根存取** – 如果您在存取根 (UID 0) 擁有的檔案時收到許可錯誤，您的 IAM 角色可能沒有 `s3files:ClientRootAccess`許可。如果沒有此許可，所有操作都會以 NFS 匿名使用者 （通常是 nfsnobody) 身分執行，這可能無法存取檔案。連接 `AmazonS3FilesClientFullAccess`受管政策或`s3files:ClientRootAccess`新增至您的政策。
+ **檔案系統政策拒絕存取** – 如果您已連接檔案系統政策，請確認它不會拒絕用戶端所需的動作。身分型政策或檔案系統政策中的「允許」已足夠存取。如需詳細資訊，請參閱[S3 檔案如何與 IAM 搭配使用](s3-files-security-iam.md)。
+ **POSIX 許可不相符** – S3 檔案會對檔案和目錄強制執行標準 POSIX 許可 （擁有者、群組、其他）。如果您的應用程式以不符合檔案擁有者或群組的使用者身分執行，即使 IAM 許可正確，存取也可能遭到拒絕。使用存取點強制執行所有請求的特定 UID/GID。如需詳細資訊，請參閱[建立 S3 檔案系統的存取點](s3-files-access-points-creating.md)。

## 智慧讀取路由無法運作
<a name="s3-files-troubleshooting-read-routing"></a>

S3 檔案會執行智慧型讀取路由，因為它會自動將讀取請求路由到最適合它們的儲存層，同時維護完整的檔案系統語意，包括一致性、鎖定和 POSIX 許可。從高效能儲存提供少量、隨機讀取的主動使用檔案，以降低延遲。直接從 S3 儲存貯體提供不在檔案系統上的大型循序讀取和資料讀取，以獲得高輸送量，無需檔案系統資料費用。

如果其中一個用戶端連線指標 (`NFSConnectionAccessible`、 和 `S3BucketReachable`) 顯示 0，或者如果您沒有看到預期的讀取輸送量`S3BucketAccessible`，則智慧型讀取路由可能無法運作。

**常見原因和動作：**
+ **運算角色缺少 S3 內嵌政策** – 連接至運算資源的 IAM 角色必須包含內嵌政策，並在連結的 S3 儲存貯體`s3:GetObjectVersion`上授予 `s3:GetObject`和 。如果沒有此政策，掛載協助程式無法直接從 S3 讀取，而且所有讀取都會經過檔案系統。如需詳細資訊，請參閱[S3 檔案的先決條件](s3-files-prereq-policies.md)。
+ **無法存取 S3 儲存貯**體 – 檢查 `S3BucketReachable` 指標。如果顯示 0，請確認您的運算資源具有 S3 的網路存取權 （例如，透過 VPC 端點或 NAT 閘道）。
+ **檔案已修改** – 只有在檔案尚未透過檔案系統修改時，才會直接從 S3 提供讀取。如果您已寫入 檔案，且變更尚未同步至 S3，則 讀取會經過檔案系統，直到同步完成為止。

## 檔案系統持續傳回 NFS 伺服器錯誤
<a name="s3-files-troubleshooting-encrypted-fs"></a>

加密檔案系統持續傳回 NFS 伺服器錯誤。當 S3 檔案因為下列其中一個原因無法從 AWS KMS 擷取 KMS 金鑰時，可能會發生這些錯誤：
+ 該金鑰已停用。
+ 該金鑰已刪除。
+ S3 檔案使用金鑰的許可已撤銷。
+ AWS KMS 暫時無法使用。

**採取動作**

首先，確認 AWS KMS 金鑰已啟用。您可以在 KMS 主控台中 AWS 檢視您的金鑰。如需詳細資訊，請參閱《AWS Key Management Service 開發人員指南》**中的[檢視金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys.html)。

如果該金鑰未啟用，請將其啟用。如需詳細資訊，請參閱《*AWS Key Management Service 開發人員指南*》中的[啟用和停用金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/enabling-keys.html)。

如果金鑰正在等待刪除，請取消刪除並重新啟用金鑰。如需詳細資訊，請參閱 [Key Management Service 開發人員指南中的排程和取消金鑰刪除](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html)。 *AWS *

如果金鑰已啟用，但您仍然遇到問題，請聯絡 AWS Support。

## 檔案系統寫入後 S3 儲存貯體中缺少物件
<a name="s3-files-troubleshooting-missing-object"></a>

您透過檔案系統撰寫檔案，並預期它在 S3 儲存貯體中顯示為物件，但物件不存在。S3 檔案批次會變更大約 60 秒，然後再將其複製到 S3。如果物件仍未顯示，則匯出可能已失敗。在這種情況下，您會看到 `FailedExports` CloudWatch 指標增加。

**採取動作**

使用延伸屬性檢查檔案的匯出狀態：

```
getfattr -n "user.s3files.status;$(date -u +%s)" missing-file.txt --only-values
```

屬性名稱中的時間戳記可確保您取得最新狀態。輸出範例：

```
S3Key: s3://bucket/prefix/missing-file.txt
ExportError: PathTooLong
```

`ExportError` 如果沒有匯出失敗，則不會顯示 。如果 S3 物件從未連結至 檔案，則 `S3Key` 為空白。

下表列出所有可能`ExportError`的值：


| 錯誤 | 原因 | 
| --- | --- | 
| S3AccessDenied | S3 檔案擔任的 IAM 角色沒有足夠的許可寫入 S3 儲存貯體。如需詳細資訊，請參閱[S3 檔案的先決條件](s3-files-prereq-policies.md)。 | 
| S3BucketNotFound | 來源 S3 儲存貯體不再存在或已重新命名。驗證它存在於預期的 AWS 區域和帳戶中。 | 
| InternalError | 發生內部系統錯誤。 | 
| S3UserMetadataTooLarge | 超過 S3 使用者中繼資料大小限制。如需這些限制的資訊[不支援的功能、限制和配額](s3-files-quotas.md)，請參閱 。 | 
| FileSizeExceedsS3Limit | 檔案大小超過 S3 物件大小限制。如需這些限制的資訊[不支援的功能、限制和配額](s3-files-quotas.md)，請參閱 。 | 
| EncryptionKeyInaccessible | S3 儲存貯體使用的加密金鑰無法存取 S3 檔案。授予 S3 檔案存取加密金鑰的權限。如需詳細資訊，請參閱[加密](s3-files-encryption.md)。 | 
| RoleAssumptionFailed | 無法擔任該角色。檢查您的信任政策。如需詳細資訊，請參閱[S3 檔案的先決條件](s3-files-prereq-policies.md)。 | 
| KeyTooLongToBreakCycle | S3 檔案無法解析循環相依性 （例如，因為將兩個檔案重新命名為彼此的名稱），因為檔案路徑超過 S3 金鑰長度限制。縮短目錄路徑以解決此錯誤。 | 
| PathTooLong | 您的檔案路徑超過 S3 金鑰長度限制。如需這些限制的資訊[不支援的功能、限制和配額](s3-files-quotas.md)，請參閱 。 | 
| DependencyExportFailed | 父項或相依性具有不可重試的匯出失敗。使用 檢查父系或任何相依性的狀態getfattr。 | 
| S3ObjectArchived | S3 物件已封存 (S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive)，無法讀取。先使用 S3 APIs 還原物件。 | 

S3 檔案會自動重試失敗的匯出。 `ExportError` 只會針對無法重試的錯誤顯示。

## 顯示在失物招領目錄中的檔案
<a name="s3-files-troubleshooting-lost-found"></a>

檔案已出現在檔案系統根`.s3files-lost+found-file-system-id`目錄中的 目錄中。在這種情況下，您會看到 `LostAndFoundFiles` CloudWatch 指標增加。當同步衝突發生時，就會發生這種情況。當透過檔案系統修改相同的檔案，且對應的 S3 物件在 S3 檔案將檔案系統變更同步回 S3 之前變更時，就會發生衝突。S3 檔案會將 S3 儲存貯體視為事實來源，將衝突的檔案移至遺失和找到的目錄，並將最新版本從 S3 儲存貯體匯入檔案系統。

**識別失物招領目錄中的檔案**

當 S3 檔案將檔案移至遺失並找到的目錄時，它會在檔案名稱前面加上十六進位識別符，以區分可能隨時間移動的相同檔案的多個版本。超過 100 個字元的檔案名稱會被截斷，以為此識別符騰出空間。檔案的原始目錄路徑不會保留在遺失和找到的目錄中。

**採取動作**

取得檔案的原始路徑和對應的 S3 物件金鑰：

```
getfattr -n "user.s3files.status;$(date -u +%s)" .s3files-lost+found-fs-12345678/abcdef1234_report.csv --only-values
```

輸出範例：

```
S3Key: s3://bucket/prefix/report.csv
FilePath: /data/report.csv
```


| 欄位 | Description | 
| --- | --- | 
| S3Key | 造成衝突之物件的完整 S3 路徑，如果在 S3 儲存貯體中刪除物件，則為空白。 | 
| FilePath | 檔案在衝突之前的相對路徑。 | 

然後，您可以從 S3 儲存貯體保留最新版本，並從遺失和找到的目錄刪除檔案，或將檔案從遺失和找到的目錄複製回其原始路徑，以覆寫 S3 版本。

**注意**  
失物招領目錄中的檔案會無限期保留，並計入您的檔案系統儲存成本。不再需要檔案時，從遺失和找到的目錄中刪除檔案。

## 同步落後
<a name="s3-files-troubleshooting-sync-behind"></a>

`PendingExports` CloudWatch 指標正在成長，表示您的工作負載產生變更的速度比 S3 檔案可以同步到 S3 的速度快。

這表示您的工作負載可能超過同步速率。S3 檔案每秒每個檔案系統匯出最多 800 個檔案。考慮降低檔案修改速率，或在多個檔案系統中分配工作。隨著時間的推移監控`PendingExports`指標。如果穩定或減少，S3 檔案就會趕上。如果持續成長，請聯絡 AWS Support。

## 啟用用戶端偵錯日誌
<a name="s3-files-troubleshooting-debug-logs"></a>

如果您要對掛載、連線或讀取略過問題進行故障診斷，您可以在 S3 檔案用戶端上啟用偵錯層級記錄，以擷取更多詳細資訊。

**掛載協助程式和監視程式日誌**

編輯記錄層級，`/etc/amazon/efs/s3files-utils.conf`並將記錄層級從 INFO 變更為 DEBUG：

```
[DEFAULT]
logging_level = DEBUG
```

卸載和重新掛載檔案系統，以使變更生效：

```
sudo umount /mnt/s3files
sudo mount -t s3files file-system-id:/ /mnt/s3files
```

日誌會寫入 `/var/log/amazon/efs/`。掛載協助程式日誌為 `mount.log`。

**Proxy (efs-proxy) 日誌**

代理處理 NFS 流量和 S3 讀取繞過。若要啟用代理的偵錯記錄，請編輯 `/etc/amazon/efs/s3files-utils.conf`：

```
[proxy]
proxy_logging_level = DEBUG
```

卸載並重新掛載，以使變更生效。Proxy 日誌會寫入 `/var/log/amazon/efs/`。

**TLS 通道 (stunnel) 日誌**

預設會停用 TLS 通道日誌。若要啟用它們，請編輯`/etc/amazon/efs/s3files-utils.conf`並設定下列項目：

```
[mount]
stunnel_debug_enabled = true
```

若要將檔案系統的所有 stunnel 日誌儲存至單一檔案，也請取消註解`stunnel_logs_file`行：

```
stunnel_logs_file = /var/log/amazon/efs/{fs_id}.stunnel.log
```

**日誌大小限制**

日誌檔案會自動輪換。您可以在 中設定輪換檔案的大小上限和數量`s3files-utils.conf`：

```
[DEFAULT]
logging_max_bytes = 1048576
logging_file_count = 10
```

預設值為每個日誌檔案 1 MB，具有 10 個輪換檔案，每個日誌類型最多 10 MB。

**與 AWS Support 共用日誌**

聯絡 AWS Support 時，請將用戶端日誌和組態收集到單一封存中：

```
sudo tar -czf /tmp/s3files-support-logs.tar.gz \
  /var/log/amazon/efs/ \
  /etc/amazon/efs/s3files-utils.conf
```

將 `/tmp/s3files-support-logs.tar.gz`納入您的支援案例。