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

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

Amazon S3 如何授權要求

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

注意

如果 Amazon S3 權限檢查找不到有效的許可,則會傳回拒絕存取 (403 禁止) 權限拒絕錯誤。如需詳細資訊,請參閱疑難排解 Amazon S3 中的拒絕存取 (403 禁止) 錯誤

為了確定請求者是否有執行特定操作的許可,Amazon S3 在收到請求時依序執行以下操作:

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

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

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

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

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

      此步驟僅適用於在中的使用者提出要求時 AWS 帳戶。 如果要求是透過使用的 root 使用者認證提出 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)。如需詳細資訊,請參閱控制物件的擁有權並停ACLs用值區

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