ひとことで言うと
Glue Data Catalog上のデータに対して、列・行・セル単位の細かいアクセス制御を一元管理する認可レイヤーです。IAMを置き換えるのではなく、その上に重ねて使います。
要するに、図書館の閲覧許可証です。目録(Data Catalog)は誰でも見られますが、実際に特定の棚の特定のページを開けるかどうかはLake Formationが管理する許可証で決まります。
なぜ生まれたか
| Lake Formation以前 | Lake Formation導入後 |
|---|---|
| 列・行単位の制御をIAMのバケットポリシー・プレフィックス管理で頑張る | Data Catalog上のデータに対する単一の許可管理の場所ができる |
| Athena・Redshift Spectrum・EMR・Glue ETLごとに個別管理 | 複数の分析サービスに横串で効く共通の認可レイヤーになる |
何に使うか
| 用途 | 使い方 | 関連ドメイン |
|---|---|---|
| RAGコーパス中のPIIを特定ロールにだけ見せない | データフィルタで列・行・セル単位に制限 | D3.2 |
| 大量のテーブルへの権限をスケールさせる | LF-Tags(タグベースアクセス制御)で一括付与 | D3.2 |
| Bedrock Knowledge Basesの構造化データストアをGlue Data Catalogにする | サービスロールにLake FormationのDescribe・Select許可+lakeformation:GetDataAccessを付与 | D1.4, D3.2 |
| アクセス監査 | CloudTrailと連携した監査ログ | D3.3 |
試験でどう問われるか
| 問われ方 | 正解に寄る条件 | 引っかけ |
|---|---|---|
| 「特定ユーザーには顧客テーブルの一部の列を見せたくない」 | Lake Formationの列・行・セルレベルのデータフィルタ | IAMポリシーだけで列単位の制御を試みる(IAMはリソース単位までで列は制御できない) |
| 「数百テーブル×数十プリンシパルの権限をこれ以上手で管理できない」 | **LF-Tags(LF-TBAC)**で権限をタグ単位に集約 | 個別リソースへのGRANTを増やし続ける(管理コストがn(P)×n(R)で増える) |
| 「Bedrock Knowledge Basesの構造化データストアで権限エラーが出る」 | サービスロールに**lakeformation:GetDataAccess**が無い、またはLake FormationコンソールでDescribe/Select許可を付与していない | IAM側のGlueアクション権限だけ足して解決しようとする(Lake Formation側の許可が別途要る) |
IAMタグとLF-Tagsは別物です。 公式ドキュメントも「同じではなく相互運用できない」と明記しています。IAMタグはIAMポリシーの条件に使い、LF-TagsはLake Formationの許可付与だけに使います。ABAC設計で混同すると意図しない権限漏れが起きます。
実務でどう使うか
| 実務上のポイント | 内容 |
|---|---|
| LF-TBACの効果 | named resource方式はn(プリンシパル)×n(リソース)の粒度で許可が必要。LF-Tagsならタグの割当と付与の合計程度まで減らせる |
| Hybrid access mode | 一部のデータベース・テーブルだけに段階導入でき、既存ワークロードの権限ポリシーを壊さず移行できる |
| Bedrock KB連携の落とし穴 | Glue Data Catalogを構造化データストアに選ぶ場合、IAM側の権限を揃えてもLake Formation側のDescribe/Select許可を忘れると同期が失敗する。両方セットで確認する |
取り違えやすいもの
| 迷う相手 | 切り分けの一言 |
|---|---|
| AWS Glue Data Catalog | Data Catalogは「何がどこにあるか」の目録。Lake Formationは「誰が読めるか」の許可。片方だけでは完結しない |
| IAM(通常のポリシー) | IAMはAWSリソース単位のアクセス制御。Lake Formationはその内側、列・行・セル単位まで踏み込む |
| LF-Tags vs IAMタグ/ABAC | 名前は似ているが別システム。LF-TagsはLake Formationの許可専用 |
想起チェック
Q1. 数百テーブルへの権限をユーザーごとに個別付与し続けるのは何が問題?
管理コストがプリンシパル数×リソース数で増えることです。LF-Tags(LF-TBAC)を使えば、タグの割当と付与の組み合わせだけで同じ権限構成を表現でき、管理コストを大幅に抑えられます。
Q2. Bedrock Knowledge BasesがGlue Data Catalogに同期できずauthorizationエラーになる。何が抜けている可能性が高い?
サービスロールへの**lakeformation:GetDataAccess権限**、またはLake FormationコンソールでのDescribe/Select許可付与が抜けている可能性が高いです。IAM側のGlueアクション権限だけでは足りません。