

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

# 已驗證的存取政策邏輯短路
<a name="auth-policies-policy-eval-short-circ"></a>

您可能想要撰寫 AWS Verified Access 政策，評估可能存在或不存在於指定內容中的資料。如果您在不存在的內容中參考資料，無論意圖為何，Cedar 都會產生錯誤並評估拒絕存取的政策。例如，這會導致拒絕，因為 `fake_provider`和 `bogus_key` 不存在於此內容中。

```
permit(principal, action, resource) when {
  context.fake_provider.bogus_key > 42
};
```

若要避免這種情況，您可以使用 `has`運算子檢查金鑰是否存在。如果`has`運算子傳回 false，進一步評估鏈結陳述式會停止，而 Cedar 不會產生嘗試參考不存在項目的錯誤。

```
permit(principal, action, resource) when {
  context.identity.user has "some_key" && context.identity.user.some_key > 42
};
```

這在指定參考兩個不同信任提供者的政策時最有用。

```
permit(principal, action, resource) when {
  // user is in an allowed group
  context.aws_idc.groups has "c242c5b0-6081-1845-6fa8-6e0d9513c107"
  &&( 
    ( 
      // if CrowdStrike data is present, 
      // permit if CrowdStrike's overall assessment is over 50
      context has "crowdstrike" && context.crowdstrike.assessment.overall > 50
    )
    || 
    (
      // if Jamf data is present,
      // permit if Jamf's risk score is acceptable
      context has "jamf" && ["LOW", "NOT_APPLICABLE", "MEDIUM", "SECURE"].contains(context.jamf.risk) 
    )
  )
};
```