設定 ACLs - Amazon Simple Storage Service

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

設定 ACLs

本節說明如何使用存取控制清單 (ACLs) 管理 S3 儲存貯體和物件的存取許可。您可以使用 AWS Management Console、 AWS Command Line Interface (ACLCLI)、REST 或 API 將授予新增至資源 AWS SDKs。

儲存貯體許可與物件許可各自互相獨立。物件不會繼承其儲存貯體的許可。例如,若您建立儲存貯體,並將寫入存取授予使用者,除非使用者明確授予存取權給您,否則您無法存取該使用者的物件。

您可以將許可授予其他 AWS 帳戶 使用者或預先定義的群組。您要授予許可的使用者或群組稱為「被授予者」。根據預設,建立儲存貯體 AWS 帳戶 的 擁有者具有完整許可。

您授予使用者或群組的每個許可都會在與儲存貯體相關聯的 ACL 中新增項目。ACL 會列出授予,識別授予者和授予的許可。

S3 物件擁有權是一種 Amazon S3 儲存貯體層級設定,您可以使用它來控制上傳到儲存貯體的物件擁有權,以及停用或啟用 ACLs。根據預設,物件擁有權會設定為儲存貯體擁有者強制執行設定,且所有 ACLs 都會停用。停用 ACLs 時,儲存貯體擁有者會擁有儲存貯體中的所有物件,並僅使用存取管理政策來管理對這些物件的存取。

Amazon S3 中的大多數現代使用案例不再需要使用 ACLs。建議您停用 ACLs,除非在異常情況下,您需要個別控制每個物件的存取。在停用 ACLs 的情況下,您可以使用政策來控制對儲存貯體中所有物件的存取,無論物件上傳到儲存貯體的對象是誰。如需詳細資訊,請參閱控制物件的擁有權,並停用儲存貯體的 ACLs

重要

如果儲存貯體使用 S3 物件擁有權的儲存貯體擁有者強制執行設定,則您必須使用政策將存取權授予儲存貯體及其中的物件。啟用儲存貯體擁有者強制執行設定時,設定存取控制清單 (ACLs) 或更新 ACLs 的請求會失敗並傳回AccessControlListNotSupported錯誤碼。仍然支援讀取 ACLs 的請求。

警告

強烈建議您避免將寫入存取權授予 Everyone (公有存取權)Authenticated Users 群組 (所有已 AWS 驗證的使用者群組)。如需詳細資訊了解授予寫入存取權限對這些群組的影響,請參閱「Amazon S3 預先定義的群組」。

主控台會顯示重複被授予者的合併存取授予。若要查看 ACLs 的完整清單,請使用 Amazon S3 REST API AWS CLI或 AWS SDKs。

下表顯示您可以在 Amazon S3 主控台中為儲存貯體設定的 ACL 許可。

儲存貯體的 Amazon S3 主控台 ACL 許可
主控台許可 ACL 許可 Access (存取)
Objects (物件) – List (列出) READ 允許被授予者列出儲存貯體中的物件。
Objects (物件) - Write (寫入) WRITE 允許被授予者在儲存貯體中建立新物件。對於現有物件的儲存貯體和物件擁有者,還允許刪除和覆寫這些物件。
儲存貯體ACL - 讀取 READ_ACP 允許承授者讀取儲存貯體 ACL。
儲存貯體ACL - 寫入 WRITE_ACP 允許承授者為適用的儲存貯體撰寫 ACL。
每個人(公開存取):物件 - 列出 READ 對儲存貯體中的物件授予公開讀取存取權限。當您將列出存取權限授予每個人(公開存取權限)時,世界上的任何人都可以存取儲存貯體中的物件。
所有人 (公開存取):儲存貯體ACL - 讀取 READ_ACP 授予儲存貯體 ACL 的公有讀取存取權。當您授予每個人的讀取存取權 (公有存取權) 時,世界上的任何人都可以存取儲存貯體 ACL。

如需 ACL 許可的詳細資訊,請參閱 存取控制清單 (ACL) 概觀

重要

如果儲存貯體使用 S3 物件擁有權的儲存貯體擁有者強制執行設定,則您必須使用政策將存取權授予儲存貯體及其中的物件。啟用儲存貯體擁有者強制執行設定時,設定存取控制清單 (ACLs) 或更新 ACLs 的請求會失敗並傳回AccessControlListNotSupported錯誤碼。仍然支援讀取 ACLs 的請求。

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

  2. Buckets (儲存貯體) 清單中,選擇要設定許可的儲存貯體名稱。

  3. 選擇 Permissions (許可)。

  4. Access control list (存取控制清單) 下,選擇 Edit (編輯)。

    您可以編輯儲存貯體的下列 ACL 許可:

    物件
    • List (清單) – 允許承授者列出儲存貯體中的物件。

    • Write (寫入) – 允許承授者在儲存貯體中建立新物件。對於現有物件的儲存貯體和物件擁有者,還允許刪除和覆寫這些物件。

      在 S3 主控台中,您只能將寫入存取權授予 S3 日誌交付群組和儲存貯體擁有者 (您的 AWS 帳戶)。強烈建議您不要授予其他承授者的寫入存取權。不過,如果您需要授予寫入存取權,您可以使用 AWS CLI、 AWS SDKs 或 REST。 API

    儲存貯體 ACL
    • 讀取 – 允許承授者讀取儲存貯體 ACL。

    • 寫入 – 允許承授者為適用的儲存貯體寫入 ACL。

  5. 若要變更儲存貯體擁有者的許可,請在儲存貯體擁有者 (您的 AWS 帳戶) 旁清除或選取下列 ACL 許可:

    • Objects (物件)List (列出)Write (寫入)

    • 儲存貯體ACL – 讀取寫入

    擁有者是指 AWS 帳戶根使用者,而不是 AWS Identity and Access Management IAM 使用者。如需根使用者的詳細資訊,請參閱 IAM 使用者指南中的 AWS 帳戶根使用者

  6. 若要授予或取消一般公有 (網際網路上的每個人) 的許可,除了每個人 (公有存取) 之外,請清除或從下列 ACL 許可中選取 :

    • Objects (物件)List (列出)

    • 儲存貯體ACL – 讀取

    警告

    將 S3 儲存貯體的公開存取授予 Everyone (每個人) 群組時請小心。當您將存取授予此群組時,全世界的所有人都能存取您的儲存貯體。強烈建議您絕不要授予任何種類的 S3 儲存貯體公用寫入存取。

  7. 若要授予或復原具有 的任何人許可 AWS 帳戶,請在已驗證使用者群組 (具有 的任何人 AWS 帳戶) 旁清除或選取下列 ACL 許可:

    • Objects (物件)List (列出)

    • 儲存貯體ACL – 讀取

  8. 若要授予或取消 Amazon S3 將伺服器存取日誌寫入儲存貯體的許可,請在 S3 日誌交付群組下,清除或從下列 ACL 許可中選取 :

    • Objects (物件)List (列出)Write (寫入)

    • 儲存貯體ACL – 讀取寫入

      如果儲存貯體設定為要接收存取日誌的目標儲存貯體,儲存貯體許可必須將儲存貯體的寫入存取授予 Log Delivery (日誌交付) 群組。當您啟用儲存貯體上的伺服器存取記錄日誌時,Amazon S3 主控台會將寫入存取權限授予您選擇接收日誌之目標儲存貯體的 Log Delivery (日誌交付) 群組。如需伺服器存取記錄日誌的詳細資訊,請參閱「啟用 Amazon S3 伺服器存取記錄日誌」。

  9. 若要授予對另一個 的存取權 AWS 帳戶,請執行下列動作:

    1. 選擇 Add grantee (新增承授者)

    2. Grantee (被授予者) 方塊中,輸入其他 AWS 帳戶的正式 ID。

    3. 從下列 ACL 許可中選取 :

      • Objects (物件)List (列出)Write (寫入)

      • 儲存貯體ACL – 讀取寫入

    警告

    當您授予其他資源 AWS 帳戶 存取權時,請注意 AWS 帳戶 可以將其許可委派給其帳戶下的 使用者。這稱為跨帳戶存取。如需使用跨帳戶存取的相關資訊,請參閱 IAM 使用者指南中的建立角色以將許可委派給 Word 使用者IAM

  10. 若要移除對另一個 的存取權 AWS 帳戶,請在對另一個 的存取權 AWS 帳戶下,選擇移除

  11. 若要儲存您所做的變更,請選擇 Save changes (儲存變更)

主控台會顯示重複被授予者的合併存取授予。若要查看 ACLs 的完整清單,請使用 Amazon S3 REST API AWS CLI或 AWS SDKs。下表顯示您可以在 Amazon S3 主控台中為物件設定的 ACL 許可。

物件的 Amazon S3 主控台 ACL 許可
主控台許可 ACL 許可 存取
物件 - 讀取 READ 允許被授予者讀取物件資料及其中繼資料。
物件ACL - 讀取 READ_ACP 允許承授者讀取物件 ACL。
物件ACL - 寫入 WRITE_ACP 允許承授者為適用的物件撰寫 ACL

如需 ACL 許可的詳細資訊,請參閱 存取控制清單 (ACL) 概觀

重要

如果儲存貯體使用 S3 物件擁有權的儲存貯體擁有者強制執行設定,則您必須使用政策將存取權授予儲存貯體及其中的物件。啟用儲存貯體擁有者強制執行設定時,設定存取控制清單 (ACLs) 或更新 ACLs 的請求會失敗並傳回AccessControlListNotSupported錯誤碼。仍然支援讀取 ACLs 的請求。

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

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

  3. objects (物件) 清單中,選擇您要設定許可的物件名稱。

  4. 選擇 Permissions (許可)。

  5. 在存取控制清單 (ACL) 下,選擇編輯

    您可以編輯物件的下列 ACL 許可:

    物件
    • Read (讀取) – 允許承授者讀取物件資料及其中繼資料

    物件ACL
    • 讀取 – 允許承授者讀取物件 ACL。

    • 寫入 – 允許承授者為適用的物件寫入 ACL。在 S3 主控台中,您只能將寫入存取權授予儲存貯體擁有者 (您的 AWS 帳戶)。強烈建議您不要授予其他承授者的寫入存取權。不過,如果您需要授予寫入存取權,您可以使用 AWS CLI、 AWS SDKs 或 REST API。

  6. 您可以管理下列項目的物件存取許可:

    1. 其他擁有者的存取

      擁有者是指 AWS 帳戶根使用者,而不是 AWS Identity and Access Management IAM使用者。如需根使用者的詳細資訊,請參閱 IAM 使用者指南中的 AWS 帳戶根使用者

      若要變更擁有者的物件存取許可,請在物件擁有者的存取下,選擇 AWS 您的帳戶 (擁有者)

      選取您要變更之許可的核取方塊,然後選擇 Save (儲存)

    2. 其他 的存取權 AWS 帳戶

      若要從不同的 將許可授予 AWS 使用者 AWS 帳戶,請在存取其他 AWS 帳戶下,選擇新增帳戶。在輸入 ID 欄位中,輸入您要授予物件許可之 AWS 使用者的正式 ID。如需有關尋找正式 ID 的資訊,請參閱 中的您的 AWS 帳戶 識別符Amazon Web Services 一般參考。您最多可以新增 99 個使用者。

      選取您要授予使用者之許可的核取方塊,然後選擇 Save (儲存)。若要顯示許可的相關資訊,請選擇說明圖示。

    3. 公用存取

      若要將物件的存取權授予一般大眾 (全世界的所有人),請在 Public access (公開存取) 下,選擇 Everyone (每個人)。授予公用存取許可表示全世界的所有人都能存取該物件。

      選取您要授予之許可的核取方塊,然後選擇 Save (儲存)

      警告
      • 將 Amazon S3 物件的匿名存取權授予每個人群組時請謹慎小心。當您將存取權授予此群組時,全世界任何人都能存取您的物件。若必須將存取權授予每個人,強烈建議您只授予 Read objects (讀取物件) 許可。

      • 強烈建議您「不要」將寫入物件許可授予 Everyone (每個人) 群組。這樣做可讓任何人覆寫物件的 ACL 許可。

本節提供如何在儲存貯體和物件上設定存取控制清單 (ACL) 授予的範例。

重要

如果儲存貯體使用 S3 物件擁有權的儲存貯體擁有者強制執行設定,則您必須使用政策將存取權授予儲存貯體及其中的物件。啟用儲存貯體擁有者強制執行設定時,設定存取控制清單 (ACLs) 或更新 ACLs 的請求會失敗並傳回AccessControlListNotSupported錯誤碼。仍然支援讀取 ACLs 的請求。

Java

本節提供如何在儲存貯體和物件上設定存取控制清單 (ACL) 授予的範例。第一個範例會建立具有固定 ACL 的儲存貯體 (請參閱 固定ACL)、建立自訂許可授予的清單,然後將固定 ACL 取代為包含自訂授予的 ACL。第二個範例示範如何使用 AccessControlList.grantPermission()方法修改 ACL。

範例 建立儲存貯體並指定將許可授予 S3 日誌交付群組的固定 ACL

此為建立儲存貯體的範例。在請求中,範例會指定固定 ACL,授予 Log Delivery 群組將日誌寫入儲存貯體的許可。

import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.*; import java.io.IOException; import java.util.ArrayList; public class CreateBucketWithACL { public static void main(String[] args) throws IOException { Regions clientRegion = Regions.DEFAULT_REGION; String bucketName = "*** Bucket name ***"; String userEmailForReadPermission = "*** user@example.com ***"; try { AmazonS3 s3Client = AmazonS3ClientBuilder.standard() .withRegion(clientRegion) .build(); // Create a bucket with a canned ACL. This ACL will be replaced by the // setBucketAcl() // calls below. It is included here for demonstration purposes. CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName, clientRegion.getName()) .withCannedAcl(CannedAccessControlList.LogDeliveryWrite); s3Client.createBucket(createBucketRequest); // Create a collection of grants to add to the bucket. ArrayList<Grant> grantCollection = new ArrayList<Grant>(); // Grant the account owner full control. Grant grant1 = new Grant(new CanonicalGrantee(s3Client.getS3AccountOwner().getId()), Permission.FullControl); grantCollection.add(grant1); // Grant the LogDelivery group permission to write to the bucket. Grant grant2 = new Grant(GroupGrantee.LogDelivery, Permission.Write); grantCollection.add(grant2); // Save grants by replacing all current ACL grants with the two we just created. AccessControlList bucketAcl = new AccessControlList(); bucketAcl.grantAllPermissions(grantCollection.toArray(new Grant[0])); s3Client.setBucketAcl(bucketName, bucketAcl); // Retrieve the bucket's ACL, add another grant, and then save the new ACL. AccessControlList newBucketAcl = s3Client.getBucketAcl(bucketName); Grant grant3 = new Grant(new EmailAddressGrantee(userEmailForReadPermission), Permission.Read); newBucketAcl.grantAllPermissions(grant3); s3Client.setBucketAcl(bucketName, newBucketAcl); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it and returned an error response. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3. e.printStackTrace(); } } }
範例 更新現有物件上的 ACL

此範例會更新物件上的 ACL。範例會執行下列任務:

  • 擷取物件的 ACL

  • 透過移除所有現有的許可來清除 ACL

  • 新增兩個許可:擁有者的完整存取權,以及電子郵件地址所識別的使用者的 WRITE_ACP (請參閱 我可以授予哪些許可?)

  • 將 ACL 儲存至物件

import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.AccessControlList; import com.amazonaws.services.s3.model.CanonicalGrantee; import com.amazonaws.services.s3.model.EmailAddressGrantee; import com.amazonaws.services.s3.model.Permission; import java.io.IOException; public class ModifyACLExistingObject { public static void main(String[] args) throws IOException { Regions clientRegion = Regions.DEFAULT_REGION; String bucketName = "*** Bucket name ***"; String keyName = "*** Key name ***"; String emailGrantee = "*** user@example.com ***"; try { AmazonS3 s3Client = AmazonS3ClientBuilder.standard() .withCredentials(new ProfileCredentialsProvider()) .withRegion(clientRegion) .build(); // Get the existing object ACL that we want to modify. AccessControlList acl = s3Client.getObjectAcl(bucketName, keyName); // Clear the existing list of grants. acl.getGrantsAsList().clear(); // Grant a sample set of permissions, using the existing ACL owner for Full // Control permissions. acl.grantPermission(new CanonicalGrantee(acl.getOwner().getId()), Permission.FullControl); acl.grantPermission(new EmailAddressGrantee(emailGrantee), Permission.WriteAcp); // Save the modified ACL back to the object. s3Client.setObjectAcl(bucketName, keyName, acl); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it, so it returned an error response. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3. e.printStackTrace(); } } }
.NET
範例 建立儲存貯體並指定將許可授予 S3 日誌交付群組的固定 ACL

此為建立儲存貯體的 C# 範例。在請求中,程式碼也會指定固定 ACL,授予 Log Delivery 群組將日誌寫入儲存貯體的許可。

如需有關設定和執行程式碼範例的資訊,請參閱 AWS SDK for .NET 中的 Word for .Word 入門 AWS SDK NET 開發人員指南

using Amazon; using Amazon.S3; using Amazon.S3.Model; using System; using System.Threading.Tasks; namespace Amazon.DocSamples.S3 { class ManagingBucketACLTest { private const string newBucketName = "*** bucket name ***"; // Specify your bucket region (an example region is shown). private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2; private static IAmazonS3 client; public static void Main() { client = new AmazonS3Client(bucketRegion); CreateBucketUseCannedACLAsync().Wait(); } private static async Task CreateBucketUseCannedACLAsync() { try { // Add bucket (specify canned ACL). PutBucketRequest putBucketRequest = new PutBucketRequest() { BucketName = newBucketName, BucketRegion = S3Region.EUW1, // S3Region.US, // Add canned ACL. CannedACL = S3CannedACL.LogDeliveryWrite }; PutBucketResponse putBucketResponse = await client.PutBucketAsync(putBucketRequest); // Retrieve bucket ACL. GetACLResponse getACLResponse = await client.GetACLAsync(new GetACLRequest { BucketName = newBucketName }); } catch (AmazonS3Exception amazonS3Exception) { Console.WriteLine("S3 error occurred. Exception: " + amazonS3Exception.ToString()); } catch (Exception e) { Console.WriteLine("Exception: " + e.ToString()); } } } }
範例 更新現有物件上的 ACL

此 C# 範例會更新現有物件上的 ACL。範例會執行下列任務:

  • 擷取物件的 ACL。

  • 透過移除所有現有的許可來清除 ACL。

  • 新增兩個許可:擁有者的完整存取權,以及電子郵件地址所識別的使用者的 WRITE_ACP。

  • 透過傳送PutAcl請求來儲存 ACL。

如需有關設定和執行程式碼範例的資訊,請參閱 AWS SDK for .NET 中的 Word for .Word 入門 AWS SDK NET 開發人員指南

using Amazon; using Amazon.S3; using Amazon.S3.Model; using System; using System.Collections.Generic; using System.Threading.Tasks; namespace Amazon.DocSamples.S3 { class ManagingObjectACLTest { private const string bucketName = "*** bucket name ***"; private const string keyName = "*** object key name ***"; private const string emailAddress = "*** email address ***"; // Specify your bucket region (an example region is shown). private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2; private static IAmazonS3 client; public static void Main() { client = new AmazonS3Client(bucketRegion); TestObjectACLTestAsync().Wait(); } private static async Task TestObjectACLTestAsync() { try { // Retrieve the ACL for the object. GetACLResponse aclResponse = await client.GetACLAsync(new GetACLRequest { BucketName = bucketName, Key = keyName }); S3AccessControlList acl = aclResponse.AccessControlList; // Retrieve the owner (we use this to re-add permissions after we clear the ACL). Owner owner = acl.Owner; // Clear existing grants. acl.Grants.Clear(); // Add a grant to reset the owner's full permission (the previous clear statement removed all permissions). S3Grant fullControlGrant = new S3Grant { Grantee = new S3Grantee { CanonicalUser = owner.Id }, Permission = S3Permission.FULL_CONTROL }; // Describe the grant for the permission using an email address. S3Grant grantUsingEmail = new S3Grant { Grantee = new S3Grantee { EmailAddress = emailAddress }, Permission = S3Permission.WRITE_ACP }; acl.Grants.AddRange(new List<S3Grant> { fullControlGrant, grantUsingEmail }); // Set a new ACL. PutACLResponse response = await client.PutACLAsync(new PutACLRequest { BucketName = bucketName, Key = keyName, AccessControlList = acl }); } catch (AmazonS3Exception amazonS3Exception) { Console.WriteLine("An AmazonS3Exception was thrown. Exception: " + amazonS3Exception.ToString()); } catch (Exception e) { Console.WriteLine("Exception: " + e.ToString()); } } } }

Amazon S3 APIs 可讓您在建立儲存貯體或物件時設定 ACL。Amazon S3 也提供 API,以在現有儲存貯體或物件上設定 ACL。這些 APIs 提供下列方法來設定 ACL:

  • 使用請求標頭設定 ACL — 當您傳送建立資源 (儲存貯體或物件) 的請求時,您可以使用請求標頭設定 ACL。使用這些標頭,您可以指定固定 ACL 或明確指定授予 (明確識別承授者和許可)。

  • 使用請求內文設定 ACL - 當您傳送在現有資源上設定 ACL 的請求時,您可以在請求標頭或內文中設定 ACL。

如需有關 REST API支援以管理 ACLs 的資訊,請參閱 Amazon Simple Storage Service API 參考中的下列章節:

重要

如果儲存貯體使用 S3 物件擁有權的儲存貯體擁有者強制執行設定,則您必須使用政策將存取權授予儲存貯體及其中的物件。啟用儲存貯體擁有者強制執行設定時,設定存取控制清單 (ACLs) 或更新 ACLs 的請求會失敗並傳回AccessControlListNotSupported錯誤碼。仍然支援讀取 ACLs 的請求。

存取控制清單 (ACL) 特定請求標頭

您可以使用標頭來授予存取控制清單 (ACL) 型許可。所有物件預設皆為私有。只有擁有者有完整的存取控制權。新增物件時,您可以將許可授予 Amazon S3 定義的個人或 AWS 帳戶 預先定義的群組。這些許可接著會新增至物件上的存取控制清單 (ACL)。如需詳細資訊,請參閱存取控制清單 (ACL) 概觀

透過此操作,您可以使用下列兩種方法之一授與存取許可:

  • 固定ACL (x-amz-acl) — Amazon S3 支援一組預先定義的ACLs,稱為固定ACLs。每個固定 ACL 都有一組預先定義的承授者和許可。如需詳細資訊,請參閱固定ACL

  • 存取權限 — 若要明確授予特定 AWS 帳戶 或 群組的存取權限,請使用下列標頭。每個標頭都會對應至 Amazon S3 在 ACL 中支援的特定許可。如需詳細資訊,請參閱存取控制清單 (ACL) 概觀。在標頭中,您指定取得特定許可的授與者清單。

    • x-amz-grant-read

    • x-amz-grant-write

    • x-amz-grant-read-acp

    • x-amz-grant-write-acp

    • x-amz-grant-full控制

如需使用 管理 ACLs 的詳細資訊 AWS CLI,請參閱 AWS CLI 命令參考中的 put-bucket-acl

重要

如果儲存貯體使用 S3 物件擁有權的儲存貯體擁有者強制執行設定,則您必須使用政策將存取權授予儲存貯體及其中的物件。啟用儲存貯體擁有者強制執行設定時,設定存取控制清單 (ACLs) 或更新 ACLs 的請求會失敗並傳回AccessControlListNotSupported錯誤碼。仍然支援讀取 ACLs 的請求。