アプリケーション統合 API 操作の Lake Formation ワークフロー - AWS Lake Formation

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

アプリケーション統合 API 操作の Lake Formation ワークフロー

アプリケーション統合 API 操作のワークフローは次のとおりです。

  1. ユーザーが、統合されたサードパーティークエリエンジンを使用してデータへのクエリまたはリクエストを送信します。クエリエンジンがユーザーまたはユーザーのグループを表す IAM ロールを引き受けて、信頼できる認証情報を取得し、これを使用してアプリケーション統合 API 操作を呼び出します。

  2. クエリエンジンが GetUnfilteredTableMetadata (パーティション化されたテーブルの場合は GetUnfilteredPartitionsMetadata) を呼び出し、Data Catalog からメタデータとポリシー情報を取得します。

  3. Lake Formation がリクエストの認可を実行します。ユーザーにテーブルに対する適切なアクセス許可がない場合、 AccessDeniedExceptionがスローされます。

  4. リクエストの一部として、クエリエンジンが、サポートするフィルタリングを送信します。配列内で送信できるフラグには、COLUMN_PERM と CELL_FILTER_PERMISSION の 2 つがあります。クエリエンジンがこれらの機能をサポートしておらず、機能のテーブルにポリシーが存在する場合、 PermissionTypeMismatchException がスローされ、クエリは失敗します。これは、データ漏洩を防ぐためのものです。

  5. 返される応答には以下が含まれます。

    • テーブルの完全なスキーマ。クエリエンジンがこれを使用してストレージからのデータを解析できるようにするためです。

    • ユーザーがアクセスできる認可された列のリスト。認可された列のリストが空の場合は、ユーザーに DESCRIBE 許可があっても SELECT 許可がないことを示し、クエリが失敗します。

    • IsRegisteredWithLakeFormation というフラグ。これは、Lake Formation がこのリソースデータに認証情報を供給できるかどうかを示します。これが false を返す場合、Amazon S3 へのアクセスには顧客の認証情報を使用する必要があります。

    • データの行に適用する必要がある CellFilters のリスト (存在する場合)。このリストには、列と、各行を評価する式が含まれています。これは、CELL_FILTER_PERMISSION をリクエストの一部として送信し、テーブルに対するデータフィルターが呼び出し側のユーザーにある場合にのみ投入されます。

  6. メタデータを取得すると、クエリエンジンは GetTemporaryGlueTableCredentialsまたは GetTemporaryGluePartitionCredentialsを呼び出して、Amazon S3 の場所からデータを取得するための AWS 認証情報を取得します。

  7. クエリエンジンが Amazon S3 から関連するオブジェクトを読み取り、ステップ 2 で受け取ったポリシーに基づいてデータをフィルタリングして、ユーザーに結果を返します。

Lake Formation のアプリケーション統合 API 操作には、サードパーティクエリエンジンとの統合を設定するための追加のコンテンツが含まれています。操作の詳細については、「認証情報供給 API 操作」セクションを参照してください。