Lake Formation の新 S3 直接ファイルアクセス — SQL とファイルの権限を統合
従来の Lake Formation は Athena・Redshift Spectrum・Spark SQL などの統合サービスを介した SQL クエリに対してのみテーブル権限を適用していました。 アプリケーションコードが S3 ファイルに直接アクセスするには、別途 IAM ポリシーや S3 バケットポリシーが必要でした。 2026年6月の新機能では、Lake Formation テーブル権限に基づいて一時的なスコープ付き S3 認証情報を取得できるようになり、 SQL クエリとファイルレベルアクセスを単一の権限セットで管理できるようになりました。
従来の仕組み — 統合サービス経由の SQL アクセス
Lake Formation は元々、Glue データカタログに登録されたテーブルへのSQL クエリを制御するサービスとして設計されました。 Athena や Spark SQL などの統合サービスがクエリを実行する際に、Lake Formation がユーザーのテーブル権限を確認し、 バックエンドの S3 へのアクセスを統合サービスエンジン側に許可する仕組みです。
この設計では、ユーザーやアプリケーションコードは S3 の認証情報を直接受け取りません。
モデルトレーニングや特徴量エンジニアリングのように、Spark ジョブから
s3.get_object() などで直接 S3 ファイルにアクセスしたい場合は、
Lake Formation とは別に IAM ロールや S3 バケットポリシーを設定する必要がありました。
結果として、SQL 用と直接ファイルアクセス用で権限管理が二重になる問題がありました。
新機能 — テーブル権限に基づく一時的 S3 認証情報の発行
2026年6月11日のリリースで、Lake Formation は新しい API
GetTemporaryDataLocationCredentials を追加しました。
この API を呼び出すと、呼び出し元のテーブル権限に基づいてスコープ付きの一時的 S3 認証情報が返ります。
アプリケーションはこの認証情報を使って S3 ファイルに直接アクセスできます。
権限と S3 アクセスのマッピング
| Lake Formation テーブル権限 | 発行される S3 認証情報の権限 |
|---|---|
SELECT |
読み取り専用 (READ) |
SUPER |
読み取り + 書き込み (READ_WRITE) |
発行される認証情報は登録済み S3 ロケーションにスコープが絞られるため、他のバケットへの横断は不可能です。
API の使用例
# GetTemporaryDataLocationCredentials で一時認証情報を取得する例
import boto3
lakeformation = boto3.client('lakeformation', region_name='ap-northeast-1')
response = lakeformation.get_temporary_data_location_credentials(
ResourceArn='arn:aws:s3:::my-data-lake/processed/sales/',
Permissions=['SELECT'], # READ アクセスを要求
DurationSeconds=3600
)
# 返却された認証情報で直接 S3 操作
s3 = boto3.client(
's3',
aws_access_key_id=response['Credentials']['AccessKeyId'],
aws_secret_access_key=response['Credentials']['SecretAccessKey'],
aws_session_token=response['Credentials']['SessionToken'],
)
s3.download_file('my-data-lake', 'processed/sales/data.parquet', '/tmp/data.parquet')
対応バージョンと統合方法
この機能は以下の環境で利用できます。
- Amazon EMR 7.13 以降(Spark Full Table Access モードに組み込み済み)
- Boto3 1.42.29 以降
- AWS Java SDK 2.41.32 以降
- AWS CLI 2.33.1 以降
EMR で Full Table Access (FTA) モードを使用した場合、Lake Formation に登録済みのテーブルには Lake Formation 認証情報が自動的に使われ、未登録のテーブルにはランタイムロールの認証情報が使われます。 Apache Spark または Trino アプリケーションとの統合は、API 直接呼び出しのほか、 AWS が提供するオープンソースプラグインでも対応しています。
監査ログの統合
SQL クエリとファイルレベルの両方のアクセスが AWS CloudTrail に記録されます。 これにより、これまでは SQL 操作と S3 アクセスで分かれていた監査証跡を統一できます。
まとめ — 何が変わったか
| 観点 | 従来 | 新機能 |
|---|---|---|
| SQL クエリのアクセス制御 | Lake Formation で管理 | Lake Formation で管理(変わらず) |
| S3 直接ファイルアクセス | IAM / S3 バケットポリシーが別途必要 | Lake Formation テーブル権限から一時認証情報を発行 |
| 権限管理の数 | SQL 用と S3 用の二重管理 | 単一の権限セットで統一 |
| 監査ログ | SQL と S3 で分散 | CloudTrail で統一 |