共同政策閘道 (CPG) 連接器

Common Policy Gateway (CPG) connector 是一個進階的、以外掛程式為基礎的輕量級 JAR,可作為 watsonx.data 與各式各樣外部政策引擎之間的靈活橋樑 ( IBM Knowledge Catalog, Apache Ranger)。 本用戶端的設計是為了提供您可以建立的彈性基礎,讓您可以輕鬆開發、測試和部署自訂整合。

其核心是 CPG Plugin Runner,這是一個輕量級的可執行 JAR,可從指定路徑(絕對或相對路徑)動態載入存取控制外掛 JAR。 它會根據組態映射和使用者提供的輸入(如使用者名稱、資源和動作)評估外掛程式。 它以可下載的 JAR 檔案形式提供,可輕鬆下載並用於開發與多個政策引擎連接的自訂外掛程式。 您可以針對特定的政策引擎建立自己的 JAR,快速測試整合。

開始之前

您必須:

  • 擁有外掛程式 JAR ( PF4J 格式)。

  • 政策對應檔,定義應該針對相應政策引擎執行的外掛程式對應。

存取 CPG 套件

  1. 從.CPG 套件克隆最新版本的 CPG 輕量套件:CPG 套件

  2. 複製之後,您可以檢視以下資料夾結構:

    
    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 套件包含一個外掛模版專案。 您可以使用範本,並針對您的目的建立新的範本。 不需要額外的依賴。

  1. 解壓縮模板檔案。

  2. 更新檔案以包含最新的 CPG jar 檔案。

  3. 執行下列指令:

    cd java-access-plugin
    mvn -DskipTests clean package
    

    您的 JAR 將於:target/<your-plugin>.jar.

  4. 將 JAR 複製到 CPG 連接器的 plugins/ 資料夾。

  5. 更新 plugin-resource-mapping.yaml 以引用您的外掛程式 ID。

    可選 :若要傳回行/列變換,請使用下列方式設定:result.setTransformColumns(...); result.setTransformRows(...);

運行中的 CPG 連接器

  1. 使用命令從終端執行 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
      } ]
    }
    =================
    
    
  2. 輸入 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 外掛程式。

  • 沒有使用者介面。 使用命令列介面執行。

  • 不同作業系統環境的路徑解析度可能會有所不同。