|
この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。 |
|
これは未公開の文書です Admission Controller 1.34-dev. |
ゲートキーパーのポリシーをビルドして実行する
ポリシーは、Open Policy Agentを対象としたRegoポリシーとまったく同じ方法でビルドして実行できます。 プロジェクトの構造は次のとおりです:
. ├── data │ ├── default-ns.json │ └── other-ns.json └── policy.rego 1 directory, 3 files
ビルド
ポリシーをビルドするには、`opa`コマンドを実行します:
$ opa build -t wasm -e policy/violation policy.rego
これにより、次の内容を持つRegoポリシーがビルドされます:
-
target:wasm.`wasm`ターゲット用のポリシーをビルドします。 -
entrypoint:policy/violation.エントリーポイントは、`violation`パッケージ内の`policy`ルールです。 -
policy.rego: `policy.rego`ファイルをビルドして含めます。
前のコマンドは`bundle.tar.gz`ファイルを生成します。 そこからWasmモジュールを抽出できます:
$ tar -xf bundle.tar.gz /policy.wasm
プロジェクトツリーは次のようになります:
. ├── bundle.tar.gz ├── data │ ├── default-ns.json │ └── other-ns.json ├── policy.rego └── policy.wasm 1 directory, 5 files
これでポリシーを実行できます。
実行
次のように`kwctl`を使用してポリシーを実行します:
$ kwctl run -e gatekeeper --request-path data/other-ns.json policy.wasm | jq
{
"uid": "1299d386-525b-4032-98ae-1949f69f9cfc",
"allowed": true
}
これは`other`というネームスペースで作成されたあなたのリソースです。期待通りに受け入れられました。
これで、ポリシーによって拒否されるリクエストを実行できます。
$ kwctl run -e gatekeeper --request-path data/default-ns.json policy.wasm | jq
{
"uid": "1299d386-525b-4032-98ae-1949f69f9cfc",
"allowed": false,
"status": {
"message": "it is forbidden to use the default namespace"
}
}
ゲートキーパーのポリシーがこのリソースを拒否したことがわかります。