評估不符合規範的資源時,效果 audit 會用來在活動記錄中建立警告事件,但不會停止要求。
稽核評估
稽核是在建立或更新資源期間由 Azure 原則檢查的最後一個效果。 針對 Resource Manager 模式,Azure 原則接著會將資源傳送至資源提供者。 評估資源的建立或更新要求時,Azure 原則會將作業新增 Microsoft.Authorization/policies/audit/action 至活動記錄,並將資源標示為不符合規範。 在標準合規性評估週期期間,只會更新資源的合規性狀態。
稽核屬性
針對 Resource Manager 模式,稽核效果沒有任何其他屬性可用於 then 原則定義的條件。
針對的資源提供者模式 Microsoft.Kubernetes.Data,稽核效果的子屬性 details如下。
templateInfo針對新的或更新的原則定義,必須使用 ,因為 constraintTemplate 已被取代。
templateInfo(必要)- 無法與
constraintTemplate搭配使用。 -
sourceType(必要)定義條件約束範本的來源類型。 允許值:
PublicURL或Base64Encoded。如果
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 邏輯、條件約束架構,以及從 Azure 原則傳遞的
valuesConstraint 參數。 如需詳細資訊,請移至 Gatekeeper 條件約束。
- 無法與
constraintInfo(選用)- 無法與 、
constraint、、、constraintTemplateapiGroups、kinds、scope、namespaces或excludedNamespaces搭配labelSelector使用。 - 如果未
constraintInfo提供,則可以從templateInfo和 原則產生條件約束。 -
sourceType(必要)定義限制式的來源類型。 允許值:
PublicURL或Base64Encoded。如果
PublicURL為 ,則與 屬性url配對,以提供條件約束的位置。 該位置必須可公開存取。警告
請勿在
url中或任何可能公開祕密的其他地方使用 SAS URI 或權杖。
- 無法與 、
namespaces(選用)- 要限制原則評估的 Kubernetes 命名空間陣列。
- 空白或遺漏值會導致原則評估包含未定義於 excludedNamespaces 中的所有命名空間。
excludedNamespaces(選用)- 要從原則評估中排除的 Kubernetes 命名空間陣列。
labelSelector(選用)- 物件,包含 matchLabels (object) 和 matchExpression (array) 屬性,允許指定要包含哪些 Kubernetes 資源以用於符合所提供標籤和選取器的原則評估。
- 空值或遺漏值會導致原則評估包含所有標籤和選取器,但 排除在 excludedNamespaces 中定義的命名空間除外。
scope(選用)- 包含範圍屬性的字串,允許指定是否比對叢集範圍或命名空間範圍資源。
apiGroups(使用 templateInfo 時需要)-
數位,包含要比對的 API 群組。 空陣列 (
[""]) 是核心 API 群組。 -
["*"]不允許定義 apiGroups。
-
數位,包含要比對的 API 群組。 空陣列 (
kinds(使用 templateInfo 時需要)- 數位,包含要限制評估的 Kubernetes 物件種類。
-
["*"]不允許定義種類。
values(選用)- 定義要傳遞至條件約束的任何參數和值。 每個值都必須存在,並符合條件約束範本 CRD 驗證
openAPIV3Schema區段中的屬性。
- 定義要傳遞至條件約束的任何參數和值。 每個值都必須存在,並符合條件約束範本 CRD 驗證
稽核範例
範例 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"
]
}
}
後續步驟
- 在 Azure 原則範例檢閱範例。
- 檢閱 Azure 原則定義結構。
- 了解如何以程式設計方式建立原則。
- 了解如何取得合規性資料。
- 瞭解如何 補救不符合規範的資源。
- 檢閱 Azure 管理群組。