audit 効果は、非準拠リソースを評価するときにアクティビティ ログに警告イベントを作成するために使われますが、要求は停止されません。
Audit の評価
Audit は、リソースの作成中または更新中に Azure Policy によって確認される最後の効果です。 Resource Manager モードの場合、その後でリソースが Azure Policy によってリソース プロバイダーに送信されます。 リソースの作成または更新の要求を評価するときに、Azure Policy では Microsoft.Authorization/policies/audit/action 操作がアクティビティ ログに追加され、リソースが非対応としてマークされます。 標準のコンプライアンス評価サイクルでは、リソースのコンプライアンス状態のみが更新されます。
Audit のプロパティ
Resource Manager モードの場合、audit 効果には、ポリシー定義の then 条件で使うための他のプロパティはありません。
リソース プロバイダー モードが Microsoft.Kubernetes.Data の場合、audit 効果には次の details のサブ プロパティがあります。 新しいポリシー定義や更新されたポリシー定義では、templateInfo を使用する必要があります。constraintTemplate は非推奨となっています。
templateInfo(必須)-
constraintTemplateとは併用できません。 -
sourceType(必須)制約テンプレートのソースの種類を定義します。 指定できる値は
PublicURLまたはBase64Encodedです。PublicURLの場合、urlプロパティと組み合わせて制約テンプレートの場所を指定します。 この場所はパブリックにアクセスできる必要があります。警告
SAS URI、URL トークン、またはシークレットをプレーンテキストで公開する可能性のあるその他のものを、使用しないでください。
Base64Encodedの場合、contentプロパティと組み合わせて、base 64 でエンコードされた制約テンプレートを指定します。 既存の Open Policy Agent (OPA) Gatekeeper v3 制約テンプレートからカスタム定義を作成するには、「制約テンプレートからポリシー定義を作成する」を参照してください。
-
constraint(非推奨)-
templateInfoとは併用できません。 - 制約テンプレートの CRD 実装です。
valuesで{{ .Values.<valuename> }}のように渡されたパラメーターを使います。 次の例 2 では、これらの値は{{ .Values.excludedNamespaces }}および{{ .Values.allowedContainerImagesRegex }}です。
-
constraintTemplate(非推奨)-
templateInfoとは併用できません。 - ポリシーの定義を作成または更新するときは、
templateInfoに置き換えてください。 - 新しい制約を定義する、制約テンプレート CustomResourceDefinition (CRD) です。 このテンプレートは、Rego ロジック、制約スキーマと、Azure Policy から
valuesで渡される制約パラメーターを定義します。 詳細については、「Gatekeeper 制約」に移動してください。
-
constraintInfo(省略可)-
constraint、constraintTemplate、apiGroups、kinds、scope、namespaces、excludedNamespaces、labelSelectorとは併用できません。 -
constraintInfoが指定されていない場合、制約はtemplateInfoとポリシーから生成できます。 -
sourceType(必須)制約用のソースの種類を定義します。 指定できる値は
PublicURLまたはBase64Encodedです。PublicURLの場合、urlプロパティと組み合わせて制約の場所を指定します。 この場所はパブリックにアクセスできる必要があります。警告
urlには、SAS URI やトークンなど、シークレットが公開されてしまう可能性がある情報は一切使用しないでください。
-
namespaces(省略可)excludedNamespaces(省略可)labelSelector(省略可)scope(省略可)apiGroups(templateInfo を使う場合は必須)kinds(templateInfo を使う場合は必須)- 評価対象とする Kubernetes オブジェクトの kind を含んだ配列。
-
["*"]向けの の定義は許可されません。
values(省略可)- 制約に渡すすべてのパラメーターと値を定義します。 各値は存在し、制約テンプレート CRD の検証
openAPIV3Schemaセクションのプロパティと一致する必要があります。
- 制約に渡すすべてのパラメーターと値を定義します。 各値は存在し、制約テンプレート CRD の検証
Audit の例
例 1: Resource Manager モードで Audit 効果を使用する。
"then": {
"effect": "audit"
}
例 2: Microsoft.Kubernetes.Data のリソース プロバイダー モードで Audit 効果を使用する。
details.templateInfo の追加情報では、PublicURL の使用を宣言し、Kubernetes で使う制約テンプレートの場所に url を設定して、許可されるコンテナー イメージを制限します。
"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 Policy のサンプルを確認します。
- 「Azure Policy の定義の構造」を確認します。
- プログラムによってポリシーを作成する方法を理解します。
- コンプライアンス データを取得する方法を学習します。
- 準拠していないリソースを修復する方法を学習します。
- Azure 管理グループを確認する。