コモン・ポリシー・ゲートウェイ(CPG)コネクタ
コモン・ポリシー・ゲートウェイ(CPG)コネクタは、 watsonx.data と多種多様な外部ポリシーエンジン( IBM Knowledge Catalog, Apache レンジャー)との間の柔軟な橋渡しの役割を果たす、プラグインベースの高度な軽量 JAR です。 このクライアントは、カスタム統合の開発、テスト、およびデプロイを容易にし、その上に構築できる柔軟な基盤を提供するように設計されています。
CPG Plugin Runnerは軽量な実行可能JARで、指定したパス(絶対パスまたは相対パス)からアクセス制御プラグインJARを動的にロードします。 コンフィギュレーションマッピングと、ユーザー名、リソース、アクションといったユーザーから提供された入力に基づいてプラグインを評価する。 ダウンロード可能なJARファイルとして提供されており、簡単にダウンロードして、複数のポリシー・エンジンとインターフェースするカスタムプラグインを開発するために使用することができる。 特定のポリシー・エンジンに合わせた独自のJARを構築し、迅速に統合をテストすることができる。
開始前に
以下を実行する必要があります。
-
プラグインJAR( PF4J 形式)を用意する。
-
対応するポリシーエンジンのために実行されるべきプラグインのマッピングを定義するポリシーマッピングファイル。
CPGパッケージへのアクセス
-
.CPG パッケージから最新バージョンの CPG 軽量パッケージをクローンします: CPG パッケージ。
-
クローン作成後、以下のようなフォルダ構造が表示されます:
CPG-Plugin-Runner/ ├─ CPG-Plugin-Runner-1.0.0.jar # The executable runner ├─ plugins/ # Place your plugin JARs here │ └─ <your-plugin>.jar ├─ config/ └─ plugin-resource-mapping.yaml # Maps resource names to plugin IDs ├─ plugin-templates └─ java-access-plugin # sample plugin project ├─ src └─ resources └─ plugin.properties必要に応じてフォルダの名前を変更したり、移動したりすることができます。
パッケージには、次のものが含まれています。
-
CPG-Plugin-Runner-1.0.0.jar: プラグインをロードして実行する実行可能なコネクタ JAR。
-
plugins/:カスタムプラグインJARを置くディレクトリ。
-
plugin-resource-mapping.yaml: watsonx.data リソースをポリシー エンジンのプラグイン ID にマッピングする設定ファイル。 以下は
plugin-resource-mapping.yamlの例である。
plugin-mapping:
java-access-plugin:
- iceberg
ranger-access-plugin:
- iceberg
- hive_data
python-access-plugin:
- hive_data
コンフィギュレーション・ファイルで必要なパラメータ:
-
キー : watsonx.data リソースの名前(例:
hive_data)。 -
値 :値:各プラグインの
plugin.propertiesファイルで定義されているプラグインID。 例:plugin.id=java-access-plugin. IDは正確に一致しなければならない。
(テンプレートからの)プラグインの構築とYAMLの設定
選択した必要なポリシーエンジンに接続するには、 cpg.jar にすでに組み込まれている API タイプに対してコンパイルするプラグイン (JAR ファイル) を作成する必要があります。 ダウンロードしたCPGパッケージには、プラグイン・テンプレート・プロジェクトが含まれています。 テンプレートを使用したり、目的に応じて新しいテンプレートを作成することができます。 追加の依存関係は必要ない。
-
テンプレートファイルを解凍します。
-
最新のCPG jarファイルを含むようにファイルを更新する。
-
以下のコマンドを実行します。
cd java-access-plugin mvn -DskipTests clean packageJARは以下の場所に生成されます:
target/<your-plugin>.jar. -
JARをCPGコネクタの
plugins/フォルダにコピーします。 -
プラグインIDを参照するように
plugin-resource-mapping.yaml。オプション :行/列変換を返すには、次のように設定します: result.setTransformColumns(...); result.setTransformRows(...);
CPGコネクタの動作
-
ターミナルからコマンドを使用してCPGコネクタJARファイルを実行します:java -jar cpg.jar '.
この場合、プラグインとコンフィグファイルには以下のデフォルトパスが使用されます。
- plugins/ :./plugins
- config/ :. /config/plugin-resource-mapping.yaml
以下のコマンドでパスをカスタマイズすることもできる:
java -jar cpg.jar <absolute/path/to/plugins> <absolute/path/to/config/plugin-resource-mapping.yaml>.以下に、対話型セッションのサンプルを表示する:
Enter username : admin Enter resource_name (e.g., hive_data) or 'quit': hive_data Enter resource_type (e.g., table): table Enter actions (comma-separated, e.g., select,insert): select [Runner] Params: user=admin, resource=hive_data, type=table, actions=[select] [Runner] Plugins to run: [java-access-plugin] ======Result====== { "status" : "SUCCESS", "error" : null, "plugin_id" : "java-access-plugin", "resources" : [ { "actions" : [ "select" ], "resource_name" : "hive_data", "resource_type" : "table", "actions_result" : [ { "select" : "true" } ], "transform_columns" : null, "transform_rows" : null } ] } ================= -
quitまたはexitと入力して停止する。
トラブルシューティング
エラー"No AccessPlugin extensions found"
上記のエラーが発生した場合は、以下を確認してください:
- pluginsとディレクトリは存在し、空ではありません。
- JARのルートには plugin.properties。
- プラグインクラスは @Extension でアノテーションされ、 AccessPlugin を実装しています。
- plugin.properties の plugin.id は plugin-resource-mapping.yaml の ID と一致する。
エラーリソース用のプラグインが実行されていません
上記のエラーが発生した場合は、以下を確認してください:
plugin-resource-mapping.yamlのリソース名はプラグインIDに正しくマッピングされます。- プラグインIDは正確に一致します(大文字と小文字は区別されます)。
エラーカスタムパスが検出されない
上記のエラーが発生した場合は、絶対パスを使用するか、システム・プロパティを通して渡すようにしてください。
既知の制限:
CPGプラグインベースのコネクターには以下の制限がある:
-
現在、 PF4J-based プラグインのみをサポートしています。
-
ユーザーインターフェースはない。 コマンドラインインターフェイスを使って実行する。
-
パスの解像度はOS環境によって異なる場合があります。