外部メタストアを使用するデータセットのアクセス許可の管理 - AWS Lake Formation

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

外部メタストアを使用するデータセットのアクセス許可の管理

AWS Glue Data Catalog メタデータフェデレーション (データカタログフェデレーション) を使用すると、Data Catalog を Amazon S3 データのメタデータを保存する外部メタストアに接続し、 を使用してデータアクセス許可を安全に管理できます AWS Lake Formation。メタデータを外部メタストアからデータカタログに移行する必要はありません。

Data Catalog は、さまざまなシステム間でのデータの管理と検出を容易にする一元化されたメタデータリポジトリを提供します。組織がデータカタログ内のデータを管理する場合、 AWS Lake Formation を使用して Amazon S3 内のデータセットへのアクセスを制御できます。

注記

現在、Apache Hive (バージョン 3 以降) メタストアフェデレーションのみをサポートしています。

Data Catalog フェデレーションを設定するには、 で GlueDataCatalogFederation-HiveMetastore という名前の AWS Serverless Application Model (AWS SAM) アプリケーションを提供します AWS Serverless Application Repository。

リファレンス実装は、Federation - Hive Metastore のオープンソースプロジェクト GitHub として で提供されます。 AWS Glue Data Catalog

AWS SAM アプリケーションは、Data Catalog を Hive メタストアに接続するために必要な以下のリソースを作成してデプロイします。

  • AWS Lambda 関数 – Data Catalog と Hive metastore の間で通信するフェデレーションサービスの実装をホストします。 は、この Lambda 関数を AWS Glue 呼び出して Hive メタストアからメタデータオブジェクトを取得します。

  • Amazon API Gateway – すべての呼び出しを Lambda 関数にルーティングするプロキシとして機能する Hive メタストアの接続エンドポイント。

  • IAM ロール – Data Catalog と Hive メタストア間の接続を作成するために必要なアクセス許可を持つロール。

  • AWS Glue connection – Amazon API Gateway エンドポイントと、エンドポイントを呼び出す IAM ロールを保存する AWS Glue 接続 Amazon API Gateway のタイプ。

テーブルをクエリすると、 AWS Glue サービスは Hive メタストアにランタイム呼び出しを行い、メタデータを取得します。Lambda 関数は、Hive メタストアとデータカタログ間のトランスレータとして機能します。

接続を確立した後、Hive メタストアのメタデータをデータカタログと同期するために、Hive メタストア接続の詳細を使用してデータカタログにフェデレーションデータベースを作成し、このデータベースを Hive データベースにマッピングする必要があります。データベースは、データカタログ外のエンティティを指す場合、フェデレーションデータベースと呼ばれます。

タグベースのアクセスコントロールと名前付きリソース方式を使用して、フェデレーションデータベースに Lake Formation 許可を適用し、複数の AWS アカウント、、 AWS Organizationsおよび組織単位 (OUs) で共有できます。フェデレーションデータベースは、別のアカウントの IAM プリンシパルと直接共有することもできます。

外部 Hive テーブルの Lake Formation データフィルターを使用して、列レベル、行レベル、セルレベルできめ細かなアクセス許可を定義できます。Amazon Athena 、Amazon Redshift、または Amazon EMR を使用して、Lake Formation が管理する外部 Hive テーブルをクエリできます。

クロスアカウントデータ共有およびデータフィルタリングの詳細については、以下を参照してください。

データカタログメタデータフェデレーションの手順の概要
  1. アプリケーションをデプロイし、フェデレーティッドデータベースを作成するための適切なアクセス許可を持つ AWS SAM IAM ユーザーとロールを作成します。

  2. 外部 Hive メタストアを使用するデータセットの Enable Data Catalog federation オプションを選択して、Amazon S3 のデータロケーションを Lake Formation に登録します。

  3. AWS SAM アプリケーション設定 (AWS Glue 接続名、Hive メタストアへの URL、Lambda 関数パラメータ) を設定し、 AWS SAM アプリケーションをデプロイします。

  4. AWS SAM アプリケーションは、外部 Hive メタストアを Data Catalog に接続するために必要なリソースをデプロイします。

  5. Hive データベースとテーブルに Lake Formation 許可を適用するには、Hive メタストア接続の詳細を使用して Data Catalog にデータベースを作成し、このデータベースを Hive データベースにマッピングします。

  6. フェデレーションデータベースのアクセス許可を、自分のアカウントまたは別のアカウントのプリンシパルに付与します。

注記

Lake Formation のアクセス許可を適用しなくても、データカタログを外部 Hive メスタストアに接続したり、フェデレーションデータベースを作成したり、Hive データベースやテーブルでクエリや ETL スクリプトを実行したりできます。Lake Formation に登録されていない Amazon S3 のソースデータの場合、アクセスは Amazon S3 の IAM アクセス許可ポリシーと AWS Glue アクションによって決まります。

制限事項については、「Hive メタデータストアのデータ共有に関する考慮事項と制限事項」を参照してください。

ワークフロー

次の図は、 AWS Glue Data Catalog を外部 Hive メタストアに接続するためのワークフローを示しています。

  1. プリンシパルは、Athena や Redshift Spectrum などの統合サービスを使用してクエリを送信します。

  2. 統合サービスは、メタデータの Data Catalog を呼び出します。これにより、 の背後にある Hive メタストアエンドポイントが呼び出され Amazon API Gateway、メタデータリクエストへのレスポンスを受け取ります。

  3. 統合サービスが Lake Formation にリクエストを送信し、テーブル情報とテーブルにアクセスするための認証情報を検証します。

  4. Lake Formation はリクエストを承認し、統合アプリケーションに一時的な認証情報を提供して、データアクセスを許可します。

  5. 統合サービスが Lake Formation から受け取った一時的な認証情報を使用して Amazon S3 からデータを読み取り、結果をプリンシパルと共有します。