本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon S3 如何授權儲存貯體操作要求
當 Amazon S3 收到儲存貯體操作的要求時,Amazon S3 會將所有相關許可轉換為一組政策,以便在執行階段進行評估。相關權限包括以資源為基礎的權限 (例如儲存貯體政策和值區存取控制清單) 和使用者政策 (如果要求來自IAM主體)。然後,Amazon S3 會根據特定的上下文 (使用者內容或儲存貯體內容),以一系列步驟評估產生的政策集:
-
使用者前後關聯 — 如果請求者是IAM主參與者,則主參與者必須具有其所屬父項 AWS 帳戶 的權限。在此步驟中,Amazon S3 會評估父帳戶 (亦稱為內容授權單位) 所擁有的政策子集。此政策子集包含父帳戶連接至委託人的使用者政策。如果父項也擁有請求中的資源 (在本例中為儲存貯體),Amazon S3 也會同時評估對應的資源政策 (儲存貯體政策和儲存貯體ACL)。每當提出儲存貯體操作要求時,伺服器存取日誌都會記錄要求者的正式 ID。如需詳細資訊,請參閱 使用伺服器存取記錄記錄要求。
-
儲存貯體內容 – 請求者必須取得儲存貯體擁有者的許可,才能執行特定的儲存貯體操作。在此步驟中,Amazon S3 會評估擁有儲存貯體的政策子集。 AWS 帳戶
值區擁有者可以使用值區政策或值區來授予權限ACL。如果擁 AWS 帳戶 有值區的也是IAM主體的父項帳戶,則可以在使用者原則中設定值區權限。
下圖說明儲存貯體操作的內容評估。
![圖例顯示值區作業的內容式評估。](images/AccessControlAuthorizationFlowBucketResource.png)
下列範例說明評估邏輯。
範例 1:由儲存貯體擁有者所要求的儲存貯體操作
在此範例中,儲存貯體擁有者使用 AWS 帳戶的根憑證,傳送儲存貯體操作請求。
![顯示值區擁有者要求的值區作業的圖例。](images/example10-policy-eval-logic.png)
Amazon S3 會執行下列內容評估:
-
由於請求是透過 AWS 帳戶的根使用者憑證提出,因此不會評估使用者內容。
-
在儲存貯體內容中,Amazon S3 會檢閱儲存貯體政策,判斷要求者是否具備執行操作的許可。然後 Amazon S3 會授權要求。
範例 2:非值區擁有者所要求的值區作業 AWS 帳戶
在此範例中,使用 AWS 帳戶 1111-1111-1111 的根使用者憑證提出了一個儲存貯體操作請求,但儲存貯體擁有者為 AWS 帳戶 2222-2222-2222。沒有IAM使用者參與此要求。
![圖例顯示不是值區擁有者所要求的值區作業。 AWS 帳戶](images/example20-policy-eval-logic.png)
在此範例中,Amazon S3 會評估上下文,如下所示:
-
由於要求是使用的根使用者認證來提出 AWS 帳戶,因此不會評估使用者前後關聯。
-
在儲存貯體內容中,Amazon S3 會檢查儲存貯體政策。如果儲存貯體擁有者 (AWS 帳戶 2222-2222-2222) 未授權 AWS 帳戶 1111-1111 執行要求的作業,Amazon S3 會拒絕該要求。否則,Amazon S3 會授權要求並執行操作。
範例 3:IAM主體所請求的時段作業,其上階也 AWS 帳戶 是值區擁有者
在此範例中,請求是由 AWS 帳戶 1111-1111 中的IAM使用者 Jill 傳送,該使用者也擁有儲存貯體。
![顯示IAM主體和值區擁有者要求之值區作業的圖例。](images/example30-policy-eval-logic.png)
Amazon S3 會執行下列內容評估:
-
由於請求來自IAM主體,因此在使用者內容中,Amazon S3 會評估屬於父項的所有政策, AWS 帳戶 以判斷 Jill 是否有執行操作的權限。
在此範例中,主體所屬的父項 AWS 帳戶 1111-1111-1111 也是值區擁有者。因此,除了使用者政策之外,Amazon S3 還會在相同內容中評估儲存貯體政策和儲存貯體,因為它們屬於同一個帳戶。ACL
-
由於 Amazon S3 將儲存貯體政策和儲存貯體評估ACL為使用者內容的一部分,因此不會評估儲存貯體內容。
範例 4:父項不 AWS 帳戶 是時段擁有者之IAM主體所請求的時段作業
在這個例子中,請求是由吉爾(其父系 AWS 帳戶 為 1111-1111)的IAM用戶發送,但存儲桶由另一個 2222-2222-2222 所擁有。 AWS 帳戶
![圖例顯示不是值區擁有者的IAM主體要求的值區作業。](images/example40-policy-eval-logic.png)
Jill 將需要父項 AWS 帳戶 和值區擁有者的權限。Amazon S3 評估內容的方式如下:
-
由於請求來自IAM主體,因此 Amazon S3 會檢閱帳戶編寫的政策來評估使用者內容,以確認 Jill 具有必要的許可。如果 Jill 擁有許可,則 Amazon S3 會繼續評估儲存貯體內容。如果 Jill 沒有權限,它會拒絕該請求。
-
在儲存貯體內容中,Amazon S3 會驗證儲存貯體擁有者 2222-2222-2222 是否已授與 Jill (或其父輩 AWS 帳戶) 執行要求的作業的權限。如果她具有該權限,Amazon S3 會授予請求並執行操作。否則,Amazon S3 會拒絕要求。