本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 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 許可。
主控台許可 | 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 許可
登入 AWS Management Console 並在 Word 開啟 Amazon S3 主控台。 https://console.aws.amazon.com/s3/
-
在 Buckets (儲存貯體) 清單中,選擇要設定許可的儲存貯體名稱。
-
選擇 Permissions (許可)。
-
在 Access control list (存取控制清單) 下,選擇 Edit (編輯)。
您可以編輯儲存貯體的下列 ACL 許可:
物件
-
List (清單) – 允許承授者列出儲存貯體中的物件。
-
Write (寫入) – 允許承授者在儲存貯體中建立新物件。對於現有物件的儲存貯體和物件擁有者,還允許刪除和覆寫這些物件。
在 S3 主控台中,您只能將寫入存取權授予 S3 日誌交付群組和儲存貯體擁有者 (您的 AWS 帳戶)。強烈建議您不要授予其他承授者的寫入存取權。不過,如果您需要授予寫入存取權,您可以使用 AWS CLI、 AWS SDKs 或 REST。 API
儲存貯體 ACL
-
讀取 – 允許承授者讀取儲存貯體 ACL。
-
寫入 – 允許承授者為適用的儲存貯體寫入 ACL。
-
-
若要變更儲存貯體擁有者的許可,請在儲存貯體擁有者 (您的 AWS 帳戶) 旁清除或選取下列 ACL 許可:
-
Objects (物件) – List (列出) 或 Write (寫入)
-
儲存貯體ACL – 讀取或寫入
擁有者是指 AWS 帳戶根使用者,而不是 AWS Identity and Access Management IAM 使用者。如需根使用者的詳細資訊,請參閱 IAM 使用者指南中的 AWS 帳戶根使用者。
-
-
若要授予或取消一般公有 (網際網路上的每個人) 的許可,除了每個人 (公有存取) 之外,請清除或從下列 ACL 許可中選取 :
-
Objects (物件) – List (列出)
-
儲存貯體ACL – 讀取
警告
將 S3 儲存貯體的公開存取授予 Everyone (每個人) 群組時請小心。當您將存取授予此群組時,全世界的所有人都能存取您的儲存貯體。強烈建議您絕不要授予任何種類的 S3 儲存貯體公用寫入存取。
-
-
若要授予或復原具有 的任何人許可 AWS 帳戶,請在已驗證使用者群組 (具有 的任何人 AWS 帳戶) 旁清除或選取下列 ACL 許可:
-
Objects (物件) – List (列出)
-
儲存貯體ACL – 讀取
-
-
若要授予或取消 Amazon S3 將伺服器存取日誌寫入儲存貯體的許可,請在 S3 日誌交付群組下,清除或從下列 ACL 許可中選取 :
-
Objects (物件) – List (列出) 或 Write (寫入)
-
儲存貯體ACL – 讀取或寫入
如果儲存貯體設定為要接收存取日誌的目標儲存貯體,儲存貯體許可必須將儲存貯體的寫入存取授予 Log Delivery (日誌交付) 群組。當您啟用儲存貯體上的伺服器存取記錄日誌時,Amazon S3 主控台會將寫入存取權限授予您選擇接收日誌之目標儲存貯體的 Log Delivery (日誌交付) 群組。如需伺服器存取記錄日誌的詳細資訊,請參閱「啟用 Amazon S3 伺服器存取記錄日誌」。
-
-
若要授予對另一個 的存取權 AWS 帳戶,請執行下列動作:
-
選擇 Add grantee (新增承授者)。
-
在 Grantee (被授予者) 方塊中,輸入其他 AWS 帳戶的正式 ID。
-
從下列 ACL 許可中選取 :
-
Objects (物件) – List (列出) 或 Write (寫入)
-
儲存貯體ACL – 讀取或寫入
-
警告
當您授予其他資源 AWS 帳戶 存取權時,請注意 AWS 帳戶 可以將其許可委派給其帳戶下的 使用者。這稱為跨帳戶存取。如需使用跨帳戶存取的相關資訊,請參閱 IAM 使用者指南中的建立角色以將許可委派給 Word 使用者。 IAM
-
-
若要移除對另一個 的存取權 AWS 帳戶,請在對另一個 的存取權 AWS 帳戶下,選擇移除。
-
若要儲存您所做的變更,請選擇 Save changes (儲存變更)。
主控台會顯示重複被授予者的合併存取授予。若要查看 ACLs 的完整清單,請使用 Amazon S3 REST API AWS CLI或 AWS SDKs。下表顯示您可以在 Amazon S3 主控台中為物件設定的 ACL 許可。
主控台許可 | ACL 許可 | 存取 |
---|---|---|
物件 - 讀取 | READ |
允許被授予者讀取物件資料及其中繼資料。 |
物件ACL - 讀取 | READ_ACP |
允許承授者讀取物件 ACL。 |
物件ACL - 寫入 | WRITE_ACP |
允許承授者為適用的物件撰寫 ACL |
如需 ACL 許可的詳細資訊,請參閱 存取控制清單 (ACL) 概觀。
重要
如果儲存貯體使用 S3 物件擁有權的儲存貯體擁有者強制執行設定,則您必須使用政策將存取權授予儲存貯體及其中的物件。啟用儲存貯體擁有者強制執行設定時,設定存取控制清單 (ACLs) 或更新 ACLs 的請求會失敗並傳回AccessControlListNotSupported
錯誤碼。仍然支援讀取 ACLs 的請求。
設定物件的 ACL 許可
登入 AWS Management Console 並在 Word 開啟 Amazon S3 主控台。 https://console.aws.amazon.com/s3/
-
在 Buckets (儲存貯體) 清單中,選擇包含該物件的儲存貯體名稱。
-
在 objects (物件) 清單中,選擇您要設定許可的物件名稱。
-
選擇 Permissions (許可)。
-
在存取控制清單 (ACL) 下,選擇編輯。
您可以編輯物件的下列 ACL 許可:
物件
-
Read (讀取) – 允許承授者讀取物件資料及其中繼資料
物件ACL
-
讀取 – 允許承授者讀取物件 ACL。
-
寫入 – 允許承授者為適用的物件寫入 ACL。在 S3 主控台中,您只能將寫入存取權授予儲存貯體擁有者 (您的 AWS 帳戶)。強烈建議您不要授予其他承授者的寫入存取權。不過,如果您需要授予寫入存取權,您可以使用 AWS CLI、 AWS SDKs 或 REST API。
-
-
您可以管理下列項目的物件存取許可:
-
其他擁有者的存取
擁有者是指 AWS 帳戶根使用者,而不是 AWS Identity and Access Management IAM使用者。如需根使用者的詳細資訊,請參閱 IAM 使用者指南中的 AWS 帳戶根使用者。
若要變更擁有者的物件存取許可,請在物件擁有者的存取下,選擇 AWS 您的帳戶 (擁有者)。
選取您要變更之許可的核取方塊,然後選擇 Save (儲存)。
-
其他 的存取權 AWS 帳戶
若要從不同的 將許可授予 AWS 使用者 AWS 帳戶,請在存取其他 AWS 帳戶下,選擇新增帳戶。在輸入 ID 欄位中,輸入您要授予物件許可之 AWS 使用者的正式 ID。如需有關尋找正式 ID 的資訊,請參閱 中的您的 AWS 帳戶 識別符Amazon Web Services 一般參考。您最多可以新增 99 個使用者。
選取您要授予使用者之許可的核取方塊,然後選擇 Save (儲存)。若要顯示許可的相關資訊,請選擇說明圖示。
-
公用存取
若要將物件的存取權授予一般大眾 (全世界的所有人),請在 Public access (公開存取) 下,選擇 Everyone (每個人)。授予公用存取許可表示全世界的所有人都能存取該物件。
選取您要授予之許可的核取方塊,然後選擇 Save (儲存)。
警告
-
將 Amazon S3 物件的匿名存取權授予每個人群組時請謹慎小心。當您將存取權授予此群組時,全世界任何人都能存取您的物件。若必須將存取權授予每個人,強烈建議您只授予 Read objects (讀取物件) 許可。
-
強烈建議您「不要」將寫入物件許可授予 Everyone (每個人) 群組。這樣做可讓任何人覆寫物件的 ACL 許可。
-
-
本節提供如何在儲存貯體和物件上設定存取控制清單 (ACL) 授予的範例。
重要
如果儲存貯體使用 S3 物件擁有權的儲存貯體擁有者強制執行設定,則您必須使用政策將存取權授予儲存貯體及其中的物件。啟用儲存貯體擁有者強制執行設定時,設定存取控制清單 (ACLs) 或更新 ACLs 的請求會失敗並傳回AccessControlListNotSupported
錯誤碼。仍然支援讀取 ACLs 的請求。
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 的請求。