翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
アプリケーション統合 API 操作のワークフローは次のとおりです。
-
ユーザーが、統合されたサードパーティークエリエンジンを使用してデータへのクエリまたはリクエストを送信します。クエリエンジンがユーザーまたはユーザーのグループを表す IAM ロールを引き受けて、信頼できる認証情報を取得し、これを使用してアプリケーション統合 API 操作を呼び出します。
-
クエリエンジンが
GetUnfilteredTableMetadata
(パーティション化されたテーブルの場合はGetUnfilteredPartitionsMetadata
) を呼び出し、Data Catalog からメタデータとポリシー情報を取得します。 -
Lake Formation がリクエストの認可を実行します。ユーザーがテーブルに対する適切な許可を持っていない場合は、AccessDeniedException がスローされます。
-
リクエストの一部として、クエリエンジンが、サポートするフィルタリングを送信します。配列内で送信できるフラグには、COLUMN_PERM と CELL_FILTER_PERMISSION の 2 つがあります。クエリエンジンがこれらの機能のどちらもサポートしておらず、機能に関するポリシーがテーブルに存在する場合は、PermissionTypeMismatchException がスローされ、クエリが失敗します。これは、データ漏洩を防ぐためのものです。
-
返される応答には以下が含まれます。
-
テーブルの完全なスキーマ。クエリエンジンがこれを使用してストレージからのデータを解析できるようにするためです。
-
ユーザーがアクセスできる認可された列のリスト。認可された列のリストが空の場合は、ユーザーに
DESCRIBE
許可があってもSELECT
許可がないことを示し、クエリが失敗します。 -
IsRegisteredWithLakeFormation
というフラグ。これは、Lake Formation がこのリソースデータに認証情報を供給できるかどうかを示します。これが false を返す場合、Amazon S3 へのアクセスには顧客の認証情報を使用する必要があります。 -
データの行に適用する必要がある
CellFilters
のリスト (存在する場合)。このリストには、列と、各行を評価する式が含まれています。これは、CELL_FILTER_PERMISSION をリクエストの一部として送信し、テーブルに対するデータフィルターが呼び出し側のユーザーにある場合にのみ投入されます。
-
-
メタデータを取得すると、クエリエンジンは
GetTemporaryGlueTableCredentials
またはGetTemporaryGluePartitionCredentials
を呼び出して、Amazon S3 の場所からデータを取得するための AWS 認証情報を取得します。 -
クエリエンジンが Amazon S3 から関連するオブジェクトを読み取り、ステップ 2 で受け取ったポリシーに基づいてデータをフィルタリングして、ユーザーに結果を返します。
Lake Formation のアプリケーション統合 API 操作には、サードパーティクエリエンジンとの統合を設定するための追加のコンテンツが含まれています。操作の詳細については、「認証情報供給 API 操作」セクションを参照してください。