AWS Lake Formation で構築するデータレイク - きめ細かいアクセス制御とデータカタログ
列・行レベルのきめ細かいアクセス制御とタグベース管理でデータレイクのガバナンスを確立する。Glue Data Catalog との統合とクロスアカウントアクセスを紹介します。
Lake Formation の概要
Lake Formation は S3 上のデータレイクの構築・管理・セキュリティを簡素化するサービスです。従来、S3 のデータレイクに対するアクセス制御は S3 バケットポリシーと IAM ポリシーの組み合わせで管理していましたが、列レベルや行レベルの制御が困難でした。Lake Formation はデータベース、テーブル、列、行の 4 レベルで権限を管理し、数千テーブル規模のデータレイクに対応します。Athena、Redshift Spectrum、EMR からのクエリに統一的に適用します。
アクセス制御とタグベース管理
Lake Formation の権限モデルでは、プリンシパル (IAM ユーザー、ロール) に対してデータベース、テーブル、列の SELECT、INSERT、DELETE 権限を付与します。行レベルフィルターで特定の条件に合致する行のみにアクセスを制限でき、部門ごとに自部門のデータのみを参照させる制御が可能です。LF-TBAC ではデータにタグ (例: sensitivity=high) を付与し、プリンシパルに対してタグベースの権限を設定します。新しいテーブルが追加された際にも、タグが一致すれば自動的に権限が適用されます。
クロスアカウントアクセスと監査
Lake Formation のクロスアカウント共有で、 Organizations 内の他アカウントにテーブルやデータベースへのアクセス権限を付与します。 RAM (Resource Access Manager) を使用してリソースリンクを作成し、コンシューマーアカウントの Glue カタログに共有テーブルを表示します。データフィルターで行レベルとセルレベルのアクセス制御を定義し、同じテーブルでも部門ごとに異なるデータ範囲を公開できます。 CloudTrail との統合で、誰がどのテーブルのどのカラムにアクセスしたかを監査ログに記録します。 Lake Formation のタグベースアクセス制御 (LF-TBAC) で、データアセットにタグを付与し、プリンシパルのタグとのマッチングで権限を自動付与する運用が大規模環境で効率的です。 Lake Formation の設計パターンを網羅的に学ぶなら、技術書 (Amazon)を参照してください。
Lake Formation の料金と運用
Lake Formation 自体に追加料金は発生しません。コストは基盤となる S3 ストレージ、Glue クローラー・ジョブ、Athena クエリの利用料金に依存します。Lake Formation のトランザクション機能 (Governed Tables) を使用する場合は、トランザクション API コールとストレージの追加料金が発生します。権限管理の運用コストは、LF-TBAC を導入することで個別のテーブル・カラム権限の管理から解放され、大幅に削減できます。データロケーション登録で S3 パスを Lake Formation の管理下に置き、IAM ポリシーと Lake Formation 権限の二重管理を避けるハイブリッドモードから完全移行することを推奨します。
データレイク構築の流れ
Lake Formation でのデータレイク構築は、いくつかの段階を踏みます。まず S3 のパスをデータの保管場所として Lake Formation に登録し、管理下に置きます。次に Glue のクローラーでデータの構造を読み取り、データカタログにテーブル定義を作成します。これにより、生のファイル群が、クエリ可能なテーブルとして扱えるようになります。取り込みの仕組みを整えれば、継続的に流入するデータをカタログへ反映できます。この一連の流れを整備することで、散在していたデータが、統制の効いた分析基盤として機能し始めます。
データカタログとの関係
Lake Formation の権限管理は、Glue のデータカタログを土台にしています。カタログはテーブルの構造や場所といったメタデータを保持し、Lake Formation はその上に、誰がどのデータベース・テーブル・列にアクセスできるかという権限の層を重ねます。従来の S3 バケットポリシーや IAM だけでは難しかった、列単位・行単位の細やかな制御を、カタログを通じて一元的に適用できます。データの実体と、その見え方・アクセス権を分離して管理できるため、同じデータを部門ごとに異なる範囲で安全に共有する、といった運用が可能になります。
クエリエンジンとの統合
Lake Formation で設定した権限は、複数の分析サービスに統一的に適用されます。Athena でのアドホックなクエリ、Redshift Spectrum からの参照、EMR での大規模処理のいずれからアクセスしても、同じ権限ルールが効きます。これにより、利用するツールごとにアクセス制御を作り込む必要がなくなり、ガバナンスの一貫性が保てます。列をマスキングして機微な情報を隠す、行をフィルタして担当範囲だけを見せる、といった制御も、どのエンジン経由でも一貫して機能します。分析者は使い慣れたツールを選びつつ、組織の統制下で安全にデータを扱えます。
ガバナンスのベストプラクティス
大規模なデータレイクでは、テーブルごとに個別の権限を設定する方式は管理が破綻しがちです。データにタグを付け、タグに基づいて権限を与えるタグベースのアクセス制御を採用すると、新しいテーブルが増えてもタグが一致すれば自動的に適切な権限が適用され、運用が大幅に楽になります。機微な列にはマスキングを施し、最小権限を徹底します。アクセスの記録を監査ログとして残し、誰が何を参照したかを追跡できるようにします。S3 のパスを Lake Formation の管理下に統一し、IAM との二重管理を避けることも、混乱を防ぐうえで重要です。
まとめ
Lake Formation は S3 データレイクにきめ細かいアクセス制御を提供するサービスです。列・行レベルの権限管理と LF-TBAC (タグベースアクセス制御) で大規模環境の権限管理を効率化し、クロスアカウント共有で Organizations 内のデータ共有を安全に実現します。CloudTrail 統合でデータアクセスの監査ログを記録し、データガバナンスの基盤を構築します。