Initial Setup
Tính năng Tag Sync cho phép đồng bộ tag từ OpenMetadata sang Apache Ranger, giúp mở rộng quản lý phân quyền trong Trino dựa trên tag (bên cạnh resource).
Các bước thực hiện
Bước 1: Portal
Trên Portal, cần tạo đủ 3 thành phần:
Khi tạo Trino cluster, phải tick chọn Integrate Ranger để cho phép Trino sử dụng phân quyền từ Ranger.
Bước 2: Tạo Resource Policies cho Trino trong Ranger
Vào Ranger > Service Manager > Tab Resource → chọn service Trino vừa tạo (ví dụ: trino-msu9test).
Lưu ý: Tên service phải trùng với cus_app_id của Trino.
Đây là điều kiện bắt buộc để Trino có thể hoạt động và OpenMetadata có thể test connection thành công. Nếu thiếu các Resource Policies cơ bản, khi tạo Trino service trong OM → Test Connection sẽ thất bại.
Bước 3: Tạo Trino Service trong OpenMetadata
Chọn Trino → click Next.
Điền thông tin service:
Service Name (ví dụ: trino-tester).
Username, Password, Host, Port (trỏ đến cluster Trino vừa tạo ở portal).
Nhấn Test Connection → nếu thành công thì Save.
Vào tab Ingestion của service Trino → click Add Ingestion.
Điền Database/Schema/Table Filter Pattern.
Run ingestion.
Sau khi ingestion thành công, DB Trino hiển thị trong Explore.
Vào Explore > Database Trino → gán tag cho column (VD: tag Sensitive cho cột custkey trong bảng customer).
Bước 4: Tạo Tag Service & Trino Service trong Ranger
Vào Service Manager > Tab Resource → edit Service Trino (VD: trino-msu9test).
Trong config service Trino → field Select Tag Service = trino-msu9test-tag.
Vào Settings > Users → click Add New User:
Tạo user (VD: usertest) với role = User.
Username phải trùng với user đã tạo ở Trino portal.
Vào Resource Policies → add user usertest vào các policy mặc định
a. Kiểm tra/Thêm các policy mặc định:
all – trinouser
all - queryid
b. Thêm policy mới (policy-customer-access):
Catalog = tpch
Schema = sf1, information_schema
Table = customer, columns, schemata, tables
Column = custkey
Lưu ý: information_schema, columns, schemata, tables → cần thiết cho Trino đọc metadata (show tables, describe, etc).
customer → bảng business mà bạn muốn allow.
c. Trong Allow Conditions, add user (VD: usertest) → Permission = Select.
d. Save policy.
Bước 5: Cấu hình Tag Sync trên Ranger Service
Vào Data Platform > Data Governance (Ranger) > Advanced > Tag Sync.
Tick chọn Enable Tag Sync.
Lấy JWT Token từ OpenMetadata:
Vào Settings > Bots → chọn bot tagsync-bot → tab Credentials → copy token.
Dán vào trường JWT Token.
Tại phần Service mappings, chọn:
OpenMetadata service = Trino service vừa tạo ở OpenMetadata.
Ranger service = service Trino vừa tạo trong Ranger.
Bắt buộc ≥ 1 mapping, tối đa 5 mapping.
Nhấn Test Connection.
Nếu thành công → hiển thị “Connection successful”, nút Save bật.
Nếu thất bại → hiển thị lỗi, không thể Save.
Khi Test Connection thành công, nhấn Save để lưu cấu hình.
Bước 6: Vào Tag Policies → chọn tag Sensitive → click Add New Policy:
Policy Name: allow-sensitive.
Allow Conditions: user = usertest, component = TRINO, tích tất cả permission.
Save.
Bước 7: Kiểm thử quyền truy cập bằng query
Chỉ cấp quyền cho usertest vào bảng customer, bảng orders usertest không có quyền query
Case 1 – User được Allow & có quyền query cột custkey
Dùng DataGrip kết nối Trino bằng user usertest.
Chạy query:
SELECT custkey FROM tpch.sf1.customer LIMIT 1;
Case 2 – User được Allow & không quyền query bảng
DataGrip kết nối Trino bằng user usertest.
Chạy query:
SELECT * FROM tpch.sf1.customer LIMIT 1;
Case 3 – User bị Deny & không có quyền query cột custkey
Tạo thêm user khác (VD: usertest2).
Gán tag Personal cho cột custkey
Trong Tag Policies → tạo policy Deny - tag Personal - cho user usertest2.
Dùng DataGrip kết nối Trino bằng user usertest2.
Chạy query:
SELECT custkey FROM tpch.sf1.customer LIMIT 1;