

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

# 在建立儲存貯體時設定「物件擁有權」
<a name="object-ownership-new-bucket"></a>

建立儲存貯體時，您可以設定 S3 物件所有權。若要設定現有儲存貯體的「物件擁有權」，請參閱 [設定現有儲存貯體的「物件擁有權」](object-ownership-existing-bucket.md)。

S3 物件擁有權是一項 Amazon S3 儲存貯體層級設定，可讓您停用[存取控制清單](acl-overview.md) (ACL) 並取得儲存貯體中每個物件的擁有權，簡化存放在 Amazon S3 中資料的存取管理。根據預設，新儲存貯體的 S3 物件擁有權會設定為儲存貯體擁有者強制執行設定，而且會停用 ACL。停用 ACL 後，儲存貯體擁有者會擁有儲存貯體中的每個物件，並使用存取管理政策專門管理對資料的存取。建議您將 ACL 保時停用狀態，除非在異常情況下必須個別控制每個物件的存取。

「物件擁有權」有三項設定，可讓您用來控制對上傳至儲存貯體之物件的擁有權，以及停用或啟用 ACL：

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

**已啟用 ACL**
+ **儲存貯體擁有者偏好** – 儲存貯體擁有者擁有並完全控制其他帳戶使用 `bucket-owner-full-control` 標準 ACL 寫入儲存貯體的新物件。
+ **物件寫入器** – 上傳物件 AWS 帳戶 的 擁有物件、擁有物件的完整控制權，並可透過 ACLs。

**許可**：若要套用 **Bucket owner enforced** (儲存貯體擁有者強制執行) 設定或 **Bucket owner preferred** (儲存貯體擁有者偏好) 設定，您必須擁有以下許可：`s3:CreateBucket` 和 `s3:PutBucketOwnershipControls`。在套用 **Object writer** (物件寫入器) 設定的情況下建立儲存貯體時，不需要其他許可。如需 Amazon S3 許可的詳細資訊，請參閱服務授權參考**中的 [Amazon S3 的動作、資源和條件索引鍵](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html)。

如需依 S3 資源類型列出 S3 API 操作許可的詳細資訊，請參閱[Amazon S3 API 操作所需的許可](using-with-s3-policy-actions.md)。

**重要**  
Amazon S3 中的大多數現代使用案例不再需要使用 ACL，建議您停用 ACL，除非在需要個別控制每個物件存取權的情況下。使用「物件擁有權」，您可以停用 ACL，並依賴政策來進行存取控制。當您停用 ACLs 時，您可以輕鬆維護儲存貯體，其中包含不同 AWS 帳戶上傳的物件。身為儲存貯體擁有者，您擁有儲存貯體中的所有物件，並且可以使用政策管理對物件的存取。

## 使用 S3 主控台
<a name="object-ownership-new-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. 針對 **Bucket name (儲存貯體名稱)**，輸入儲存貯體的名稱。

   儲存貯體名稱必須；
   + 在分割區內不重複。分割區是 Regions 的群組。 AWS 目前有三個分割區： `aws`（商業區域）、 `aws-cn`（中國區域） 和 `aws-us-gov`()AWS GovCloud (US) Regions。
   + 長度必須介於 3 與 63 個字元之間。
   + 只能由小寫字母、數字、句號 (`.`) 和連字號 (`-`) 組成。為了獲得最佳相容性，建議您避免在儲存貯體名稱中使用句號 (`.`)，但僅用於靜態網站託管的儲存貯體除外。
   + 開頭和結尾為字母或數字。
   + 如需儲存貯體命名規則的完整清單，請參閱 [一般用途儲存貯體命名規則](bucketnamingrules.md)。
**重要**  
建立儲存貯體後，便無法變更其名稱。
請勿在儲存貯體名稱中包含敏感資訊。在指向儲存貯體中之物件的 URL 中，會顯示儲存貯體名稱。

1. (選用) 在**一般組態**下，您可以選擇將現有儲存貯體的設定，複製到新的儲存貯體。如果您不想複製現有儲存貯體的設定，請跳至下一個步驟。
**注意**  
這個選項：  
無法在 中使用 AWS CLI ，且只能在 Amazon S3 主控台中使用
不會將現有儲存貯體中的儲存貯體政策複製到新儲存貯體

    若要複製現有儲存貯體的設定，請在**複製現有儲存貯體中的設定**下，選取**選擇儲存貯體**。**選擇儲存貯體**視窗隨即開啟。尋找您要複製其設定的儲存貯體，然後選取**選擇儲存貯體**。**選擇儲存貯體**視窗隨即關閉，並重新開啟**建立儲存貯體**視窗。

   在**複製現有儲存貯體中的設定**下，現在您會看到所選儲存貯體的名稱。新儲存貯體的設定目前符合您選取的儲存貯體設定。如果您想要移除複製的設定，請選擇**還原預設值**。在**建立儲存貯體**頁面上，檢閱其餘儲存貯體設定。如果您不要做任何變更，可以跳到最後一個步驟。

1. 在 **Object Ownership** (物件擁有權) 下，若要停用或啟用 ACL 並控制上傳在儲存貯體中物件的擁有權，請選擇下列其中一個設定：

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

     根據預設，會停用 ACL。Amazon S3 中的大多數新式使用案例不再需要使用 ACL。建議您將 ACL 保時停用狀態，除非在必須個別控制每個物件存取的情況下。如需詳細資訊，請參閱[控制物件的擁有權並停用儲存貯體的 ACL](about-object-ownership.md)。

**已啟用 ACL**
   + **儲存貯體擁有者偏好** – 儲存貯體擁有者擁有並完全控制其他帳戶使用 `bucket-owner-full-control` 標準 ACL 寫入儲存貯體的新物件。

     如果您套用**儲存貯體擁有者偏好**設定，以要求所有 Amazon S3 上傳都包含 `bucket-owner-full-control` 固定 ACL 時，您可以[新增儲存貯體政策](ensure-object-ownership.md#ensure-object-ownership-bucket-policy)，只允許使用此 ACL 的物件上傳。
   + **物件寫入器** – 上傳物件 AWS 帳戶 的 擁有物件、擁有物件的完整控制權，並可透過 ACLs。
**注意**  
預設設定為**儲存貯體擁有者強制執行**。若要套用預設設定並將 ACL 保持停用狀態，只需要 `s3:CreateBucket` 許可。若要啟用 ACL，您必須具有 `s3:PutBucketOwnershipControls` 許可。

1. 在**封鎖此儲存貯體的公開存取設定**之下，選擇要套用至儲存貯體的封鎖公開存取設定。

   根據預設，會啟用全部四個「封鎖公開存取」設定。建議您將所有設定保持啟用狀態，除非您知道需要針對特定使用案例關閉其中一或多個設定。如需封鎖公開存取的詳細資訊，請參閱 [封鎖對 Amazon S3 儲存體的公開存取權](access-control-block-public-access.md)。
**注意**  
若要啟用所有「封鎖公用存取」設定，只需要 `s3:CreateBucket` 許可。若要關閉任何「封鎖公開存取」設定，您必須具有 `s3:PutBucketPublicAccessBlock` 許可。

1. (選用) 根據預設，會停用**儲存貯體版本控制**。版本控制是在相同儲存貯體中保留多個物件版本的方式。您可以使用版本控制功能來保留、擷取和恢復在 儲存貯體中所存放每個物件的各個版本。透過版本控制，您可以更輕鬆地復原失誤的使用者動作和故障的應用程式。如需版本控制的詳細資訊，請參閱「[使用 S3 版本控制保留多個版本的物件](Versioning.md)」。

   若要在儲存貯體上啟用版本控制，請選擇**啟用**。

1. (選用) 在 **Tags** (標籤) 下，您可以選擇新增標籤至儲存貯體。透過 AWS 成本配置，您可以使用儲存貯體標籤來標註儲存貯體用量的帳單。標籤為一組金鑰/值對，代表指派給儲存貯體的標籤。如需詳細資訊，請參閱[使用成本分配 S3 儲存貯體標籤](CostAllocTagging.md)。

   若要新增儲存貯體標籤，請輸入 **Key** (金鑰) 並選擇性地輸入 **Value** (值)，然後選擇 **Add tag** (新增標籤)。

1. 若要設定**預設加密**，請在**加密類型**下，選擇下列其中一項：
   + **使用 Amazon S3 受管金鑰 (SSE-S3) 的伺服器端加密**
   + **伺服器端加密與 AWS Key Management Service 金鑰 (SSE-KMS)**
   + **使用 AWS Key Management Service (AWS KMS) 金鑰的雙層伺服器端加密 (DSSE-KMS)**
**重要**  
如果您針對預設加密組態使用 SSE-KMS 或 DSSE-KMS 選項，則受到 AWS KMS的每秒請求數目 (RPS) 配額限制。如需 AWS KMS 配額以及如何請求提高配額的詳細資訊，請參閱《 *AWS Key Management Service 開發人員指南*》中的[配額](https://docs.aws.amazon.com/kms/latest/developerguide/limits.html)。

   儲存貯體和新物件會以 Amazon S3 受管金鑰 (SSE-S3) 做為基本加密組態層級，使用伺服器端加密來進行加密。如需預設加密的詳細資訊，請參閱[對 Amazon S3 儲存貯體設定預設伺服器端加密行為](bucket-encryption.md)。如需 SSE-S3 的詳細資訊，請參閱 [使用 Amazon S3 受管金鑰 (SSE-S3) 進行伺服器端加密](UsingServerSideEncryption.md)。

   如需有關使用伺服器端加密來加密資料的詳細資訊，請參閱 [使用加密來保護資料](UsingEncryption.md)。

1. 如果您選擇**使用 AWS Key Management Service 金鑰進行伺服器端加密 (SSE-KMS)** 或使用 ** AWS Key Management Service (AWS KMS) 金鑰進行雙層伺服器端加密 (DSSE-KMS)**，請執行下列動作：

   1. 在 **AWS KMS 金鑰**下，使用下列其中一種方式指定 KMS 金鑰：
      + 若要從可用的 KMS 金鑰清單中選擇，請選擇**從中選擇 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**，然後在出現的欄位中輸入您的 KMS 金鑰 ARN。
      + 若要在 AWS KMS 主控台中建立新的客戶受管金鑰，請選擇**建立 KMS 金鑰**。

        如需建立 的詳細資訊 AWS KMS key，請參閱《 *AWS Key Management Service 開發人員指南*》中的[建立金鑰](https://docs.aws.amazon.com//kms/latest/developerguide/create-keys.html)。
**重要**  
您只能使用 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) 指定伺服器端加密](specifying-kms-encryption.md)」。如需 DSSE-KMS 的詳細資訊，請參閱 [使用雙層伺服器端加密搭配 AWS KMS 金鑰 (DSSE-KMS)](UsingDSSEncryption.md)。  
當您在 Amazon S3 中使用 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)。

   1. 當您將儲存貯體設定為使用 SSE-KMS 的預設加密時，您還可以使用 S3 儲存貯體金鑰。S3 儲存貯體金鑰透過減少來自 Amazon S3 的請求流量來降低加密成本 AWS KMS。如需詳細資訊，請參閱[使用 Amazon S3 儲存貯體金鑰降低 SSE-KMS 的成本](bucket-key.md)。DSSE-KMS 不支援 S3 儲存貯體金鑰。

      根據預設，會在 Amazon S3 主控台啟用 S3 儲存貯體金鑰。建議您將 S3 儲存貯體金鑰維持啟用狀態，以降低成本。若要停用儲存貯體的 S3 儲存貯體金鑰，請在**儲存貯體金鑰**下選擇**停用**。

1. (選用) S3 物件鎖定有助於保護新物件免遭刪除或覆寫。如需詳細資訊，請參閱[使用物件鎖定來鎖定物件](object-lock.md)。如果您想要啟用 S3 物件鎖定，請執行下列動作：

   1. 選擇 **Advanced settings (進階設定)**。
**重要**  
啟用物件鎖定會自動啟用儲存貯體的版本控制。啟用並成功建立儲存貯體之後，您還必須在儲存貯體的**屬性**索引標籤上設定物件鎖定預設保留，以及法務保存設定。

   1. 如果想要啟用物件鎖定，請選擇 **Enable** (啟用)、讀取出現的警告並確認。
**注意**  
若要建立已啟用物件鎖定的儲存貯體，您必須具備下列權限：`s3:CreateBucket`、`s3:PutBucketVersioning` 和 `s3:PutBucketObjectLockConfiguration`。

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

## 使用 AWS CLI
<a name="object-ownership-new-bucket-cli"></a>

若要在建立新儲存貯體時設定物件擁有權，請使用 `create-bucket` AWS CLI 命令搭配 `--object-ownership` 參數。

此範例會使用 AWS CLI為新的儲存貯體套用「儲存貯體擁有者強制執行」設定：

```
aws s3api create-bucket --bucket  {{amzn-s3-demo-bucket}} --region {{us-east-1}} --object-ownership BucketOwnerEnforced
```

**重要**  
如果您在使用 建立儲存貯體時未設定物件擁有權 AWS CLI，則預設設定將為 `ObjectWriter`（啟用 ACLs)。

## 使用適用於 Java 的 AWS 開發套件
<a name="object-ownership-new-bucket-sdk-java"></a>

此範例會使用 適用於 Java 的 AWS SDK為新的儲存貯體設定「儲存貯體擁有者強制執行」設定：

```
    // Build the ObjectOwnership for CreateBucket
    CreateBucketRequest createBucketRequest = CreateBucketRequest.builder()
            .bucket(bucketName)
            .objectOwnership(ObjectOwnership.BucketOwnerEnforced)
            .build()

     // Send the request to Amazon S3 
     s3client.createBucket(createBucketRequest);
```

## 使用 CloudFormation
<a name="object-ownership-new-bucket-cfn"></a>

若要在建立新儲存貯體時使用 `AWS::S3::Bucket` CloudFormation 資源來設定物件擁有權，請參閱*AWS CloudFormation 《 使用者指南》*[https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-ownershipcontrols](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-ownershipcontrols)中的 。

## 使用 REST API
<a name="object-ownership-new-bucket-rest-api"></a>

若要套用 S3 物件擁有權的「儲存貯體擁有者強制執行」設定，請使用 `CreateBucket` API 操作 (`x-amz-object-ownership` 請求標頭設定為 `BucketOwnerEnforced`)。如需資訊和範例，請參閱《Amazon Simple Storage Service API 參考》**中的 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)。

**後續步驟**：套用「物件擁有權」的儲存貯體擁有者強制執行設定或儲存貯體擁有者偏好設定之後，您可以進一步採取下列步驟：
+ [儲存貯體擁有者強制執行](ensure-object-ownership.md#object-ownership-requiring-bucket-owner-enforced) – 需要使用 IAM 或 Organizations 政策，在停用 ACL 的情況下建立所有新儲存貯體。
+ [儲存貯體擁有者偏好](ensure-object-ownership.md#ensure-object-ownership-bucket-policy) – 新增 S3 儲存貯體政策，以要求所有物件上傳到您儲存貯體的 `bucket-owner-full-control` 標準 ACL。