共同政策閘道 (CPG) 連接器
Common Policy Gateway (CPG) connector 是一個進階的、以外掛程式為基礎的輕量級 JAR,可作為 watsonx.data 與各式各樣外部政策引擎之間的靈活橋樑 ( IBM Knowledge Catalog, Apache Ranger)。 本用戶端的設計是為了提供您可以建立的彈性基礎,讓您可以輕鬆開發、測試和部署自訂整合。
其核心是 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)。 -
值:外掛 ID,定義在每個外掛的
plugin.properties檔案中。 範例:plugin.id=java-access-plugin。 ID 必須完全符合。
建立外掛 (從模板) 並設定 YAML
若要連線至您所選擇的所需政策引擎,您必須建立一個外掛程式 (JAR 檔案),針對 cpg.jar 中已內嵌的 API 類型進行編譯。 下載的 CPG 套件包含一個外掛模版專案。 您可以使用範本,並針對您的目的建立新的範本。 不需要額外的依賴。
-
解壓縮模板檔案。
-
更新檔案以包含最新的 CPG jar 檔案。
-
執行下列指令:
cd java-access-plugin mvn -DskipTests clean package您的 JAR 將於:
target/<your-plugin>.jar. -
將 JAR 複製到 CPG 連接器的
plugins/資料夾。 -
更新
plugin-resource-mapping.yaml以引用您的外掛程式 ID。可選 :若要傳回行/列變換,請使用下列方式設定: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 來停止。
疑難排解
錯誤:「未找到 AccessPlugin 擴充套件」
如果出現上述錯誤,請驗證下列內容:
- 外掛程式和目錄存在且不是空的。
- JAR 的根中包含 plugin.properties。
- 外掛類以 @Extension 註解,並實作 AccessPlugin。
- plugin.properties 中的 plugin.id 與 plugin-resource-mapping.yaml 中的 ID 相匹配。
錯誤:資源外掛程式未執行
如果出現上述錯誤,請驗證下列內容:
plugin-resource-mapping.yaml中的資源名稱可正確映射至外掛 ID。- 插件 ID 完全匹配(區分大小寫)。
錯誤:自訂路徑未被擷取
如果出現上述錯誤,請確保使用絕對路徑或透過系統屬性傳遞。
已知限制:
CPG 插入式連接器有以下限制:
-
目前僅支援 PF4J-based 外掛程式。
-
沒有使用者介面。 使用命令列介面執行。
-
不同作業系統環境的路徑解析度可能會有所不同。