AWS Lake Formation を介したデータのクエリ
AWS Lake Formation を使用すると、データレイクの一元管理と保護、データアクセスの提供が容易になります。AWS IAM アイデンティティセンターと Redshift を介して Lake Formation へのアイデンティティプロパゲーションを設定すると、管理者は組織の ID プロバイダー (IdP) グループに基づいて、Amazon S3 データレイクへのきめ細かいアクセスを許可できるようになります。このようなグループは AWS IAM アイデンティティセンターを通じて管理されます。このセクションでは、データレイクからのクエリとデータ共有からのクエリといういくつかのユースケースを設定する方法を示します。このようなユースケースでは、AWS IAM アイデンティティセンターと Redshift を活用して Lake Formation が管理するリソースに接続する方法が示されます。
データレイクのクエリのための AWS IAM アイデンティティセンターと Redshift 接続の使用
Redshift に接続された AWS IAM アイデンティティセンターを使用して、Lake Formation が管理するデータレイクにクエリを実行するユースケースを次の手順で説明します。
前提条件
この手順には、次のとおりの前提条件のステップがあります。
-
AWS IAM アイデンティティセンターを、Redshift による認証とアイデンティティ管理をサポートするように設定する必要があります。コンソールから AWS IAM アイデンティティセンターを有効にして、ID プロバイダー (IdP) ソースを選択できます。その後、IdP ユーザーのセットを AWS IAM アイデンティティセンターと同期します。また、このドキュメントで前述した手順に従って、AWS IAM アイデンティティセンターと Redshift 間の接続を設定する必要があります。
-
新しい Amazon Redshift クラスターを作成して、設定ステップで AWS IAM アイデンティティセンターを介したアイデンティティ管理を有効にします。
-
Lake Formation 向けのマネージド AWS IAM アイデンティティセンターアプリケーションを作成して設定します。その後、AWS IAM アイデンティティセンターと Redshift 間の接続をセットアップします。手順は次のとおりです。
-
AWS CLI で
modify-redshift-idc-application
コマンドを使用して、Lake Formation サービスと Redshift の AWS IAM アイデンティティセンターマネージドアプリケーションとの統合を有効にします。この呼び出しは、Lake Formation への認可を有効にする設定文字列値に設定されたservice-integrations
パラメータを含みます。 -
create-lake-formation-identity-center-configuration
コマンドを使用して Lake Formation を設定します。これにより、Lake Formation 向けの AWS IAM アイデンティティセンターアプリケーションが作成され、AWS IAM アイデンティティセンターポータルに表示されます。管理者は––cli-input-json
引数を設定する必要があります。引数の値は、すべての AWS CLI API コールの標準形式を使用する JSON ファイルへのパスです。次の値を含める必要があります。-
CatalogId
– Lake Formation カタログ ID -
InstanceArn
– AWS IAM アイデンティティセンターインスタンスの ARN 値
-
-
管理者が前提条件の設定を完了すると、データベース管理者はデータレイクをクエリするための外部スキーマを作成できます。
-
管理者が外部スキーマを作成する – Redshift データベース管理者は、次の SQL ステートメントを使用してデータベースに接続し、外部スキーマを作成します。
CREATE EXTERNAL SCHEMA if not exists my_external_schema from DATA CATALOG database 'my_lf_integrated_db' catalog_id '12345678901234';
この場合、アクセスは AWS IAM アイデンティティセンターを介して管理されるため、IAM ロールを指定する必要はないことに注意します。
-
管理者がアクセス許可を付与する – 管理者は AWS IAM アイデンティティセンターグループに使用権限を付与します。これにより、Redshift リソースへのアクセス許可が付与されます。これには、次のような SQL ステートメントを実行します。
GRANT USAGE ON SCHEMA "my_external_schema" to "MYCO:sales";
その後、管理者は AWS CLI を使用して、組織の要件に基づいてオブジェクトに対する Lake Formation のアクセス許可を付与します。
aws lakeformation grant-permissions ...
-
ユーザーがクエリを実行する – この説明の例では、この時点で営業グループに属する AWS IAM アイデンティティセンターユーザーは、クエリエディタ v2 を使用して Redshift データベースにログインできます。その後、次のサンプルのように、外部スキーマのテーブルにアクセスするクエリを実行できます。
SELECT * from my_external_schema.table1;
AWS IAM アイデンティティセンターと Redshift 接続を使用したデータ共有への接続
AWS IAM アイデンティティセンターを介してアクセスが管理されている場合、別の Redshift データウェアハウスからデータ共有にアクセスできます。これを行うには、クエリを実行して外部データベースを設定します。この手順を完了する前に、上記の手順の説明のとおり、Redshift と AWS IAM アイデンティティセンター間の接続を設定し、AWS Lake Formation アプリケーションを作成していることが前提となります。
-
外部データベースの作成 — 管理者はデータ共有のための外部データベースを作成し、ARN を通じて参照します。次のサンプルは、この方法を説明しています。
CREATE DATABASE "redshift_external_db" FROM ARN 'arn:aws:glue:us-east-1:123456789012:database/redshift_external_db-iad' WITH NO DATA CATALOG SCHEMA;
アイデンティティ管理のために AWS IAM アイデンティティセンターと Redshift を使用するこのようなユースケースでは、IAM ロールは含まれていません。
-
管理者がアクセス許可を設定する – データベースを作成した後、管理者が AWS IAM アイデンティティセンターグループに使用権限を付与します。これにより、Redshift リソースに対するアクセス許可が付与されます。
GRANT USAGE ON DATABASE "my_external_db" to "MYCO:sales";
管理者は、AWS CLI を使用して、オブジェクトに対する Lake Formation のアクセス許可も付与します。
aws lakeformation grant-permissions ...
-
ユーザーがクエリを実行する – 営業グループのユーザーは、割り当てられたアクセス許可に基づいてデータベース内のテーブルに対してクエリを実行できます。
select * from redshift_external_db.public.employees;
データレイクに対するアクセス許可の付与とデータ共有アクセス許可の付与の詳細については、「ユーザーとグループへのアクセス許可の付与」を参照してください。スキーマまたはデータベースへの使用権限の詳細については、「GRANT」を参照してください。