

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

# 驗證政策檢查
<a name="access-analyzer-checks-validating-policies"></a>

IAM Access Analyzer 提供政策檢查功能，協助您在將 IAM 政策連接到實體之前驗證這些政策。包括政策驗證提供的基本政策檢查，根據[政策文法](reference_policies_grammar.md)和 [AWS 最佳實務](best-practices.md)來驗證您的政策。您可以檢視政策驗證檢查問題清單，包含安全警告、錯誤、一般警告和政策的建議。

您可以使用自訂政策檢查，根據您的安全標準來檢查是否有新的存取權。每次檢查新存取權都會收取費用。如需定價的詳細資訊，請參閱 [IAM Access Analyzer 定價](https://aws.amazon.com/iam/access-analyzer/pricing)。

## 自訂政策檢查的運作方式
<a name="access-analyzer-custom-policy-checks-overview"></a>

您可以使用 AWS Identity and Access Management Access Analyzer 自訂政策檢查，根據您指定的安全標準來驗證 IAM 政策。您可以執行以下類型的自訂政策檢查：
+ **對照參考政策進行檢查**：編輯政策時，您可以檢查更新版政策是否與參考政策 (例如現有政策版本) 相比，是否會授予新的存取權。您可以在使用 IAM 主控台中的 AWS Command Line Interface (AWS CLI)、IAM Access Analyzer API (API) 或 JSON 政策編輯器編輯政策時執行此檢查。
**注意**  
IAM Access Analyzer 自訂政策檢查允許在 `Principal` 元素中使用萬用字元來參考資源政策。
+ **根據 IAM 動作或資源清單進行檢查**：您可以進行檢查以確保政策不允許特定的 IAM 動作或資源。如果只指定動作，則 IAM Access Analyzer 會檢查該動作對政策中所有資源的存取。如果只指定資源，則 IAM Access Analyzer 會檢查哪些動作可以存取指定的資源。如果同時指定了動作和資源，則 IAM Access Analyzer 會檢查哪些指定的動作可以存取指定的資源。您可以在使用 或 AWS CLI API 建立或編輯政策時執行此檢查。
+ **檢查公開存取**：您可以檢查資源政策是否可以將公開存取授予指定的資源類型。您可以在使用 或 AWS CLI API 建立或編輯政策時執行此檢查。這種類型的自訂政策檢查與[預覽存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-access-preview.html)不同，因為該檢查不需要任何帳戶或外部存取分析器內容。存取預覽可讓您在部署資源許可之前預覽 IAM Access Analyzer 調查結果，而自訂檢查則會判斷政策是否可能授予公開存取。

每次自訂政策檢查都會收取費用。如需定價的詳細資訊，請參閱 [IAM Access Analyzer 定價](https://aws.amazon.com/iam/access-analyzer/pricing)。

您可以對身分和資源型政策執行自訂政策檢查。自訂政策檢查不會依賴模式比對技術或檢查存取日誌，來判斷政策是否允許新存取權或指定存取權。與外部存取權調查結果類似，自訂政策檢查是以 [Zelkova](https://aws.amazon.com/blogs/security/protect-sensitive-data-in-the-cloud-with-automated-reasoning-zelkova/) 為基礎。會將 IAM 政策轉換為等效的邏輯陳述式，並針對問題執行一套通用和專用的邏輯求解器 (可滿足性模數理論)。為了檢查是否有新的存取權或指定存取權，IAM Access Analyzer 會將 Zelkova 重複套用至政策。根據政策內容，查詢範圍會越來越限縮，以符合政策允許的行為類別特徵。如需可滿足性模數理論的詳細資訊，請參閱[可滿足性模數理論](https://people.eecs.berkeley.edu/~sseshia/pubdir/SMT-BookChapter.pdf)。

在罕見情況下，IAM Access Analyzer 無法完全判斷政策陳述式是否會授予新的存取權或指定存取權。若發生這種情況，會錯誤地因為未通過自訂政策檢查而宣告誤判。IAM Access Analyzer 旨在提供全方位政策評估，並致力將誤判降到最低。此做法表示 IAM Access Analyzer 可充分保證，通過檢查就表示政策不會授予存取權。您可以檢視 IAM Access Analyzer 回應中報告的政策陳述式，以手動方式審視失敗的檢查。

## 檢查新存取權的參考政策範例
<a name="access-analyzer-custom-policy-checks-reference"></a>

如需參考政策的範例，並了解如何設定和執行自訂政策檢查以檢查新存取權，請參閱 GitHub 上的 [IAM Access Analyzer 自訂政策檢查範例](https://github.com/aws-samples/iam-access-analyzer-custom-policy-check-samples)儲存庫。

**使用這些範例之前**  
使用這些參考政策範例前，請執行下列操作：  
詳閱參考政策並根據您的獨特需求自訂內容。
在您的環境中搭配您使用的 AWS 服務 徹底測試參考政策。  
參考政策示範如何實作和使用自訂政策檢查。他們***並非***闡述為完全如圖所示實作的官方 AWS 建議或最佳實務。您有責任仔細測試任何參考政策是否適合解決您環境的安全需求。
自訂政策檢查分析與環境無關。分析僅考慮輸入政策中包含的資訊。例如，自訂政策檢查無法檢查帳戶是否為特定 AWS 組織的成員。因此，自訂政策檢查無法根據 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid) 和 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalaccount) 條件索引鍵的條件索引鍵值來比較新存取權。

## 檢查失敗的自訂政策檢查
<a name="access-analyzer-custom-policy-checks-failed-check"></a>

自訂政策檢查失敗時，IAM Access Analyzer 的回應中會包含造成檢查失敗的政策陳述式之 [陳述式 ID (`Sid`)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html)。雖然陳述式 ID 是選用的政策元素，但建議您為每個政策陳述式都新增陳述式 ID。自訂政策檢查也會傳回陳述式索引，以協助識別檢查失敗的原因。陳述式索引遵循以零為基準的編號方式，第一個陳述式會參考為 0。有多個陳述式造成檢查失敗時，檢查一次只會傳回一個陳述式 ID。建議您修正原因中反白的陳述式，然後重新執行檢查，直到通過檢查為止。