Trino プラグイン - Amazon EMR

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Trino プラグイン

Trino (以前の Presto SQL) はSQL、、オブジェクトストレージHDFS、リレーショナルデータベース、データベースなしSQLなどのデータソースに対してクエリを実行するために使用できるクエリエンジンです。これにより、データを一元的な場所に移行する必要がなくなり、どこにいてもデータをクエリできます。Amazon EMRは、Trino にきめ細かなアクセスコントロールを提供する Apache Ranger プラグインを提供しています。このプラグインはオープンソースの Apache Ranger 管理サーバーバージョン 2.0 以降と互換性があります。

サポートされている機能

Amazon の Trino 用 Apache Ranger プラグインは、きめ細かなアクセスコントロールで保護されている Trino クエリエンジンのすべての機能EMRをサポートしています。これには、データベース、テーブル、列レベルのアクセスコントロール、行フィルタリング、データマスキングが含まれます。Apache Ranger ポリシーには、ユーザーおよびグループへの付与ポリシーと拒否ポリシーを含めることができます。監査イベントもログに送信されます CloudWatch。

サービス設定のインストール

Trino サービス定義をインストールするには、Ranger 管理サーバーを設定する必要があります。Ranger 管理サーバーを設定するには、「Ranger 管理サーバーを設定する」を参照してください。

Trino サービス定義をインストールするには、次のステップを実行します。

  1. SSH Apache Ranger 管理サーバーへの 。

    ssh ec2-user@ip-xxx-xxx-xxx-xxx.ec2.internal

  2. 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'
  3. サービス定義および Apache Ranger 管理サーバープラグインをダウンロードします。一時ディレクトリに、サービス定義をダウンロードします。このサービス定義は Ranger 2.x バージョンでサポートされています。

    wget https://s3.amazonaws.com/elasticmapreduce/ranger/service-definitions/version-2.0/ranger-servicedef-amazon-emr-trino.json
  4. Amazon の Apache Trino サービス定義を登録しますEMR。

    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 管理 UI に TRINO という新しいサービスが表示されます。

    Ranger 管理のサービス作成。
  5. 次の情報を入力して、TRINO アプリケーションのインスタンスを作成します。

    サービス名: 使用するサービス名。推奨値は amazonemrtrino です。Amazon EMR セキュリティ設定を作成するときに必要になるため、このサービス名に注意してください。

    [Display Name] (表示名): このインスタンスに表示される名前。推奨値は amazonemrtrino です。

    Ranger 管理の表示名。

    jdbc.driver.ClassName: Trino 接続のJDBCクラスのクラス名。デフォルト値を使用できます。

    jdbc.url : Trino コーディネーターに接続するときに使用する接続JDBC文字列。

    [Common Name For Certificate] (証明書の共通名): クライアントプラグインから管理サーバーに接続するために使用する証明書内の CN フィールド。この値は、プラグイン用に作成されたTLS証明書の CN フィールドと一致する必要があります。

    Ranger 管理の共通名。

    このプラグインのTLS証明書は、Ranger 管理サーバーの信頼ストアに登録されている必要があります。詳細については、「 TLS証明書」を参照してください。

Trino ポリシーの作成

新しいポリシーを作成する際は、次のフィールドに入力します。

[Policy Name] (ポリシー名): このポリシーの名前。

[Policy Label] (ポリシーラベル): このポリシーにつけることができるラベル。

カタログ: このポリシーが適用されるカタログ。ワイルドカード「*」はすべてのカタログを表します。

スキーマ: このポリシーが適用されるスキーマ。ワイルドカード「*」はすべてのスキーマを表します。

[Table] (テーブル): このポリシーが適用されるテーブル。ワイルドカード「*」はすべてのテーブルを表します。

: このポリシーが適用される列。ワイルドカード「*」はすべての列を表します。

[Description] (説明): このポリシーの説明。

Trino ユーザー (ユーザー偽装アクセス用)、Trino System/Session プロパティ (エンジンシステムまたはセッションプロパティの変更用)、関数/プロシージャ (関数またはプロシージャ呼び出しを許可する場合)、および URL (データロケーションでエンジンへの読み取り/書き込みアクセスを許可する場合) には、他のタイプのポリシーがあります。

Ranger 管理のポリシーの作成の詳細。

特定のユーザーとグループにアクセス許可を付与するには、ユーザーおよびグループを入力します。[許可] 条件および [拒否] 条件の除外を指定することもできます。

Ranger 管理のポリシーの詳細の許可/拒否条件。

許可条件と拒否条件を指定したら、[保存] を選択します。

考慮事項

Apache Ranger で Trino ポリシーを作成する際には、注意すべきいくつかの使用上の考慮事項があります。

Hive メタデータサーバー

Hive メタデータサーバーには、不正アクセスから保護するために、信頼されたエンジン (具体的には Trino エンジン) からしかアクセスできません。また、Hive メタデータサーバーには、クラスター上のすべてのノードからもアクセスできます。ポート 9083 は必須で、メインノードへのすべてのノードアクセスを提供します。

認証

デフォルトでは、Trino は Amazon EMR セキュリティ設定で設定された Kerberos を使用して認証するように設定されています。

転送時の暗号化が必要

Trino プラグインでは、Amazon EMR セキュリティ設定で転送時の暗号化を有効にする必要があります。暗号化を有効にするには、「転送中の暗号化」を参照してください。

制限事項

現在、Trino プラグインには以下の制限事項があります。

  • Ranger 管理サーバーはオートコンプリートをサポートしていません。