本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 ACL
本節說明如何使用存取控制清單 (ACL) 來管理 S3 儲存貯體和物件的存取許可。您可以使用 AWS Management Console、 AWS Command Line Interface (CLI)、REST API 或 AWS SDKs 將授予新增至資源 ACL。
儲存貯體許可與物件許可各自互相獨立。物件不會繼承其儲存貯體的許可。例如,若您建立儲存貯體,並將寫入存取授予使用者,除非使用者明確授予存取權給您,否則您無法存取該使用者的物件。
您可以將許可授予其他 AWS 帳戶 使用者或預先定義的群組。您要授予許可的使用者或群組稱為「被授予者」。根據預設,建立儲存貯體 AWS 帳戶 的 擁有者具有完整許可。
您每授予使用者或群組一項許可,就會在與儲存貯體相關聯的 ACL 中新增一個項目。ACL 會列出授予,其中指出被授予者及獲授予之許可。
S3 物件擁有權是一項 Amazon S3 儲存貯體層級設定,您可以用來同時控制上傳至儲存貯體之物件的擁有權,以及停用或啟用 ACL。根據預設,物件擁有權設定為「儲存貯體擁有者強制執行」設定,而且所有 ACL 都會停用。停用 ACL 時,儲存貯體擁有者會擁有儲存貯體中的所有物件,並使用存取管理政策專門管理對這些物件的存取。
Amazon S3 中的大多數新式使用案例不再需要使用 ACL。建議您將 ACL 保持停用狀態,除非在異常情況下必須個別控制每個物件的存取。停用 ACL 後,您可以使用政策來控制對儲存貯體中所有物件的存取,無論是誰將物件上傳到您的儲存貯體。如需詳細資訊,請參閱控制物件的擁有權並停用儲存貯體的 ACL。
重要
如果您的一般用途儲存貯體使用 S3 物件擁有權的儲存貯體擁有者強制執行設定,您必須使用 政策來授予一般用途儲存貯體和其中物件的存取權。在啟用儲存貯體擁有者強制執行設定的情況下,請求設定存取控制清單 (ACL) 或更新 ACL 失敗,並傳回 AccessControlListNotSupported
錯誤碼。仍支援讀取 ACL 的請求。
警告
強烈建議您避免將寫入存取權授予每個人 (公開存取) 或已驗證使用者群組 (所有已 AWS 驗證的使用者) 群組。如需詳細資訊了解授予寫入存取權限對這些群組的影響,請參閱「Amazon S3 預先定義的群組」。
主控台會顯示重複被授予者的合併存取授予。若要查看 ACLs 的完整清單,請使用 Amazon S3 REST API AWS CLI,或 AWS SDKs。
下表顯示您可以在 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 許可
登入 AWS Management Console ,並在 http://http://console.aws.amazon.com/s3/
開啟 Amazon S3 主控台。 -
在左側導覽窗格中,選擇一般用途儲存貯體。
-
在 Buckets (儲存貯體) 清單中,選擇要設定許可的儲存貯體名稱。
-
選擇 Permissions (許可)。
-
在 Access control list (存取控制清單) 下,選擇 Edit (編輯)。
您可以編輯儲存貯體的下列 ACL 許可:
物件
-
List (清單) – 允許承授者列出儲存貯體中的物件。
-
Write (寫入) – 允許承授者在儲存貯體中建立新物件。對於現有物件的儲存貯體和物件擁有者,還允許刪除和覆寫這些物件。
在 S3 主控台中,您只能將寫入存取權授予 S3 日誌交付群組和儲存貯體擁有者 (您的 AWS 帳戶)。強烈建議您不要授予其他承授者的寫入存取權。不過,如果您需要授予寫入存取權,您可以使用 、 AWS CLI AWS SDKs或 REST API。
儲存貯體 ACL
-
Read (讀取) – 允許承授者讀取儲存貯體 ACL。
-
Write (寫入) – 允許承授者寫入適用儲存貯體的 ACL。
-
-
若要變更儲存貯體擁有者的許可,請在儲存貯體擁有者 (您的 AWS 帳戶) 旁清除或選取下列 ACL 許可:
-
Objects (物件) – List (列出) 或 Write (寫入)
-
Bucket ACL (儲存貯體) – Read (讀取) 或 Write (寫入)
擁有者是指 AWS 帳戶根使用者,而不是 AWS Identity and Access Management IAM 使用者。如需根使用者的詳細資訊,請參閱《IAM 使用者指南》中的 AWS 帳戶根使用者。
-
-
若要授予或復原一般公眾 (網際網路上的所有人) 的許可,請在 Everyone (public access) (所有人 (公開存取)) 旁邊,清除或從下列 ACL 許可中選取:
-
Objects (物件) – List (列出)
-
Bucket ACL (儲存貯體) – Read (讀取)
警告
將 S3 儲存貯體的公開存取授予 Everyone (每個人) 群組時請小心。當您將存取授予此群組時,全世界的所有人都能存取您的儲存貯體。強烈建議您絕不要授予任何種類的 S3 儲存貯體公用寫入存取。
-
-
若要授予或復原具有 之任何人的許可 AWS 帳戶,除了已驗證使用者群組 (具有 的任何人 AWS 帳戶) 之外,請清除或選取下列 ACL 許可:
-
Objects (物件) – List (列出)
-
Bucket ACL (儲存貯體) – Read (讀取)
-
-
若要授予或復原 Amazon S3 將伺服器存取日誌寫入儲存貯體的許可,請在 S3 log delivery group (S3 日誌交付群組) 下,清除或從下列 ACL 許可中選取:
-
Objects (物件) – List (列出) 或 Write (寫入)
-
Bucket ACL (儲存貯體) – Read (讀取) 或 Write (寫入)
如果儲存貯體設定為要接收存取日誌的目標儲存貯體,儲存貯體許可必須將儲存貯體的寫入存取授予 Log Delivery (日誌交付) 群組。當您啟用儲存貯體上的伺服器存取記錄日誌時,Amazon S3 主控台會將寫入存取權限授予您選擇接收日誌之目標儲存貯體的 Log Delivery (日誌交付) 群組。如需伺服器存取記錄日誌的詳細資訊,請參閱「啟用 Amazon S3 伺服器存取記錄日誌」。
-
-
若要授予對另一個 的存取權 AWS 帳戶,請執行下列動作:
-
選擇 Add grantee (新增承授者)。
-
在 Grantee (被授予者) 方塊中,輸入其他 AWS 帳戶的正式 ID。
-
從下列 ACL 許可中選取:
-
Objects (物件) – List (列出) 或 Write (寫入)
-
Bucket ACL (儲存貯體) – Read (讀取) 或 Write (寫入)
-
警告
當您授予資源的其他 AWS 帳戶 存取權時,請注意 AWS 帳戶 可以將他們的許可委派給其帳戶下的使用者。這稱為跨帳戶存取。如需有關使用跨帳戶存取的資訊,請參閱《IAM 使用者指南》中的建立角色將許可委派給 IAM 使用者。
-
-
若要移除對另一個 的存取 AWS 帳戶,請在對另一個 的存取 AWS 帳戶下,選擇移除。
-
若要儲存您所做的變更,請選擇 Save changes (儲存變更)。
主控台會顯示重複被授予者的合併存取授予。若要查看 ACLs 的完整清單,請使用 Amazon S3 REST API AWS CLI,或 AWS SDKs。下表顯示您可以在 Amazon S3 主控台中為物件設定的 ACL 許可。
主控台許可 | ACL 許可 | Access (存取) |
---|---|---|
物件 - 讀取 | READ |
允許被授予者讀取物件資料及其中繼資料。 |
物件 ACL - 讀取 | READ_ACP |
允許被授予者讀取物件 ACL。 |
物件 ACL - 寫入 | WRITE_ACP |
允許被授予者寫入適用物件的 ACL |
如需 ACL 許可的詳細資訊,請參閱存取控制清單 (ACL) 概觀。
重要
如果您的一般用途儲存貯體使用 S3 物件擁有權的儲存貯體擁有者強制執行設定,您必須使用 政策來授予一般用途儲存貯體和其中物件的存取權。在啟用儲存貯體擁有者強制執行設定的情況下,請求設定存取控制清單 (ACL) 或更新 ACL 失敗,並傳回 AccessControlListNotSupported
錯誤碼。仍支援讀取 ACL 的請求。
設定物件的 ACL 許可
登入 AWS Management Console ,並在 http://console.aws.amazon.com/s3/
:// 開啟 Amazon S3 主控台。 -
在 Buckets (儲存貯體) 清單中,選擇包含該物件的儲存貯體名稱。
-
在 objects (物件) 清單中,選擇您要設定許可的物件名稱。
-
選擇 Permissions (許可)。
-
在 Access control list (ACL) (存取控制清單 (ACL)) 下,選擇 Edit (編輯)。
您可以編輯物件的下列 ACL 許可:
物件
-
Read (讀取) – 允許承授者讀取物件資料及其中繼資料
物件 ACL
-
Read (讀取) – 允許承授者讀取物件 ACL。
-
Write (寫入) – 允許承授者寫入適用物件的 ACL。在 S3 主控台中,您只能將寫入存取權授予儲存貯體擁有者 (您的 AWS 帳戶)。強烈建議您不要授予其他承授者的寫入存取權。不過,如果您需要授予寫入存取權,您可以使用 AWS CLI、 AWS SDKs或 REST API。
-
-
您可以管理下列項目的物件存取許可:
-
其他擁有者的存取
擁有者是指 AWS 帳戶根使用者,而不是 IAM AWS Identity and Access Management 使用者。如需根使用者的詳細資訊,請參閱《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 物件擁有權的儲存貯體擁有者強制執行設定,您必須使用 政策來授予一般用途儲存貯體和其中物件的存取權。在啟用儲存貯體擁有者強制執行設定的情況下,請求設定存取控制清單 (ACL) 或更新 ACL 失敗,並傳回 AccessControlListNotSupported
錯誤碼。仍支援讀取 ACL 的請求。
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) 為基礎的許可。所有物件預設皆為私有。只有擁有者有完整的存取控制權。新增物件時,您可以將許可授予個人或 Amazon S3 定義的 AWS 帳戶 預先定義群組。然後,這些許可會新增至物件上的存取控制清單 (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-control
-
如需使用 管理 ACLs 的詳細資訊 AWS CLI,請參閱《 AWS CLI 命令參考》中的 put-bucket-acl
重要
如果您的一般用途儲存貯體使用 S3 物件擁有權的儲存貯體擁有者強制執行設定,您必須使用 政策來授予一般用途儲存貯體和其中物件的存取權。在啟用儲存貯體擁有者強制執行設定的情況下,請求設定存取控制清單 (ACL) 或更新 ACL 失敗,並傳回 AccessControlListNotSupported
錯誤碼。仍支援讀取 ACL 的請求。