Amazon EMR on EKS と AWS Lake Formation の連携の仕組み - Amazon EMR

Amazon EMR on EKS と AWS Lake Formation の連携の仕組み

Amazon EMR on EKS と Lake Formation を使用することにより、各 Spark ジョブにアクセス許可のレイヤーを適用して、Amazon EMR on EKS がジョブを実行するときに Lake Formation アクセス許可コントロールを適用できます。Amazon EMR on EKS は、Spark リソースプロファイルを使用して 2 つのプロファイルを作成し、ジョブを効果的に実行します。ユーザープロファイルはユーザー提供のコードを実行し、システムプロファイルは Lake Formation ポリシーを適用します。Lake Formation 対応ジョブごとに 2 つの Spark ドライバー (1 つはユーザープロファイル用、1 つはシステムプロファイル用) を使用します。詳細については、「AWS Lake Formation とは」を参照してください。

以下は、Amazon EMR on EKS が Lake Formation セキュリティポリシーで保護されたデータにアクセスする方法の概要を示します。

Lake Formation によるジョブセキュリティ

このプロセスのステップを以下に示します:

  1. ユーザーは、AWS Lake Formation 対応の Amazon EMR on EKS 仮想クラスターに Spark ジョブを送信します。

  2. Amazon EMR on EKS サービスはユーザードライバーをセットアップし、ユーザープロファイルでジョブを実行します。ユーザードライバーは、タスクの起動、エグゼキュターのリクエスト、Amazon S3 または Glue データカタログへのアクセスができない Spark のリーンバージョンを実行します。ジョブプランの構築のみを行います。

  3. Amazon EMR on EKS サービスは、システムドライバーと呼ばれる 2 番目のドライバーを設定し、システムプロファイルで (特権 ID を使用して) 実行します。Amazon EKS は、通信用の 2 つのドライバー間に暗号化された TLS チャネルを設定します。ユーザードライバーはチャネルを使用して、ジョブプランをシステムドライバーに送信します。システムドライバーは、ユーザーが送信したコードを実行しません。フル Spark を実行して、データアクセスのために Amazon S3 およびデータカタログと通信します。エグゼキュターをリクエストし、ジョブプランを一連の実行ステージにコンパイルします。

  4. Amazon EMR on EKS サービスは、エグゼキュターでステージを実行します。どのステージのユーザーコードも、ユーザープロファイルのエグゼキュターでのみ実行されます。

  5. Lake Formation で保護されたデータカタログテーブルからデータを読み取るステージ、またはセキュリティフィルターを適用するステージは、システムエグゼキュターに委任されます。