

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

# 目錄儲存貯體的使用案例
<a name="directory-bucket-use-cases"></a>

目錄儲存貯體支援在下列儲存貯體位置類型中建立儲存貯體：可用區域或本機區域。

對於低延遲使用案例，您可以在單一可用區域中建立目錄儲存貯體來儲存資料。可用區域中的目錄儲存貯體支援 S3 Express One Zone 儲存類別。如果您的應用程式對於效能很敏感，且受益於個位數毫秒的 `PUT` 和 `GET` 延遲，則建議使用 S3 Express One Zone 儲存類別。若要進一步了解如何在可用區域中建立目錄儲存貯體，請參閱[高效能工作負載](directory-bucket-high-performance.md)。

 對於資料駐留使用案例，您可以在單一專用本機區域 (DLZ) AWS 中建立目錄儲存貯體來存放資料。本機區域中的目錄儲存貯體支援 S3 One Zone-Infrequent Access (S3 One Zone-IA、Z-IA) 儲存類別。若要進一步了解如何在本機區域中建立目錄儲存貯體，請參閱[資料落地工作負載](directory-bucket-data-residency.md)。

**Topics**
+ [高效能工作負載](directory-bucket-high-performance.md)
+ [資料落地工作負載](directory-bucket-data-residency.md)

# 高效能工作負載
<a name="directory-bucket-high-performance"></a>

## S3 Express One Zone
<a name="s3-express-one-zone"></a>

 您可以使用 Amazon S3 Express One Zone 處理高效能工作負載。S3 Express One Zone 是第一款可讓您選取單一可用區域的 S3 儲存類別，還可選擇將物件儲存體與運算資源共置，藉此盡可能提供最高存取速度。S3 Express One Zone 中的物件會儲存在位於可用區域的目錄儲存貯體中。如需目錄儲存貯體的詳細資訊，請參閱[目錄儲存貯體](https://docs.aws.amazon.com//AmazonS3/latest/userguide/directory-buckets-overview.html)。

Amazon S3 Express One Zone 是一種高效能的單一區域 Amazon S3 儲存類別，專門為對延遲最敏感的應用程式提供一致的個位數毫秒資料存取。S3 Express One Zone 是目前可用的最低延遲雲端物件儲存類別，與 S3 Standard 相比，資料存取速度提高 10 倍，而且請求成本低 50%。應用程式可立即因請求完成的速度加快一級而受益。S3 Express One Zone 提供與其他 S3 儲存類別類似的效能彈性。S3 Express One Zone 用於需要一致的個位數毫秒延遲的工作負載或效能關鍵應用程式。

如同其他 Amazon S3 儲存類別，您不需要事先規劃或佈建容量或輸送量要求。您可以根據需要擴展或縮減儲存大小，並透過 Amazon S3 API 存取資料。

Amazon S3 Express One Zone 儲存類別的設計可在單一可用區域內達到 99.95% 的可用性，並依照 [Amazon S3 服務水準協議](https://aws.amazon.com/s3/sla/)提供支援。使用 S3 Express One Zone，您的資料會以備援方式儲存在單一可用區域內的多部裝置上。S3 Express One Zone 的設計在於透過快速偵測並修復任何遺失的備援來處理並行裝置故障。如果現有裝置發生故障，S3 Express One Zone 會自動將請求轉送到可用區域內的新裝置。這種備援有助於確保存取可用區域內的資料不間斷。

S3 Express One Zone 非常適合需要盡可能降低存取物件所需延遲的任何應用程式。這類應用程式可能是人為互動的工作流程 (例如影片編輯)，需要創意專業人員從其使用者介面回應內容。S3 Express One Zone 也有利於資料具有類似回應能力需求的分析和機器學習工作負載，特別是需進行許多小量存取或大量隨機存取的工作負載。S3 Express One Zone 可與其他 AWS 服務 搭配使用，以支援分析以及人工智慧和機器學習 (AI/ML) 工作負載，例如 Amazon EMR、Amazon SageMaker AI 和 Amazon Athena。

![\[顯示 S3 Express One Zone 運作方式的圖表。\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/images/s3-express-one-zone.png)


對於使用 S3 Express One Zone 儲存類別的目錄儲存貯體，資料會儲存在單一可用區域內的多個裝置，但不會以備援方式跨可用區域儲存資料。當您建立目錄儲存貯體以使用 S3 Express One Zone 儲存類別時，建議您指定 AWS 區域 和 可用區域，其位於 Amazon EC2、Amazon Elastic Kubernetes Service 或 Amazon Elastic Container Service (Amazon ECS) 運算執行個體的本機，以最佳化效能。

使用 S3 Express One Zone 時，您可以使用閘道 VPC 端點與虛擬私有雲端 (VPC) 中的目錄儲存貯體互動。您可以使用閘道端點從您的 VPC 存取 S3 Express One Zone，VPC 不需要網際網路閘道或 NAT 裝置，您也不需支付額外費用。

您可以在目錄儲存貯體中，使用許多與一般用途儲存貯體和其他儲存類別相同的 Amazon S3 API 操作和功能。其中包括適用於 Amazon S3 的掛載點、使用 Amazon S3 受管金鑰的伺服器端加密 (SSE-S3)、使用 AWS Key Management Service (AWS KMS) 金鑰的伺服器端加密 (SSE-KMS)、S3 批次操作和 S3 封鎖公開存取。您可以使用 Amazon S3 主控台、 AWS Command Line Interface (AWS CLI)、 AWS SDKs 和 Amazon S3 REST API 來存取 S3 Express One Zone。 Amazon S3 

如需有關 S3 Express One Zone 的詳細資訊，請參閱下方主題。
+ [概觀](#s3-express-one-zone-overview)
+ [S3 Express One Zone 的功能](#s3-express-features)
+ [相關服務](#s3-express-related-services)
+ [後續步驟](#s3-express-next-steps)

### 概觀
<a name="s3-express-one-zone-overview"></a>

為了最佳化效能並降低延遲，S3 Express One Zone 導入了下列新概念。

#### 可用區域
<a name="s3-express-overview-az"></a>

Amazon S3 Express One Zone 儲存類別的設計可在單一可用區域內達到 99.95% 的可用性，並依照 [Amazon S3 服務水準協議](https://aws.amazon.com/s3/sla/)提供支援。使用 S3 Express One Zone，您的資料會以備援方式儲存在單一可用區域內的多部裝置上。S3 Express One Zone 的設計在於透過快速偵測並修復任何遺失的備援來處理並行裝置故障。如果現有裝置發生故障，S3 Express One Zone 會自動將請求轉送到可用區域內的新裝置。這種備援有助於確保存取可用區域內的資料不間斷。

可用區域是一個或多個獨立的資料中心，具備 AWS 區域中的備援電源、聯網和連線能力。建立目錄儲存貯體時，您可以選擇儲存貯體 AWS 區域 所在的可用區域和位置。

##### 單一可用區域
<a name="directory-buckets-availability-zone"></a>

當您建立目錄儲存貯體時，可選擇可用區域和 AWS 區域。

目錄儲存貯體使用 S3 Express One Zone 儲存類別，這是專供效能敏感應用程式使用所打造的類別。S3 Express One Zone 是第一款可讓您選取單一可用區域的 S3 儲存類別，還可選擇將物件儲存體與運算資源共置，藉此盡可能提供最高存取速度。

使用 S3 Express One Zone，您的資料會以備援方式儲存在單一可用區域內的多部裝置上。S3 Express One Zone 的設計可在單一可用區域內達到 99.95% 的可用性，並依照 [Amazon S3 服務水準協議](https://aws.amazon.com/s3/sla/)提供支援。如需詳細資訊，請參閱[可用區域](#s3-express-overview-az)

#### 端點和閘道 VPC 端點
<a name="s3-express-overview-endpoints"></a>

您可以透過地區端點對目錄儲存貯體執行儲存貯體管理 API 操作，這些操作也稱為地區端點 API 操作。區域端點 API 操作的範例包括 `CreateBucket` 和 `DeleteBucket`。建立目錄儲存貯體後，您可以使用區域 (Zone) 端點 API 操作來上傳和管理目錄儲存貯體中的物件。區域端點 API 操作可透過區域端點提供使用。區域端點 API 操作的範例包括 `PutObject` 和 `CopyObject`。

您可以使用閘道 VPC 端點從 VPC 存取 S3 Express One Zone。建立閘道端點後，您可以將其新增為路由表中的目標，用於從 VPC 到 S3 Express One Zone 的流量。如同使用 Amazon S3，使用閘道端點不需額外付費。如需如何設定閘道 VPC 端點的詳細資訊，請參閱 [目錄儲存貯體的網路](s3-express-networking.md)

#### 工作階段型授權
<a name="s3-express-overview-authorization"></a>

使用 S3 Express One Zone，您可以透過新的工作階段型機制來驗證和授權請求，此機制經過最佳化，可提供最低延遲。您可以使用 `CreateSession` 請求臨時憑證來提供低延遲的儲存貯體存取。這些臨時憑證的範圍會設為特定 S3 目錄儲存貯體。工作階段權杖只能搭配區域 (物件層級) 操作 ([CopyObject](directory-buckets-objects-copy.md) 除外) 使用。如需詳細資訊，請參閱[使用 `CreateSession` 授權區域端點 API 操作](s3-express-create-session.md)。

[S3 Express One Zone 支援的 AWS SDKs ](s3-express-SDKs.md#s3-express-getting-started-accessing-sdks) 會代表您處理工作階段建立和重新整理。為保護您的工作階段，臨時安全憑證會在 5 分鐘後過期。下載並安裝 AWS SDKs並設定必要的 AWS Identity and Access Management (IAM) 許可後，您就可以立即開始使用 API 操作。

### S3 Express One Zone 的功能
<a name="s3-express-features"></a>

下列 S3 功能適用於 S3 Express One Zone。如需支援 API 操作和不支援功能的完整清單，請參閱[目錄儲存貯體的不同之處](s3-express-differences.md)。

#### 存取管理與安全性
<a name="s3-express-features-access-management"></a>

您可以使用下列功能來稽核及管理存取權。根據預設，目錄儲存貯體為私有，只有明確獲得存取權的使用者才能存取。與可在儲存貯體、字首或物件標籤層級設定存取控制界限的一般用途儲存貯體不同的是，目錄儲存貯體的存取控制界限只會在儲存貯體層級設定。如需詳細資訊，請參閱[使用 IAM 授權地區端點 API 操作](s3-express-security-iam.md)。
+ [S3 封鎖公開存取](access-control-block-public-access.md) – 根據預設，所有 S3 封鎖公開存取設定都會在儲存貯體層級啟用。此預設設定無法修改。
+ [S3 物件擁有權](about-object-ownership.md) (預設為儲存貯體擁有者強制執行) – 目錄儲存貯體不支援存取控制清單 (ACL)。目錄儲存貯體會自動使用儲存貯體擁有者強制執行的 S3 物件擁有權設定。「儲存貯體擁有者強制執行」表示 ACL 已停用，且儲存貯體擁有者會自動擁有並完全控制儲存貯體中的每個物件。此預設設定無法修改。
+ [AWS Identity and Access Management (IAM)](s3-express-security-iam.md) – IAM 可協助您安全地控制對目錄儲存貯體的存取。您可以透過 `s3express:CreateSession` 動作，使用 IAM 授予存取儲存貯體管理 (地區) API 操作和物件管理 (區域) API 操作的權限。如需詳細資訊，請參閱[使用 IAM 授權地區端點 API 操作](s3-express-security-iam.md)。與物件管理動作不同的是，儲存貯體管理動作不可跨帳戶。只有儲存貯體擁有者可執行這些動作。
+ [儲存貯體政策](s3-express-security-iam-example-bucket-policies.md)：使用 IAM 型政策語言，為目錄儲存貯體設定以資源為基礎的許可。您還可以使用 IAM 來控制對 `CreateSession` API 操作的存取，讓您能夠使用區域或物件管理 API 操作。您可以授予相同帳戶或跨帳户存取區域 API 操作的權限。如需 S3 Express One Zone 許可和政策的詳細資訊，請參閱[使用 IAM 授權地區端點 API 操作](s3-express-security-iam.md)。
+ [IAM Access Analyzer for S3](access-analyzer.md) – 評估和監控您的存取政策，確保政策僅提供對 S3 資源的預期存取。

#### 日誌記錄和監控
<a name="s3-express-features-logging-monitoring"></a>

S3 Express One Zone 使用下列 S3 記錄和監控工具，您可以使用這些工具來監控和控制資源的使用方式：
+ [Amazon CloudWatch 指標](cloudwatch-monitoring.md) – 使用 CloudWatch 收集和追蹤指標來監控您的 AWS 資源和應用程式。S3 Express One Zone 使用與其他 Amazon S3 儲存類別 (`AWS/S3`) 相同的 CloudWatch 命名空間，並針對目錄儲存貯體支援每日儲存指標：`BucketSizeBytes` 和 `NumberOfObjects`。如需詳細資訊，請參閱[使用 Amazon CloudWatch 監控指標](cloudwatch-monitoring.md)。
+ [AWS CloudTrail 日誌](cloudtrail-logging-s3-info.md) – AWS CloudTrail 透過 AWS 帳戶 記錄使用者、角色或 採取的動作， AWS 服務 協助您實作 的操作和風險稽核、控管和合規 AWS 服務。對於 S3 Express One Zone，CloudTrail 會將地區端點 API 操作 (例如 `CreateBucket`和 `PutBucketPolicy`) 當做管理事件來擷取，並將區域 API 操作 (例如 `GetObject`和 `PutObject`) 當做資料事件來擷取。這些事件包括在 AWS 管理主控台、 AWS Command Line Interface (AWS CLI)、 AWS SDKs和 AWS API 操作中採取的動作。如需詳細資訊，請參閱[使用適用於 S3 Express One Zone 的 AWS CloudTrail 記錄](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-one-zone-logging.html)。

**注意**  
S3 Express One Zone 不支援 Amazon S3 伺服器存取日誌。

#### 物件管理
<a name="s3-express-features-object-management"></a>

您可以使用 Amazon S3 主控台、 AWS SDKs和 來管理物件儲存 AWS CLI。下列功能適用於 S3 Express One Zone 的物件管理：
+ [S3 批次操作](batch-ops-create-job.md) – 使用批次操作對目錄儲存貯體中的物件執行大量操作，例如**複製**和**叫用 AWS Lambda 函數**。例如，您可以使用 Batch Operations 在目錄儲存貯體和一般用途儲存貯體之間複製物件。透過批次操作，您可以使用 AWS SDKs或 AWS CLI 或在 Amazon S3 主控台中按幾下滑鼠，透過單一 S3 請求大規模管理數十億個物件。 Amazon S3 
+ [匯入](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job.html)：建立目錄儲存貯體之後，您可以使用 Amazon S3 主控台中的匯入功能將物件填入儲存貯體。匯入是用來建立 Batch Operations 任務的簡化方法，可將物件從一般用途儲存貯體複製到目錄儲存貯體。

#### AWS SDKs和用戶端程式庫
<a name="s3-express-features-client-libraries"></a>

 您可以使用 AWS SDKs和用戶端程式庫來管理物件儲存。
+ [適用於 Amazon S3 的掛載點](https://github.com/awslabs/mountpoint-s3/blob/main/doc/SEMANTICS.md) – 適用於 Amazon S3 的掛載點是開放原始碼檔案用戶端，可提供高輸送量存取，並降低 Amazon S3 上資料湖的運算成本。適用於 Amazon S3 的掛載點可將本機檔案系統 API 呼叫轉譯成 S3 物件 API 呼叫，例如 `GET` 和 `LIST`。它非常適合用於處理 PB 級資料量，且需要 Amazon S3 提供的高彈性輸送量來擴展和縮減數千個執行個體的大量讀取資料湖工作負載。
+ [https://hadoop.apache.org/docs/stable/hadoop-aws/tools/hadoop-aws/index.html#Introducing_the_Hadoop_S3A_client](https://hadoop.apache.org/docs/stable/hadoop-aws/tools/hadoop-aws/index.html#Introducing_the_Hadoop_S3A_client) – S3A 是存取 Amazon S3 中的資料存放區時，建議使用的 Hadoop 相容介面。S3A 會取代 S3N Hadoop 檔案系統用戶端。
+ [PyTorch on AWS](https://docs.aws.amazon.com//sagemaker/latest/dg/pytorch.html) – PyTorch on AWS 是一種開放原始碼深度學習架構，可讓您更輕鬆地開發機器學習模型並將其部署到生產環境。
+ [AWS SDKs](https://aws.amazon.com//developer/tools/) – 您可以在使用 Amazon S3 開發應用程式時使用 AWS SDKs。 AWS SDKs 透過包裝基礎 Amazon S3 REST API 來簡化您的程式設計任務。如需搭配 S3 Express One Zone 使用 AWS SDKs 的詳細資訊，請參閱 [AWS SDKs](s3-express-SDKs.md#s3-express-getting-started-accessing-sdks)。

### 加密和資料保護
<a name="s3-express-features-encryption"></a>

S3 Express One Zone 中的物件會使用 Amazon S3 受管金鑰的伺服器端加密 (SSE-S3) 來自動加密。S3 Express One Zone 也支援使用 AWS Key Management Service (AWS KMS) 金鑰的伺服器端加密 (SSE-KMS)。S3 Express One Zone 不支援使用客戶提供加密金鑰的伺服器端加密 (SSE-C)，也不支援使用 AWS KMS keys 的雙層伺服器端加密 (DSSE-KMS)。如需詳細資訊，請參閱[資料保護和加密](s3-express-data-protection.md)。

S3 Express One Zone 可讓您選擇用於在上傳或下載過程中驗證資料的檢查總和演算法選項。您可以選擇以下 Secure Hash 演算法 (SHA) 或循環宂餘檢查 (CRC) 資料完整性演算法之一：CRC32、CRC32C、SHA-1 和 SHA-256。S3 Express One Zone 儲存類別不支援 MD5 型檢查總和。

如需詳細資訊，請參閱[S3 其他檢查總和最佳實務](s3-express-optimizing-performance.md#s3-express-optimizing-performance-checksums)。

### AWS Signature 第 4 版 (SigV4)
<a name="s3-express-features-sigv4"></a>

S3 Express One Zone 使用 AWS Signature 第 4 版 (SigV4)。 SigV4 是一種簽署通訊協定，用於透過 HTTPS 驗證對 Amazon S3 的請求。S3 Express One Zone 使用 簽署請求 AWS Sigv4。如需詳細資訊，請參閱《*Amazon Simple Storage Service API 參考*》中的[驗證請求 (AWS 簽章版本 4)](https://docs.aws.amazon.com//AmazonS3/latest/API/sig-v4-authenticating-requests.html)。

### 高度的一致性
<a name="s3-express-features-strong-consistency"></a>

S3 Express One Zone 為所有 `PUT` 之目錄儲存貯體中物件的 `DELETE` 和 AWS 區域請求提供高度的先寫後讀一致性。如需詳細資訊，請參閱[Amazon S3 資料一致性模式](Welcome.md#ConsistencyModel)。

### 相關服務
<a name="s3-express-related-services"></a>

您可以 AWS 服務 搭配 S3 Express One Zone 儲存類別使用下列項目，以支援特定的低延遲使用案例。
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/index.html) – Amazon EC2 在 AWS 雲端中提供了安全且可擴展的運算容量。使用 Amazon EC2 可減少前期所需的硬體投資，讓您更快速開發並部署應用程式。您可使用 Amazon EC2 按需要啟動任意數量的虛擬伺服器，設定安全性和聯網功能以及管理儲存。
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html.html)：Lambda 是一項運算服務，可讓您執行程式碼，而無需佈建或管理伺服器。您在儲存貯體上設定通知設定，並授予 Amazon S3 許可以在函數以資源為基礎的許可政策上叫用函數。
+ [Amazon Elastic Kubernetes Service (Amazon EKS)](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html) – Amazon EKS 是一種受管服務，無需安裝、操作和維護您自己的Kubernetes控制平面 AWS。 [https://kubernetes.io/docs/concepts/overview/](https://kubernetes.io/docs/concepts/overview/) 是一種開放原始碼系統，可自動化容器化應用程式的管理、擴展和部署。
+ [Amazon Elastic Container Service (Amazon ECS)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html)：Amazon ECS 為全受管容器協同運作服務，可讓您輕鬆部署、管理和擴展容器化應用程式。
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) – AWS Key Management Service (AWS KMS) 是一種 AWS 受管服務，可讓您輕鬆建立和控制用來加密資料的加密金鑰。您在 AWS KMS 中 AWS 建立的 KMS 金鑰受到 FIPS 140-2 驗證的硬體安全模組 (HSM) 保護。若要使用或管理您的 KMS 金鑰，您會與 AWS KMS 互動。
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html)：Athena 是一種互動式查詢服務，可讓您使用標準 [SQL](https://docs.aws.amazon.com/athena/latest/ug/ddl-sql-reference.html) 直接輕鬆分析 Amazon S3 中的資料。您還可以使用 Athena 以互動方式使用 Apache Spark 執行資料分析，而不必規劃、設定或管理資源。當您在 Athena 執行 Apache Spark 應用程式時，可提交 Spark 程式碼進行處理，並直接接收結果。
+ [Amazon SageMaker Training](https://docs.aws.amazon.com//sagemaker/latest/dg/how-it-works-training.html) – 檢閱使用 Amazon SageMaker 訓練模型的選項，包括內建演算法、自訂演算法、程式庫和 AWS Marketplace 中的模型。
+ [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) – AWS Glue 是一種無伺服器資料整合服務，可讓分析使用者輕鬆地探索、準備、移動和整合來自多個來源的資料。您可以使用 AWS Glue 進行分析、機器學習和應用程式開發。 AWS Glue 也包含用於撰寫、執行任務和實作業務工作流程的額外生產力和資料操作工具。
+ [Amazon EMR](https://docs.aws.amazon.com//emr/latest/ManagementGuide/emr-what-is-emr.html) – Amazon EMR 是受管叢集平台，可簡化在 上執行大數據架構，例如 Apache Hadoop和 Apache Spark， AWS 以處理和分析大量資料。
+ [AWS CloudTrail](https://docs.aws.amazon.com//awscloudtrail/latest/userguide/cloudtrail-user-guide.html) – AWS CloudTrail 是一項 AWS 服務，可協助您啟用 AWS 帳戶的營運和風險稽核、控管和合規。使用者、角色或服務採取的動作 AWS 會在 CloudTrail 中記錄為事件。事件包括在 AWS 管理主控台、 AWS 命令列界面，以及 AWS SDKs和 APIs中採取的動作。
+ [AWS CloudFormation ](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/Welcome.html) – 是一項服務，可協助您建立和設定 AWS 資源的模型，以減少管理這些資源的時間，並有更多時間專注於在其中執行的應用程式 AWS。您可以建立範本來描述您想要的所有 AWS 資源 （例如 Amazon EC2 執行個體或 Amazon RDS 資料庫執行個體），而 CloudFormation 會負責為您佈建和設定這些資源。您不需要個別建立和設定 AWS 資源，並找出什麼取決於；CloudFormation 會處理該資源。

### 後續步驟
<a name="s3-express-next-steps"></a>

如需有關使用 S3 Express One Zone 儲存類別與目錄儲存貯體的詳細資訊，請參閱下方主題：
+ [教學課程：開始使用 S3 Express One Zone](s3-express-getting-started.md)
+ [S3 Express One Zone 可用區域和區域](s3-express-Endpoints.md)
+ [可用區域中目錄儲存貯體的網路](directory-bucket-az-networking.md)
+ [在可用區域中建立目錄儲存貯體](directory-bucket-create.md)
+ [可用區域中目錄儲存貯體的地區與區域端點](endpoint-directory-buckets-AZ.md)
+ [最佳化 S3 Express 單區域效能](s3-express-performance.md)

# 教學課程：開始使用 S3 Express One Zone
<a name="s3-express-getting-started"></a>

Amazon S3 Express One Zone 是第一款可讓您選取單一可用區域的 S3 儲存類別，還可選擇將物件儲存體與運算資源共置，藉此盡可能提供最高存取速度。S3 Express One Zone 中的資料會儲存在位於可用區域的目錄儲存貯體中。如需目錄儲存貯體的詳細資訊，請參閱[目錄儲存貯體](https://docs.aws.amazon.com//AmazonS3/latest/userguide/directory-buckets-overview.html)。

 S3 Express One Zone 非常適合必須盡可能降低請求延遲的任何應用程式。這類應用程式可能是人為互動的工作流程 (例如影片編輯)，需要創意專業人員從其使用者介面回應內容。S3 Express One Zone 也有利於資料具有類似回應能力要求的分析和機器學習工作負載，特別是需進行許多小量存取或大量隨機存取的工作負載。S3 Express One Zone 可以與其他 AWS 服務搭配使用，例如 Amazon EMR、Amazon Athena、 AWS Glue Data Catalog 和 Amazon SageMaker Model Training，以支援分析、人工智慧和機器學習 (AI/ML) 工作負載。您可以使用 Amazon S3 主控台、 AWS SDKs、 AWS 命令列界面 (AWS CLI) 和 Amazon S3 REST API 來使用 Amazon S3 Express One Zone 儲存類別和目錄儲存貯體。 Amazon S3 如需詳細資訊，請參閱[什麼是 S3 Express One Zone](https://docs.aws.amazon.com//AmazonS3/latest/userguide/s3-express-one-zone.html) 和 [S3 Express One Zone 有什麼不同](https://docs.aws.amazon.com//AmazonS3/latest/userguide/s3-express-differences.html)。

![\[這是 S3 Express One Zone 工作流程圖。\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/images/s3-express-one-zone.png)


**目標**  
在本教學課程中，您將了解如何建立閘道端點、建立和連接 IAM 政策、建立目錄儲存貯體，然後使用匯入動作，將目前儲存在一般用途儲存貯體中的物件填入目錄儲存貯體。或者，您可以手動將物件上傳至目錄儲存貯體。

**Topics**
+ [先決條件](#s3-express-tutorial-prerequisites)
+ [步驟 1：設定閘道 VPC 端點以到達 S3 Express One Zone 目錄儲存貯體](s3-express-tutorial-endpoints.md)
+ [步驟 2：建立 S3 Express One Zone 目錄儲存貯體](s3-express-tutorial-create-directory-bucket.md)
+ [步驟 3：將資料匯入 S3 Express One Zone 目錄儲存貯體](s3-express-tutorial-Import.md)
+ [步驟 4：手動將物件上傳至您的 S3 Express One Zone 目錄儲存貯體](s3-express-tutorial-Upload.md)
+ [步驟 5：清空 S3 Express One Zone 目錄儲存貯體](s3-express-tutoiral-Empty.md)
+ [步驟 6：刪除 S3 Express One Zone 目錄儲存貯體](s3-express-tutoiral-Delete.md)
+ [後續步驟](#s3-express-tutoiral-Next)

## 先決條件
<a name="s3-express-tutorial-prerequisites"></a>

開始本教學課程之前，您必須擁有 AWS 帳戶 ，以具有正確許可的 AWS Identity and Access Management (IAM) 使用者身分登入 。

**Topics**
+ [建立 AWS 帳戶](#s3-express-create-account)
+ [在 AWS 帳戶 （主控台） 中建立 IAM 使用者](#s3-express-tutorial-user)
+ [建立 IAM 政策並將其連接至 IAM 使用者或角色 (主控台)](#s3-express-tutorial-polict)

### 建立 AWS 帳戶
<a name="s3-express-create-account"></a>

若要完成本教學課程，您需要 AWS 帳戶。當您註冊 時 AWS，您的 AWS 帳戶 會自動註冊 中的所有服務 AWS，包括 Amazon S3。您只需支付實際使用服務的費用。如需定價的詳細資訊，請參閱 [S3 定價](https://aws.amazon.com/s3/pricing/)。

### 在 AWS 帳戶 （主控台） 中建立 IAM 使用者
<a name="s3-express-tutorial-user"></a>

AWS Identity and Access Management (IAM) 是一種 AWS 服務 ，可協助管理員安全地控制對 AWS 資源的存取。IAM 管理員可控制哪些人員可進行身分驗證 (登入) 並獲得授權 (具有許可)，以在 S3 Express One Zone 中存取物件並使用目錄儲存貯體。您可以免費使用 IAM。

根據預設，使用者未具備存取目錄儲存貯體和執行 S3 Express One Zone 操作的許可。若要授予存取目錄儲存貯體和 S3 Express One Zone 操作的許可，您可以使用 IAM 建立使用者或角色，並將許可附加至這些身分。如需如何建立 IAM 使用者的詳細資訊，請參閱《*IAM 使用者指南》*中的[建立 IAM 政策 (主控台)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console)。如需如何建立 IAM 角色的詳細資訊，請參閱《IAM 使用者指南》**中的[建立角色以委派許可給 IAM 使用者](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)。

為了簡單起見，本教學課程會建立和使用 IAM 使用者。完成本教學課程後，請記得 [刪除 IAM 使用者](tutorial-s3-object-lambda-uppercase.md#ol-upper-step8-delete-user)。針對生產使用，我們建議您遵循《IAM 使用者指南》**中的 [IAM 中的安全最佳實務](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。其中一項最佳實務是，要求人類使用者搭配身分提供者使用聯合功能，以便使用暫時性憑證存取 AWS 。另一項最佳實務要求工作負載使用臨時性憑證和 IAM 角色來存取 AWS。若要進一步了解如何使用 AWS IAM Identity Center 建立具有臨時登入資料的使用者，請參閱*AWS IAM Identity Center 《 使用者指南*》中的[入門](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html)。

**警告**  
IAM 使用者具有長期憑證，這會造成安全風險。為了協助降低此風險，建議您只為這些使用者提供執行任務所需的許可，並在不再需要這些使用者時將其移除。

### 建立 IAM 政策並將其連接至 IAM 使用者或角色 (主控台)
<a name="s3-express-tutorial-polict"></a>

根據預設，使用者未具備執行目錄儲存貯體和 S3 Express One Zone 操作的許可。若要授予存取目錄儲存貯體的許可，您可以使用 IAM 建立使用者、群組或角色，並將許可附加至這些身分。目錄儲存貯體是唯一可以包含在儲存貯體政策或 IAM 身分政策中，以提供 S3 Express One Zone 存取權的資源。

若要搭配 S3 Express One Zone 使用地區端點 API 操作 (儲存貯體層級或控制平面操作)，您可以使用不涉及工作階段管理的 IAM 授權模型。動作的許可會個別授予。若要使用區域端點 API 操作 (物件層級或資料平面操作)，您可以使用 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) 來建立和管理工作階段，這些工作階段經過最佳化，可提供低延遲的資料請求授權。若要擷取和使用工作階段權杖，您必須在身分型政策或儲存貯體政策中允許目錄儲存貯體的 `s3express:CreateSession` 動作。如果您在 Amazon S3 主控台、透過 AWS 命令列界面 (AWS CLI) 或使用 AWS SDKs 存取 S3 Express One Zone，S3 Express One Zone 會代表您建立工作階段。 Amazon S3 如需詳細資訊，請參閱[`CreateSession` 授權](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-create-session.html)和[適用於 S3 Express One Zone 的AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html)。

**建立 IAM 政策並將該政策連接至 IAM 使用者 (或角色)**

1. 登入 AWS 管理主控台並開啟 IAM 管理主控台。

1. 在導覽窗格中，選擇**政策**。

1. 選擇**建立政策**。

1. 選取 **JSON**。

1. 將以下政策複製到**政策編輯器**視窗。您必須先將必要的許可授予 AWS Identity and Access Management (IAM) 角色或使用者，才能建立目錄儲存貯體或使用 S3 Express One Zone。此範例政策允許存取 `CreateSession` API 操作 (搭配區域端點或物件層級 API 操作使用) 和所有地區端點 (儲存貯體層級) API 操作。此政策允許 `CreateSession` API 操作搭配所有目錄儲存貯體使用，但僅允許區域端點 API 操作搭配指定的目錄儲存貯體使用。若要使用此範例政策，請以您自己的資訊取代 `user input placeholders`。

------
#### [ JSON ]

****  

   ```
   {
        "Version":"2012-10-17",		 	 	 
        "Statement": [ 
            {
                "Sid": "AllowAccessRegionalEndpointAPIs",
                "Effect": "Allow",
                "Action": [
                    "s3express:DeleteBucket",
                    "s3express:DeleteBucketPolicy",
                    "s3express:CreateBucket",
                    "s3express:PutBucketPolicy",
                    "s3express:GetBucketPolicy",
                    "s3express:ListAllMyDirectoryBuckets"
                ],
   
                "Resource": "arn:aws:s3express:us-east-1:111122223333:bucket/amzn-s3-demo-bucket--usw2-az1--x-s3/*"
            },
            {
                "Sid": "AllowCreateSession",
                "Effect": "Allow",
                "Action": "s3express:CreateSession",
                "Resource": "*"
            }
        ]
    }
   ```

------

1. 選擇**下一步**。

1. 命名政策。
**注意**  
S3 Express One Zone 不支援儲存貯體標籤。

1. 選取**建立政策**。

1.  現在您已建立 IAM 政策，您可以將其連接至 IAM 使用者。在導覽窗格中，選擇**政策**。

1. 在**搜尋列**中，輸入您的政策名稱。

1. 從**動作**功能表，選取**連接**。

1. 在**依實體類型篩選**下，選取 **IAM 使用者**或**角色**。

1. 在**搜尋欄位**中，輸入您要使用的使用者或角色名稱。

1. 選擇 **Attach Policy (連接政策)**。

**Topics**
+ [建立 AWS 帳戶](#s3-express-create-account)
+ [在 AWS 帳戶 （主控台） 中建立 IAM 使用者](#s3-express-tutorial-user)
+ [建立 IAM 政策並將其連接至 IAM 使用者或角色 (主控台)](#s3-express-tutorial-polict)

# 步驟 1：設定閘道 VPC 端點以到達 S3 Express One Zone 目錄儲存貯體
<a name="s3-express-tutorial-endpoints"></a>

 您可以透過閘道虛擬私有雲端 (VPC) 端點存取區域 (Zone) 和區域 (Region) API 操作。閘道端點可以允許流量在無需周遊 NAT 閘道的情況下到達 S3 Express One Zone。強烈建議您使用閘道端點，以便在使用 S3 Express One Zone 時提供最佳的網路路徑。您可以從 VPC 存取 S3 Express One Zone 目錄儲存貯體，VPC 不需要網際網路閘道或 NAT 裝置，您也不需支付額外費用。下列程序可用來設定連線至 S3 Express One Zone 儲存類別物件和目錄儲存貯體的閘道端點。

若要存取 S3 Express One Zone，可使用與標準 Amazon S3 端點不同的區域 (Region) 和區域 (Zone) 端點。需要區域 (Zone) 或區域 (Region) 端點，取決於您使用的 Amazon S3 API 操作。如需依端點類型列出的支援 API 操作完整清單，請參閱 [S3 Express One Zone 支援的 API 操作](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-differences.html#s3-express-differences-api-operations)。您必須透過閘道虛擬私有雲端 (VPC) 端點存取區域 (Zone) 和區域 (Region) 端點。

 下列程序可用來建立連線至 S3 Express One Zone 儲存類別物件和目錄儲存貯體的閘道端點。

**設定閘道 VPC 端點**

1. 開啟 Amazon VPC 主控台，位於 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 在側邊導覽窗格中的**虛擬私有雲端**下，選擇**端點**。

1. 選擇**建立端點**。

1. 建立端點的名稱。

1. 對於 **Service category** (服務類別)，選擇 **AWS 服務**。

1. 在**服務**下，使用篩選條件 **Type=Gateway** 進行搜尋，然後選擇 **com.amazonaws.*region*.s3express** 旁邊的選項按鈕。

1. 針對 **VPC**，選擇要在其中建立端點的 VPC。

1. 針對**路由表**，選擇您本機區域上的路由表，供端點使用。建立端點之後，路由記錄會新增至您在此步驟中選取的路由表。

1. 針對**政策**，選擇**完整存取**，以允許 VPC 端點上所有資源的所有主體進行所有操作。否則，選擇**自訂**以連接 VPC 端點政策，該政策會控制主體在 VPC 端點上對資源執行操作的許可。

1. 針對 **IP address type** (IP 地址類型)，從下列選項中選擇：
   +  **IPv4** – 將 IPv4 地址指派給端點網路介面。只有當所有選取的子網路都具有 IPv4 地址範圍，且此服務接受 IPv4 請求時，才支援此選項。
   +  **IPv6** – 將 IPv6 地址指派給端點網路介面。只有當所有選取的子網路都是僅限 IPv6 子網路，且此服務接受 IPv6 請求時，才支援此選項。
   +  **Dualstack** – 將 IPv4 和 IPv6 地址指派給端點網路介面。只有當所有選取的子網路都具有 IPv4 和 IPv6 地址範圍，且此服務接受 IPv4 和 IPv6 請求時，才支援此選項。

1. (選用) 若要新增標籤，請選擇**新增標籤**，然後輸入標籤金鑰和標籤值。

1. 選擇**建立端點**。

建立閘道端點後，您可以使用區域 (Region) API 端點和區域 (Zone) API 端點存取 Amazon S3 Express One Zone 儲存類別物件和目錄儲存貯體。

# 步驟 2：建立 S3 Express One Zone 目錄儲存貯體
<a name="s3-express-tutorial-create-directory-bucket"></a>

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

1. 在頁面頂端的導覽列中，選擇目前顯示的名稱 AWS 區域。​接下來，選擇您要在其中建立儲存貯體的區域。
**注意**  
請選擇接近您的區域，以充分降低延遲及成本，並因應法規要求。除非您明確地將儲存在區域中的物件傳輸到其他區域，否則物件絕對不會離開該區域。如需 Amazon S3 AWS 區域的清單，請參閱 中的[AWS 服務 端點](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region)*Amazon Web Services 一般參考*。

1. 在左側導覽窗格中，選擇**目錄儲存貯體**。

1. 選擇 **Create bucket** (建立儲存貯體)。**Create bucket (建立儲存貯體)** 頁面隨即開啟。

1. 在**一般組態**下，檢視要建立儲存貯 AWS 區域 體的 。

   針對**儲存貯體類型**，選擇**目錄**。
**注意**  
如果您已選擇不支援目錄儲存貯體的區域，**儲存貯體類型**選項會消失，且儲存貯體類型預設為一般用途儲存貯體。若要建立目錄儲存貯體，您必須選擇支援的區域。如需支援目錄儲存貯體和 Amazon S3 Express One Zone 儲存類別的區域清單，請參閱[S3 Express One Zone 可用區域和區域](s3-express-Endpoints.md)。
在您建立儲存貯體之後，便無法變更儲存貯體類型。
**注意**  
儲存貯體建立之後，就無法變更可用區域。

1. 針對**可用區域**，選擇運算服務本機上的可用區域。如需支援目錄儲存貯體和 S3 Express One Zone 儲存類別的可用區域清單，請參閱[S3 Express One Zone 可用區域和區域](s3-express-Endpoints.md)。

   在**可用區域**下，選取核取方塊，表示您確實了解在可用區域發生中斷時，您的資料可能無法使用或遺失。
**重要**  
雖然目錄儲存貯體會儲存在單一可用區域內的多部裝置，但不會以備援方式跨可用區域儲存資料。

1. 針對**儲存貯體名稱**，輸入您的目錄儲存貯體的名稱。

   目錄儲存貯體適用下列命名規則。
   + 在所選區域內是唯一的 (AWS 可用區域或 AWS 本機區域）。
   + 名稱長度必須介於 3 (最小值) 到 63 (最大值) 個字元之間，包括字尾在內。
   + 只能由小寫字母、數字和連字號 (-) 組成。
   + 開頭和結尾為字母或數字。
   + 必須包含下列字尾：`--zone-id--x-s3`。
   + 儲存貯體名稱必須以字首 `xn--` 開頭。
   + 儲存貯體名稱必須以字首 `sthree-` 開頭。
   + 儲存貯體名稱必須以字首 `sthree-configurator` 開頭。
   + 儲存貯體名稱必須以字首 ` amzn-s3-demo-` 開頭。
   + 儲存貯體名稱不得以尾碼 `-s3alias` 結尾。存取點別名名稱會保留此尾碼。如需詳細資訊，請參閱[存取點別名](access-points-naming.md#access-points-alias)。
   + 儲存貯體名稱不得以尾碼 `--ol-s3` 結尾。Object Lambda 存取點別名名稱會保留此尾碼。如需詳細資訊，請參閱[如何針對您的 S3 儲存貯體 Object Lambda 存取點使用儲存貯體樣式別名](olap-use.md#ol-access-points-alias)。
   + 儲存貯體名稱不得以尾碼 `.mrap` 結尾。多區域存取點名稱會保留此字尾。如需詳細資訊，請參閱[命名 Amazon S3 多區域存取點的規則](multi-region-access-point-naming.md)。

   當您使用主控台建立目錄儲存貯體時，您提供的基本名稱會自動新增字尾。此字尾包含您所選擇可用區域的可用區域 ID。

   建立儲存貯體後，便無法變更其名稱。如需儲存貯體命名的詳細資訊，請參閱 [一般用途儲存貯體命名規則](bucketnamingrules.md)。
**重要**  
請勿在儲存貯體名稱中包含敏感資訊，例如帳號。在指向儲存貯體中之物件的 URL 中，會顯示儲存貯體名稱。

1. 在**物件擁有權**下，會自動啟用**儲存貯體擁有者強制執行**設定，並停用所有存取控制清單 (ACL)。您無法針對目錄儲存貯體啟用 ACL。

    **儲存貯體擁有者強制執行 (預設)** - 停用 ACL，儲存貯體擁有者會自動擁有並完全控制一般用途儲存貯體中的每個物件。ACL 不再影響 S3 一般用途儲存貯體中資料的存取許可。儲存貯體單獨使用政策來定義存取控制。

1. 在**此儲存貯體的「封鎖公開存取」設定**下，會自動啟用您目錄儲存貯體的所有封鎖公開存取設定。您無法修改目錄儲存貯體的這些設定。如需封鎖公開存取的詳細資訊，請參閱 [封鎖對 Amazon S3 儲存體的公開存取權](access-control-block-public-access.md)。

1. 若要設定預設加密，請在**加密類型**下，選擇下列其中一項：
   + **使用 Amazon S3 受管金鑰 (SSE-S3) 的伺服器端加密**
   + **伺服器端加密與 AWS Key Management Service 金鑰 (SSE-KMS)**

   如需有關使用 Amazon S3 伺服器端加密來加密資料的詳細資訊，請參閱「[資料保護和加密](s3-express-data-protection.md)」。
**重要**  
如果您針對預設加密組態使用 SSE-KMS 選項，則受到 AWS KMS的每秒請求數目 (RPS) 限制。如需 AWS KMS 配額以及如何請求提高配額的詳細資訊，請參閱《AWS Key Management Service 開發人員指南》**中的[配額](https://docs.aws.amazon.com/kms/latest/developerguide/limits.html)。  
啟用預設加密時，您可能需要更新儲存貯體政策。如需詳細資訊，請參閱[針對跨帳戶操作使用 SSE-KMS 加密](bucket-encryption.md#bucket-encryption-update-bucket-policy)。

1. 如果選擇**使用 Amazon S3 受管金鑰 (SSE-S3) 的伺服器端加密**，則**儲存貯體金鑰**下會顯示**已啟用**。當您將目錄儲存貯體設定為搭配 SSE-S3 使用預設加密時，一律啟用 S3 儲存貯體金鑰。目錄儲存貯體中的 `GET` 和 `PUT` 操作一律會啟用 S3 儲存貯體金鑰，且無法停用。當您透過 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)、[https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)、[Batch Operations 中的 Copy 操作](directory-buckets-objects-Batch-Ops.md)或 [import 作業](create-import-job.md)，將 SSE-KMS 加密物件從一般用途儲存貯體複製到目錄儲存貯體、從目錄儲存貯體複製到一般用途儲存貯體或在目錄儲存貯體之間複製時，不支援 S3 儲存貯體金鑰。在此情況下，Amazon S3 AWS KMS 會在每次對 KMS 加密物件提出複製請求時呼叫 。

   S3 儲存貯體金鑰透過減少來自 Amazon S3 的請求流量來降低加密成本 AWS KMS。如需詳細資訊，請參閱[使用 Amazon S3 儲存貯體金鑰降低 SSE-KMS 的成本](bucket-key.md)。

1. 如果您選擇**使用 AWS Key Management Service 金鑰的伺服器端加密 (SSE-KMS)**，請在** AWS KMS 金鑰**下，以下列其中一種方式指定您的 AWS Key Management Service 金鑰，或建立新的金鑰。
   + 若要從可用的 KMS 金鑰清單中選擇，請選擇**從中選擇 AWS KMS keys**，然後從**可用的 AWS KMS keys**中選擇您的 **KMS 金鑰**。

     此清單中只會出現您的客戶自管金鑰。目錄儲存貯體不支援 AWS 受管金鑰 (`aws/s3`)。如需詳細了解客戶受管金鑰，請參閱《AWS Key Management Service 開發人員指南》**中的[客戶金鑰和 AWS 金鑰](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#key-mgmt)。
   + 若要輸入 KMS 金鑰 ARN 或別名，請選擇**輸入 AWS KMS key ARN**，然後在 ARN 中輸入您的 KMS 金鑰 **AWS KMS key ARN** 或別名。
   + 若要在 AWS KMS 主控台中建立新的客戶受管金鑰，請選擇**建立 KMS 金鑰**。

     如需建立 的詳細資訊 AWS KMS key，請參閱《 *AWS Key Management Service 開發人員指南*》中的[建立金鑰](https://docs.aws.amazon.com//kms/latest/developerguide/create-keys.html)。
**重要**  
您的 SSE-KMS 組態在儲存貯體的生命週期內，每個目錄儲存貯體只能支援 1 個[客戶自管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)。不支援 [https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) (`aws/s3`)。此外，為 SSE-KMS 指定客戶自管金鑰之後，即無法覆寫儲存貯體 SSE-KMS 組態的客戶自管金鑰。  
您可以透過下列方式識別為儲存貯體的 SSE-KMS 組態指定的客戶自管金鑰：  
您可以提出 `HeadObject` API 操作請求，在回應中尋找 `x-amz-server-side-encryption-aws-kms-key-id` 的值。
若要為資料使用新的客戶自管金鑰，建議您使用新的客戶自管金鑰，將現有的物件複製到新的目錄儲存貯體。
您只能使用 AWS 區域 與儲存貯體相同的 KMS 金鑰。Amazon S3 主控台僅會列出與儲存貯體位於相同區域的前 100 個 KMS 金鑰。若要使用未列出的 KMS 金鑰，必須輸入 KMS 金鑰 ARN。若您想要使用其他帳戶的 KMS 金鑰，您必須先具有該金鑰的使用權限，然後輸入 KMS 金鑰 ARN。如需詳細了解 KMS 金鑰跨帳戶權限，請參閱《AWS Key Management Service 開發人員指南》**中的[建立其他帳戶可使用的 KMS 金鑰](https://docs.aws.amazon.com//kms/latest/developerguide/key-policy-modifying-external-accounts.html#cross-account-console)。如需 SSE-KMS 的詳細資訊，請參閱 [使用 AWS KMS (SSE-KMS) 為目錄儲存貯體中的新物件上傳指定伺服器端加密](s3-express-specifying-kms-encryption.md)。
當您在目錄儲存貯體中使用 AWS KMS key 進行伺服器端加密時，您必須選擇對稱加密 KMS 金鑰。Amazon S3 僅支援對稱加密 KMS 金鑰，而不支援非對稱 KMS 金鑰。如需詳細資訊，請參閱《AWS Key Management Service 開發人員指南》**中的[識別對稱和非對稱 KMS 金鑰](https://docs.aws.amazon.com//kms/latest/developerguide/find-symm-asymm.html)。

   如需 AWS KMS 搭配 Amazon S3 使用 的詳細資訊，請參閱 [在目錄儲存貯體中使用伺服器端加密與 AWS KMS 金鑰 (SSE-KMS)](s3-express-UsingKMSEncryption.md)。

1. 選擇**建立儲存貯體**。建立儲存貯體之後，您可以新增檔案和資料夾至儲存貯體。如需詳細資訊，請參閱[使用目錄儲存貯體中的物件](directory-buckets-objects.md)。

# 步驟 3：將資料匯入 S3 Express One Zone 目錄儲存貯體
<a name="s3-express-tutorial-Import"></a>

若要完成此步驟，您必須擁有包含物件的一般用途儲存貯體，且位於 AWS 區域 與目錄儲存貯體相同的 中。

在 Amazon S3 中建立目錄儲存貯體之後，您可以在 Amazon S3 主控台中使用匯入動作將資料填入新的儲存貯體。匯入可讓您選擇要從中匯入資料的字首或一般用途儲存貯體，無需指定要個別複製的所有物件，從而簡化將資料複製到目錄儲存貯體的過程。匯入使用 S3 Batch Operations 來複製所選字首或一般用途儲存貯體中的物件。您可以透過 S3 Batch Operations 作業詳細資訊頁面監控匯入複製作業的進度。

**使用匯入動作**

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

1. 在頁面頂端的導覽列中，選擇目前顯示的 AWS 區域名稱。接下來，選擇與您目錄儲存貯體所在可用區域相關聯的區域。

1. 在左側導覽窗格中，選擇**目錄儲存貯體**。

1. 選擇要將物件匯入其中的儲存貯體名稱旁的選項按鈕。

1. 選擇**匯入**。

1. 針對**來源**，輸入包含要匯入之物件的一般用途儲存貯體 (或包含字首的儲存貯體路徑)。若要從清單中選擇現有的一般用途儲存貯體，請選擇**瀏覽 S3**。

1.  在**許可**區段中，您可以選擇自動產生 IAM 角色。或者，您可以從清單中選取 IAM 角色，或直接輸入 IAM 角色 ARN。
   + 若要允許 Amazon S3 代表您建立新的 IAM 角色，請選擇**建立新的 IAM 角色**。
**注意**  
如果來源物件是採用使用 AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS) 的伺服器端加密進行加密，請不要選擇**建立新的 IAM 角色**選項。請改為指定具有 `kms:Decrypt` 許可的現有 IAM 角色。  
Amazon S3 將使用此許可來解密您的物件。在匯入過程中，Amazon S3 將使用伺服器端加密與 Amazon S3 受管金鑰 (SSE-S3) 重新加密這些物件。
   + 若要從清單中選擇現有的 IAM 角色，請選擇**從現有的 IAM 角色中選擇**。
   + 若要透過輸入 Amazon Resource Name (ARN) 來指定現有的 IAM 角色，請選擇**輸入 IAM 角色 ARN**，然後在對應的欄位中輸入 ARN。

1. 檢閱**目的地**和**複製物件設定**區段中顯示的資訊。如果**目的地**區段中的資訊正確無誤，請選擇**匯入**以開始複製任務。

   Amazon S3 主控台會在 **Batch Operations** 頁面上顯示新任務的狀態。如需有關任務的詳細資訊，請選擇任務名稱旁的選項按鈕，然後在**動作**選單上選擇**檢視詳細資訊**。若要開啟要將物件匯入其中的目錄儲存貯體，請選擇**檢視匯入目的地**。

# 步驟 4：手動將物件上傳至您的 S3 Express One Zone 目錄儲存貯體
<a name="s3-express-tutorial-Upload"></a>

您也可以手動將物件上傳至目錄儲存貯體。

**手動上傳物件**

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

1. 在頁面右上角的導覽列中，選擇目前顯示的名稱 AWS 區域。接下來，選擇與您目錄儲存貯體所在可用區域相關聯的區域。

1. 在左側導覽窗格中，選擇**目錄儲存貯體**。

1. 選擇您要上傳資料夾和檔案的目的地儲存貯體名稱。
**注意**  
 如果您選擇與本教學課程先前步驟中使用的相同目錄儲存貯體，您的目錄儲存貯體將包含從匯入工具上傳的物件。請注意，這些物件現在會儲存在 S3 Express One Zone 儲存類別中。

1. 在**物件**清單中，選擇**上傳**。

1. 在**上傳**頁面上，執行下列任一步驟：
   + 將檔案和資料夾拖放至上傳區域。
   + 選擇**新增檔案**或**新增資料夾**，選擇要上傳的檔案或資料夾，然後選擇**開啟**或**上傳**。

1. 在**檢查總和**下，選擇您要使用的**檢查總和函數**。
**注意**  
 我們建議您使用 CRC32 和 CRC32C，以獲得 S3 Express One Zone 儲存類別的最佳效能。如需詳細資訊，請參閱 [S3 額外檢查總和最佳實務](https://docs.aws.amazon.com//AmazonS3/latest/userguide/s3-express-optimizing-performance-design-patterns.html#s3-express-optimizing--checksums.html)。

   (選用) 如果您上傳的單一物件大小小於 16 MB，您也可以指定預先計算的檢查總和值。當您提供預先計算的值時，Amazon S3 會將該值與使用所選檢查總和函數計算的值進行比較。如果值不相符，則不會開始上傳。

1. **許可**和**屬性**區段中的選項會自動設定為預設設定，且無法修改。封鎖公開存取會自動啟用，且無法針對目錄儲存貯體啟用 S3 版本控制和 S3 物件鎖定。

   (選用) 如果您要以金鑰/值對的形式將中繼資料新增至物件，請展開**屬性**區段，然後在**中繼資料**區段中選擇**新增中繼資料**。

1. 若要上傳列出的檔案和資料夾，請選擇**上傳**。

   Amazon S3 會上傳您的物件和資料夾。上傳完成後，您可以在**上傳：狀態**頁面上看到成功訊息。

    您已成功建立目錄儲存貯體，並將物件上傳至儲存貯體。

# 步驟 5：清空 S3 Express One Zone 目錄儲存貯體
<a name="s3-express-tutoiral-Empty"></a>

您可以使用 Amazon S3 主控台來清空 Amazon S3 目錄儲存貯體。

**清空目錄儲存貯體。**

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

1. 在頁面右上角的導覽列中，選擇目前顯示的名稱 AWS 區域。接下來，選擇與您目錄儲存貯體所在可用區域相關聯的區域。

1. 在左側導覽窗格中，選擇**目錄儲存貯體**。

1. 選擇您要清空之儲存貯體名稱旁的選項按鈕，然後選擇**清空**。

1. 在 **Empty bucket** (清空儲存貯體) 頁面上，在文字欄位中輸入 **permanently delete** 以確認您要清空儲存貯體，然後選擇 **Empty** (清空)。

1. 在**清空儲存貯體：狀態**頁面上監控儲存貯體清空的進度。

# 步驟 6：刪除 S3 Express One Zone 目錄儲存貯體
<a name="s3-express-tutoiral-Delete"></a>

清空目錄儲存貯體並中止所有進行中的分段上傳之後，您可以使用 Amazon S3 主控台來刪除儲存貯體。

**刪除目錄儲存貯體**

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

1. 在頁面右上角的導覽列中，選擇目前顯示的名稱 AWS 區域。接下來，選擇與您目錄儲存貯體所在可用區域相關聯的區域。

1. 在左側導覽窗格中，選擇**目錄儲存貯體**。

1. 在**目錄儲存貯體**清單中，選擇您要刪除之儲存貯體旁的選項按鈕。

1. 選擇 **刪除**。

1. 在**刪除儲存貯體**頁面上的文字欄位中輸入儲存貯體名稱，以確認刪除儲存貯體。
**重要**  
目錄儲存貯體刪除後，即無法復原。

1. 若要刪除目錄儲存貯體，請選擇**刪除儲存貯體**。

## 後續步驟
<a name="s3-express-tutoiral-Next"></a>

在本教學課程中，您已了解如何建立目錄儲存貯體並使用 S3 Express One Zone 儲存類別。完成本教學課程之後，您可以探索要與 S3 Express One Zone 儲存類別搭配使用的相關 AWS 服務。

您可以 AWS 服務 搭配 S3 Express One Zone 儲存類別使用下列項目，以支援特定的低延遲使用案例。
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/index.html) – Amazon EC2 在 AWS 雲端中提供了安全且可擴展的運算容量。使用 Amazon EC2 可減少前期所需的硬體投資，讓您更快速開發並部署應用程式。您可使用 Amazon EC2 按需要啟動任意數量的虛擬伺服器，設定安全性和聯網功能以及管理儲存。
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html.html)：Lambda 是一項運算服務，可讓您執行程式碼，而無需佈建或管理伺服器。您在儲存貯體上設定通知設定，並授予 Amazon S3 許可以在函數以資源為基礎的許可政策上叫用函數。
+ [Amazon Elastic Kubernetes Service (Amazon EKS)](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html) – Amazon EKS 是一種受管服務，無需安裝、操作和維護您自己的Kubernetes控制平面 AWS。 [https://kubernetes.io/docs/concepts/overview/](https://kubernetes.io/docs/concepts/overview/) 是一種開放原始碼系統，可自動化容器化應用程式的管理、擴展和部署。
+ [Amazon Elastic Container Service (Amazon ECS)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html)：Amazon ECS 為全受管容器協同運作服務，可讓您輕鬆部署、管理和擴展容器化應用程式。
+ [Amazon EMR](https://docs.aws.amazon.com//emr/latest/ManagementGuide/emr-express-one-zone.html) – Amazon EMR 是受管叢集平台，可簡化大數據架構的執行，例如 Apache Hadoop和 Apache Spark 等， AWS 以處理和分析大量資料。
+ [Amazon Athena](https://docs.aws.amazon.com//athena/latest/ug/querying-express-one-zone.html)：Athena 是一種互動式查詢服務，可讓您使用標準 [SQL](https://docs.aws.amazon.com/athena/latest/ug/ddl-sql-reference.html) 直接輕鬆分析 Amazon S3 中的資料。您還可以使用 Athena 以互動方式使用 Apache Spark 執行資料分析，而不必規劃、設定或管理資源。當您在 Athena 執行 Apache Spark 應用程式時，可提交 Spark 程式碼進行處理，並直接接收結果。
+ [AWS Glue Data Catalog](https://docs.aws.amazon.com//glue/latest/dg/catalog-and-crawler.html) – AWS Glue 是一種無伺服器資料整合服務，可讓分析使用者輕鬆地探索、準備、移動和整合來自多個來源的資料。您可以使用 AWS Glue 進行分析、機器學習和應用程式開發。 AWS Glue Data Catalog 是一個集中式儲存庫，可存放組織資料集的中繼資料。其可作為您資料來源之位置、結構描述及執行階段指標的索引。
+ [Amazon SageMaker Runtime 模型訓練](https://docs.aws.amazon.com//sagemaker/latest/dg/model-access-training-data.html) – Amazon SageMaker Runtime 是一項全受管的機器學習服務。使用 SageMaker Runtime，資料科學家和開發人員可快速輕鬆建置及訓練機器學習模型，然後直接將其部署至生產就緒的託管環境。

 如需 S3 Express One Zone 的詳細資訊，請參閱[什麼是 S3 Express One Zone](https://docs.aws.amazon.com//AmazonS3/latest/userguide/s3-express-one-zone.html)和 [S3 Express One Zone 有什麼不同](https://docs.aws.amazon.com//AmazonS3/latest/userguide/s3-express-differences.html)。

# S3 Express One Zone 可用區域和區域
<a name="s3-express-Endpoints"></a>

可用區域是一個或多個獨立的資料中心，具備 AWS 區域中的備援電源、聯網和連線能力。為了最佳化低延遲擷取，Amazon S3 Express One Zone 儲存類別中的物件會以備援方式儲存在運算工作負載本機上單一可用區域中的 S3 目錄儲存貯體中。建立目錄儲存貯體時，您可以選擇儲存貯體 AWS 區域 所在的可用區域和位置。

AWS 會將實體可用區域隨機映射到每個可用區域的名稱 AWS 帳戶。此方法有助於在 中跨可用區域分配資源 AWS 區域，而不是將資源集中在每個區域的第一個可用區域中。因此，您 `us-east-1a`的可用區域 AWS 帳戶 可能不會代表與`us-east-1a`不同 相同的實體位置 AWS 帳戶。如需詳細資訊，請參閱《Amazon EC2 使用者指南》**中的[區域與可用區域](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html)。

為協調各帳戶的可用區域，您必須使用 *AZ ID*，這是可用區域唯一且一致的識別符。例如， `use1-az1` 是 `us-east-1` 區域的 AZ ID，且每個區域都有相同的實體位置 AWS 帳戶。下圖顯示每個帳戶的 AZ ID 都相同的情形，即使每個帳戶的可用區域名稱對應可能不同。

![\[顯示可用區域映射和區域的圖例。\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/images/availability-zone-mapping.png)


使用 S3 Express One Zone，您的資料會以備援方式儲存在單一可用區域內的多部裝置上。S3 Express One Zone 的設計可在單一可用區域內達到 99.95% 的可用性，並依照 [Amazon S3 服務水準協議](https://aws.amazon.com/s3/sla/)提供支援。如需詳細資訊，請參閱[可用區域](directory-bucket-high-performance.md#s3-express-overview-az)

 下表顯示 S3 Express One Zone 支援的區域與可用區域。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/s3-express-Endpoints.html)

# 可用區域中目錄儲存貯體的網路
<a name="directory-bucket-az-networking"></a>

若要減少封包在網路上花費的時間，請使用閘道端點設定您的虛擬私有雲端 (VPC)，以存取可用區域中的目錄儲存貯體，同時將流量保留在 AWS 網路中，無需額外費用。

**Topics**
+ [可用區域中目錄儲存貯體的端點](#s3-express-endpoints-az)
+ [設定 VPC 閘道端點](#s3-express-networking-vpc-gateway)

## 可用區域中目錄儲存貯體的端點
<a name="s3-express-endpoints-az"></a>

下表顯示每個區域和可用區域可用的區域 (Region) 和區域 (Zone) API 端點。


| 區域名稱 | 區域 | 可用區域 ID | 區域 (Region) 端點 | 區域 (Zone) 端點 | 
| --- | --- | --- | --- | --- | 
|  美國東部 (維吉尼亞北部)  |  `us-east-1`  |  `use1-az4` `use1-az5` `use1-az6`  |  `s3express-control.us-east-1.amazonaws.com` `s3express-control-dualstack.us-east-1.amazonaws.com `  |  `s3express-use1-az4.us-east-1.amazonaws.com` `s3express-use1-az4.dualstack.us-east-1.amazonaws.com` `s3express-use1-az5.us-east-1.amazonaws.com` `s3express-use1-az5.dualstack.us-east-1.amazonaws.com` `s3express-use1-az6.us-east-1.amazonaws.com` `s3express-use1-az6.dualstack.us-east-1.amazonaws.com`  | 
|  美國東部 (俄亥俄)  |  `us-east-2`  |  `use2-az1` `use2-az2`  |  `s3express-control.us-east-2.amazonaws.com` `s3express-control-dualstack.us-east-2.amazonaws.com`  |  `s3express-use2-az1.us-east-2.amazonaws.com` `s3express-use2-az1.dualstack.us-east-2.amazonaws.com` `s3express-use2-az2.us-east-2.amazonaws.com` `s3express-use2-az2.dualstack.us-east-2.amazonaws.com`  | 
|  美國西部 (奧勒岡)  |  `us-west-2`  |  `usw2-az1` `usw2-az3` `usw2-az4`  |  `s3express-control.us-west-2.amazonaws.com` `s3express-control-dualstack.us-west-2.amazonaws.com`  |  `s3express-usw2-az1.us-west-2.amazonaws.com` `s3express-usw2-az1.dualstack.us-west-2.amazonaws.com` `s3express-usw2-az3.us-west-2.amazonaws.com` `s3express-usw2-az3.dualstack.us-west-2.amazonaws.com` `s3express-usw2-az4.us-west-2.amazonaws.com` `s3express-usw2-az4.dualstack.us-west-2.amazonaws.com`  | 
|  亞太地區 (孟買)  |  `ap-south-1`  |  `aps1-az1` `aps1-az3`  |  `s3express-control.ap-south-1.amazonaws.com` `s3express-control-dualstack.ap-south-1.amazonaws.com`  |  `s3express-aps1-az1.ap-south-1.amazonaws.com` `s3express-aps1-az1.dualstack.ap-south-1.amazonaws.com` `s3express-aps1-az3.ap-south-1.amazonaws.com` `s3express-aps1-az3.dualstack.ap-south-1.amazonaws.com`  | 
|  亞太地區 (東京)  |  `ap-northeast-1`  |  `apne1-az1` `apne1-az4`  |  `s3express-control.ap-northeast-1.amazonaws.com` `s3express-control-dualstack.ap-northeast-1.amazonaws.com`  |  `s3express-apne1-az1.ap-northeast-1.amazonaws.com` `s3express-apne1-az1.dualstack.ap-northeast-1.amazonaws.com` `s3express-apne1-az4.ap-northeast-1.amazonaws.com` `s3express-apne1-az4.dualstack.ap-northeast-1.amazonaws.com`  | 
|  歐洲 (愛爾蘭)  |  `eu-west-1`  |  `euw1-az1` `euw1-az3`  |  `s3express-control.eu-west-1.amazonaws.com` `s3express-control-dualstack.eu-west-1.amazonaws.com`  |  `s3express-euw1-az1.eu-west-1.amazonaws.com` `s3express-euw1-az1.dualstack.eu-west-1.amazonaws.com` `s3express-euw1-az3.eu-west-1.amazonaws.com` `s3express-euw1-az3.dualstack.eu-west-1.amazonaws.com`  | 
|  歐洲 (斯德哥爾摩)  |  `eu-north-1`  |  `eun1-az1` `eun1-az2` `eun1-az3`  |  `s3express-control.eu-north-1.amazonaws.com` `s3express-control-dualstack.eu-north-1.amazonaws.com`  |  `s3express-eun1-az1.eu-north-1.amazonaws.com` `s3express-eun1-az1.dualstack.eu-north-1.amazonaws.com` `s3express-eun1-az2.eu-north-1.amazonaws.com` `s3express-eun1-az2.dualstack.eu-north-1.amazonaws.com` `s3express-eun1-az3.eu-north-1.amazonaws.com` `s3express-eun1-az3.dualstack.eu-north-1.amazonaws.com`  | 

## 設定 VPC 閘道端點
<a name="s3-express-networking-vpc-gateway"></a>

下列程序可用來建立連線至 Amazon S3 Express One Zone 儲存類別物件和目錄儲存貯體的閘道端點。

**設定閘道 VPC 端點**

1. 開啟 [Amazon VPC 主控台](https://console.aws.amazon.com/vpc/)。

1. 在導覽窗格中選擇**端點**。

1. 選擇**建立端點**。

1. 建立端點的名稱。

1. 對於 **Service category** (服務類別)，選擇 **AWS 服務**。

1. 針對**服務**，新增篩選條件 **Type=Gateway**，然後選擇 **com.amazonaws.*region*.s3express** 旁邊的選項按鈕。

1. 針對 **VPC**，選擇要在其中建立端點的 VPC。

1. 針對**路由表**，選擇端點要使用之 VPC 中的路由表。建立端點之後，路由記錄會新增至您在此步驟中選取的路由表。

1. 針對**政策**，選擇**完整存取**，以允許 VPC 端點上所有資源的所有主體進行所有操作。否則，選擇**自訂**以連接 VPC 端點政策，該政策會控制主體在 VPC 端點上對資源執行操作的許可。

1. 針對 **IP address type** (IP 地址類型)，從下列選項中選擇：
   +  **IPv4** – 將 IPv4 地址指派給端點網路介面。只有當所有選取的子網路都具有 IPv4 地址範圍，且此服務接受 IPv4 請求時，才支援此選項。
   +  **IPv6** – 將 IPv6 地址指派給端點網路介面。只有當所有選取的子網路都是僅限 IPv6 子網路，且此服務接受 IPv6 請求時，才支援此選項。
   +  **Dualstack** – 將 IPv4 和 IPv6 地址指派給端點網路介面。只有當所有選取的子網路都具有 IPv4 和 IPv6 地址範圍，且此服務接受 IPv4 和 IPv6 請求時，才支援此選項。

1. (選用) 若要新增標籤，請選擇**新增標籤**，然後輸入標籤金鑰和標籤值。

1. 選擇**建立端點**。

建立閘道端點後，您可以使用區域 (Region) API 端點和區域 (Zone) API 端點存取 Amazon S3 Express One Zone 儲存類別物件和目錄儲存貯體。

若要進一步了解閘道 VPC 端點，請參閱《AWS PrivateLink 指南》**中的[閘道端點](https://docs.aws.amazon.com/vpc/latest/privatelink/gateway-endpoints.html)。對於資料落地使用案例，建議您只使用閘道 VPC 端點從 VPC 存取儲存貯體。當存取僅限於 VPC 或 VPC 端點時，您可以透過 AWS 管理主控台、REST API AWS CLI和 AWS SDKs存取物件。

**注意**  
若要使用 限制對 VPC 或 VPC 端點的存取 AWS 管理主控台，您必須使用 AWS 管理主控台 私有存取。如需詳細資訊，請參閱 *AWS 管理主控台 *AWS 管理主控台 指南中的[AWS 管理主控台 私有存取](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/console-private-access.html)。

# 在可用區域中建立目錄儲存貯體
<a name="directory-bucket-create"></a>

若要開始使用 Amazon S3 Express One Zone 儲存類別，請建立目錄儲存貯體。S3 Express One Zone 儲存類別只能搭配目錄儲存貯體使用。S3 Express One Zone 儲存類別支援低延遲使用案例，並可在單一可用區域內提供更快速的資料處理。如果您的應用程式對效能很敏感，且受益於個位數毫秒的 `PUT` 和 `GET` 延遲，則建議您建立目錄儲存貯體，以便使用 S3 Express One Zone 儲存類別。

有兩種類型的 Amazon S3 儲存貯體：一般用途儲存貯體和目錄儲存貯體。您應該選擇最適合您的應用程式和效能需求的儲存貯體類型。一般用途儲存貯體是原始 S3 儲存貯體類型。針對大多數使用案例和存取模式，建議使用一般用途儲存貯體，此類型允許儲存在所有儲存類別的物件，但 S3 Express One Zone 除外。如需有關一般用途儲存貯體的詳細資訊，請參閱 [一般用途儲存貯體概觀](UsingBucket.md)。

目錄儲存貯體使用 S3 Express One Zone 儲存類別，這是專供需要一致的個位數毫秒延遲的工作負載或效能關鍵應用程式使用所設計的類別。S3 Express One Zone 是第一款可讓您選取單一可用區域的 S3 儲存類別，還可選擇將物件儲存體與運算資源共置，藉此盡可能提供最高存取速度。建立目錄儲存貯體時，您可以選擇指定 AWS 區域 和 可用區域，該區域位於 Amazon EC2、Amazon Elastic Kubernetes Service 或 Amazon Elastic Container Service (Amazon ECS) 運算執行個體的本機，以最佳化效能。

使用 S3 Express One Zone，您的資料會以備援方式儲存在單一可用區域內的多部裝置上。S3 Express One Zone 的設計可在單一可用區域內達到 99.95% 的可用性，並依照 [Amazon S3 服務水準協議](https://aws.amazon.com/s3/sla/)提供支援。如需詳細資訊，請參閱[可用區域](directory-bucket-high-performance.md#s3-express-overview-az)

目錄儲存貯體會以階層方式將資料組織到目錄中，不同於一般用途儲存貯體的平面儲存結構。目錄儲存貯體沒有字首限制，個別目錄可以水平擴展。

如需有關目錄儲存貯體的詳細資訊，請參閱 [使用目錄儲存貯體](directory-buckets-overview.md)。

**目錄儲存貯體的名稱**  
目錄儲存貯體名稱必須遵循此格式，並符合目錄儲存貯體的命名規則：

```
bucket-base-name--zone-id--x-s3
```

例如，下列目錄儲存貯體名稱包含可用區域 ID `usw2-az1`：

```
bucket-base-name--usw2-az1--x-s3
```

如需有關儲存貯體命名規則的詳細資訊，請參閱 [目錄儲存貯體命名規則](directory-bucket-naming-rules.md)。

## 使用 S3 主控台
<a name="create-directory-bucket-console"></a>

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

1. 在頁面頂端的導覽列中，選擇目前顯示的名稱 AWS 區域。​接下來，選擇您要在其中建立儲存貯體的區域。
**注意**  
請選擇接近您的區域，以充分降低延遲及成本，並因應法規要求。除非您明確地將儲存在區域中的物件傳輸到其他區域，否則物件絕對不會離開該區域。如需 Amazon S3 AWS 區域的清單，請參閱 中的[AWS 服務 端點](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region)*Amazon Web Services 一般參考*。

1. 在左側導覽窗格中，選擇**目錄儲存貯體**。

1. 選擇 **Create bucket** (建立儲存貯體)。**Create bucket (建立儲存貯體)** 頁面隨即開啟。

1. 在**一般組態**下，檢視要建立儲存貯 AWS 區域 體的 。

   針對**儲存貯體類型**，選擇**目錄**。
**注意**  
如果您已選擇不支援目錄儲存貯體的區域，**儲存貯體類型**選項會消失，且儲存貯體類型預設為一般用途儲存貯體。若要建立目錄儲存貯體，您必須選擇支援的區域。如需支援目錄儲存貯體和 Amazon S3 Express One Zone 儲存類別的區域清單，請參閱[S3 Express One Zone 可用區域和區域](s3-express-Endpoints.md)。
在您建立儲存貯體之後，便無法變更儲存貯體類型。
**注意**  
儲存貯體建立之後，就無法變更可用區域。

1. 針對**可用區域**，選擇運算服務本機上的可用區域。如需支援目錄儲存貯體和 S3 Express One Zone 儲存類別的可用區域清單，請參閱[S3 Express One Zone 可用區域和區域](s3-express-Endpoints.md)。

   在**可用區域**下，選取核取方塊，表示您確實了解在可用區域發生中斷時，您的資料可能無法使用或遺失。
**重要**  
雖然目錄儲存貯體會儲存在單一可用區域內的多部裝置，但不會以備援方式跨可用區域儲存資料。

1. 針對**儲存貯體名稱**，輸入您的目錄儲存貯體的名稱。

   目錄儲存貯體適用下列命名規則。
   + 在所選區域內是唯一的 (AWS 可用區域或 AWS 本機區域）。
   + 名稱長度必須介於 3 (最小值) 到 63 (最大值) 個字元之間，包括字尾在內。
   + 只能由小寫字母、數字和連字號 (-) 組成。
   + 開頭和結尾為字母或數字。
   + 必須包含下列字尾：`--zone-id--x-s3`。
   + 儲存貯體名稱必須以字首 `xn--` 開頭。
   + 儲存貯體名稱必須以字首 `sthree-` 開頭。
   + 儲存貯體名稱必須以字首 `sthree-configurator` 開頭。
   + 儲存貯體名稱必須以字首 ` amzn-s3-demo-` 開頭。
   + 儲存貯體名稱不得以尾碼 `-s3alias` 結尾。存取點別名名稱會保留此尾碼。如需詳細資訊，請參閱[存取點別名](access-points-naming.md#access-points-alias)。
   + 儲存貯體名稱不得以尾碼 `--ol-s3` 結尾。Object Lambda 存取點別名名稱會保留此尾碼。如需詳細資訊，請參閱[如何針對您的 S3 儲存貯體 Object Lambda 存取點使用儲存貯體樣式別名](olap-use.md#ol-access-points-alias)。
   + 儲存貯體名稱不得以尾碼 `.mrap` 結尾。多區域存取點名稱會保留此字尾。如需詳細資訊，請參閱[命名 Amazon S3 多區域存取點的規則](multi-region-access-point-naming.md)。

   當您使用主控台建立目錄儲存貯體時，您提供的基本名稱會自動新增字尾。此字尾包含您所選擇可用區域的可用區域 ID。

   建立儲存貯體後，便無法變更其名稱。如需儲存貯體命名的詳細資訊，請參閱 [一般用途儲存貯體命名規則](bucketnamingrules.md)。
**重要**  
請勿在儲存貯體名稱中包含敏感資訊，例如帳號。在指向儲存貯體中之物件的 URL 中，會顯示儲存貯體名稱。

1. 在**物件擁有權**下，會自動啟用**儲存貯體擁有者強制執行**設定，並停用所有存取控制清單 (ACL)。您無法針對目錄儲存貯體啟用 ACL。

    **儲存貯體擁有者強制執行 (預設)** - 停用 ACL，儲存貯體擁有者會自動擁有並完全控制一般用途儲存貯體中的每個物件。ACL 不再影響 S3 一般用途儲存貯體中資料的存取許可。儲存貯體單獨使用政策來定義存取控制。

1. 在**此儲存貯體的「封鎖公開存取」設定**下，會自動啟用您目錄儲存貯體的所有封鎖公開存取設定。您無法修改目錄儲存貯體的這些設定。如需封鎖公開存取的詳細資訊，請參閱 [封鎖對 Amazon S3 儲存體的公開存取權](access-control-block-public-access.md)。

1. 若要設定預設加密，請在**加密類型**下，選擇下列其中一項：
   + **使用 Amazon S3 受管金鑰 (SSE-S3) 的伺服器端加密**
   + **伺服器端加密與 AWS Key Management Service 金鑰 (SSE-KMS)**

   如需有關使用 Amazon S3 伺服器端加密來加密資料的詳細資訊，請參閱「[資料保護和加密](s3-express-data-protection.md)」。
**重要**  
如果您針對預設加密組態使用 SSE-KMS 選項，則受到 AWS KMS的每秒請求數目 (RPS) 限制。如需 AWS KMS 配額以及如何請求提高配額的詳細資訊，請參閱《AWS Key Management Service 開發人員指南》**中的[配額](https://docs.aws.amazon.com/kms/latest/developerguide/limits.html)。  
啟用預設加密時，您可能需要更新儲存貯體政策。如需詳細資訊，請參閱[針對跨帳戶操作使用 SSE-KMS 加密](bucket-encryption.md#bucket-encryption-update-bucket-policy)。

1. 如果選擇**使用 Amazon S3 受管金鑰 (SSE-S3) 的伺服器端加密**，則**儲存貯體金鑰**下會顯示**已啟用**。當您將目錄儲存貯體設定為搭配 SSE-S3 使用預設加密時，一律啟用 S3 儲存貯體金鑰。目錄儲存貯體中的 `GET` 和 `PUT` 操作一律會啟用 S3 儲存貯體金鑰，且無法停用。當您透過 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)、[https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)、[Batch Operations 中的 Copy 操作](directory-buckets-objects-Batch-Ops.md)或 [import 作業](create-import-job.md)，將 SSE-KMS 加密物件從一般用途儲存貯體複製到目錄儲存貯體、從目錄儲存貯體複製到一般用途儲存貯體或在目錄儲存貯體之間複製時，不支援 S3 儲存貯體金鑰。在此情況下，Amazon S3 AWS KMS 每次針對 KMS 加密物件提出複製請求時都會呼叫 。

   S3 儲存貯體金鑰透過減少來自 Amazon S3 的請求流量來降低加密成本 AWS KMS。如需詳細資訊，請參閱[使用 Amazon S3 儲存貯體金鑰降低 SSE-KMS 的成本](bucket-key.md)。

1. 如果您選擇**使用 AWS Key Management Service 金鑰的伺服器端加密 (SSE-KMS)**，請在** AWS KMS 金鑰**下，以下列其中一種方式指定您的 AWS Key Management Service 金鑰，或建立新的金鑰。
   + 若要從可用的 KMS 金鑰清單中選擇，請選擇**從中選擇 AWS KMS keys**，然後從**可用的 AWS KMS keys**中選擇您的 **KMS 金鑰**。

     此清單中只會出現您的客戶自管金鑰。目錄儲存貯體不支援 AWS 受管金鑰 (`aws/s3`)。如需詳細了解客戶受管金鑰，請參閱《AWS Key Management Service 開發人員指南》**中的[客戶金鑰和 AWS 金鑰](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#key-mgmt)。
   + 若要輸入 KMS 金鑰 ARN 或別名，請選擇**輸入 AWS KMS key ARN**，然後在 ARN 中輸入您的 KMS 金鑰 **AWS KMS key ARN** 或別名。
   + 若要在 AWS KMS 主控台中建立新的客戶受管金鑰，請選擇**建立 KMS 金鑰**。

     如需建立 的詳細資訊 AWS KMS key，請參閱《 *AWS Key Management Service 開發人員指南*》中的[建立金鑰](https://docs.aws.amazon.com//kms/latest/developerguide/create-keys.html)。
**重要**  
您的 SSE-KMS 組態在儲存貯體的生命週期內，每個目錄儲存貯體只能支援 1 個[客戶自管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)。不支援 [https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) (`aws/s3`)。此外，為 SSE-KMS 指定客戶自管金鑰之後，即無法覆寫儲存貯體 SSE-KMS 組態的客戶自管金鑰。  
您可以透過下列方式識別為儲存貯體的 SSE-KMS 組態指定的客戶自管金鑰：  
您可以提出 `HeadObject` API 操作請求，在回應中尋找 `x-amz-server-side-encryption-aws-kms-key-id` 的值。
若要為資料使用新的客戶自管金鑰，建議您使用新的客戶自管金鑰，將現有的物件複製到新的目錄儲存貯體。
您只能使用 AWS 區域 與儲存貯體相同的 KMS 金鑰。Amazon S3 主控台僅會列出與儲存貯體位於相同區域的前 100 個 KMS 金鑰。若要使用未列出的 KMS 金鑰，必須輸入 KMS 金鑰 ARN。若您想要使用其他帳戶的 KMS 金鑰，您必須先具有該金鑰的使用權限，然後輸入 KMS 金鑰 ARN。如需詳細了解 KMS 金鑰跨帳戶權限，請參閱《AWS Key Management Service 開發人員指南》**中的[建立其他帳戶可使用的 KMS 金鑰](https://docs.aws.amazon.com//kms/latest/developerguide/key-policy-modifying-external-accounts.html#cross-account-console)。如需 SSE-KMS 的詳細資訊，請參閱 [使用 AWS KMS (SSE-KMS) 為目錄儲存貯體中的新物件上傳指定伺服器端加密](s3-express-specifying-kms-encryption.md)。
當您在目錄儲存貯體中使用 AWS KMS key 進行伺服器端加密時，您必須選擇對稱加密 KMS 金鑰。Amazon S3 僅支援對稱加密 KMS 金鑰，而不支援非對稱 KMS 金鑰。如需詳細資訊，請參閱《AWS Key Management Service 開發人員指南》**中的[識別對稱和非對稱 KMS 金鑰](https://docs.aws.amazon.com//kms/latest/developerguide/find-symm-asymm.html)。

   如需 AWS KMS 搭配 Amazon S3 使用 的詳細資訊，請參閱 [在目錄儲存貯體中使用伺服器端加密與 AWS KMS 金鑰 (SSE-KMS)](s3-express-UsingKMSEncryption.md)。

1. 選擇**建立儲存貯體**。建立儲存貯體之後，您可以新增檔案和資料夾至儲存貯體。如需詳細資訊，請參閱[使用目錄儲存貯體中的物件](directory-buckets-objects.md)。

## 使用 AWS SDKs
<a name="create-directory-bucket-sdks"></a>

------
#### [ SDK for Go ]

此範例示範如何使用 適用於 Go 的 AWS SDK建立目錄儲存貯體。

**Example**  

```
var bucket = "..."

func runCreateBucket(c *s3.Client) {
    resp, err := c.CreateBucket(context.Background(), &s3.CreateBucketInput{
        Bucket: &bucket,
        CreateBucketConfiguration: &types.CreateBucketConfiguration{
            Location: &types.LocationInfo{
                Name: aws.String("usw2-az1"),
                Type: types.LocationTypeAvailabilityZone,
            },  
            Bucket: &types.BucketInfo{
                DataRedundancy: types.DataRedundancySingleAvailabilityZone,
                Type:           types.BucketTypeDirectory,
            },  
        },  
    })  
    var terr *types.BucketAlreadyOwnedByYou
    if errors.As(err, &terr) {
        fmt.Printf("BucketAlreadyOwnedByYou: %s\n", aws.ToString(terr.Message))
        fmt.Printf("noop...\n")
        return
    }   
    if err != nil {
        log.Fatal(err)
    }   

    fmt.Printf("bucket created at %s\n", aws.ToString(resp.Location))
}
```

------
#### [ SDK for Java 2.x ]

此範例示範如何使用 AWS SDK for Java 2.x建立目錄儲存貯體。

**Example**  

```
public static void createBucket(S3Client s3Client, String bucketName) {

    //Bucket name format is {base-bucket-name}--{az-id}--x-s3
    //example: doc-example-bucket--usw2-az1--x-s3 is a valid name for a directory bucket created in
    //Region us-west-2, Availability Zone 2  

    CreateBucketConfiguration bucketConfiguration = CreateBucketConfiguration.builder()
             .location(LocationInfo.builder()
                     .type(LocationType.AVAILABILITY_ZONE)
                     .name("usw2-az1").build()) //this must match the Region and Availability Zone in your bucket name
             .bucket(BucketInfo.builder()
                    .type(BucketType.DIRECTORY)
                    .dataRedundancy(DataRedundancy.SINGLE_AVAILABILITY_ZONE)
                    .build()).build();
    try {
    
             CreateBucketRequest bucketRequest = CreateBucketRequest.builder().bucket(bucketName).createBucketConfiguration(bucketConfiguration).build();
             CreateBucketResponse response = s3Client.createBucket(bucketRequest);
             System.out.println(response);
    } 
    
    catch (S3Exception e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
         }
    }
```

------
#### [ 適用於 JavaScript 的 AWS SDK ]

此範例示範如何使用 適用於 JavaScript 的 AWS SDK建立目錄儲存貯體。

**Example**  

```
// file.mjs, run with Node.js v16 or higher
// To use with the preview build, place this in a folder 
// inside the preview build directory, such as /aws-sdk-js-v3/workspace/

import { S3 } from "@aws-sdk/client-s3";

const region = "us-east-1";
const zone = "use1-az4";
const suffix = `${zone}--x-s3`;

const s3 = new S3({ region });

const bucketName = `...--${suffix}`;

const createResponse = await s3.createBucket( 
    { Bucket: bucketName, 
      CreateBucketConfiguration: {Location: {Type: "AvailabilityZone", Name: zone},
      Bucket: { Type: "Directory", DataRedundancy: "SingleAvailabilityZone" }}
    } 
   );
```

------
#### [ 適用於 .NET 的 SDK ]

此範例示範如何使用 適用於 .NET 的 SDK建立目錄儲存貯體。

**Example**  

```
using (var amazonS3Client = new AmazonS3Client())
{
    var putBucketResponse = await amazonS3Client.PutBucketAsync(new PutBucketRequest
    {

       BucketName = "DOC-EXAMPLE-BUCKET--usw2-az1--x-s3",
       PutBucketConfiguration = new PutBucketConfiguration
       {
         BucketInfo = new BucketInfo { DataRedundancy = DataRedundancy.SingleAvailabilityZone, Type = BucketType.Directory },
         Location = new LocationInfo { Name = "usw2-az1", Type = LocationType.AvailabilityZone }
       }
     }).ConfigureAwait(false);
}
```

------
#### [ SDK for PHP ]

此範例示範如何使用 AWS SDK for PHP建立目錄儲存貯體。

**Example**  

```
require 'vendor/autoload.php';

$s3Client = new S3Client([

    'region'      => 'us-east-1',
]);


$result = $s3Client->createBucket([
    'Bucket' => 'doc-example-bucket--use1-az4--x-s3',
    'CreateBucketConfiguration' => [
        'Location' => ['Name'=> 'use1-az4', 'Type'=> 'AvailabilityZone'],
        'Bucket' => ["DataRedundancy" => "SingleAvailabilityZone" ,"Type" => "Directory"]   ],
]);
```

------
#### [ SDK for Python ]

此範例示範如何使用 適用於 Python (Boto3) 的 AWS SDK建立目錄儲存貯體。

**Example**  

```
import logging
import boto3
from botocore.exceptions import ClientError

def create_bucket(s3_client, bucket_name, availability_zone):
    '''
    Create a directory bucket in a specified Availability Zone

    :param s3_client: boto3 S3 client
    :param bucket_name: Bucket to create; for example, 'doc-example-bucket--usw2-az1--x-s3'
    :param availability_zone: String; Availability Zone ID to create the bucket in, for example, 'usw2-az1'
    :return: True if bucket is created, else False
    '''

    try:
        bucket_config = {
                'Location': {
                    'Type': 'AvailabilityZone',
                    'Name': availability_zone
                },
                'Bucket': {
                    'Type': 'Directory', 
                    'DataRedundancy': 'SingleAvailabilityZone'
                }
            }
        s3_client.create_bucket(
            Bucket = bucket_name,
            CreateBucketConfiguration = bucket_config
        )
    except ClientError as e:
        logging.error(e)
        return False
    return True


if __name__ == '__main__':
    bucket_name = 'BUCKET_NAME'
    region = 'us-west-2'
    availability_zone = 'usw2-az1'
    s3_client = boto3.client('s3', region_name = region)
    create_bucket(s3_client, bucket_name, availability_zone)
```

------
#### [ SDK for Ruby ]

此範例示範如何使用 適用於 Ruby 的 AWS SDK建立目錄儲存貯體。

**Example**  

```
s3 = Aws::S3::Client.new(region:'us-west-2')
s3.create_bucket(
  bucket: "bucket_base_name--az_id--x-s3",
  create_bucket_configuration: {
    location: { name: 'usw2-az1', type: 'AvailabilityZone' },
    bucket: { data_redundancy: 'SingleAvailabilityZone', type: 'Directory' }
  }
)
```

------

## 使用 AWS CLI
<a name="create-directory-bucket-cli"></a>

此範例示範如何使用 AWS CLI建立目錄儲存貯體。若要使用此命令，請以您自己的資訊取代*使用者輸入預留位置*。

建立目錄儲存貯體時，您必須提供組態詳細資訊，並使用下列命名慣例：`bucket-base-name--zone-id--x-s3`

```
aws s3api create-bucket
--bucket bucket-base-name--zone-id--x-s3
--create-bucket-configuration 'Location={Type=AvailabilityZone,Name=usw2-az1},Bucket={DataRedundancy=SingleAvailabilityZone,Type=Directory}'
--region us-west-2
```

如需詳細資訊，請參閱 AWS Command Line Interface中的 [create-bucket](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/create-bucket.html)。

# 可用區域中目錄儲存貯體的地區與區域端點
<a name="endpoint-directory-buckets-AZ"></a>

若要存取儲存在 S3 Express One Zone 中的物件和目錄儲存貯體，您可以使用閘道 VPC 端點。目錄儲存貯體使用地區與區域 API 端點。需要區域 (Region) 或區域 (Zone) 端點，取決於您使用的 Amazon S3 API 操作。使用閘道端點不需額外付費。

儲存貯體層級 (也就是控制平面) API 操作可透過區域 (Region) 端點提供使用，並且稱為區域端點 API 操作。區域端點 API 操作的範例包括 `CreateBucket` 和 `DeleteBucket`。

 當您建立儲存在 S3 Express One Zone 中的目錄儲存貯體時，可以選擇儲存貯體所在的可用區域。您可以使用區域端點 API 操作來上傳和管理目錄儲存貯體中的物件。

物件層級 (也就是資料平面) API 操作可透過區域 (Zone) 端點提供使用，並且稱為區域端點 API 操作。區域端點 API 操作的範例包括 `CreateSession` 和 `PutObject`。


| 區域名稱 | 區域 | 可用區域 ID | 區域 (Region) 端點 | 區域 (Zone) 端點 | 
| --- | --- | --- | --- | --- | 
|  美國東部 (維吉尼亞北部)  |  `us-east-1`  |  `use1-az4` `use1-az5` `use1-az6`  |  `s3express-control.us-east-1.amazonaws.com` `s3express-control-dualstack.us-east-1.amazonaws.com `  |  `s3express-use1-az4.us-east-1.amazonaws.com` `s3express-use1-az4.dualstack.us-east-1.amazonaws.com` `s3express-use1-az5.us-east-1.amazonaws.com` `s3express-use1-az5.dualstack.us-east-1.amazonaws.com` `s3express-use1-az6.us-east-1.amazonaws.com` `s3express-use1-az6.dualstack.us-east-1.amazonaws.com`  | 
|  美國東部 (俄亥俄)  |  `us-east-2`  |  `use2-az1` `use2-az2`  |  `s3express-control.us-east-2.amazonaws.com` `s3express-control-dualstack.us-east-2.amazonaws.com`  |  `s3express-use2-az1.us-east-2.amazonaws.com` `s3express-use2-az1.dualstack.us-east-2.amazonaws.com` `s3express-use2-az2.us-east-2.amazonaws.com` `s3express-use2-az2.dualstack.us-east-2.amazonaws.com`  | 
|  美國西部 (奧勒岡)  |  `us-west-2`  |  `usw2-az1` `usw2-az3` `usw2-az4`  |  `s3express-control.us-west-2.amazonaws.com` `s3express-control-dualstack.us-west-2.amazonaws.com`  |  `s3express-usw2-az1.us-west-2.amazonaws.com` `s3express-usw2-az1.dualstack.us-west-2.amazonaws.com` `s3express-usw2-az3.us-west-2.amazonaws.com` `s3express-usw2-az3.dualstack.us-west-2.amazonaws.com` `s3express-usw2-az4.us-west-2.amazonaws.com` `s3express-usw2-az4.dualstack.us-west-2.amazonaws.com`  | 
|  亞太地區 (孟買)  |  `ap-south-1`  |  `aps1-az1` `aps1-az3`  |  `s3express-control.ap-south-1.amazonaws.com` `s3express-control-dualstack.ap-south-1.amazonaws.com`  |  `s3express-aps1-az1.ap-south-1.amazonaws.com` `s3express-aps1-az1.dualstack.ap-south-1.amazonaws.com` `s3express-aps1-az3.ap-south-1.amazonaws.com` `s3express-aps1-az3.dualstack.ap-south-1.amazonaws.com`  | 
|  亞太地區 (東京)  |  `ap-northeast-1`  |  `apne1-az1` `apne1-az4`  |  `s3express-control.ap-northeast-1.amazonaws.com` `s3express-control-dualstack.ap-northeast-1.amazonaws.com`  |  `s3express-apne1-az1.ap-northeast-1.amazonaws.com` `s3express-apne1-az1.dualstack.ap-northeast-1.amazonaws.com` `s3express-apne1-az4.ap-northeast-1.amazonaws.com` `s3express-apne1-az4.dualstack.ap-northeast-1.amazonaws.com`  | 
|  歐洲 (愛爾蘭)  |  `eu-west-1`  |  `euw1-az1` `euw1-az3`  |  `s3express-control.eu-west-1.amazonaws.com` `s3express-control-dualstack.eu-west-1.amazonaws.com`  |  `s3express-euw1-az1.eu-west-1.amazonaws.com` `s3express-euw1-az1.dualstack.eu-west-1.amazonaws.com` `s3express-euw1-az3.eu-west-1.amazonaws.com` `s3express-euw1-az3.dualstack.eu-west-1.amazonaws.com`  | 
|  歐洲 (斯德哥爾摩)  |  `eu-north-1`  |  `eun1-az1` `eun1-az2` `eun1-az3`  |  `s3express-control.eu-north-1.amazonaws.com` `s3express-control-dualstack.eu-north-1.amazonaws.com`  |  `s3express-eun1-az1.eu-north-1.amazonaws.com` `s3express-eun1-az1.dualstack.eu-north-1.amazonaws.com` `s3express-eun1-az2.eu-north-1.amazonaws.com` `s3express-eun1-az2.dualstack.eu-north-1.amazonaws.com` `s3express-eun1-az3.eu-north-1.amazonaws.com` `s3express-eun1-az3.dualstack.eu-north-1.amazonaws.com`  | 

# 最佳化 S3 Express 單區域效能
<a name="s3-express-performance"></a>

Amazon S3 Express One Zone 是一種高效能的單一可用區域 (AZ) S3 儲存類別，專門為對延遲最敏感的應用程式提供一致的個位數毫秒資料存取。S3 Express One Zone 是第一個 S3 儲存類別，可讓您選擇在單一可用區域內共同放置高效能物件儲存和 AWS 運算資源，例如 Amazon Elastic Compute Cloud、Amazon Elastic Kubernetes Service 和 Amazon Elastic Container Service。共置儲存與運算資源可將運算效能和成本最佳化，並提高資料處理速度。

S3 Express One Zone 提供與其他 S3 儲存類別相似的效能彈性，但具有一致的個位數毫秒第一位元組讀取和寫入請求延遲，與 S3 Standard 相比快了 10 倍。S3 Express One Zone 是全新設計的產品，支援的高載輸送量可達到非常高的彙總層級。S3 Express One Zone 儲存類別使用自訂建置的架構來達到最佳效能，並透過將資料存放在高效能硬體上來提供一致的低請求延遲。S3 Express One Zone 的物件通訊協定經增強後，簡化了身分驗證和中繼資料的額外負荷。

為了進一步降低延遲並支援高達 200 萬次讀取和每秒高達 200,000 次寫入，S3 Express One Zone 會將資料儲存在 Amazon S3 目錄儲存貯體中。根據預設，每個目錄儲存貯體最多支援 200,000 次讀取和每秒最多 100,000 次寫入。如果您的工作負載需要高於預設 TPS 限制，您可以透過 [AWS Support](https://support.console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase) 請求增加。

S3 Express One Zone 結合高效能、專用硬體和軟體，提供了個位數毫秒的資料存取速度，以及可針對每秒大量交易進行擴展的目錄儲存貯體，使其成為最適合請求密集型操作或效能關鍵應用程式的 Amazon S3 儲存類別。

下列主題針對使用 S3 Express One Zone 儲存類別的應用程式，說明最佳化效能的最佳實務指導方針和設計模式。

**Topics**
+ [最佳化 S3 Express One Zone 效能的最佳實務](s3-express-optimizing-performance-design-patterns.md)

# 最佳化 S3 Express One Zone 效能的最佳實務
<a name="s3-express-optimizing-performance-design-patterns"></a>

建置從 Amazon S3 Express One Zone 上傳和擷取物件的應用程式時，請依照我們的最佳實務指導方針來最佳化效能。若要使用 S3 Express One Zone 儲存類別，您必須建立 S3 目錄儲存貯體。S3 Express One Zone 儲存類別不支援搭配 S3 一般用途儲存貯體使用。

如需所有其他 Amazon S3 儲存類別和 S3 一般用途儲存貯體的效能指導方針，請參閱 [最佳實務設計模式：最佳化 Amazon S3 效能](optimizing-performance.md)。

為了在大規模工作負載中使用 S3 Express One Zone 儲存類別和目錄儲存貯體時獲得最佳效能和可擴展性，請務必了解目錄儲存貯體的運作方式與一般用途儲存貯體不同之處。然後，我們提供最佳實務，讓您的應用程式與目錄儲存貯體的運作方式保持一致。

## 目錄儲存貯體的運作方式
<a name="s3-express-how-directory-buckets-work"></a>

Amazon S3 Express One Zone 儲存類別可支援每個目錄儲存貯體每秒最多 2,000,000 個 GET 和 200,000 個 PUT 交易 (TPS) 的工作負載。使用 S3 Express One Zone 可將資料儲存在可用區域的 S3 目錄儲存貯體中。目錄儲存貯體中的物件可在階層式命名空間內存取，其類似於檔案系統，與具有一般命名空間的 S3 一般用途儲存貯體正好相反。與一般用途儲存貯體不同的是，目錄儲存貯體是以階層方式將索引鍵組織成目錄，而非字首。字首是物件索引鍵名稱開頭的字元字串。您可以使用字首來整理資料，並可用於管理一般用途儲存貯體中的扁平式物件儲存架構。如需詳細資訊，請參閱[使用字首整理物件](using-prefixes.md)。

在目錄儲存貯體中，物件會在階層式命名空間中使用正斜線 (`/`) 做為唯一支援的分隔符號。當您使用如 `dir1/dir2/file1.txt` 一樣的金鑰上傳物件時，目錄 `dir1/` 和 `dir2/` 會自動由 Amazon S3 建立和管理。目錄會在 `PutObject` 或 `CreateMultiPartUpload` 操作期間建立，並且會在 `DeleteObject` 或 `AbortMultiPartUpload` 操作後變成空白時，自動移除。目錄中的物件和子目錄數量沒有上限。

物件上傳到目錄儲存貯體時所建立的目錄，可以立即擴展，以減少發生 HTTP `503 (Slow Down)` 錯誤的機會。這種自動擴展可讓您的應用程式視需要在目錄內和目錄之間平行處理讀取和寫入請求。對於 S3 Express One Zone，個別目錄旨在支援目錄儲存貯體的最大請求率。由於系統會自動分配物件以實現均勻的負載分佈，無需隨機化索引鍵字首即可達到最佳效能，因此索引鍵不會依詞典編纂順序排列方式儲存在目錄儲存貯體中。這與 S3 一般用途儲存貯體形成對比，其中詞典編纂順序相近的索引鍵更有可能位於同一部伺服器上。

如需目錄儲存貯體操作和目錄互動範例的詳細資訊，請參閱 [目錄儲存貯體操作和目錄互動範例](#s3-express-directory-bucket-examples)。

## 最佳實務
<a name="s3-express-best-practices-section"></a>

遵循最佳實務來最佳化目錄儲存貯體效能，並協助您的工作負載隨時間擴展。

### 使用包含許多項目的目錄 (物件或子目錄)
<a name="s3-express-best-practices-use-directories"></a>

目錄儲存貯體預設為所有工作負載提供高效能。若要在某些操作中進一步最佳化效能，將更多項目 (即物件或子目錄) 合併到目錄中，這將會導致更低的延遲和更高的請求率：
+ 改變 API 操作，例如 `PutObject`、`DeleteObject`、`CreateMultiPartUpload` 和 `AbortMultiPartUpload`，在使用包含數千個項目的較少但更密集的目錄，而非大量卻較小的目錄實作時，可達到最佳效能。
+ 當需要遍歷較少的目錄來填入結果頁面時，`ListObjectsV2` 操作效能會更好。

#### 請勿在字首中使用熵
<a name="s3-express-best-practices-dont-use-entropy"></a>

在 Amazon S3 操作中，熵是指字首命名中的隨機化，可協助跨儲存體分割區平均分配工作負載。不過，由於目錄儲存貯體會在內部管理負載分佈，因此不建議在字首中使用熵來獲得最佳效能。這是因為對於目錄儲存貯體來說，熵會導致請求速度變慢是因為它無法重複使用已經建立的目錄。

像 `$HASH/directory/object` 這樣的關鍵模式最終可能會建立許多中間目錄。在下列範例中，所有 `job-1` 都是不同的目錄，因為其父系不同。目錄會變得稀疏，而變動和清單請求會變慢。在此範例中，有 12 個中間目錄，每個目錄都只有單一項目。

```
s3://my-bucket/0cc175b9c0f1b6a831c399e269772661/job-1/file1
  
s3://my-bucket/92eb5ffee6ae2fec3ad71c777531578f/job-1/file2
  
s3://my-bucket/4a8a08f09d37b73795649038408b5f33/job-1/file3
  
s3://my-bucket/8277e0910d750195b448797616e091ad/job-1/file4
  
s3://my-bucket/e1671797c52e15f763380b45e841ec32/job-1/file5
  
s3://my-bucket/8fa14cdd754f91cc6554c9e71929cce7/job-1/file6
```

相反地，為了獲得更好的效能，我們可以移除 `$HASH` 元件，並允許 `job-1` 成為單一目錄，以改善目錄的密度。在下列範例中，與前一個範例相比，包含 6 個項目的單一中間目錄，可以獲得更好的效能。

```
s3://my-bucket/job-1/file1
  
s3://my-bucket/job-1/file2
  
s3://my-bucket/job-1/file3
  
s3://my-bucket/job-1/file4
  
s3://my-bucket/job-1/file5
  
s3://my-bucket/job-1/file6
```

有這種效能優點，是因為一開始建立物件索引鍵且其索引鍵名稱包含目錄時，會自動為該物件建立目錄。後續物件上傳到同一個目錄時，就不需要建立目錄，這樣可以減少物件上傳至現有目錄的延遲。

#### 如果您不需要在 `ListObjectsV2` 呼叫期間為物件進行邏輯分組的能力，請使用分隔符號 / 以外的分隔符號來分隔索引鍵的部分
<a name="s3-express-best-practices-use-separator"></a>

由於 `/` 分隔符號對目錄儲存貯體有特殊處理，因此應謹慎使用。雖然目錄儲存貯體不會依詞典編纂順序排列物件，但目錄中的物件仍會在 `ListObjectsV2` 輸出中分在同一組。如果您不需要此功能，您可以將 `/` 取代為另一個字元做為分隔符號，以免造成中間目錄的建立。

例如，假設下列索引鍵處於 `YYYY/MM/DD/HH/` 字首模式

```
s3://my-bucket/2024/04/00/01/file1
  
s3://my-bucket/2024/04/00/02/file2
  
s3://my-bucket/2024/04/00/03/file3
  
s3://my-bucket/2024/04/01/01/file4
  
s3://my-bucket/2024/04/01/02/file5
  
s3://my-bucket/2024/04/01/03/file6
```

如果您不需要在 `ListObjectsV2` 結果中依小時或天為物件分組，但需要依月份為物件分組，則 `YYYY/MM/DD-HH-` 的下列索引鍵模式將大幅減少目錄，並提高 `ListObjectsV2` 操作的效能。

```
s3://my-bucket/2024/04/00-01-file1
  
s3://my-bucket/2024/04/00-01-file2
  
s3://my-bucket/2024/04/00-01-file3
  
s3://my-bucket/2024/04/01-02-file4
  
s3://my-bucket/2024/04/01-02-file5
  
s3://my-bucket/2024/04/01-02-file6
```

#### 盡可能使用分隔符號清單來操作
<a name="s3-express-best-practices-use-delimited-list"></a>

沒有 `delimiter` 的 `ListObjectsV2` 請求會執行所有目錄的深度優先遞迴遍歷。具有 `delimiter` 的 `ListObjectsV2` 請求只會擷取 `prefix` 參數所指定目錄中的項目，以減少請求延遲，並增加每秒的聚合鍵數。對於目錄儲存貯體，請盡可能使用分隔符號清單來操作。使用分隔符號的清單可以減少目錄的存取次數，進而提高每秒的鍵數，並降低請求延遲。

例如，對於目錄儲存貯體中的下列目錄和物件：

```
s3://my-bucket/2024/04/12-01-file1
  
s3://my-bucket/2024/04/12-01-file2
  
...
  
s3://my-bucket/2024/05/12-01-file1
  
s3://my-bucket/2024/05/12-01-file2
  
...
  
s3://my-bucket/2024/06/12-01-file1
  
s3://my-bucket/2024/06/12-01-file2
  
...
  
s3://my-bucket/2024/07/12-01-file1
  
s3://my-bucket/2024/07/12-01-file2
  
...
```

為了獲得更好的 `ListObjectsV2` 效能，如果應用程式的邏輯理論允許，請使用分隔符號清單列出子目錄和物件。例如，您可以針對分隔符號清單操作執行下列命令，

```
aws s3api list-objects-v2 --bucket my-bucket --prefix '2024/' --delimiter '/'
```

輸出是子目錄的清單。

```
{
    "CommonPrefixes": [
        {
            "Prefix": "2024/04/"
        },
        {
            "Prefix": "2024/05/"
        },
        {
            "Prefix": "2024/06/"
        },
        {
            "Prefix": "2024/07/"
        }
    ]
}
```

若要列出每個具有更佳效能的子目錄，您可以執行如下範例的命令：

命令：

```
aws s3api list-objects-v2 --bucket my-bucket --prefix '2024/04' --delimiter '/'
```

輸出：

```
{
    "Contents": [
        {
            "Key": "2024/04/12-01-file1"
        },
        {
            "Key": "2024/04/12-01-file2"
        }
    ]
}
```

### 將 S3 Express One Zone 儲存與您的 運算資源共置
<a name="s3-express-best-practices-colocate"></a>

使用 S3 Express One Zone 時，每個目錄儲存貯體都位於您建立儲存貯體時選取的單一可用區域中。您可以透過在運算工作負載或資源所在位置的可用區域中建立新的目錄儲存貯體來著手進行。然後就能立即開始非常低延遲的讀取和寫入。目錄儲存貯體是一種 S3 儲存貯體，您可以在其中選擇 中的可用區域 AWS 區域 ，以減少運算和儲存之間的延遲。

如果您在可用區域之間存取目錄儲存貯體，您經歷的延遲會稍微增加。為了達到最佳效能，建議您盡可能從位於相同可用區域中的 Amazon Elastic Container Service、Amazon Elastic Kubernetes Service 和 Amazon Elastic Compute Cloud 執行個體存取目錄儲存貯體。

### 使用並行連線，對於超過 1MB 的物件即達到高輸送量
<a name="s3-express-best-practices-concurrent-connections"></a>

您可以向目錄儲存貯體發出多個並行請求，以將請求分散到不同的連線上來獲得最大可存取頻寬，藉此達到最佳效能。如同一般用途儲存貯體，S3 Express One Zone 對於目錄儲存貯體的連線數沒有任何限制。當同一目錄發生大量並行寫入時，個別目錄可以水平和自動擴展效能。

目錄儲存貯體的個別 TCP 連線，在每秒可上傳或下載的位元組數上具有固定的上限。當物件變大時，請求時間主要取決於位元組串流處理，而不是交易處理。若要使用多個連線來平行處理大型物件的上傳或下載，您可以減少端對端延遲。如果使用 `Java 2.x` SDK，您應該考慮使用 [S3 Transfer Manager](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/transfer-manager.html)，利用效能改善如[分段上傳 API 操作](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html)和位元組範圍擷取，以平行存取資料。

### 使用閘道 VPC 端點
<a name="s3-express-best-practices-vpc-endpoints"></a>

閘道端點提供從 VPC 到目錄儲存貯體的直接連線，不需要網際網路閘道或 VPC 的 NAT 裝置。若要減少封包在網路上花費的時間，您應該使用目錄儲存貯體的閘道 VPC 端點來設定 VPC。如需詳細資訊，請參閱[目錄儲存貯體的網路](s3-express-networking.md)。

### 使用工作階段驗證，並重複使用有效的工作階段字符
<a name="s3-express-best-practices-session-auth"></a>

目錄儲存貯體提供工作階段字符驗證機制，以減少效能敏感 API 操作的延遲。您可以對 `CreateSession` 進行單一呼叫，以取得工作階段字符，如此即能在接下來 5 分鐘內對所有請求生效。若要在 API 呼叫中取得最低延遲，請務必取得工作階段字符，並在重新整理字符之前的整個生命週期內，重複使用該字符。

如果您使用 AWS SDKs，軟體SDKs會自動處理工作階段字符重新整理，以避免工作階段過期時服務中斷。我們建議您使用 AWS SDKs來啟動和管理對 `CreateSession` API 操作的請求。

如需 `CreateSession` 的相關資訊，請參閱 [使用 `CreateSession` 授權區域端點 API 操作](s3-express-create-session.md)。

### 使用 CRT 型用戶端
<a name="s3-express-best-practices-crt"></a>

 AWS Common Runtime (CRT) 是一組以 C 撰寫的模組化、高效能且高效的程式庫，旨在做為 AWS SDKs 的基礎。CRT 提供更高的輸送量、增強的連線管理，以及更快的啟動時間。CRT 可透過 Go 以外的所有 AWS SDKs 使用。

如需如何為所使用的 SDK 設定 CRT 的詳細資訊，請參閱[AWS 通用執行期 (CRT) 程式庫](https://docs.aws.amazon.com/sdkref/latest/guide/common-runtime.html)、[使用 AWS 通用執行期加速 Amazon S3 輸送量](https://aws.amazon.com/blogs//storage/improving-amazon-s3-throughput-for-the-aws-cli-and-boto3-with-the-aws-common-runtime/)、在[適用於 Java 的 AWS SDK 2.x 中介紹 CRT 型 S3 用戶端和 S3 Transfer Manager](https://aws.amazon.com/blogs//developer/introducing-crt-based-s3-client-and-the-s3-transfer-manager-in-the-aws-sdk-for-java-2-x/)、[使用適用於 Amazon S3 操作的 S3CrtClient](https://docs.aws.amazon.com/sdk-for-cpp/v1/developer-guide/examples-s3-crt.html)，以及[設定 AWS CRT 型 HTTP 用戶端](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/http-configuration-crt.html)。

### 使用最新版本的 AWS SDKs
<a name="s3-express-best-practices-latest-sdks"></a>

 AWS SDKs 為許多最佳化 Amazon S3 效能的建議準則提供內建支援。這些 SDK 提供更簡單的 API，以便在應用程式中充分利用 Amazon S3，並定期更新來遵循最新的最佳實務。例如，SDK 會在發生 HTTP `503` 錯誤後自動重試請求，並處理慢速連線回應。

如果使用 `Java 2.x` SDK，您應該考慮使用 [S3 Transfer Manager](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/transfer-manager.html)，它會自動水平擴展連線，以適時使用位元組範圍請求，實現每秒數千個請求數。位元組範圍請求可以提高效能，因為您可以使用與 S3 的並行連線，從同一個物件擷取不同的位元組範圍。與單一整個物件請求相比，這可協助您實現更高的彙總傳輸量。因此，請務必使用最新版本的 AWS SDKs來取得最新的效能最佳化功能。

## 效能故障診斷
<a name="s3-express-performance-troubleshooting"></a>

### 您是否為對延遲敏感的應用程式設定重試請求？
<a name="s3-express-performance-troubleshooting-retry"></a>

S3 Express One Zone 專為提供一致的高效能水準而打造，無需額外調整。但是，設定有利的逾時值和重試次數，可進一步協助實現一致的延遲和效能。 AWS SDKs 具有可設定的逾時和重試值，您可以根據特定應用程式的公差進行調整。

### 您是否使用 AWS 通用執行期 (CRT) 程式庫和最佳的 Amazon EC2 執行個體類型？
<a name="s3-express-performance-troubleshooting-crt-ec2"></a>

執行大量讀取和寫入操作的應用程式，可能會比未執行這些操作的應用程式需要更多的記憶體或運算能力。為要求高效能的工作負載啟動 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體時，請選擇符合應用程式所需資源量的執行個體類型。S3 Express One Zone 高效能儲存最適合搭配較大和較新的執行個體類型，這些類型具備更大量的系統記憶體，以及更強大的 CPU 和 GPU，可充分利用效能更高的儲存。我們也建議使用最新版本的 CRT 啟用 AWS SDKs，這可以更好地平行加速讀取和寫入請求。

### 您是否使用 AWS SDKs進行工作階段型身分驗證？
<a name="s3-express-performance-troubleshooting-session-auth"></a>

透過 Amazon S3，您也可以遵循 AWS SDKs 的相同最佳實務，在使用 HTTP REST API 請求時最佳化效能。不過，透過 S3 Express One Zone 所使用的工作階段型授權和身分驗證機制，我們強烈建議您使用 AWS SDKs來管理 `CreateSession`及其受管工作階段字符。使用 `CreateSession` API 操作， AWS SDKs會自動代表您建立和重新整理權杖。使用 `CreateSession`可節省對 AWS Identity and Access Management (IAM) 的每次請求往返延遲，以授權每個請求。

## 目錄儲存貯體操作和目錄互動範例
<a name="s3-express-directory-bucket-examples"></a>

以下顯示目錄儲存貯體如何運作的三個範例。

### 範例 1：對目錄儲存貯體的 S3 `PutObject` 請求如何與目錄互動
<a name="s3-express-directory-bucket-examples-put"></a>

1. 在空儲存貯體中執行 `PUT(<bucket>, "documents/reports/quarterly.txt")` 操作時，會在儲存貯體根目錄中建立目錄 `documents/`、在 `documents/` 中建立目錄 `reports/`，以及在 `reports/` 中建立物件 `quarterly.txt`。對於此操作，除了該物件外，還會建立兩個目錄。  
![\[圖表顯示 documents/reports/quarterly.txt 的 PUT 操作之後的目錄結構\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/images/directory-examples-foo-bar-baz.png)

1. 然後，當執行另一個 `PUT(<bucket>, "documents/logs/application.txt")` 操作時，目錄 `documents/` 已存在、在 `documents/` 中的目錄 `logs/` 不存在，因此建立該目錄，以及在 `logs/` 中建立物件 `application.txt`。對於此操作，除了該物件外，僅建立一個目錄。  
![\[圖表顯示 documents/logs/application.txt 的 PUT 操作之後的目錄結構\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/images/directory-examples-foo-baz-quux.png)

1. 最後，執行 `PUT(<bucket>, "documents/readme.txt")` 操作時，根目錄中的目錄 `documents/` 已存在，且物件 `readme.txt` 已建立。對於此操作，不會建立任何目錄。  
![\[圖表顯示 documents/readme.txt 的 PUT 操作之後的目錄結構\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/images/directory-examples-foo-bar.png)

### 範例 2：對目錄儲存貯體的 S3 `ListObjectsV2` 請求如何與目錄互動
<a name="s3-express-directory-bucket-examples-list"></a>

對於未指定分隔符號的 S3 `ListObjectsV2` 請求，會以深度優先的方式遍歷儲存貯體。輸出會以一致的順序傳回。不過，雖然此順序在請求之間保持不變，但順序並非依詞典編纂順序排列。對於先前範例中建立的儲存貯體和目錄：

1. 執行 `LIST(<bucket>)` 時，會輸入目錄 `documents/`，並開始遍歷。

1. 會輸入子目錄 `logs/`，並開始遍歷。

1. 物件 `application.txt` 可在 `logs/` 中找到。

1. `logs/` 內沒有其他項目。清單操作從 `logs/` 結束，然後再次進入 `documents/`。

1. `documents/` 目錄會持續遍歷，並找到物件 `readme.txt`。

1. 繼續遍歷 `documents/` 目錄，且會進入 `reports/` 子目錄，然後開始遍歷。

1. 物件 `quarterly.txt` 可在 `reports/` 中找到。

1. `reports/` 內沒有其他項目。清單從 `reports/` 結束，然後再次進入 `documents/`。

1. `documents/` 內不存在其他項目，且清單會傳回。

在此範例中，`logs/` 的順序在 `readme.txt` 之前，`readme.txt` 的順序在 `reports/` 之前。

### 範例 3：對目錄儲存貯體的 S3 `DeleteObject` 請求如何與目錄互動
<a name="s3-express-directory-bucket-examples-delete"></a>

![\[顯示 DELETE 操作之前初始目錄結構的圖表\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/images/directory-examples-delete-before.png)


1. 在相同的儲存貯體中，當執行 `DELETE(<bucket>, "documents/reports/quarterly.txt")` 操作時，會刪除物件 `quarterly.txt`，將目錄 `reports/` 保留空白，並導致立即刪除。`documents/` 目錄不是空的，因為目錄中同時具有目錄 `logs/` 和物件 `readme.txt`，因此不會遭到刪除。對於此操作，只會刪除一個物件和一個目錄。  
![\[顯示 documents/reports/quarterly.txt 的 DELETE 操作後的目錄結構圖表\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/images/directory-examples-delete1.png)

1. 執行 `DELETE(<bucket>, "documents/readme.txt")` 操作時，會刪除物件 `readme.txt`。`documents/` 仍未清空，因為其中包含目錄 `logs/`，因此不會遭到刪除。對於此操作，不會刪除任何目錄，只會刪除物件。  
![\[顯示 documents/readme.txt 的 DELETE 操作後的目錄結構圖表\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/images/directory-examples-delete2.png)

1. 最後，在執行 `DELETE(<bucket>, "documents/logs/application.txt")` 操作時，會刪除 `application.txt`，並將 `logs/` 保留空白，因而導致立即刪除。這會使 `documents/` 保留空白，但也導致立即遭到刪除。對於此操作，會刪除兩個目錄和一個物件。儲存貯體現在已清空。  
![\[顯示 documents/logs/application.txt 的 DELETE 操作後的目錄結構圖表\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/images/directory-examples-delete3.png)

# 資料落地工作負載
<a name="directory-bucket-data-residency"></a>

AWS 專用本地區域 （專用本地區域） 是一種 AWS 基礎設施，由 完全管理 AWS、專為您或您的社群專用而建置，並放置在您指定的位置或資料中心，以協助符合法規要求。專用本地區域是一種 AWS 本地區域 （本地區域） 產品。如需詳細資訊，請參閱[AWS Dedicated Local Zones](https://aws.amazon.com/dedicatedlocalzones/)。

在 Dedicated Local Zones 中，您可以建立 S3 目錄儲存貯體將資料儲存在特定資料周界，這有助於支援資料落地和隔離使用案例。Dedicated Local Zones 中的目錄儲存貯體可支援 S3 Express One Zone 和 S3 One Zone-Infrequent Access (S3 One Zone-IA、Z-IA) 儲存類別。目錄儲存貯體目前不適用於其他 [AWS Local Zones 位置](https://aws.amazon.com/about-aws/global-infrastructure/localzones/locations/)。

您可以在專用本機區域中使用 AWS 管理主控台、REST API、 AWS Command Line Interface (AWS CLI) 和 AWS SDKs。



如需在 Local Zones 中使用目錄儲存貯體的詳細資訊，請參閱下列主題：

**Topics**
+ [Local Zones 中目錄儲存貯體的概念](s3-lzs-for-directory-buckets.md)
+ [啟用 Local Zones 的帳戶](opt-in-directory-bucket-lz.md)
+ [來自 VPC 的私有連線](connectivity-lz-directory-buckets.md)
+ [在本機區域中建立目錄儲存貯體](create-directory-bucket-LZ.md)
+ [對本機區域中的目錄儲存貯體進行身分驗證和授權](iam-directory-bucket-LZ.md)

# Local Zones 中目錄儲存貯體的概念
<a name="s3-lzs-for-directory-buckets"></a>

在 Local Zone 中建立目錄儲存貯體之前，您必須擁有您要建立儲存貯體的 Local Zone ID。您可以使用 [DescribeAvailabilityZones](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAvailabilityZones.html) API 操作來尋找所有 Local Zone 資訊。此 API 操作列出 Local Zones 的相關資訊，包括其 Local Zone ID、父區域、網路邊界群組和選擇加入狀態。在您擁有 Local Zone ID 且選擇加入後，您可以在 Local Zone 中建立目錄儲存貯體。目錄儲存貯體名稱是由您提供的基本名稱，以及包含儲存貯體位置的區域 ID 所組成，字尾為 `--x-s3`。

本機區域使用 Amazon 備援和非常高頻寬的私有網路連線到**父區域**。這可讓在 Local Zone 中執行的應用程式快速、安全且無縫地存取 AWS 服務 父區域中的其餘 。**父區域 ID** 是處理一些 Local Zone 控制平面操作的區域 ID。**網路邊界群組**是用來 AWS 公告公有 IP 地址的唯一群組。如需 Local Zones、父區域和父區域 ID 的詳細資訊，請參閱《[AWS Local Zones 使用者指南》中的 Local Zones 概念](https://docs.aws.amazon.com/local-zones/latest/ug/concepts-local-zones.html)。 AWS * *

所有目錄儲存貯體都會使用 `s3express` 命名空間，這與一般用途儲存貯體的 `s3` 命名空間不同。對於目錄儲存貯體，請求會路由到**地區端點**或**區域端點**。如果您使用 AWS 管理主控台、 或 AWS SDKs AWS CLI，系統會自動為您處理路由。

大多數的儲存貯體層級 API 操作 (例如 `CreateBucket` 和 `DeleteBucket`) 會路由到地區端點，這些操作也稱為地區端點 API 操作。地區端點的格式為 `s3express-control.ParentRegionCode.amazonaws.com`。所有物件層級 API 操作 (例如 `PutObject`) 和兩個儲存貯體層級 API 操作 (`CreateSession` 和 `HeadBucket`) 都會路由到區域端點，這些操作也稱為區域端點 API 操作。區域端點的格式為 `s3express-LocalZoneID.ParentRegionCode.amazonaws.com`。如需依端點類型列出的 API 操作完整清單，請參閱[目錄儲存貯體 API 操作](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-differences.html#s3-express-differences-api-operations)。

若要從虛擬私有雲端 (VPC) 存取本機區域中的目錄儲存貯體，您可以使用閘道 VPC 端點。使用閘道端點不需額外付費。若要設定閘道 VPC 端點以存取本機區域中的目錄儲存貯體和物件，請參閱[來自 VPC 的私有連線](connectivity-lz-directory-buckets.md)。

# 啟用 Local Zones 的帳戶
<a name="opt-in-directory-bucket-lz"></a>

下列主題說明如何為 Dedicated Local Zones 啟用帳戶。

對於 AWS 專用本機區域 （專用本機區域） 中的所有服務，包括 Amazon S3，您的管理員必須先啟用您的 ， AWS 帳戶 才能在專用本機區域中建立或存取任何資源。您可以使用 [DescribeAvailabilityZones](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAvailabilityZones.html) API 操作來確認您的帳戶 ID 的 Local Zone 存取權。

為了進一步保護 Amazon S3 中的資料，您預設只能存取自己建立的 S3 資源。Local Zones 中的儲存貯體預設會啟用所有 S3 封鎖公開存取設定，且 S3 物件擁有權會設定為儲存貯體擁有者強制執行。這些設定無法修改。或者，若要僅限在本機區域網路邊界群組內存取，您可以在 IAM 政策中使用條件索引鍵 `s3express:AllAccessRestrictedToLocalZoneGroup`。如需詳細資訊，請參閱[對本機區域中的目錄儲存貯體進行身分驗證和授權](iam-directory-bucket-LZ.md)。

# 來自 VPC 的私有連線
<a name="connectivity-lz-directory-buckets"></a>

若要減少封包在網路上花費的時間，請使用閘道端點設定您的虛擬私有雲端 (VPC)，以存取可用區域中的目錄儲存貯體，同時將流量保留在 AWS 網路中，無需額外費用。

**設定閘道 VPC 端點**

1. 開啟 [Amazon VPC 主控台](https://console.aws.amazon.com/vpc/)。

1. 在導覽窗格中選擇**端點**。

1. 選擇**建立端點**。

1. 建立端點的名稱。

1. 對於 **Service category** (服務類別)，選擇 **AWS 服務**。

1. 針對**服務**，新增篩選條件 **Type=Gateway**，然後選擇 **com.amazonaws.*region*.s3express** 旁邊的選項按鈕。

1. 針對 **VPC**，選擇要在其中建立端點的 VPC。

1. 針對**路由表**，選擇端點要使用之 VPC 中的路由表。建立端點之後，路由記錄會新增至您在此步驟中選取的路由表。

1. 針對**政策**，選擇**完整存取**，以允許 VPC 端點上所有資源的所有主體進行所有操作。否則，選擇**自訂**以連接 VPC 端點政策，該政策會控制主體在 VPC 端點上對資源執行操作的許可。

1. 針對 **IP address type** (IP 地址類型)，從下列選項中選擇：
   +  **IPv4** – 將 IPv4 地址指派給端點網路介面。只有當所有選取的子網路都具有 IPv4 地址範圍，且此服務接受 IPv4 請求時，才支援此選項。
   +  **IPv6** – 將 IPv6 地址指派給端點網路介面。只有當所有選取的子網路都是僅限 IPv6 子網路，且此服務接受 IPv6 請求時，才支援此選項。
   +  **Dualstack** – 將 IPv4 和 IPv6 地址指派給端點網路介面。只有當所有選取的子網路都具有 IPv4 和 IPv6 地址範圍，且此服務接受 IPv4 和 IPv6 請求時，才支援此選項。

1. (選用) 若要新增標籤，請選擇**新增標籤**，然後輸入標籤金鑰和標籤值。

1. 選擇**建立端點**。

若要進一步了解閘道 VPC 端點，請參閱《AWS PrivateLink 指南》**中的[閘道端點](https://docs.aws.amazon.com/vpc/latest/privatelink/gateway-endpoints.html)。對於資料落地使用案例，建議您只使用閘道 VPC 端點從 VPC 存取儲存貯體。當存取僅限於 VPC 或 VPC 端點時，您可以透過 AWS 管理主控台、REST API AWS CLI和 AWS SDKs存取物件。

**注意**  
若要使用 限制對 VPC 或 VPC 端點的存取 AWS 管理主控台，您必須使用 AWS 管理主控台 私有存取。如需詳細資訊，請參閱《AWS 管理主控台 指南》**中的[AWS 管理主控台 私有存取](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/console-private-access.html)。

# 在本機區域中建立目錄儲存貯體
<a name="create-directory-bucket-LZ"></a>

在 Dedicated Local Zones 中，您可以建立目錄儲存貯體在特定資料周邊儲存和擷取物件，以協助符合您的資料落地和隔離使用案例。S3 目錄儲存貯體是 Local Zones 中唯一支援的儲存貯體類型，且包含稱為 `LocalZone` 的儲存貯體位置類型。目錄儲存貯體名稱是由您提供的基本名稱以及包含儲存貯體位置區域 ID 和 `--x-s3` 的字尾所組成。您可以使用 [DescribeAvailabilityZones](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAvailabilityZones.html) API 操作來取得本機區域 ID 清單。如需詳細資訊，請參閱[目錄儲存貯體命名規則](directory-bucket-naming-rules.md)。

**注意**  
對於 AWS 專用本機區域 （專用本機區域） 中的所有服務，包括 S3，您的管理員必須先啟用您的 ， AWS 帳戶 才能在專用本機區域中建立或存取任何資源。如需詳細資訊，請參閱[啟用 Local Zones 的帳戶](opt-in-directory-bucket-lz.md)。
對於資料落地要求，建議您只從閘道 VPC 端點存取儲存貯體。如需詳細資訊，請參閱[來自 VPC 的私有連線](connectivity-lz-directory-buckets.md)。
若要僅限在本機區域網路邊界群組內存取，您可以在 IAM 政策中使用條件索引鍵 `s3express:AllAccessRestrictedToLocalZoneGroup`。如需詳細資訊，請參閱[對本機區域中的目錄儲存貯體進行身分驗證和授權](iam-directory-bucket-LZ.md)。

以下說明如何使用 AWS 管理主控台 AWS CLI、 和 AWS SDKs 在單一本機區域中建立目錄儲存貯體。

## 使用 S3 主控台
<a name="create-directory-bucket-lz-console"></a>

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

1. 在頁面頂端的導覽列中，選擇目前顯示的名稱 AWS 區域。​接下來，選擇您要在其中建立目錄儲存貯體之本機區域的父區域。
**注意**  
如需父區域的詳細資訊，請參閱[Local Zones 中目錄儲存貯體的概念](s3-lzs-for-directory-buckets.md)。

1. 在左側導覽窗格中，選擇 **Buckets** (儲存貯體)。

1. 選擇 **Create bucket** (建立儲存貯體)。

   **Create bucket (建立儲存貯體)** 頁面隨即開啟。

1. 在**一般組態**下，檢視您要在其中建立儲存貯體的 AWS 區域 。

1.  針對**儲存貯體類型**，選擇**目錄**。
**注意**  
如果您已選擇不支援目錄儲存貯體的區域，儲存貯體類型預設為一般用途儲存貯體。若要建立目錄儲存貯體，您必須選擇支援的區域。如需支援目錄儲存貯體的區域清單，請參閱[目錄儲存貯體的地區和區域端點](s3-express-Regions-and-Zones.md)。
在您建立儲存貯體之後，便無法變更儲存貯體類型。

1. 在**儲存貯體位置**下，選擇您要使用的本機區域。
**注意**  
儲存貯體建立之後，就無法變更本機區域。

1. 在**儲存貯體位置**下，選取核取方塊，表示您確實了解在本機區域發生中斷時，您的資料可能無法使用或遺失。
**重要**  
雖然目錄儲存貯體會儲存在單一本機區域內的多部裝置，但不會以備援方式跨本機區域儲存資料。

1. 針對**儲存貯體名稱**，輸入您的目錄儲存貯體的名稱。

   如需目錄儲存貯體命名規則的詳細資訊，請參閱[一般用途儲存貯體命名規則](bucketnamingrules.md)。當您使用主控台建立目錄儲存貯體時，您提供的基本名稱會自動新增字尾。此字尾包含您所選擇本機區域的區域 ID。

   建立儲存貯體後，便無法變更其名稱。
**重要**  
請勿在儲存貯體名稱中包含敏感資訊，例如帳號。在指向儲存貯體中之物件的 URL 中，會顯示儲存貯體名稱。

1. 在**物件擁有權**下，會自動啟用**儲存貯體擁有者強制執行**設定，並停用所有存取控制清單 (ACL)。對於目錄儲存貯體，ACL 已停用且無法啟用。

   啟用**儲存貯體擁有者強制執行**時，儲存貯體擁有者會自動擁有並完全控制儲存貯體中的每個物件。ACL 不再影響 S3 儲存貯體中資料的存取許可。儲存貯體單獨使用政策來定義存取控制。Amazon S3 中的大多數新式使用案例不再需要使用 ACL。如需詳細資訊，請參閱[控制物件的擁有權並停用儲存貯體的 ACL](about-object-ownership.md)。

1. 在**此儲存貯體的「封鎖公開存取」設定**下，會自動啟用您目錄儲存貯體的所有封鎖公開存取設定。您無法修改目錄儲存貯體的這些設定。如需封鎖公開存取的詳細資訊，請參閱 [封鎖對 Amazon S3 儲存體的公開存取權](access-control-block-public-access.md)。

1. 在**預設加密**下，目錄儲存貯體預設會**使用 Amazon S3 受管金鑰的伺服器端加密 (SSE-S3)** 來加密資料。您也可以選擇使用 ** AWS Key Management Service 金鑰的伺服器端加密 (SSE-KMS) 來加密**目錄儲存貯體中的資料。

1. 選擇**建立儲存貯體**。

   建立儲存貯體之後，您可以新增檔案和資料夾至儲存貯體。如需詳細資訊，請參閱[使用目錄儲存貯體中的物件](directory-buckets-objects.md)。

## 使用 AWS CLI
<a name="create-directory-bucket-lz-cli"></a>

此範例示範如何使用 AWS CLI在本機區域中建立目錄儲存貯體。若要使用此命令，請以您自己的資訊取代*使用者輸入預留位置*。

建立目錄儲存貯體時，您必須提供組態詳細資訊，並使用下列命名慣例：`bucket-base-name--zone-id--x-s3`。

```
aws s3api create-bucket
--bucket bucket-base-name--zone-id--x-s3
--create-bucket-configuration 'Location={Type=LocalZone,Name=local-zone-id},Bucket={DataRedundancy=SingleLocalZone,Type=Directory}'
--region parent-region-code
```

如需本機區域 ID 和父區域代碼的詳細資訊，請參閱[Local Zones 中目錄儲存貯體的概念](s3-lzs-for-directory-buckets.md)。如需 AWS CLI 命令的詳細資訊，請參閱AWS CLI 命令參考**中的 [create-bucket](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/create-bucket.html)。

## 使用 AWS SDKs
<a name="create-directory-bucket-lz-sdks"></a>

------
#### [ SDK for Go ]

此範例示範如何使用 適用於 Go 的 AWS SDK在本機區域中建立目錄儲存貯體。

**Example**  

```
var bucket = "bucket-base-name--zone-id--x-s3" // The full directory bucket name

func runCreateBucket(c *s3.Client) {
    resp, err := c.CreateBucket(context.Background(), &s3.CreateBucketInput{
        Bucket: &bucket,
        CreateBucketConfiguration: &types.CreateBucketConfiguration{
            Location: &types.LocationInfo{
                Name: aws.String("local-zone-id"),
                Type: types.LocationTypeLocalZone,
            },  
            Bucket: &types.BucketInfo{
                DataRedundancy: types.DataRedundancySingleLocalZone,
                Type:           types.BucketTypeDirectory,
            },  
        },  
    })  
    var terr *types.BucketAlreadyOwnedByYou
    if errors.As(err, &terr) {
        fmt.Printf("BucketAlreadyOwnedByYou: %s\n", aws.ToString(terr.Message))
        fmt.Printf("noop...\n") // No operation performed, just printing a message
        return
    }   
    if err != nil {
        log.Fatal(err)
    }   

    fmt.Printf("bucket created at %s\n", aws.ToString(resp.Location))
}
```

------
#### [ SDK for Java 2.x ]

此範例示範如何使用 AWS SDK for Java 2.x在本機區域中建立目錄儲存貯體。

**Example**  

```
public static void createBucket(S3Client s3Client, String bucketName) {

    //Bucket name format is {base-bucket-name}--{local-zone-id}--x-s3
    //example: doc-example-bucket--local-zone-id--x-s3 is a valid name for a directory bucket created in a Local Zone.

    CreateBucketConfiguration bucketConfiguration = CreateBucketConfiguration.builder()
             .location(LocationInfo.builder()
                     .type(LocationType.LOCAL_ZONE)
                     .name("local-zone-id").build()) //this must match the Local Zone ID in your bucket name
             .bucket(BucketInfo.builder()
                    .type(BucketType.DIRECTORY)
                    .dataRedundancy(DataRedundancy.SINGLE_LOCAL_ZONE)
                    .build()).build();
    try {
    
             CreateBucketRequest bucketRequest = CreateBucketRequest.builder().bucket(bucketName).createBucketConfiguration(bucketConfiguration).build();
             CreateBucketResponse response = s3Client.createBucket(bucketRequest);
             System.out.println(response);
    } 
    
    catch (S3Exception e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
         }
    }
```

------
#### [ 適用於 JavaScript 的 AWS SDK ]

此範例示範如何使用 適用於 JavaScript 的 AWS SDK在本機區域中建立目錄儲存貯體。

**Example**  

```
// file.mjs, run with Node.js v16 or higher
// To use with the preview build, place this in a folder 
// inside the preview build directory, such as /aws-sdk-js-v3/workspace/

import { S3 } from "@aws-sdk/client-s3";

const region = "parent-region-code";
const zone = "local-zone-id";
const suffix = `${zone}--x-s3`;

const s3 = new S3({ region });

const bucketName = `bucket-base-name--${suffix}`; // Full directory bucket name

const createResponse = await s3.createBucket( 
    { Bucket: bucketName, 
      CreateBucketConfiguration: {Location: {Type: "LocalZone", Name: "local-zone-id"},
      Bucket: { Type: "Directory", DataRedundancy: "SingleLocalZone" }}
    } 
   );
```

------
#### [ 適用於 .NET 的 SDK ]

此範例示範如何使用 適用於 .NET 的 SDK在本機區域中建立目錄儲存貯體。

**Example**  

```
using (var amazonS3Client = new AmazonS3Client())
{
    var putBucketResponse = await amazonS3Client.PutBucketAsync(new PutBucketRequest
    {

       BucketName = "bucket-base-name--local-zone-id--x-s3",
       PutBucketConfiguration = new PutBucketConfiguration
       {
         BucketInfo = new BucketInfo { DataRedundancy = DataRedundancy.SingleLocalZone, Type = BucketType.Directory },
         Location = new LocationInfo { Name = "local-zone-id", Type = LocationType.LocalZone }
       }
     }).ConfigureAwait(false);
}
```

------
#### [ SDK for PHP ]

此範例示範如何使用 AWS SDK for PHP在本機區域中建立目錄儲存貯體。

**Example**  

```
require 'vendor/autoload.php';

$s3Client = new S3Client([

    'region'      => 'parent-region-code',
]);


$result = $s3Client->createBucket([
    'Bucket' => 'bucket-base-name--local-zone-id--x-s3',
    'CreateBucketConfiguration' => [
        'Location' => ['Name'=> 'local-zone-id', 'Type'=> 'LocalZone'],
        'Bucket' => ["DataRedundancy" => "SingleLocalZone" ,"Type" => "Directory"]   ],
]);
```

------
#### [ SDK for Python ]

此範例示範如何使用 適用於 Python (Boto3) 的 AWS SDK在本機區域中建立目錄儲存貯體。

**Example**  

```
import logging
import boto3
from botocore.exceptions import ClientError

def create_bucket(s3_client, bucket_name, local_zone):
    '''
    Create a directory bucket in a specified Local Zone

    :param s3_client: boto3 S3 client
    :param bucket_name: Bucket to create; for example, 'bucket-base-name--local-zone-id--x-s3'
    :param local_zone: String; Local Zone ID to create the bucket in
    :return: True if bucket is created, else False
    '''

    try:
        bucket_config = {
                'Location': {
                    'Type': 'LocalZone',
                    'Name': local_zone
                },
                'Bucket': {
                    'Type': 'Directory', 
                    'DataRedundancy': 'SingleLocalZone'
                }
            }
        s3_client.create_bucket(
            Bucket = bucket_name,
            CreateBucketConfiguration = bucket_config
        )
    except ClientError as e:
        logging.error(e)
        return False
    return True


if __name__ == '__main__':
    bucket_name = 'BUCKET_NAME'
    region = 'parent-region-code'
    local_zone = 'local-zone-id'
    s3_client = boto3.client('s3', region_name = region)
    create_bucket(s3_client, bucket_name, local_zone)
```

------
#### [ SDK for Ruby ]

此範例示範如何使用 適用於 Ruby 的 AWS SDK在本機區域中建立目錄儲存貯體。

**Example**  

```
s3 = Aws::S3::Client.new(region:'parent-region-code')
s3.create_bucket(
  bucket: "bucket-base-name--local-zone-id--x-s3",
  create_bucket_configuration: {
    location: { name: 'local-zone-id', type: 'LocalZone' },
    bucket: { data_redundancy: 'SingleLocalZone', type: 'Directory' }
  }
)
```

------

# 對本機區域中的目錄儲存貯體進行身分驗證和授權
<a name="iam-directory-bucket-LZ"></a>

Local Zones 中的目錄儲存貯體支援 AWS Identity and Access Management (IAM) 授權和工作階段型授權。如需對目錄儲存貯體進行身分驗證和授權的詳細資訊，請參閱[驗證和授權請求](s3-express-authenticating-authorizing.md)。

## Resources
<a name="directory-bucket-lz-resources"></a>

目錄儲存貯體的 Amazon Resource Name (ARNs) 包含`s3express`命名空間、 AWS 父區域、 AWS 帳戶 ID 和包含區域 ID 的目錄儲存貯體名稱。若要存取並對目錄儲存貯體執行動作，您必須使用下列 ARN 格式：

```
arn:aws:s3express:region-code:account-id:bucket/bucket-base-name--ZoneID--x-s3
```

對於本機區域中的目錄儲存貯體，區域 ID 是本機區域的 ID。如需有關 Local Zones 內目錄儲存貯體的詳細資訊，請參閱[Local Zones 中目錄儲存貯體的概念](s3-lzs-for-directory-buckets.md)。如需 ARN 的詳細資訊，請參閱「IAM 使用者指南」**中的 [Amazon Resource Name (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html)。如需資源的詳細資訊，請參閱《IAM 使用者指南》**中的 [IAM JSON 政策元素：Resource](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_resource.html)。

## 本機區域中目錄儲存貯體的條件索引鍵
<a name="condition-key-db-lz"></a>

在 Local Zones 中，您可以在 IAM 政策中使用所有這些[條件索引鍵](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3express.html#amazons3express-policy-keys)。此外，若要在本機區域網路邊界群組周圍建立資料周邊，您可以使用條件索引鍵 `s3express:AllAccessRestrictedToLocalZoneGroup` 拒絕來自群組外部的所有請求。

您可以使用下列條件索引鍵來進一步縮小套用 IAM 政策陳述式的條件。如需目錄儲存貯體支援的 API 操作、政策動作和條件索引鍵完整清單，請參閱[目錄儲存貯體的政策動作](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html#s3-express-security-iam-actions)。

**注意**  
下列條件索引鍵僅適用於本機區域，可用區域和 AWS 區域並不支援。


| API 操作 | 政策動作 | Description | 條件金鑰 | 說明 | Type | 
| --- | --- | --- | --- | --- | --- | 
|  [區域端點 API 操作](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-APIs.html)  |  s3express:CreateSession  |  准許建立工作階段權杖，此權杖用於授予所有區域端點 API 操作的存取權，例如 `CreateSession`、`HeadBucket`、`CopyObject`、`PutObject` 和 `GetObject`。  |  s3express:AllAccessRestrictedToLocalZoneGroup  | 篩選儲存貯體的所有存取權，除非請求來自此條件金鑰中提供的 AWS Local Zone 網路邊界群組。 **值：**本機區域網路邊界群組值   |  String  | 

## 政策範例
<a name="directory-bucket-lz-policies"></a>

若要限制物件存取來自您定義之資料落地界限內的請求 (具體而言，本機區域群組是相同 AWS 區域的一組父本機區域)，您可以設定下列任何政策：
+ 服務控制政策 (SCP)。如需 SCP 的資訊，請參閱《AWS Organizations 使用者指南》**中的[服務控制政策 (SCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)。
+ IAM 角色的 IAM 身分型政策。
+ VPC 端點政策。如需 VPC 端點政策的詳細資訊，請參閱《AWS PrivateLink 指南》**中的[使用端點政策控制對 VPC 端點的存取](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html)。
+ S3 儲存貯體政策。

**注意**  
條件索引鍵 `s3express:AllAccessRestrictedToLocalZoneGroup` 不支援從內部部署環境進行存取。若要支援從內部部署環境進行存取，您必須將來源 IP 新增至政策。如需詳細資訊，請參閱《IAM 使用者指南》中的 [aws:SourceIp](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceip)。

**Example – SCP 政策**  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Access-to-specific-LocalZones-only",
            "Effect": "Deny",
            "Action": [
                "s3express:*",
            ],
            "Resource": "*",
            "Condition": {
                "StringNotEqualsIfExists": {
                    "s3express:AllAccessRestrictedToLocalZoneGroup": [
                        "local-zone-network-border-group-value"
                    ]
                }
            }
        }
    ]
}
```

**Example – IAM 身分型政策 (連接至 IAM 角色)**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Deny",
        "Action": "s3express:CreateSession",
        "Resource": "*",
        "Condition": {
            "StringNotEqualsIfExists": {
                "s3express:AllAccessRestrictedToLocalZoneGroup": [
                    "local-zone-network-border-group-value"
                ]              
            }
        }
    }
}
```

**Example – VPC 端點政策**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {       
            "Sid": "Access-to-specific-LocalZones-only",
            "Principal": "*",
            "Action": "s3express:CreateSession",
            "Effect": "Deny",
            "Resource": "*",
            "Condition": {
                 "StringNotEqualsIfExists": {
                     "s3express:AllAccessRestrictedToLocalZoneGroup": [
                         "local-zone-network-border-group-value"
                     ]
                 }   
            }
        }
    ]
}
```

**Example – 儲存貯體政策**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {       
            "Sid": "Access-to-specific-LocalZones-only",
            "Principal": "*",
            "Action": "s3express:CreateSession",
            "Effect": "Deny",
            "Resource": "*",
            "Condition": {
                 "StringNotEqualsIfExists": {
                     "s3express:AllAccessRestrictedToLocalZoneGroup": [
                         "local-zone-network-border-group-value"
                     ]
                 }   
            }
        }
    ]
}
```