Share via


Azure 原則定義稽核效果

評估不符合規範的資源時,效果 audit 會用來在活動記錄中建立警告事件,但不會停止要求。

稽核評估

稽核是在建立或更新資源期間 Azure 原則 所檢查的最後一個效果。 針對 Resource Manager 模式,Azure 原則 然後將資源傳送至資源提供者。 評估資源的建立或更新要求時,Azure 原則 將作業新增Microsoft.Authorization/policies/audit/action至活動記錄,並將資源標示為不符合規範。 在標準合規性評估週期期間,只會更新資源的合規性狀態。

稽核屬性

針對 Resource Manager 模式,稽核效果沒有任何其他屬性可用於 then 原則定義的條件。

針對的資源提供者模式 Microsoft.Kubernetes.Data,稽核效果的子屬性 details如下。 templateInfo針對新的或更新的原則定義,必須使用 ,因為 constraintTemplate 已被取代。

  • templateInfo (必要)

    • 無法與 constraintTemplate 搭配使用。
    • sourceType (必要)
      • 定義條件約束範本的來源類型。 允許的值: PublicURLBase64Encoded

      • 如果 PublicURL為 ,則與 屬性 url 配對,以提供條件約束範本的位置。 位置必須可公開存取。

        警告

        請勿使用 SAS URI、URL 令牌,或可能以純文本公開秘密的任何其他專案。

      • 如果 Base64Encoded為 ,則與 屬性 content 配對,以提供基底 64 編碼的條件約束範本。 請參閱 從條件約束範本 建立原則定義,以從現有的 開放式原則代理程式 (OPA) Gatekeeper v3 條件約束範本建立自定義定義。

  • constraint (已淘汰)

    • 無法與 templateInfo 搭配使用。
    • 條件約束範本的CRD實作。 使用透過 values 傳遞做為 {{ .Values.<valuename> }}的參數。 在下列範例 2 中,這些值為 {{ .Values.excludedNamespaces }}{{ .Values.allowedContainerImagesRegex }}
  • constraintTemplate (已淘汰)

    • 無法與 templateInfo 搭配使用。
    • 建立或更新原則定義時,必須取代 templateInfo 為 。
    • 定義新條件約束的條件約束範本 CustomResourceDefinition (CRD)。 範本會定義 Rego 邏輯、條件約束架構,以及從 values Azure 原則 傳遞的 Constraint 參數。 如需詳細資訊,請移至 Gatekeeper 條件約束
  • constraintInfo (選用)

    • 無法與 、constraintTemplate、、、kindsapiGroupsscopenamespacesexcludedNamespaceslabelSelector搭配constraint使用。
    • 如果未 constraintInfo 提供,則可以從 templateInfo 和 原則產生條件約束。
    • sourceType (必要)
      • 定義條件約束的來源類型。 允許的值: PublicURLBase64Encoded

      • 如果 PublicURL為 ,則與 屬性 url 配對,以提供條件約束的位置。 位置必須可公開存取。

        警告

        請勿在 中或可能公開秘密的任何其他專案使用 url SAS URI或令牌。

  • namespaces (選用)

    • 要限制原則評估的 Kubernetes 命名空間陣列
    • 空白或遺漏值會導致原則評估包含未定義於 excludedNamespaces 中的所有命名空間。
  • excludedNamespaces (選用)

  • labelSelector (選用)

    • 物件,包含 matchLabels (object) 和 matchExpression (array) 屬性,允許指定要包含哪些 Kubernetes 資源以用於符合所提供標籤和選取器的原則評估。
    • 空值或遺漏值會導致原則評估包含所有標籤和選取器,但排除在 excludedNamespaces定義的命名空間除外。
  • scope (選用)

    • 包含範圍屬性的字串,允許指定是否比對叢集範圍或命名空間範圍資源。
  • apiGroups (使用 templateInfo 時需要)

    • 數位,包含要比對的 API 群組。 空陣列 ([""]) 是核心 API 群組。
    • ["*"]不允許定義 apiGroups
  • kinds (使用 templateInfo 時需要)

  • values (選用)

    • 定義要傳遞至條件約束的任何參數和值。 每個值都必須存在,並符合條件約束範本 CRD 驗證 openAPIV3Schema 區段中的屬性。

稽核範例

範例 1:針對 Resource Manager 模式使用稽核效果。

"then": {
  "effect": "audit"
}

範例 2:針對 的資源提供者模式 Microsoft.Kubernetes.Data使用稽核效果。 中的 details.templateInfo 其他資訊會宣告使用 PublicURL 和 設定 url 為在 Kubernetes 中使用的條件約束範本位置,以限制允許的容器映射。

"then": {
  "effect": "audit",
  "details": {
    "templateInfo": {
      "sourceType": "PublicURL",
      "url": "https://store.policy.core.windows.net/kubernetes/container-allowed-images/v1/template.yaml",
    },
    "values": {
      "imageRegex": "[parameters('allowedContainerImagesRegex')]"
    },
    "apiGroups": [
      ""
    ],
    "kinds": [
      "Pod"
    ]
  }
}

下一步