本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定現有儲存貯體的「物件擁有權」
您可以在現有 S3 儲存貯體上設定 S3 物件擁有權。若要在建立儲存貯體時套用「物件擁有權」,請參閱 在建立儲存貯體時設定「物件擁有權」。
S3 物件擁有權是一項 Amazon S3 儲存貯體層級設定,可讓您停用存取控制清單 (ACL) 並取得儲存貯體中每個物件的擁有權,簡化存放在 Amazon S3 中資料的存取管理。根據預設,新儲存貯體的 S3 物件擁有權會設定為儲存貯體擁有者強制執行設定,而且會停用 ACL。停用 ACL 後,儲存貯體擁有者會擁有儲存貯體中的每個物件,並使用存取管理政策專門管理對資料的存取。建議您將 ACL 保時停用狀態,除非在異常情況下必須個別控制每個物件的存取。
「物件擁有權」有三項設定,可讓您用來控制對上傳至儲存貯體之物件的擁有權,以及停用或啟用 ACL:
已停用 ACL
-
儲存貯體擁有者強制執行 (預設) - 停用 ACL,儲存貯體擁有者會自動擁有並完全控制儲存貯體中的每個物件。ACL 不再影響 S3 儲存貯體中資料的許可。儲存貯體使用政策來定義存取控制。
已啟用 ACL
-
儲存貯體擁有者偏好 – 儲存貯體擁有者擁有並完全控制其他帳戶使用
bucket-owner-full-control
標準 ACL 寫入儲存貯體的新物件。 -
物件寫入器 – 上傳物件 AWS 帳戶 的 擁有物件、擁有物件的完整控制權,並可透過 ACLs 授予其他使用者存取權。
先決條件:在套用「儲存貯體擁有者強制執行」設定以停用 ACL 之前,您必須將儲存貯體 ACL 許可遷移至儲存貯體政策,並將儲存貯體 ACL 重設為預設的私有 ACL。也建議您將物件 ACL 許可遷移至儲存貯體政策,並編輯需要 ACL (儲存貯體擁有者完全控制 ACL 除外) 的儲存貯體政策。如需詳細資訊,請參閱停用 ACL 的先決條件。
許可:若要使用這項操作,您必須擁有 s3:PutBucketOwnershipControls
許可。如需 Amazon S3 許可的詳細資訊,請參閱服務授權參考中的 Amazon S3 的動作、資源和條件索引鍵。
如需依 S3 資源類型列出 S3 API 操作許可的詳細資訊,請參閱Amazon S3 API 操作所需的許可。
-
登入 AWS Management Console ,並在 https://console.aws.amazon.com/s3/
:// 開啟 Amazon S3 主控台。 -
在 Buckets (儲存貯體) 清單中,選擇您要將 S3 「物件擁有權」設定套用至其中的儲存貯體名稱。
-
選擇許可索引標籤標籤。
-
在 Object Ownership (物件擁有權) 下,選擇 Edit (編輯)。
-
在 Object Ownership (物件擁有權) 下,若要停用或啟用 ACL 並控制上傳在儲存貯體中物件的擁有權,請選擇下列其中一個設定:
已停用 ACL
-
Bucket owner enforced (儲存貯體擁有者強制執行) – 停用 ACL,儲存貯體擁有者會自動擁有並完全控制儲存貯體中的每個物件。ACL 不再影響 S3 儲存貯體中資料的許可。儲存貯體使用政策來定義存取控制。
若要要求使用 IAM 或 AWS Organizations 政策在停用 ACLs 的情況下建立所有新儲存貯體,請參閱 停用所有新儲存貯體的 ACL (儲存貯體擁有者強制執行)。
已啟用 ACL
-
儲存貯體擁有者偏好 – 儲存貯體擁有者擁有並完全控制其他帳戶使用
bucket-owner-full-control
標準 ACL 寫入儲存貯體的新物件。如果您套用儲存貯體擁有者偏好設定,則要求所有 Amazon S3 上傳都包含
bucket-owner-full-control
罐裝 ACL 時,您可以新增儲存貯體政策,只允許使用此 ACL 的物件上傳。 -
物件寫入器 – 上傳物件 AWS 帳戶 的 擁有物件,擁有物件的完整控制權,並可透過 ACLs 授予其他使用者存取權。
-
-
選擇 Save (儲存)。
若要針對現有儲存貯體套用「物件擁有權」設定,請使用具有 --ownership-controls
參數的 put-bucket-ownership-controls
命令。擁有權的有效值為 BucketOwnerEnforced
、BucketOwnerPreferred
或 ObjectWriter
。
此範例會使用 AWS CLI為現有儲存貯體套用「儲存貯體擁有者強制執行」設定:
aws s3api put-bucket-ownership-controls --bucket
amzn-s3-demo-bucket
--ownership-controls="Rules=[{ObjectOwnership=BucketOwnerEnforced}]"
如需 put-bucket-ownership-controls
的詳細資訊,請參閱《AWS Command Line Interface 使用者指南》中的 put-bucket-ownership-controls
此範例會使用 AWS SDK for Java為現有儲存貯體套用「物件擁有權」的 BucketOwnerEnforced
設定:
// Build the ObjectOwnership for BucketOwnerEnforced OwnershipControlsRule rule = OwnershipControlsRule.builder() .objectOwnership(ObjectOwnership.BucketOwnerEnforced) .build(); OwnershipControls ownershipControls = OwnershipControls.builder() .rules(rule) .build() // Build the PutBucketOwnershipControlsRequest PutBucketOwnershipControlsRequest putBucketOwnershipControlsRequest = PutBucketOwnershipControlsRequest.builder() .bucket(BUCKET_NAME) .ownershipControls(ownershipControls) .build(); // Send the request to Amazon S3 s3client.putBucketOwnershipControls(putBucketOwnershipControlsRequest);
若要使用 AWS CloudFormation 為現有儲存貯體套用物件擁有權設定,請參閱AWS CloudFormation 《 使用者指南AWS::S3::Bucket OwnershipControls》中的 。
若要使用 REST API 將「物件擁有權」設定套用至現有的 S3 儲存貯體,請使用 PutBucketOwnershipControls
。如需詳細資訊,請參閱 Amazon Simple Storage Service API 參考中的 PutBucketOwnershipControls。
後續步驟:套用「物件擁有權」的儲存貯體擁有者強制執行設定或儲存貯體擁有者偏好設定之後,您可以進一步採取下列步驟:
-
儲存貯體擁有者強制執行 – 需要使用 IAM 或 Organizations 政策,在停用 ACL 的情況下建立所有新儲存貯體。
-
儲存貯體擁有者偏好 – 新增 S3 儲存貯體政策,以要求所有物件上傳到您儲存貯體的
bucket-owner-full-control
標準 ACL。