データレイクガバナンス - AWS Lake Formation による一元的なアクセス制御
AWS Lake Formation を使ったデータレイクの構築・アクセス制御・ガバナンスを解説。S3 ベースのデータレイクに対する列レベル・行レベルのきめ細かな権限管理と Glue・Athena との統合を紹介します。
データレイクのガバナンス課題と Lake Formation の役割
S3 をストレージ基盤としたデータレイクは、構造化・半構造化・非構造化データを低コストで一元管理できる強力なアーキテクチャです。しかし、データ量とユーザー数が増加するにつれ、「誰がどのデータにアクセスできるか」の管理が急速に複雑化します。従来は S3 バケットポリシー、IAM ポリシー、Glue Data Catalog のリソースポリシーを組み合わせてアクセス制御を実現していましたが、テーブル数が数百を超えると管理が破綻しがちです。AWS Lake Formation は 2019 年に一般提供が開始されたデータレイクのガバナンスサービスで、データの取り込み・カタログ登録・アクセス制御・監査を一元的に管理します。Lake Formation の中核は権限管理レイヤーで、S3 上のデータに対してデータベース・テーブル・列・行・セルの各レベルでアクセス権限を付与できます。Azure の Microsoft Purview もデータガバナンスを提供しますが、Purview はカタログとデータマップに重点を置くのに対し、Lake Formation は実行時のアクセス制御 (クエリ実行時に列・行を動的にフィルタリング) に強みがあります。
この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。
アクセス制御モデルと LF-TBAC
Lake Formation は 2 つのアクセス制御モデルを提供します。Named Resource 方式は、特定のデータベース・テーブル・列を指定してプリンシパル (IAM ユーザー/ロール) に権限を付与する従来型のモデルです。Tag-Based Access Control (LF-TBAC) は、データリソースと プリンシパルの双方に LF-Tag (キーバリューペア) を付与し、タグの一致で権限を自動適用するモデルです。たとえば、テーブルに department=finance タグを付与し、財務部門のロールに同じタグを関連付ければ、新しいテーブルを追加するたびに個別の権限設定なしでアクセスが自動的に許可されます。 ```bash # LF-Tag の作成 aws lakeformation create-lf-tag \ --catalog-id 123456789012 \ --tag-key department \ --tag-values '["finance","engineering","marketing"]' # テーブルに LF-Tag を付与 aws lakeformation add-lf-tags-to-resource \ --resource '{"Table":{"DatabaseName":"analytics","Name":"transactions"}}' \ --lf-tags '[{"TagKey":"department","TagValues":["finance"]}]' ``` 行レベルセキュリティ (Row-Level Security) では、フィルタ式を定義してプリンシパルごとに参照可能な行を制限できます。たとえば region='ap-northeast-1' の条件を設定すれば、東京リージョンのデータのみが返されます。列レベルのアクセス制御と組み合わせることで、同一テーブルに対してユーザーごとに異なるビューを提供できます。
データカタログとクエリエンジンとの統合
Lake Formation は AWS Glue Data Catalog と統合されており、S3 上のデータのスキーマ情報 (データベース、テーブル、パーティション、列定義) を一元管理します。Glue Crawler でデータソースをスキャンし、スキーマを自動検出してカタログに登録できます。登録されたテーブルには Lake Formation の権限が適用され、Athena、Redshift Spectrum、EMR (Spark/Hive) からクエリを実行する際に自動的にアクセス制御が適用されます。ユーザーは SQL を書くだけで、裏側で Lake Formation が権限チェックと列・行のフィルタリングを実行します。Athena との統合では、ユーザーが SELECT * を実行しても、権限のない列は結果から自動的に除外されます。この透過的なアクセス制御により、アプリケーション側でフィルタリングロジックを実装する必要がありません。Governed Tables 機能を使えば、S3 上のデータに対して ACID トランザクションを実現でき、複数の ETL ジョブが同時にデータを更新しても整合性が保たれます。
クロスアカウント共有とデータメッシュ
Lake Formation のクロスアカウント共有機能により、AWS Organizations 内の複数アカウントにデータを安全に共有できます。データ所有者アカウントがテーブルやデータベースの権限を他アカウントに付与すると、受信側アカウントの Lake Formation にリソースリンクが作成され、Athena や Redshift Spectrum から直接クエリできます。データの物理的なコピーは不要で、S3 上の元データを参照するため、ストレージコストの重複が発生しません。この仕組みはデータメッシュアーキテクチャの基盤として機能します。各ドメインチーム (営業、マーケティング、エンジニアリング) が自身のアカウントでデータプロダクトを管理し、Lake Formation を通じて組織全体に公開するパターンです。AWS RAM (Resource Access Manager) との統合により、共有の管理を Organizations の OU (組織単位) レベルで一括制御することも可能です。監査面では、CloudTrail と Lake Formation の統合により、誰がいつどのデータにアクセスしたかの監査ログが自動的に記録されます。
導入手順とベストプラクティス
既存の S3 + Glue + Athena 環境に Lake Formation を導入する手順は段階的に進められます。まず Lake Formation の管理者 (Data Lake Administrator) を指定し、既存の Glue Data Catalog のデータベースを Lake Formation に登録します。次に、S3 のデータロケーションを Lake Formation に登録し、Lake Formation がデータへのアクセスを仲介するよう設定します。この時点で既存の IAM ベースのアクセス制御から Lake Formation ベースに移行するため、IAMAllowedPrincipals の権限を段階的に削除し、Lake Formation の権限に置き換えます。移行時の注意点として、IAMAllowedPrincipals を一括削除すると既存のクエリが失敗するため、テーブル単位で段階的に移行することを推奨します。ベストプラクティスとして、LF-TBAC を採用してスケーラブルな権限管理を実現すること、本番データへのアクセスは最小権限の原則に従うこと、CloudTrail ログを定期的に監査してアクセスパターンを確認することが挙げられます。Lake Formation 自体の利用料金は無料で、課金は S3 ストレージ、Glue Crawler/ETL ジョブ、Athena クエリスキャンなど基盤サービスの利用分のみです。
さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。
まとめ - Lake Formation の活用指針
AWS Lake Formation は、S3 ベースのデータレイクにエンタープライズグレードのアクセス制御とガバナンスを追加するサービスです。列・行・セルレベルのきめ細かな権限管理、LF-TBAC によるスケーラブルなポリシー運用、クロスアカウント共有によるデータメッシュの実現が主な強みです。Athena・Redshift Spectrum・EMR との透過的な統合により、既存のクエリワークフローを変更せずにアクセス制御を導入できます。Lake Formation 自体は無料で利用でき、既存の S3 + Glue + Athena 環境への段階的な導入が可能なため、データレイクのガバナンス強化を検討する際の第一選択肢となります。
AWS の優位点
- S3 上のデータレイクに対してテーブル・列・行・セルレベルのきめ細かなアクセス制御を一元管理し、IAM ポリシーの複雑な組み合わせを不要にする
- Data Catalog (Glue カタログ統合) でスキーマ管理とデータ検出を自動化し、Athena・Redshift Spectrum・EMR からの横断的なクエリを実現
- Tag-Based Access Control (LF-TBAC) により、データ属性にタグを付与してポリシーを定義でき、テーブル追加時に自動的に権限が適用される
- クロスアカウント共有で AWS Organizations 内の複数アカウントにデータを安全に共有し、データメッシュアーキテクチャの基盤となる
- Governed Tables によるトランザクション対応 (ACID) で、データレイクでも整合性のある読み書きが可能
- Azure Purview (Microsoft Purview) がカタログとガバナンスを統合するのに対し、Lake Formation は S3 + Glue + Athena の既存エコシステムにアクセス制御レイヤーを追加する設計で、既存環境への導入が容易
- Lake Formation 自体の利用料金は無料で、課金は S3 ストレージや Athena クエリなど基盤サービスの利用分のみ