設定 ACL - Amazon Simple Storage Service

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

設定 ACL

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

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

您可以將權限授與其他 AWS 帳戶 使用者或預先定義的群組。您要授予許可的使用者或群組稱為「被授予者」。擁有者 (亦即建立儲存貯體的 AWS 帳戶 ) 預設會有完整許可。

您每授予使用者或群組一項許可,就會在與儲存貯體相關聯的 ACL 中新增一個項目。ACL 會列出授予,其中指出被授予者及獲授予之許可。

S3 物件擁有權是一項 Amazon S3 儲存貯體層級設定,您可以用來同時控制上傳至儲存貯體之物件的擁有權,以及停用或啟用 ACL。根據預設,物件擁有權設定為「儲存貯體擁有者強制執行」設定,而且所有 ACL 都會停用。停用 ACL 時,儲存貯體擁有者會擁有儲存貯體中的所有物件,並使用存取管理政策專門管理對這些物件的存取。

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

重要

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

警告

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

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

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

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

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

重要

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

設定儲存貯體的 ACL 許可
  1. 登入 AWS Management Console 並開啟 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 SDK 或 REST API。

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

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

  5. 若要變更值區擁有者的權限,請在值區擁有者 (您的 AWS 帳戶) 旁清除或選取下列 ACL 權限:

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

    • Bucket ACL (儲存貯體)Read (讀取)Write (寫入)

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

  6. 若要授予或復原一般公眾 (網際網路上的所有人) 的許可,請在 Everyone (public access) (所有人 (公開存取)) 旁邊,清除或從下列 ACL 許可中選取:

    • Objects (物件)List (列出)

    • Bucket ACL (儲存貯體)Read (讀取)

    警告

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

  7. 若要授與或復原任何擁有「已驗證使用者」群組 (擁有 AWS 帳戶) 旁的使用者的權限,請清除或從下列 ACL 權限中選取: AWS 帳戶

    • Objects (物件)List (列出)

    • Bucket ACL (儲存貯體)Read (讀取)

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

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

    • Bucket ACL (儲存貯體)Read (讀取)Write (寫入)

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

  9. 若要授與存取權給另一個人 AWS 帳戶,請執行下列動作:

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

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

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

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

      • Bucket ACL (儲存貯體)Read (讀取)Write (寫入)

    警告

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

  10. 若要移除對其他人的存取權 AWS 帳戶,請在 [其他 AWS 帳戶存取權] 下選擇 [移除]

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

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

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

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

重要

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

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

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

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

  4. 選擇 Permissions (許可)。

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

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

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

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

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

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

    1. 其他擁有者的存取

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

      若要變更擁有者的物件存取權限,請在「物件擁有者的存取權」下選擇「您的 AWS 帳戶 (擁有者)」。

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

    2. 訪問其他 AWS 帳戶

      若要授與其他 AWS 使用者的權限 AWS 帳戶,請在 [其他使用者的存取權] 底下 AWS 帳戶,選擇 [新增帳戶]。在「輸入 ID」欄位中,輸入您要授與物件權限之 AWS 使用者的標準 ID。如需尋找正式 ID 的相關資訊,請參閱《Amazon Web Services 一般參考》中的 AWS 帳戶 識別符。您最多可以新增 99 個使用者。

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

    3. 公用存取

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

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

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

      • 強烈建議您「不要」將寫入物件許可授予 Everyone (每個人) 群組。否則所有人都可覆寫物件的 ACL 許可。

此章節提供範例說明如何設定存取控制清單 (ACL) 授與給儲存貯體和物件。

重要

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

Java

此章節提供範例說明如何設定存取控制清單 (ACL) 授與給儲存貯體和物件。第一個範例為以定義的 ACL (請參閱 固定的 ACL) 建立儲存貯體後,建立自訂許可授與名單,然後用含有自訂授與 ACL 取代定義的 ACL。第二個範例說明如何修改使用 AccessControlList.grantPermission() 法修改 ACL。

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

此為建立儲存貯體的範例。在此要求中,該範例指定了定義的 ACL 授與日誌傳遞群組許可,以寫入儲存貯體日誌。

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 授與日誌傳遞群組許可,以便在儲存貯體寫入日誌。

如需建立及測試可行範例的說明,請參閱 執行 Amazon S3 .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。

如需建立及測試可行範例的說明,請參閱 執行 Amazon S3 .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 API 可讓您在建立儲存貯體或物件時設定 ACL。Amazon S3 也提供在現有儲存貯體或物件上設定 ACL 的 API。這些 API 提供下列方法來設定 ACL:

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

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

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

重要

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

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

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

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

  • 固定的 ACL (x-amz-acl) — Amazon S3 支援一組預先定義的 ACL,稱為固定的 ACL。每個固定的 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-控制

若要取得有關使用管理 ACL 的更多資訊 AWS CLI,請參閱《AWS CLI 指令參考put-bucket-acl中的〈〉。

重要

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