IAM Access Analyzer 自訂政策檢查 - AWS Identity and Access Management

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

IAM Access Analyzer 自訂政策檢查

您可以使用 AWS Identity and Access Management Access Analyzer 自訂政策檢查,根據您指定的安全標準來驗證 IAM 政策。您可以執行下列類型的自訂原則檢查:

  • 對照參考政策進行檢查:編輯政策時,您可以檢查更新版政策是否與參考政策 (例如現有政策版本) 相比,是否會授予新的存取權。當您使用 IAM 主控台中的 AWS Command Line Interface (AWS CLI)、IAM 存取分析器 API (API) 或 JSON 政策編輯器編輯政策時,可以執行此檢查。

  • 檢查 IAM 動作或資源清單:您可以檢查以確保政策不允許特定的 IAM 動作或資源。如果僅指定動作,IAM Access Analyzer 會檢查政策中所有資源的動作存取權。如果只指定資源,則 IAM Access Analyzer 會檢查哪些動作可以存取指定的資源。如果同時指定了動作和資源,則 IAM Access Analyzer 會檢查哪些指定的動作可以存取指定的資源。使用 AWS CLI 或 API 建立或編輯政策時,您可以執行此檢查。

  • 檢查公用存取:您可以檢查資源策略是否可以授與指定資源類型的公用存取權。您可以在使用或 API 建立或編輯政策時執行 AWS CLI 此檢查。此類型的自訂原則檢查與預覽存取不同,因為檢查不需要任何帳戶或外部存取分析器內容。存取預覽可讓您在部署資源許可之前預覽 IAM Access Analyzer 發現項目,而自訂檢查則會決定政策是否可以授與公用存取權。

每次自訂政策檢查都會收取費用。如需定價的詳細資訊,請參閱 IAM Access Analyzer 定價

自訂政策檢查的運作方式

您可以對身分和資源型政策執行自訂政策檢查。自訂政策檢查不會依賴模式比對技術或檢查存取日誌,來判斷政策是否允許新存取權或指定存取權。與外部存取權調查結果類似,自訂政策檢查是以 Zelkova 為基礎。會將 IAM 政策轉換為等效的邏輯陳述式,並針對問題執行一套通用和專用的邏輯求解器 (可滿足性模數理論)。為了檢查是否有新的存取權或指定存取權,IAM Access Analyzer 會將 Zelkova 重複套用至政策。根據政策內容,查詢範圍會越來越限縮,以符合政策允許的行為類別特徵。如需可滿足性模數理論的詳細資訊,請參閱可滿足性模數理論

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

檢查新存取權的參考政策範例

您可以找到參考政策的範例,並了解如何在 IAM Access Analyzer 自訂政策檢查範例儲存庫中針對新存取設定和執行自訂政策檢查 GitHub。

使用這些範例之前

使用這些參考政策範例前,請執行下列操作:

  • 詳閱參考政策並根據您的獨特需求自訂內容。

  • 在您的環境中搭配您使用的 AWS 服務 徹底測試參考政策。

    參考政策示範如何實作和使用自訂政策檢查。他們並非闡述為完全如圖所示實作的官方 AWS 建議或最佳實務。您有責任仔細測試任何參考政策是否適合解決您環境的安全需求。

  • 自訂政策檢查分析與環境無關。分析僅考慮輸入政策中包含的資訊。例如,自訂原則檢查無法檢查帳戶是否為特定 AWS 組織的成員。因此,自訂政策檢查無法根據 aws:PrincipalOrgIdaws:PrincipalAccount 條件索引鍵的條件索引鍵值來比較新存取權。

審視失敗的自訂政策檢查

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

使用自訂政策檢查驗證政策 (主控台)

在 IAM 主控台中使用 JSON 政策編輯器編輯政策時,您可以執行自訂政策檢查,此為選用步驟。您可以檢查與現有版本相比,更新版政策是否授予新的存取權。

在編輯 IAM JSON 政策時檢查是否有新的存取權
  1. 登入 AWS Management Console 並開啟 IAM 主控台,網址為 https://console.aws.amazon.com/iam/

  2. 在左側的導覽窗格中,選擇 Policies (政策)

  3. 在政策清單中,選擇您要編輯的政策之名稱。您可以使用搜尋方塊來篩選政策清單。

  4. 選擇許可索引標籤,然後選擇編輯

  5. 選擇 JSON 選項並更新政策。

  6. 在政策下方的政策驗證窗格中,選擇檢查新的存取權索引標籤,然後選擇檢查政策。如果修改後的許可會授予新存取權,該陳述式會在政策驗證窗格中反白顯示。

  7. 如果您不打算授予新的存取權,請更新政策陳述式並選擇檢查政策,直到沒有偵測到新的存取權為止。

    注意

    每次檢查新存取權都會收取費用。如需定價的詳細資訊,請參閱 IAM Access Analyzer 定價

  8. 選擇下一步

  9. 檢視與儲存頁面上,檢視此政策中定義的許可,然後選擇儲存變更

使用自訂原則檢查 (AWS CLI 或 API) 驗證政策

您可以從 AWS CLI 或 IAM 存取分析器 API 執行 IAM 存取分析器自訂政策檢查。

執行 IAM Access Analyzer 自訂政策檢查 (AWS CLI)

  • 若要在與現有政策進行比較時,檢查更新版政策是否允許新存取權,請執行下列命令:check-no-new-access

  • 若要檢查政策是否不允許指定的存取權,請執行下列命令:check-access-not-granted

  • 若要檢查資源策略是否可以授與指定資源類型的公用存取權,請執行下列命令:check-no-public-access

執行 IAM Access Analyzer 自訂政策檢查 (API)

  • 若要在與現有政策進行比較時,檢查更新版政策是否允許新存取權,請使用 CheckNoNewAccess API 操作。

  • 若要檢查政策是否不允許指定的存取權,請使用 CheckAccessNotGranted API 操作。

  • 若要檢查資源策略是否可以授與指定資源類型的公用存取權,請使用 CheckNoPublicAccessAPI 作業。