本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定現有儲存貯體的「物件擁有權」
您可以在現有 S3 儲存貯體上設定 S3 物件擁有權。若要在建立儲存貯體時套用「物件擁有權」,請參閱 在建立儲存貯體時設定「物件擁有權」。
S3 物件擁有權是 Amazon S3 儲存貯體層級設定,可用來停用存取控制清單 (ACLs) 和取得儲存貯體中每個物件的所有權,簡化 Amazon S3 中存放資料的存取管理。根據預設,S3 物件擁有權會設定為「儲存貯體擁有者強制執行」設定,並ACLs針對新儲存貯體停用。ACLs停用時,值區擁有者會擁有值區中的每個物件,並使用存取管理原則專門管理資料的存取權。建議您保持ACLs停用狀態,除非在特殊情況下,您必須個別控制每個物件的存取權限。
「物件擁有權」有三種設定,可用來控制上載至值區之物件的擁有權,以及停用或啟用ACLs:
ACLs 停用
-
強制執行值區擁ACLs有者 (預設值) — 已停用,值區擁有者會自動擁有並完全控制值區中的每個物件。ACLs不再影響 S3 儲存貯體中資料的許可。儲存貯體使用政策來定義存取控制。
ACLs啟用
-
偏好的值區擁有者 — 值區擁有者擁有並可完全控制其他帳號以
bucket-owner-full-control
固定方式寫入值區的新物件ACL。 -
物件寫入器 — 上傳物件 AWS 帳戶 的物件擁有物件、擁有物件的完全控制權,並且可以透過授與其他使用者存取該物件ACLs。
先決條件:在套用值區擁有者強制執行設定以停用之前ACLs,您必須將值區ACL權限移轉至值區政策,並將值區重設ACLs為預設的私人值區ACL。我們也建議您將物件ACL權限移轉至值區政策,並編輯需要值區擁有者完全控制權以ACLs外的值區政策ACLs。如需詳細資訊,請參閱 停用的先決條件 ACLs。
許可:若要使用這項操作,您必須擁有 s3:PutBucketOwnershipControls
許可。如需 Amazon S3 許可的詳細資訊,請參閱服務授權參考中適用於 Amazon S3 的動作、資源和條件金鑰。
-
登入 AWS Management Console 並開啟 Amazon S3 主控台,位於https://console.aws.amazon.com/s3/
。 -
在 Buckets (儲存貯體) 清單中,選擇您要將 S3 「物件擁有權」設定套用至其中的儲存貯體名稱。
-
選擇許可索引標籤標籤。
-
在 Object Ownership (物件擁有權) 下,選擇 Edit (編輯)。
-
在「物件擁有權」下,若要停用或啟用ACLs及控制值區中上傳物件的擁有權,請選擇下列其中一項設定:
ACLs 停用
-
強制執行值區擁ACLs有者 — 已停用,值區擁有者會自動擁有並完全控制值區中的每個物件。ACLs不再影響 S3 儲存貯體中資料的許可。儲存貯體使用政策來定義存取控制。
若要求使用IAM或 AWS Organizations 政策建立所有新值區,請參閱停ACLs用所有新值區 (值區擁有者強制執行)。ACLs
ACLs啟用
-
偏好的值區擁有者 — 值區擁有者擁有並可完全控制其他帳號以
bucket-owner-full-control
固定方式寫入值區的新物件ACL。如果您套用儲存貯體擁有者偏好設定,若要要求所有 Amazon S3 上傳都包含
bucket-owner-full-control
罐裝ACL,您可以新增儲存貯體政策,該政策只允許使用此功能的物件上傳ACL。 -
物件寫入器 — 上傳物件 AWS 帳戶 的物件擁有物件、擁有物件的完全控制權,並且可以透過授與其他使用者存取該物件ACLs。
-
-
選擇儲存。
若要針對現有儲存貯體套用「物件擁有權」設定,請使用具有 --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中的〈〉。
若要使用RESTAPI將物件擁有權設定套用至現有 S3 儲存貯體,請使用PutBucketOwnershipControls
。如需詳細資訊,請參閱 Amazon 簡易儲存服務API參考PutBucketOwnershipControls中的。
後續步驟:套用「物件擁有權」的儲存貯體擁有者強制執行設定或儲存貯體擁有者偏好設定之後,您可以進一步採取下列步驟: