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 データレイクにきめ細かいアクセス制御を提供するサービスです。列・行レベルの権限管理と LF-TBAC (タグベースアクセス制御) で大規模環境の権限管理を効率化し、クロスアカウント共有で Organizations 内のデータ共有を安全に実現します。CloudTrail 統合でデータアクセスの監査ログを記録し、データガバナンスの基盤を構築します。