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

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

Amazon S3 如何授權要求

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

注意

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

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

  1. 在執行階段將所有相關存取政策 (使用者政策、儲存貯體政策 和 ACLs) 轉換為一組政策以供評估。

  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。您可以使用 Object Ownership 變更此預設行為,以停用 ACLs ,而身為儲存貯體擁有者的您會自動擁有儲存貯體中的每個物件。因此,資料存取控制是以政策為基礎,例如IAM使用者政策、S3 儲存貯體政策、虛擬私有雲端 (VPC) 端點政策,以及 AWS Organizations 服務控制政策 ()SCPs。如需詳細資訊,請參閱控制物件的擁有權,並ACLs停用儲存貯體

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