|
この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。 |
|
これは未公開の文書です Admission Controller 1.34-dev. |
ポリシーメタデータ
SUSE Security Admission Controllerメタデータファイル、`metadata.yaml`は、Admission Controller内で使用されるポリシーに関連する重要な情報と設定を含む設定ファイルです。 このドキュメントは、メタデータファイルの目的と使用法の概要を説明します。
ポリシー`metadata.yaml`ファイルには、ポリシーのデフォルトと、著者と説明などのメタデータが含まれており、ポリシーの著者によって設定されています。
kwctl annotate`コマンドは、ポリシーを含む.wasm`ファイルに注釈を付けるためにファイルを使用します。
したがって、ポリシーを実行するために必要なすべての関連情報が利用可能です。
ポリシーに注釈を付ける方法に関する詳細情報は、ポリシーの配布ガイドにあります。
ポリシーのユーザーがポリシーを使用したい場合、`kwctl scaffold`を使用してYAMLマニフェストを生成します。 このコマンドは、出荷されたWasmモジュールに埋め込まれたポリシーメタデータを読み取り、チェックを実行し、著者がそのまま使用するか修正できるYAMLマニフェストを返します。
ポリシーの著者として、ポリシーの雛形作成中に提供された`metadata.yaml`ファイルを編集することができます。
次の`metadata.yaml`の例を参照してください:
rules:
- apiGroups: [""]
apiVersions: ["v1"]
resources: ["pods"]
operations: ["CREATE"]
mutating: false
contextAwareResources: []
executionMode: kubewarden-wapc
policyType: kubernetes
backgroundAudit: true
annotations:
# kubewarden specific:
io.kubewarden.policy.title: My policy
io.kubewarden.policy.version: 0.1.0 # should match the OCI tag
io.kubewarden.policy.description: Short description
io.kubewarden.policy.author: myself
io.kubewarden.policy.url: https://github.com/yourorg/my-policy
io.kubewarden.policy.source: https://github.com/yourorg/my-policy
io.kubewarden.policy.license: Apache-2.0
# The next two annotations are used in the policy report generated by the
# Audit scanner. Severity indicates policy check result criticality and
# Category indicates policy category. See more here at docs.kubewarden.io
io.kubewarden.policy.severity: medium
io.kubewarden.policy.category: Resource validation
# artifacthub specific: (optional, to release in Artifact Hub)
io.kubewarden.policy.ociUrl: ghcr.io/myorg/my-policy
io.artifacthub.displayName: Policy Name
io.artifacthub.resources: Pod
io.artifacthub.keywords: pod, cool policy, kubewarden
バックグラウンド監査チェックの有効化
メタデータファイルには、特定のポリシーのバックグラウンド監査チェックを有効にするフラグ`backgroundAudit`が含まれています。 デフォルトでは、このフラグは`true`に設定されています。
動作の仕方や関心のあるイベントの種類によって、`false`に設定すべきポリシーがあります。 制限事項セクションの下にある監査スキャナードキュメントで、詳細情報を見つけることができます。
ポリシーがアクセスできるKubernetesリソースの定義
メタデータファイル内の`contextAwareResources`フィールドを使用して、ユーザーはポリシーがアクセスできるKubernetesリソースを定義できます。 例えば、ポリシーが`Namespace`リソースにアクセスする必要がある場合。 ポリシーの作成者は、`contextAwareResources`を次のように定義できます:
[...]
contextAwareResources:
- apiVersion: v1 kind: Namespace
[...]
ポリシーを変更可能または非変更可能として指定する
メタデータファイルには、ポリシーを変更可能または非変更可能として構成できるフラグ`mutating`があります。 変更ポリシーは、受信リクエストや管理されているリソースを変更します。 非変更ポリシーは、変更を加えずに制限を監視し、強制します。 この区別は、ポリシーがKubernetesリソースとどのように相互作用し、クラスターに与える影響を判断する上で重要です。
ポリシーの種類をKubernetesまたはRawとして指定する。
メタデータファイルには、`policyType`というフラグがあり、ユーザーはポリシーを`kubernetes`または`raw`としてマークできます。 Kubernetesポリシーは、Kubernetesリソースを検証するポリシーです。 Rawポリシーは、任意のJSONドキュメントを検証するポリシーです。 デフォルトでは、ユーザーによって指定されない場合、このフィールドはポリシーに注釈を付ける際に`kubernetes`に設定されます。 詳細については、Raw Policiesセクションを参照してください。