本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon S3 如何授權物件操作要求
Amazon S3 收到對物件操作的請求時,就會將所有相關許可,包括以資源為基礎的許可 (物件存取控制清單 (ACL)、儲存貯體政策、儲存貯體 ACL) 及 IAM 使用者政策,轉換成一組要在執行時間評估的政策。然後,它會執行一連串的步驟以評估這組產生的政策。在每個步驟中,它會在三個特定內容 (使用者內容、儲存貯體內容與物件內容) 中評估政策子集:
-
使用者內容 – 如果申請者是 IAM 主體,則主體必須擁有 AWS 帳戶 其所屬父系的許可。在此步驟中,Amazon S3 會評估父帳戶 (亦稱為內容授權單位) 所擁有的政策子集。此政策子集包含父帳戶連接至委託人的使用者政策。如果父帳戶也擁有請求中的資源 (儲存貯體或物件),Amazon S3 會同時評估對應的資源政策 (儲存貯體政策、儲存貯體 ACL 和物件 ACL)。
注意
如果父系 AWS 帳戶 擁有資源 (儲存貯體或物件),則可以使用使用者政策或資源政策,將資源許可授予其 IAM 主體。
-
儲存貯體內容 – 在此內容中,Amazon S3 會評估 AWS 帳戶 (儲存貯體擁有者) 所擁有的政策。
如果 AWS 帳戶 擁有請求中物件的 與儲存貯體擁有者不同,Amazon S3 會檢查儲存貯體擁有者是否已明確拒絕存取物件的政策。如已在物件上設定明確拒絕,Amazon S3 就不會授權要求。
-
物件內容 – 請求者必須取得物件擁有者的許可,才能執行特定的物件操作。在此步驟中,Amazon S3 會評估物件 ACL。
注意
如果儲存貯體擁有者與物件擁有者相同,則可以在儲存貯體政策中授予對物件的存取,並在儲存貯體內容中進行評估。如果擁有者不同,物件擁有者必須使用物件 ACL 來授予許可。如果 AWS 帳戶 擁有物件的 也是 IAM 主體所屬的父帳戶,則可以在使用者政策中設定物件許可,該政策會在使用者內容中進行評估。如需使用這些存取政策替代方案的詳細資訊,請參閱「使用政策來管理 Amazon S3 資源存取的逐步解說」。
如果您作為儲存貯體擁有者想要擁有儲存貯體中的所有物件,並使用儲存貯體政策或以 IAM 為基礎的政策來管理對這些物件的存取權,則可以套用儲存貯體擁有者強制執行的物件所有權設定。使用此設定,您身為儲存貯體擁有者會自動擁有並完全控制儲存貯體中的每個物件。無法編輯儲存貯體和物件 ACL,也不再考慮存取。如需詳細資訊,請參閱控制物件的擁有權並停用儲存貯體的 ACL。
下圖說明物件操作的內容評估。

物件操作請求範例
在此範例中,其父系 AWS 帳戶 為 1111-1111-1111 的 IAM 使用者 Jill 會在 擁有的儲存貯體中,為 AWS 帳戶 3333-3333-3333 擁有的物件傳送物件操作請求 (例如 GetObject
) AWS 帳戶 2222-2222-2222。

Jill 需要父系 AWS 帳戶、儲存貯體擁有者和物件擁有者的許可。Amazon S3 評估內容的方式如下:
-
由於請求來自 IAM 主體,Amazon S3 會評估使用者內容,以確認父系 AWS 帳戶 1111-1111-1111 已授予 Jill 執行請求操作的許可。如果她具備該許可,Amazon S3 會評估儲存貯體內容。否則,Amazon S3 會拒絕要求。
-
在儲存貯體內容中,儲存貯體擁有者 AWS 帳戶 2222-2222-2222 是內容授權單位。Amazon S3 會評估儲存貯體政策,判斷儲存貯體擁有者是否已明確拒絕 Jill 存取物件。
-
在物件內容中,內容授權單位是 AWS 帳戶 3333-3333-3333,也就是物件擁有者。Amazon S3 會評估物件 ACL,判斷 Jill 是否具備存取物件的許可。如果具備,Amazon S3 會授權要求。