

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

# Amazon S3 如何授權儲存貯體操作要求
<a name="access-control-auth-workflow-bucket-operation"></a>

當 Amazon S3 收到儲存貯體操作的要求時，Amazon S3 會將所有相關許可轉換為一組政策，以便在執行階段進行評估。相關許可包含以資源為基礎的許可 (例如儲存貯體政策和儲存貯體存取控制清單) 和使用者政策 (如果要求來自 IAM 委託人)。然後，Amazon S3 會根據特定內容 (使用者內容或儲存貯體內容)，執行一連串的步驟以評估這組產生的政策：

1. **使用者內容** – 如果申請者是 IAM 主體，則主體必須擁有 AWS 帳戶 其所屬父系的許可。在此步驟中，Amazon S3 會評估父帳戶 (亦稱為內容授權單位) 所擁有的政策子集。此政策子集包含父帳戶連接至委託人的使用者政策。如果父帳戶也擁有要求中的資源 (在本例中為儲存貯體)，Amazon S3 也會同時評估對應的資源政策 (儲存貯體政策與儲存貯體 ACL)。每當提出儲存貯體操作要求時，伺服器存取日誌都會記錄要求者的正式 ID。如需詳細資訊，請參閱[使用伺服器存取記錄記錄要求](ServerLogs.md)。

1. **儲存貯體內容** – 請求者必須取得儲存貯體擁有者的許可，才能執行特定的儲存貯體操作。在此步驟中，Amazon S3 會評估擁有 AWS 帳戶 儲存貯體之 擁有的政策子集。

   儲存貯體擁有者可以使用儲存貯體政策或儲存貯體 ACL 來授予許可。如果擁有儲存貯體的 AWS 帳戶 同時也是 IAM 主體的父帳戶，則可以在使用者政策中設定儲存貯體許可。

 下圖說明儲存貯體操作的內容評估。

![\[圖例顯示根據儲存貯體操作的內容進行評估。\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/images/AccessControlAuthorizationFlowBucketResource.png)


下列範例說明評估邏輯。

## 範例 1：由儲存貯體擁有者所要求的儲存貯體操作
<a name="example1-policy-eval-logic"></a>

 在此範例中，儲存貯體擁有者使用 AWS 帳戶的根憑證，傳送儲存貯體操作請求。

![\[圖例顯示根據儲存貯體擁有者請求的儲存貯體操作。\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/images/example10-policy-eval-logic.png)


 Amazon S3 會執行下列內容評估：

1.  由於請求是透過 AWS 帳戶的根使用者憑證提出，因此不會評估使用者內容。

1.  在儲存貯體內容中，Amazon S3 會檢閱儲存貯體政策，判斷要求者是否具備執行操作的許可。然後 Amazon S3 會授權要求。

## 範例 2： AWS 帳戶 非儲存貯體擁有者之 請求的儲存貯體操作
<a name="example2-policy-eval-logic"></a>

在此範例中，使用 AWS 帳戶 1111-1111-1111 的根使用者憑證提出了一個儲存貯體操作請求，但儲存貯體擁有者為 AWS 帳戶 2222-2222-2222。此要求未涉及任何 IAM 使用者。

![\[圖例顯示非儲存貯體擁有者之 AWS 帳戶 請求的儲存貯體操作。\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/images/example20-policy-eval-logic.png)


在此範例中，Amazon S3 評估內容的方式如下：

1. 由於請求是透過使用 的根使用者登入資料提出 AWS 帳戶，因此不會評估使用者內容。

1. 在儲存貯體內容中，Amazon S3 會檢查儲存貯體政策。如果儲存貯體擁有者 (AWS 帳戶 2222-2222-2222) 尚未授權 AWS 帳戶 1111-1111-1111 執行請求的操作，Amazon S3 會拒絕請求。否則，Amazon S3 會授權要求並執行操作。

## 範例 3：由父系 AWS 帳戶 也是儲存貯體擁有者的 IAM 主體請求的儲存貯體操作
<a name="example3-policy-eval-logic"></a>

 在此範例中，請求的傳送者 Jill 是 AWS 帳戶 1111-1111-1111 的 IAM 使用者，該帳戶同時也是儲存貯體擁有者。

![\[圖例顯示 IAM 主體和儲存貯體擁有者請求的儲存貯體操作。\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/images/example30-policy-eval-logic.png)


 Amazon S3 會執行下列內容評估：

1.  由於請求來自 IAM 主體，在使用者內容中，Amazon S3 會評估屬於父系的所有政策 AWS 帳戶 ，以判斷 Jill 是否具有執行操作的許可。

    在此範例中，委託人所屬的 parent AWS 帳戶 1111-1111-1111 也是儲存貯體擁有者。因此，除了使用者政策之外，Amazon S3 也會在相同內容中評估儲存貯體政策與儲存貯體 ACL，因為這兩者屬於相同的帳戶。

1. 由於 Amazon S3 在評估使用者內容的過程中已評估儲存貯體政策與儲存貯體 ACL，因此不會評估儲存貯體內容。

## 範例 4：由父系 AWS 帳戶 不是儲存貯體擁有者的 IAM 主體請求的儲存貯體操作
<a name="example4-policy-eval-logic"></a>

在此範例中，請求是由父系 AWS 帳戶 為 1111-1111-1111 但儲存貯體為另一個 2222-2222-2222 的 IAM 使用者 Jill AWS 帳戶傳送。

![\[圖例顯示非儲存貯體擁有者之 IAM 主體請求的儲存貯體操作。\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/images/example40-policy-eval-logic.png)


Jill 需要父擁有者 AWS 帳戶 和儲存貯體擁有者的許可。Amazon S3 評估內容的方式如下：

1. 由於要求是來自 IAM 委託人，因此 Amazon S3 會檢閱帳戶所撰寫的政策以確認 Jill 具備必要的許可，藉此評估使用者內容。如果 Jill 具備許可，則 Amazon S3 會繼續評估儲存貯體內容。如果 Jill 沒有許可，則會拒絕請求。

1.  在儲存貯體內容中，Amazon S3 會驗證儲存貯體擁有者 2222-2222-2222 是否已授予 Jill （或其父系 AWS 帳戶) 執行請求操作的許可。如果她具備該許可，Amazon S3 會授權請求並執行操作。否則，Amazon S3 會拒絕要求。