本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
適用於 Ranger 與 Amazon EMR 整合的 Trino 外掛程式
Trino (先前為 PrestoSQL) 是一種 SQL 查詢引擎,可用於在 HDFS、物件儲存、關聯式資料庫和 NoSQL 資料庫等資料來源上執行查詢。它不需要將資料遷移到中央位置,並可讓您從任何位置查詢資料。Amazon EMR 提供了 Apache Ranger 外掛程式,可為 Trino 提供精細分級的存取控制。此外掛程式與開放原始碼 Apache Ranger Admin 伺服器 2.0 版及更新版本相容。
支援的功能
Amazon EMR 上 Trino 的 Apache Ranger 外掛程式支援受精細分級的存取控制保護的 Trino 查詢引擎的所有功能。這包括資料庫、資料表、資料欄層級存取控制,以及資料列篩選和資料遮罩。Apache Ranger 政策可以包括對使用者和群組的授權政策和拒絕政策。稽核事件也提交至 CloudWatch 日誌。
安裝服務組態
安裝 Trino 服務定義需要設定 Ranger Admin 伺服器。若要設定 Ranger Admin 伺服器,請參閱 設定 Ranger Admin 伺服器以與 Amazon EMR 整合。
請遵循下列步驟安裝 Trino 服務定義。
-
透過 SSH 連接到 Apache Ranger Admin 伺服器。
ssh ec2-user@ip-xxx-xxx-xxx-xxx.ec2.internal
-
解除安裝 Presto 伺服器外掛程式 (如果存在)。執行下列命令。如果出現「找不到服務」錯誤,則表示您的伺服器上未安裝 Presto 伺服器外掛程式。繼續下一個步驟。
curl -f -u *<admin users login>*:*_<_**_password_ **_for_** _ranger admin user_**_>_* -X DELETE -k 'https://*<RANGER SERVER ADDRESS>*:6182/service/public/v2/api/servicedef/name/presto'
-
下載服務定義和 Apache Ranger Admin 伺服器外掛程式。在暫時目錄中,下載服務定義。Ranger 2.x 版支援此服務定義。
wget https://s3.amazonaws.com/elasticmapreduce/ranger/service-definitions/version-2.0/ranger-servicedef-amazon-emr-trino.json
-
註冊適用於 Amazon EMR 的 Apache Trino 服務定義。
curl -u *<admin users login>*:*_<_**_password_ **_for_** _ranger admin user_**_>_* -X POST -d @ranger-servicedef-amazon-emr-trino.json \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -k 'https://*<RANGER SERVER ADDRESS>*:6182/service/public/v2/api/servicedef'
如果此命令成功執行,您會在 Ranger Admin UI 中看到一個稱為
TRINO
的新服務,如下列影像所示。 -
建立
TRINO
應用程式的執行個體,輸入下列資訊。服務名稱:您將使用的服務名稱。建議的值為
amazonemrtrino
。請記下此服務名稱,因為建立 Amazon EMR 安全組態時需要此名稱。顯示名稱:要為此執行個體顯示的名稱。建議的值為
amazonemrtrino
。jdbc.driver.ClassName:Trino 連線的 JDBC 類別的類別名稱。您可以使用預設值。
jdbc.url:連接至 Trino 協調器時使用的 JDBC 連線字串。
憑證的通用名稱:憑證內的 CN 欄位用於從用戶端外掛程式連接至管理伺服器。此值必須與為外掛程式建立的 TLS 憑證中的 CN 欄位相符。
請注意,此外掛程式的 TLS 憑證應已在 Ranger Admin 伺服器上的信任存放區中註冊。如需詳細資訊,請參閱 TLS 憑證。
建立 Trino 政策
在您建立新政策時,填寫下列欄位。
政策名稱:此政策的名稱。
政策標籤:您可以放在此政策上的標籤。
型錄:此政策套用的型錄。萬用字元 "*" 代表所有型錄。
結構描述:此政策套用的結構描述。萬用字元 "*" 代表所有結構描述。
資料表:此政策套用的資料表。萬用字元 "*" 代表所有資料表。
資料欄:此政策套用的資料欄。萬用字元 "*" 代表所有資料欄。
描述:此政策的描述。
對於 Trino 使用者 (用於使用者模擬存取)、Trino 系統/工作階段屬性 (用於改變引擎系統或工作階段屬性)、函數/程序 (用於允許函數或程序呼叫) 和 URL (用於授予引擎對資料位置的讀取/寫入存取權),也存在其他類型的政策。

若要為特定使用者和群組授予許可,請輸入使用者和群組。您也可以為允許條件和拒絕條件指定排除。

在指定允許和拒絕條件之後,選擇儲存。
考量事項
在 Apache Ranger 內建立 Trino 政策時,需要注意一些使用考量。
Hive 中繼資料伺服器
Hive 中繼資料伺服器只能由可信引擎 (特別是 Trino 引擎) 存取,以防止未經授權的存取。Hive 中繼資料伺服器也可由叢集上的所有節點存取。所需的連接埠 9083 可讓所有節點存取主節點。
身分驗證
依預設,Trino 設定為使用 Amazon EMR 安全組態中設定的 Kerberos 進行身分驗證。
需要傳輸中加密
Trino 外掛程式要求您在 Amazon EMR 安全組態中啟用傳輸中加密。若要啟用加密,請參閱 傳輸中加密。
限制
以下是 Trino 外掛程式的目前限制:
-
Ranger Admin 伺服器不支援自動完成。