Azure 原則定義稽核效果
評估不符合規範的資源時,效果 audit
會用來在活動記錄中建立警告事件,但不會停止要求。
稽核評估
稽核是在建立或更新資源期間 Azure 原則 所檢查的最後一個效果。 針對 Resource Manager 模式,Azure 原則 然後將資源傳送至資源提供者。 評估資源的建立或更新要求時,Azure 原則 將作業新增Microsoft.Authorization/policies/audit/action
至活動記錄,並將資源標示為不符合規範。 在標準合規性評估週期期間,只會更新資源的合規性狀態。
稽核屬性
針對 Resource Manager 模式,稽核效果沒有任何其他屬性可用於 then
原則定義的條件。
針對的資源提供者模式 Microsoft.Kubernetes.Data
,稽核效果的子屬性 details
如下。 templateInfo
針對新的或更新的原則定義,必須使用 ,因為 constraintTemplate
已被取代。
templateInfo
(必要)- 無法與
constraintTemplate
搭配使用。 sourceType
(必要)
- 無法與
constraint
(已淘汰)- 無法與
templateInfo
搭配使用。 - 條件約束範本的CRD實作。 使用透過
values
傳遞做為{{ .Values.<valuename> }}
的參數。 在下列範例 2 中,這些值為{{ .Values.excludedNamespaces }}
和{{ .Values.allowedContainerImagesRegex }}
。
- 無法與
constraintTemplate
(已淘汰)- 無法與
templateInfo
搭配使用。 - 建立或更新原則定義時,必須取代
templateInfo
為 。 - 定義新條件約束的條件約束範本 CustomResourceDefinition (CRD)。 範本會定義 Rego 邏輯、條件約束架構,以及從
values
Azure 原則 傳遞的 Constraint 參數。 如需詳細資訊,請移至 Gatekeeper 條件約束。
- 無法與
constraintInfo
(選用)- 無法與 、
constraintTemplate
、、、kinds
apiGroups
、scope
、namespaces
、excludedNamespaces
或labelSelector
搭配constraint
使用。 - 如果未
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 管理群組。