選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

停用 ACL 的先決條件

焦點模式
停用 ACL 的先決條件 - Amazon Simple Storage Service

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

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

如果您的儲存貯體 ACL 授予 外部的存取權 AWS 帳戶,則必須先將儲存貯體 ACL ACLs 許可遷移至儲存貯體政策,並將儲存貯體 ACL 重設為預設私有 ACL。如果您未遷移這些儲存貯體 ACL,則套用「儲存貯體擁有者強制執行」設定以停用 ACL 的請求會失敗,並傳回 InvalidBucketAclWithObjectOwnership 錯誤代碼。也建議您檢閱物件 ACL 許可,並將其遷移至儲存貯體政策。如需有關建議先決條件的詳細資訊,請參閱 停用 ACL 的先決條件

每個現有的儲存貯體和物件 ACL 在 IAM 政策中都有對應項。下列儲存貯體政策範例說明儲存貯體和物件 ACL 的 READWRITE 許可如何映射至 IAM 許可。如需每個 ACL 如何轉譯成 IAM 許可的詳細資訊,請參閱 ACL 許可與存取政策許可的對應

若要檢閱 ACL 許可並將 ACL 許可遷移至儲存貯體政策,請參閱下列主題。

儲存貯體政策範例

這些範例儲存貯體政策說明如何將 READWRITE 儲存貯體及第三方 AWS 帳戶 的物件 ACL 許可遷移至儲存貯體政策。READ_ACPWRITE_ACP ACL 與政策較不相關,因為其會授予與 ACL 相關的許可 (s3:GetBucketAcls3:GetObjectAcls3:PutBucketAcls3:PutObjectAcl)。

範例 — 儲存貯體的 READ ACL

如果您的儲存貯體具有授予 AWS 帳戶 111122223333許可的 READ ACL,以列出儲存貯體的內容,您可以撰寫儲存貯體政策,授予儲存貯體的 s3:ListBuckets3:ListBucketVersionss3:ListBucketMultipartUploads許可。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Permission to list the objects in a bucket", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root" ] }, "Action": [ "s3:ListBucket", "s3:ListBucketVersions", "s3:ListBucketMultipartUploads" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket" } ] }
範例 – READ 儲存貯體中每個物件的 ACL

如果儲存貯體中的每個物件都有授予 存取權的 READ ACL AWS 帳戶 111122223333,您可以撰寫儲存貯體政策,為儲存貯體中的每個物件授予此帳戶的 s3:GetObjects3:GetObjectVersion 許可。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Read permission for every object in a bucket", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root" ] }, "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }

此範例資源元素會授予特定物件的存取權。

"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/OBJECT-KEY"
範例 –WRITE ACL,授予將物件寫入儲存貯體的許可

如果您的儲存貯體具有授予 AWS 帳戶 111122223333許可的 WRITE ACL,可將物件寫入儲存貯體,您可以撰寫授予儲存貯體s3:PutObject許可的儲存貯體政策。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Permission to write objects to a bucket", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root" ] }, "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }

使用 S3 主控台來檢閱及遷移 ACL 許可

檢閱儲存貯體的 ACL 許可
  1. 登入 AWS Management Console ,並在 https://console.aws.amazon.com/s3/:// 開啟 Amazon S3 主控台。

  2. Buckets (儲存貯體) 清單中,選擇您的儲存貯體名稱。

  3. 選擇許可索引標籤標籤。

  4. Access control list (存取控制清單 (ACL)) 下,請檢閱您的儲存貯體 ACL 許可。

檢閱物件的 ACL 許可
  1. 登入 AWS Management Console ,並在 https://console.aws.amazon.com/s3/:// 開啟 Amazon S3 主控台。

  2. Buckets (儲存貯體) 清單中,選擇包含您物件的儲存貯體名稱。

  3. Object (物件) 清單中,選擇您的物件名稱。

  4. 選擇許可索引標籤標籤。

  5. Access control list (存取控制清單 (ACL)) 下,請檢閱您的物件 ACL 許可。

遷移 ACL 許可並更新您的儲存貯體 ACL
  1. 登入 AWS Management Console ,並在 https://console.aws.amazon.com/s3/:// 開啟 Amazon S3 主控台。

  2. Buckets (儲存貯體) 清單中,選擇您的儲存貯體名稱。

  3. Permissions (許可) 索引標籤上,Bucket policy (儲存貯體政策) 下,選擇 Edit (編輯)。

  4. Policy (政策) 方塊中,新增或更新儲存貯體政策。

    如需儲存貯體政策,請參閱 儲存貯體政策範例範例演練

  5. 選擇 Save changes (儲存變更)。

  6. 更新您的儲存貯體 ACL 以移除對其他群組或 AWS 帳戶的 ACL 授予。

  7. 針對物件擁有權套用儲存貯體擁有者強制執行設定

使用 AWS CLI 來檢閱和遷移 ACL 許可

  1. 若要傳回儲存貯體的儲存貯體 ACL,請使用 get-bucket-acl AWS CLI 命令:

    aws s3api get-bucket-acl --bucket amzn-s3-demo-bucket

    例如,此儲存貯體 ACL 會向第三方帳戶授予 WRITEREAD 存取權。在此 ACL 中,第三方帳戶是由正式使用者 ID 識別。若要套用「儲存貯體擁有者強制執行」設定並停用 ACL,您必須將第三方帳戶的這些許可遷移至儲存貯體政策。

    { "Owner": { "DisplayName": "DOC-EXAMPLE-ACCOUNT-OWNER", "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID" }, "Grants": [ { "Grantee": { "DisplayName": "DOC-EXAMPLE-ACCOUNT-OWNER", "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID", "Type": "CanonicalUser" }, "Permission": "FULL_CONTROL" }, { "Grantee": { "DisplayName": "THIRD-PARTY-EXAMPLE-ACCOUNT", "ID": "72806de9d1ae8b171cca9e2494a8d1335dfced4ThirdPartyAccountCanonicalUserID", "Type": "CanonicalUser" }, "Permission": "READ" }, { "Grantee": { "DisplayName": "THIRD-PARTY-EXAMPLE-ACCOUNT", "ID": "72806de9d1ae8b171cca9e2494a8d1335dfced4ThirdPartyAccountCanonicalUserID", "Type": "CanonicalUser" }, "Permission": "WRITE" } ] }

    如需其他範例 ACL,請參閱 範例演練

  2. 將您的儲存貯體 ACL 許可遷移至儲存貯體政策:

    此範例儲存貯體政策會為第三方帳戶授予 s3:PutObjects3:ListBucket 許可。在儲存貯體政策中,第三方帳戶由 AWS 帳戶 ID () 識別111122223333

    aws s3api put-bucket-policy --bucket amzn-s3-demo-bucket --policy file://policy.json policy.json: { "Version": "2012-10-17", "Statement": [ { "Sid": "PolicyForCrossAccountAllowUpload", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root" ] }, "Action": [ "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }

    如需更多儲存貯體政策範例,請參閱 儲存貯體政策範例範例演練

  3. 若要傳回特定物件的 ACL,請使用 get-object-acl AWS CLI 命令。

    aws s3api get-object-acl --bucket amzn-s3-demo-bucket --key EXAMPLE-OBJECT-KEY
  4. 如有必要,請將物件 ACL 許可遷移至儲存貯體政策。

    此範例資源元素會授予儲存貯體政策中特定物件的存取權。

    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/EXAMPLE-OBJECT-KEY"
  5. 將儲存貯體的 ACL 重設為預設 ACL。

    aws s3api put-bucket-acl --bucket amzn-s3-demo-bucket --acl private
  6. 針對物件擁有權套用「儲存貯體擁有者強制執行」設定

範例演練

下列範例說明如何針對特定使用案例,將 ACL 許可遷移至儲存貯體政策。

授予 S3 日誌交付群組的存取權以進行伺服器存取日誌記錄

如果想要套用「儲存貯體擁有者強制執行」設定以針對伺服器存取記錄目的地儲存貯體 (也稱為目標儲存貯體) 停用 ACL,則您必須將 S3 日誌交付群組的儲存貯體 ACL 許可遷移至儲存貯體政策中的記錄服務主體 (logging.s3.amazonaws.com)。如需有關日誌交付許可的詳細資訊,請參閱 日誌交付許可

此儲存貯體 ACL 授予 S3 日誌交付群組的 WRITEREAD_ACP 存取權:

{ "Owner": { "DisplayName": "DOC-EXAMPLE-ACCOUNT-OWNER", "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID" }, "Grants": [ { "Grantee": { "Type": "CanonicalUser", "DisplayName": "DOC-EXAMPLE-ACCOUNT-OWNER", "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID" }, "Permission": "FULL_CONTROL" }, { "Grantee": { "Type": "Group", "URI": "http://acs.amazonaws.com/groups/s3/LogDelivery" }, "Permission": "WRITE" }, { "Grantee": { "Type": "Group", "URI": "http://acs.amazonaws.com/groups/s3/LogDelivery" }, "Permission": "READ_ACP" } ] }
將 S3 日誌交付群組的儲存貯體 ACL 許可遷移至儲存貯體政策中的日誌記錄服務主體
  1. 將以下儲存貯體政策新增至您的目的地儲存貯體,取代範例值。

    aws s3api put-bucket-policy --bucket amzn-s3-demo-bucket --policy file://policy.json policy.json: { { "Version": "2012-10-17", "Statement": [ { "Sid": "S3ServerAccessLogsPolicy", "Effect": "Allow", "Principal": { "Service": "logging.s3.amazonaws.com" }, "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/EXAMPLE-LOGGING-PREFIX*", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3:::SOURCE-BUCKET-NAME" }, "StringEquals": { "aws:SourceAccount": "SOURCE-AWS-ACCOUNT-ID" } } } ] }
  2. 將目的地儲存貯體的 ACL 重設為預設 ACL。

    aws s3api put-bucket-acl --bucket amzn-s3-demo-bucket --acl private
  3. 針對物件擁有權套用「儲存貯體擁有者強制執行」設定至您的目的地儲存貯體。

對儲存貯體中的物件授予公用讀取存取權。

如果您的物件 ACL 授予儲存貯體中所有物件的公用讀取存取權,則您可以將這些 ACL 許可遷移至儲存貯體政策。

此物件 ACL 會授予儲存貯體中物件的公用讀取存取權:

{ "Owner": { "DisplayName": "DOC-EXAMPLE-ACCOUNT-OWNER", "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID" }, "Grants": [ { "Grantee": { "DisplayName": "DOC-EXAMPLE-ACCOUNT-OWNER", "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID", "Type": "CanonicalUser" }, "Permission": "FULL_CONTROL" }, { "Grantee": { "Type": "Group", "URI": "http://acs.amazonaws.com/groups/global/AllUsers" }, "Permission": "READ" } ] }
將公用讀取 ACL 許可遷移至儲存貯體政策
  1. 若要授予儲存貯體中所有物件的公用讀取存取權,請新增下列儲存貯體政策,取代範例值。

    aws s3api put-bucket-policy --bucket amzn-s3-demo-bucket --policy file://policy.json policy.json: { "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }

    若要授予儲存貯體政策中特定物件的公用存取權,請使用 Resource 元素的下列格式。

    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/OBJECT-KEY"

    若要授予具有特定字首之所有物件的公用存取權,請使用 Resource 元素的下列格式。

    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/PREFIX/*"
  2. 針對物件擁有權套用「儲存貯體擁有者強制執行」設定

授權 Amazon ElastiCache (Redis OSS) 存取您的 S3 儲存貯體

您可以將 ElastiCache (Redis OSS) 備份匯出至 S3 儲存貯體,以便從 ElastiCache 外部存取備份。若要將備份匯出至 S3 儲存貯體,您必須授權 ElastiCache 將快照複製到儲存貯體。如果已將許可授予儲存貯體 ACL 中的 ElastiCache,則您必須先將這些許可遷移至儲存貯體政策,然後再套用「儲存貯體擁有者強制執行」設定來停用 ACL。如需詳細資訊,請參閱《Amazon ElastiCache 使用者指南》中的為您的 Amazon S3 儲存貯體授予 ElastiCache 存取權

下列範例顯示將許可授予 ElastiCache 的儲存貯體 ACL 許可。

{ "Owner": { "DisplayName": "DOC-EXAMPLE-ACCOUNT-OWNER", "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID" }, "Grants": [ { "Grantee": { "DisplayName": "DOC-EXAMPLE-ACCOUNT-OWNER", "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID", "Type": "CanonicalUser" }, "Permission": "FULL_CONTROL" }, { "Grantee": { "DisplayName": "aws-scs-s3-readonly", "ID": "540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353", "Type": "CanonicalUser" }, "Permission": "READ" }, { "Grantee": { "DisplayName": "aws-scs-s3-readonly", "ID": "540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353", "Type": "CanonicalUser" }, "Permission": "WRITE" }, { "Grantee": { "DisplayName": "aws-scs-s3-readonly", "ID": "540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353", "Type": "CanonicalUser" }, "Permission": "READ_ACP" } ] }
將 ElastiCache (Redis OSS) 的儲存貯體 ACL 許可遷移至儲存貯體政策
  1. 將以下儲存貯體政策新增至您的儲存貯體,替換範例值。

    aws s3api put-bucket-policy --bucket amzn-s3-demo-bucket --policy file://policy.json policy.json: { "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt15399483", "Effect": "Allow", "Principal": { "Service": "Region.elasticache-snapshot.amazonaws.com" }, "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket", "s3:GetBucketAcl", "s3:ListMultipartUploadParts", "s3:ListBucketMultipartUploads" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }
  2. 將儲存貯體的 ACL 重設為預設 ACL:

    aws s3api put-bucket-acl --bucket amzn-s3-demo-bucket --acl private
  3. 針對物件擁有權套用「儲存貯體擁有者強制執行」設定

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。