Amazon S3 如何授權要求 - Amazon Simple Storage Service

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

Amazon S3 如何授權要求

當 Amazon S3 收到要求時 (例如儲存貯體或物件操作),它會先確認要求者具備必要的許可。Amazon S3 會評估所有相關的存取政策、使用者政策以及資源型政策 (儲存貯體政策、儲存貯體存取控制清單 (ACL)、物件 ACL),來決定是否要授權請求。

注意

如果 Amazon S3 許可檢查找不到有效的許可,就會傳回「存取遭拒 (403 禁止)」許可遭拒錯誤。如需詳細資訊,請參閱對 Amazon S3 中的存取遭拒 (403 禁止) 錯誤進行故障診斷

為了判斷請求者是否具備執行特定操作的許可,Amazon S3 會在收到請求時,依序執行下列操作:

  1. 在執行時期,將所有相關的存取政策 (使用者政策、儲存貯體政策和 ACL) 轉換成一組用於評估的政策。

  2. 執行下列步驟以評估這組產生的政策。在每個步驟中,Amazon S3 會根據內容授權單位,在特定內容中評估政策子集。

    1. 使用者內容 – 在使用者內容中,使用者所屬的父帳戶即為內容授權單位。

      Amazon S3 會評估父帳戶所擁有的政策子集。此子集包含父帳戶連接至使用者的使用者政策。如果父帳戶也擁有請求中的資源 (儲存貯體或物件),Amazon S3 也會同時評估對應的資源政策 (儲存貯體政策、儲存貯體 ACL 和物件 ACL)。

      使用者必須具備父帳戶的執行操作許可。

      只有在請求是由 AWS 帳戶使用者提出的情況下,才需要執行此步驟。如果使用 的根使用者登入資料提出請求 AWS 帳戶,Amazon S3 會略過此步驟。

    2. 儲存貯體內容 – 在儲存貯體內容中,Amazon S3 會評估擁有儲存貯 AWS 帳戶 體之 擁有的政策。

      如果要求是針對儲存貯體操作,要求者必須具備儲存貯體擁有者的許可。如果要求是針對物件,Amazon S3 會評估儲存貯體擁有者所擁有的全部政策,檢查儲存貯體擁有者是否未明確拒絕對物件的存取。如已設定明確拒絕,Amazon S3 就不會授權要求。

    3. 物件內容 – 如果請求是針對物件,Amazon S3 會評估物件擁有者所擁有的政策子集。

以下是一些範例案例,說明 Amazon S3 如何授權請求。

範例 – 請求者是 IAM 主體

如果申請者是 IAM 委託人,Amazon S3 必須判斷委託人所屬 AWS 帳戶 的父系是否已授予委託人執行操作的必要許可。此外,如果要求是針對儲存貯體操作 (例如要求列出儲存貯體內容),Amazon S3 必須確認儲存貯體擁有者已授予要求者執行操作的許可。若要對資源執行特定操作,IAM 主體需要其 AWS 帳戶 所屬父系和擁有資源 AWS 帳戶 的 的許可。

範例 – 請求者是 IAM 主體 – 如果請求是針對儲存貯體擁有者未擁有之物件的操作。

如果請求是針對儲存貯體擁有者未擁有之物件的操作,除了確定請求者具備物件擁有者的許可之外,Amazon S3 也必須檢查儲存貯體政策,確定儲存貯體擁有者並未在物件上設定明確拒絕。儲存貯體擁有者 (付費者) 可以明確拒絕對儲存貯體中物件的存取,無論誰是其擁有者皆是如此。儲存貯體擁有者也可刪除儲存貯體中的任何物件。

根據預設,當另一個 將物件 AWS 帳戶 上傳到您的 S3 一般用途儲存貯體時,該帳戶 (物件寫入器) 擁有該物件、可以存取該物件,並且可以透過存取控制清單 (ACLs。您可以使用物件擁有權來變更此預設行為,以便停用 ACLs,而且身為儲存貯體擁有者,您會自動擁有一般用途儲存貯體中的每個物件。因此,資料的存取控制是以政策為基礎,例如 IAM 使用者政策、S3 儲存貯體政策、虛擬私有雲端 (VPC) 端點政策,以及 AWS Organizations 服務控制政策 SCPs)。如需詳細資訊,請參閱控制物件的擁有權並停用儲存貯體的 ACL

如需 Amazon S3 如何評估存取原則以授權或拒絕儲存貯體操作和物件操作要求的詳細資訊,請參閱下列主題: