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 管理グループを確認する。