強制執行程式碼邏輯如何 AWS 評估允許或拒絕存取的請求 - AWS Identity and Access Management

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

強制執行程式碼邏輯如何 AWS 評估允許或拒絕存取的請求

AWS 強制執行程式碼會決定是否 AWS 應允許或拒絕傳送至 的請求。 會 AWS 評估適用於請求內容的所有政策。以下是 AWS 政策評估邏輯的摘要。

  • 根據預設,所有的要求會一律拒絕 ( AWS 帳戶根使用者提出的要求例外,該使用者具有完整存取權)。

  • 請求必須依照下列評估邏輯,由政策或一組政策明確允許,才能允許。

  • 明確拒絕會覆寫明確允許。

下列流程圖提供如何針對單一帳戶和跨帳戶存取做出決策的詳細資訊。

評估流程圖
  • 拒絕評估 – 根據預設,所有的請求一律拒絕。這稱為隱含拒絕。 AWS 強制執行程式碼會評估帳戶內套用至請求的所有政策。其中包括 AWS Organizations SCPs 和 RCPs、資源型政策、身分型政策、IAM許可界限和工作階段政策。在所有這些政策中,強制執行程式碼會尋找套用到請求的 Deny 陳述式。此稱為明確拒絕。如果強制執行程式碼找到一個適用的明確拒絕,強制執行程式碼會傳回拒絕 的最終決定。如果沒有明確拒絕,該強制執行程式碼評估會持續執行。

  • Organizations RCPs – 強制執行程式碼會評估套用至請求 AWS Organizations 的資源控制政策 (RCPs)。RCPs 適用於RCPs連接 的帳戶資源。如果強制執行程式碼在 中找不到任何適用的Allow陳述式RCPs,強制執行程式碼會傳回拒絕 的最終決定。如果沒有 RCP,或 RCP允許請求的動作,則強制執行程式碼評估會繼續進行。

  • Organizations SCPs – 強制執行程式碼會評估適用於請求 AWS Organizations 的服務控制政策 (SCPs)。SCPs 適用於SCPs連接 的帳戶主體。如果強制執行程式碼在 中找不到任何適用的Allow陳述式SCPs,強制執行程式碼會傳回拒絕 的最終決定。如果沒有 SCP,或 SCP允許請求的動作,則強制執行程式碼評估會繼續。

  • 資源型政策 – 在同一帳戶內,資源型政策會根據存取資源的主體類型以及資源型政策中允許的主體,以不同的方式影響政策評估。根據主體類型,資源型政策中的 Allow 可能會導致 Allow 的最終決定,即使身分型識別政策、許可界限或工作階段政策中有隱含拒絕。

    對於大多數資源,您只需Allow對身分型政策或資源型政策中的主體明確表示,即可授予存取權。IAM 角色信任政策和KMS金鑰政策是此邏輯的例外狀況,因為它們必須明確允許主體 的存取。

    如果指定的主體是IAM使用者、IAM角色或工作階段主體,則資源型政策邏輯與其他政策類型不同。工作階段主體包括IAM角色工作階段IAM聯合使用者工作階段 。如果資源型政策將許可直接授予提出請求IAM的使用者或工作階段主體,則身分型政策、許可界限或工作階段政策中的隱含拒絕不會影響最終決策。

    • IAM 角色 – 授予IAM角色許可的資源型政策ARN受限於許可界限或工作階段政策中的隱含拒絕。您可以在主體元素或aws:PrincipalArn條件索引鍵ARN中指定角色。在這兩種情況下,發出請求的主體都是IAM角色工作階段

      除非身分型政策包含明確拒絕,否則許可界限和工作階段政策不會限制在主體元素中使用aws:PrincipalArn條件索引鍵搭配萬用字元 (*) 授予的許可。如需詳細資訊,請參閱IAM角色主參與者

      範例角色 ARN

      arn:aws:iam::111122223333:role/examplerole
    • IAM 角色工作階段 – 在相同 帳戶中,以資源為基礎的政策,授予IAM角色工作階段的許可,將許可直接ARN授予擔任的角色工作階段。直接授予工作階段的許可不會受到身分識別型政策、許可界限或工作階段政策中隱含拒絕的限制。當您擔任角色並提出請求時,提出請求的主體是IAM角色工作階段ARN,而不是角色本身ARN的 。如需詳細資訊,請參閱角色工作階段主體

      角色工作階段範例 ARN

      arn:aws:sts::111122223333:assumed-role/examplerole/examplerolesessionname
    • IAM 使用者 – 在相同的帳戶中,授予許可給IAM使用者 ARN(非聯合使用者工作階段) 的資源型政策,不受身分型政策或許可界限中的隱含拒絕的限制。

      IAM使用者範例 ARN

      arn:aws:iam::111122223333:user/exampleuser
    • IAM 聯合使用者工作階段 – IAM 聯合使用者工作階段是呼叫 建立的工作階段GetFederationToken。當聯合身分使用者提出請求時,提出請求ARN的委託人是聯合身分使用者ARN,而不是聯合身分IAM使用者的 。在同一帳戶內,以資源為基礎的政策,將許可授予聯合身分使用者直接ARN授予工作階段的許可。直接授予工作階段的許可不會受到身分識別型政策、許可界限或工作階段政策中隱含拒絕的限制。

      不過,如果資源型政策授予聯合身分IAM使用者許可,則聯合身分使用者在工作階段期間提出ARN的請求會受到許可界限或工作階段政策中的隱含拒絕的限制。

      IAM聯合使用者工作階段範例 ARN

      arn:aws:sts::111122223333:federated-user/exampleuser
  • 身分型政策 – 強制執行程式碼會檢查主體的身分型政策。對於IAM使用者,這些包括使用者政策和使用者所屬群組的政策。如果身分型政策沒有允許請求動作的身分型政策,或身分型政策中沒有陳述式,則會隱含拒絕請求,且強制執行程式碼會傳回拒絕 的最終決定。如果任何適用的身分型政策中的任何陳述式允許請求的動作,程式碼評估會繼續進行。

  • IAM 許可界限 – 強制執行程式碼會檢查主體使用的IAM實體是否具有許可界限。如果用來設定許可界限的政策不允許該請求動作,則表示請求已遭隱含拒絕。強制執行程式碼傳回拒絕的最後決定。如果沒有許可界限,或許可界限允許請求的動作,則程式碼評估會繼續。

  • 工作階段政策 – 強制執行程式碼會檢查主體是否為工作階段主體。工作階段主體包括IAM角色工作階段或IAM聯合使用者工作階段。如果主體不是工作階段主體,則強制執行程式碼會傳回允許的最終決定。

    對於工作階段主體,強制執行程式碼會檢查工作階段政策是否已在請求中傳遞。您可以在使用 AWS CLI 或 AWS 時傳遞工作階段政策API,以取得角色或IAM聯合使用者的臨時憑證。如果您未傳遞工作階段政策,則會建立預設工作階段政策,且強制執行程式碼會傳回允許 的最終決策。

    • 如果工作階段政策存在,且不允許該要求動作,則表示要求已遭隱含拒絕。強制執行程式碼傳回拒絕的最後決定。

    • 強制執行程式碼會檢查主體是否為角色工作階段。如果主體是角色工作階段,則要求為已允許。否則,請求會隱含拒絕,強制執行程式碼會傳回拒絕 的最終決策。

    • 如果有工作階段政策,且政策允許該要求動作,則強制執行程式碼會傳回允許的最終決定。