カスタム ルールを追加するための JSONPath オプションは、機能が制限された管理可能なアクセス制御ポリシー言語 (MAPL) ルールのガイド付き構成です。MAPL は、マイクロサービス環境でのアクセスを制御するルールの言語です。この種類のルールを使用して、Kubernetes リソースに必要な状態を定義します。
JSONPath カスタム ルールには、論理演算子にリンクされた複数の条件を組み込めます。条件には、想定される値に接続されている Kubernetes リソース([リソースの種類])が含まれます。
基本的な JSONPath カスタム ルールは、 コンソールのガイド付き構成を使用して構成できます。
特性 | 説明 |
---|---|
リソースの種類 | ルールが参照する Kubernetes リソースのタイプ。 |
JSONPath | JSONPath セレクタは、特定の設定を取得し、Kubernetes リソースの構成ファイル内で値を指定するために使用されます。
注:
$ 記号を使用した
[JSONPath] セレクタ文字列を開始する必要があります。
カスタム ルールでは、AND ロジックを使用して個々のリソースを照合する複数の JSONPath 条件を設定できます。 JSONPath は、JSON または YAML ファイルの要素または選択要素を示すパスです。JSON パス式は、ツリーとして作成されます。
JSON パス式はドット (.) で始まります。構成のルートとの照合を開始するには、その後に子、孫などの名前を入力します。
|
メソッド | リソース値を評価する方法:
|
値 | リソース値と一致するしきい値。値が一致しない場合、ルールに違反します。 |
JSON の例
{ "apiVersion": "v1", "kind": "Namespace", "metadata": { "creationTimestamp": "2021-04-09T00:52:44Z", "managedFields": [ { "apiVersion": "v1", "fieldsType": "FieldsV1", "fieldsV1": { "f:status": { "f:phase": {} } }, ...
カスタム ルール 1 の例
5 個以上のレプリカを持つワークロードを許可しないでください。
$.spec.replicas GT 5
カスタム ルール 2 の例
すべてのコンテナに対して CPU が割り当てられている必要があります。
$.spec.template.spec.containers[:].resources.limits.cpu NEX
カスタム ルール 3 と 4 の例
serviceOwner
というラベルと、メール アドレスのように見える値 (2 つのルール) がある必要があります。
-
$.spec.template.metadata.label.serviceOwner NEX
-
$.spec.template.metadata.label.serviceOwner NRE .+@example\.com