AWS Lake Formation

データレイクの構築・管理・セキュリティを一元化し、S3 上のデータに対する列レベル・行レベルのきめ細かいアクセス制御を提供するサービス

概要

AWS Lake Formation は、S3 をベースとしたデータレイクの構築、データの取り込み、カタログ登録、アクセス制御を一元的に管理するサービスです。Glue Data Catalog と統合されており、データソースからの取り込み (ブループリント)、スキーマの自動検出、テーブル・列・行レベルのアクセス制御、クロスアカウントでのデータ共有を提供します。Athena、Redshift Spectrum、EMR からデータレイクにクエリする際のアクセス権限を、Lake Formation の一元的なポリシーで管理できます。

IAM ポリシーでは実現できないきめ細かいアクセス制御

データレイクのアクセス制御を S3 の IAM ポリシーと Glue Data Catalog のリソースポリシーだけで管理しようとすると、テーブル数やユーザー数の増加に伴いポリシーが爆発的に複雑化します。Lake Formation はデータベース、テーブル、列、行の各レベルでアクセス権限を付与する独自の権限モデルを提供し、SQL の GRANT/REVOKE に似た直感的な操作で管理できます。列レベルフィルタリングでは、同じテーブルに対してユーザー A には全列を、ユーザー B には個人情報列を除いた列のみを公開するといった制御が可能です。行レベルセキュリティ (Row-Level Security) では、データフィルターを定義して「営業部門のユーザーには自部門のデータのみ表示」のような行単位のアクセス制御を実現します。セルレベルセキュリティは列フィルタリングと行フィルタリングを組み合わせたもので、特定の行の特定の列だけをマスクするといった最もきめ細かい制御が可能です。これらの権限は AthenaRedshift Spectrum、EMR のいずれからクエリしても一貫して適用されるため、アクセス経路によって見えるデータが変わるという事故を防止できます。

データレイク構築のワークフローとブループリント

Lake Formation でデータレイクを構築する標準的なワークフローは、データレイクの場所登録、データソースの接続、ブループリントによるデータ取り込み、権限設定の 4 ステップです。まず S3 バケットをデータレイクの場所として登録し、Lake Formation にそのバケットへのアクセス権限を委任します。次にデータソース (RDSDynamoDB、オンプレミスのデータベースなど) への接続を設定します。ブループリントは定型的なデータ取り込みパターンをテンプレート化したもので、データベーススナップショット (全量取り込み) と増分取り込みの 2 種類が用意されています。ブループリントを実行すると、裏側で Glue のクローラーと ETL ジョブが自動生成され、データソースからデータを抽出して S3 に Parquet 形式で格納し、Glue Data Catalog にテーブルとして登録します。手動で Glue ジョブを構築する場合と比べて、初期セットアップの工数を大幅に削減できます。ただし、複雑なデータ変換やカスタムロジックが必要な場合は、ブループリントではなく Glue ジョブを直接作成する方が柔軟です。

クロスアカウントデータ共有と Governed Tables

Lake Formation のクロスアカウントデータ共有は、Organizations 内の別アカウントや外部アカウントに対して、テーブル単位・列単位でデータへのアクセス権限を付与する機能です。従来の S3 バケットポリシーによるクロスアカウントアクセスでは、データの論理的な構造 (テーブル、列) を意識した制御ができませんでしたが、Lake Formation では「アカウント B にはテーブル X の列 A, B, C のみ読み取り可」のような粒度で共有できます。AWS RAM (Resource Access Manager) と統合されており、共有の招待と承認のワークフローが標準化されています。Governed Tables は Lake Formation が管理する特殊なテーブルタイプで、ACID トランザクション、自動データコンパクション、タイムトラベルクエリをサポートします。複数の ETL ジョブが同じテーブルに同時に書き込む場合でも、トランザクションの分離レベルが保証されるため、読み取り側が中途半端な状態のデータを参照することがありません。Apache Iceberg テーブルフォーマットとの統合も進んでおり、Iceberg テーブルに対しても Lake Formation の権限モデルを適用できます。

共有するXB!