

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

# Lake Formation での JDBC ソースからのデータレイクの作成
<a name="getting-started-tutorial-jdbc"></a>

このチュートリアルでは、 AWS Lake Formation コンソールで Lake Formation を使用して JDBC ソースから最初のデータレイクを作成およびロードする手順について説明します。

**Topics**
+ [対象者](#tut-personas)
+ [JDBC チュートリアルの前提条件](#tut-prereqs)
+ [ステップ 1: データアナリストユーザーの作成](#tut-create-lf-user)
+ [ステップ 2: AWS Glue で接続を作成する](#tut-connection)
+ [ステップ 3: データレイク用の Amazon S3 バケットを作成する](#tut-create-bucket)
+ [ステップ 4: Amazon S3 パスを登録する](#tut-register)
+ [ステップ 5: データのロケーションに対する許可を付与する](#tut-data-location)
+ [ステップ 6: Data Catalog でデータベースを作成する](#tut-create-db)
+ [ステップ 7: データの許可を付与する](#tut-grant-data-permissions)
+ [ステップ 8: ブループリントを使用してワークフローを作成する](#tut-create-workflow)
+ [ステップ 9: ワークフローを実行する](#tut-run-workflow)
+ [ステップ 10: テーブルに対する SELECT を付与する](#tut-grant-select)
+ [ステップ 11: を使用してデータレイクをクエリする Amazon Athena](#tut-query-athena)
+ [ステップ 12: Amazon Redshift Spectrum を使用してデータレイク内のデータをクエリする](#tut-query-redshift)
+ [ステップ 13: Amazon Redshift Spectrum を使用して Lake Formation 許可を付与または取り消す](#getting-started-tutorial-grant-revoke-redshift)

## 対象者
<a name="tut-personas"></a>

次の表は、この [AWS Lake Formation JDBC チュートリアル](#getting-started-tutorial-jdbc)で使用するロールのリストです。


| ロール  | 説明 | 
| --- | --- | 
| IAM 管理者 |  AWS Identity and Access Management (IAM) ユーザーとロール、および Amazon Simple Storage Service (Amazon S3) バケットを作成できるユーザー。AdministratorAccess AWS 管理ポリシーがあります。 | 
| データレイク管理者 | Data Catalog へのアクセス、データベースの作成、および他のユーザーへの Lake Formation 許可の付与を実行できるユーザー。IAM 許可の数は IAM 管理者よりも少ないですが、データレイクを管理するには十分な許可を持っています。 | 
| データアナリスト | データレイクに対してクエリを実行できるユーザー。クエリを実行するために十分な許可のみを持っています。 | 
| ワークフローロール | ワークフローを実行するために必要な IAM ポリシーを持つロール。 | 

チュートリアルを完了するための前提条件については、「[JDBC チュートリアルの前提条件](#tut-prereqs)」を参照してください。

## JDBC チュートリアルの前提条件
<a name="tut-prereqs"></a>

「[AWS Lake Formation JDBC チュートリアル](#getting-started-tutorial-jdbc)」を開始する前に、以下を実行したことを確認してください。
+ [Lake Formation の使用の開始](getting-started-setup.md) の各タスクを完了する。
+ チュートリアルで使用する、JDBC がアクセスできるデータストアを決定する。
+ JDBC タイプの AWS Glue 接続を作成するために必要な情報を収集する。この Data Catalog オブジェクトには、データストアへの URL とログイン認証情報が含まれ、データストアが Amazon Virtual Private Cloud (Amazon VPC) で作成された場合は、追加の VPC 固有の設定情報も含まれます。詳細については、「*AWS Glue デベロッパーガイド*」の「[AWS Glue データカタログでの接続の定義](https://docs.aws.amazon.com/glue/latest/dg/populate-add-connection.html)」を参照してください。

このチュートリアルでは、 AWS Identity and Access Management (IAM) に精通していることを前提としています。IAM については、「[IAM ユーザーガイド](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)」を参照してください。

開始するには、「[ステップ 1: データアナリストユーザーの作成](#tut-create-lf-user)」に進んでください。

## ステップ 1: データアナリストユーザーの作成
<a name="tut-create-lf-user"></a>

このステップでは、データレイクのデータアナリストとなる AWS Identity and Access Management (IAM) ユーザーを作成します AWS Lake Formation。

このユーザーは、データレイクをクエリするための最小限の許可セットを持っています。

1. IAM コンソール ([https://console.aws.amazon.com/iam](https://console.aws.amazon.com/iam)) を開きます。で作成した管理者ユーザーとして、[管理アクセスを持つユーザーを作成する](getting-started-setup.md#create-an-admin)または `AdministratorAccess` AWS 管理ポリシーを持つユーザーとしてサインインします。

1. 以下の設定で、`datalake_user` という名前のユーザーを作成します。
   +  AWS マネジメントコンソール アクセスを有効にします。
   + パスワードを設定して、パスワードのリセットを不要にする。
   + `AmazonAthenaFullAccess` AWS 管理ポリシーをアタッチします。
   + 以下のインラインポリシーをアタッチする。ポリシーには `DatalakeUserBasic` という名前を付けます。

     ```
     {
         "Version": "2012-10-17",		 	 	 
         "Statement": [
             {
                 "Effect": "Allow",
                 "Action": [
                     "lakeformation:GetDataAccess",
                     "glue:GetTable",
                     "glue:GetTables",
                     "glue:SearchTables",
                     "glue:GetDatabase",
                     "glue:GetDatabases",
                     "glue:GetPartitions",
                     "lakeformation:GetResourceLFTags",
                     "lakeformation:ListLFTags",
                     "lakeformation:GetLFTag",
                     "lakeformation:SearchTablesByLFTags",
                     "lakeformation:SearchDatabasesByLFTags"                
                ],
                 "Resource": "*"
             }
         ]
     }
     ```

## ステップ 2: AWS Glue で接続を作成する
<a name="tut-connection"></a>

**注記**  
JDBC データソースへの AWS Glue 接続がすでに作成されている場合は、このステップをスキップしてください。

AWS Lake Formation は、 AWS Glue*接続*を介して JDBC データソースにアクセスします。接続は、データソースへの接続に必要となるすべての情報が含まれた Data Catalog オブジェクトです。接続は、AWS Glue コンソールを使用して作成することができます。

**接続を作成する**

1. AWS Glue のコンソール ([https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/)) を開き、[管理アクセスを持つユーザーを作成する](getting-started-setup.md#create-an-admin) で作成した管理者ユーザーとしてサインインします。

1. ナビゲーションペインの [**データカタログ**] で [**接続**] を選択します。

1. **コネクタ** ページで、**[カスタムコネクタを作成]** を選択します。

1. **[データソースの選択]** ページで、接続タイプとして **[JDBC]** を選択します。その後、**[Next]** (次へ) を選択します。

1. 接続ウィザードを続けて実行し、接続を保存します。

   接続の作成に関する詳細については、「*AWS Glue デベロッパーガイド*」の「[AWS Glue JDBC 接続プロパティ](https://docs.aws.amazon.com/glue/latest/dg/connection-properties.html#connection-properties-jdbc)」を参照してください。

## ステップ 3: データレイク用の Amazon S3 バケットを作成する
<a name="tut-create-bucket"></a>

このステップでは、データレイクのルートロケーションになる Amazon Simple Storage Service (Amazon S3) バケットを作成します。

1. Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開き、[管理アクセスを持つユーザーを作成する](getting-started-setup.md#create-an-admin) で作成した管理者ユーザーとしてサインインします。

1. **[Create bucket]** (バケットを作成) を選択し、ウィザードをすべて実行して `{{<yourName>}}-datalake-tutorial` という名前のバケットを作成します。{{<yourName>}} はユーザーの名前のイニシャルと苗字の組み合わせです。例: `jdoe-datalake-tutorial`。

   Amazon S3 バケットの作成に関する詳しい手順については、「*Amazon Simple Storage Service ユーザーガイド*」の「[S3 バケットの作成方法](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket.html)」を参照してください。

## ステップ 4: Amazon S3 パスを登録する
<a name="tut-register"></a>

このステップでは、Amazon Simple Storage Service (Amazon S3) パスをデータレイクのルートロケーションとして登録します。

1. Lake Formation コンソール (‭‬[https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)‬) を開きます。データレイク管理者としてサインインします。

1. ナビゲーションペインの **[管理]** で、**[データレイクのロケーション]** を選択します。

1. **[Register location]** (ロケーションを登録) を選択してから、**[Browse]** (参照) を選択します。

1. 前に作成した `{{<yourName>}}-datalake-tutorial` バケットを選択し、デフォルトの IAM ロール `AWSServiceRoleForLakeFormationDataAccess` を受け入れ、**[Register location]** (ロケーションを登録) を選択します。

   ロケーションの登録に関する詳細については、「[データレイクへの Amazon S3 ロケーションの追加](register-data-lake.md)」を参照してください。

## ステップ 5: データのロケーションに対する許可を付与する
<a name="tut-data-location"></a>

プリンシパルは、作成する Data Catalog のテーブルまたはデータベースのポイント先となるデータレイクロケーションに対する*データロケーション許可*を持っている必要があります。ワークフローの IAM ロールにデータロケーション許可を付与して、ワークフローがデータ取り込み先に書き込みを実行できるようにする必要があります。

1. Lake Formation コンソールのナビゲーションペインにある **[Permissions]** (許可) で **[Data locations]** (データのロケーション) を選択します。

1. **[Grant]** (付与) を選択し、**[Grant permissions]** (許可の付与) ダイアログボックスで以下を実行します。

   1. **[IAM user and roles]** (IAM ユーザーおよびロール) で、`LakeFormationWorkflowRole` を選択します。

   1. **[Storage locations]** (ストレージのロケーション) で、使用する `{{<yourName>}}-datalake-tutorial` バケットを選択します。

1. **[Grant]** (付与) を選択します。

データロケーション許可については、「[Underlying data access control](access-control-underlying-data.md#data-location-permissions)」を参照してください。

## ステップ 6: Data Catalog でデータベースを作成する
<a name="tut-create-db"></a>

Lake Formation Data Catalog のメタデータテーブルは、データベース内に保存されます。

1. Lake Formation コンソールのナビゲーションペインにある **[Data catalog]** で **[Databases]** (データベース) を選択します。

1. **[Create database]** (データベースを作成) を選択し、**[Database details]** (データベースの詳細) で `lakeformation_tutorial` という名前を入力します。

1. 他のフィールドは空欄のままにしておき、**[Create database]** (データベースを作成) を選択します。

## ステップ 7: データの許可を付与する
<a name="tut-grant-data-permissions"></a>

Data Catalog でメタデータテーブルを作成するための許可を付与する必要があります。ワークフローは `LakeFormationWorkflowRole` ロールを使用して実行されるため、これらの許可をロールに付与する必要があります。

1. Lake Formation コンソールのナビゲーションペインにある **[許可]** で **[データレイクのアクセス許可]** を選択します。

1. **[Grant]** (付与) を選択し、**[Grant data permissions]** (データ許可の付与) ダイアログボックスで以下を実行します。

   1. **[Principals]** (プリンシパル) の **[IAM user and roles]** (IAM ユーザーおよびロール) で `LakeFormationWorkflowRole` を選択します。

   1. **[LF-Tags or catalog resources]** (LF タグまたはカタログリソース) で、**[Named data catalog resources]** (名前付きの Data Catalog リソース) を選択します。

   1. **[Databases]** (データベース) には、前に作成したデータベースである `lakeformation_tutorial` を選択します。

   1. **[データベースのアクセス許可]** で、**[テーブルを作成]**、**[変更]**、および **[ドロップ]** をオンにして、**[スーパー]** が選択されている場合はそれをオフにします。

1. **[Grant]** (付与) を選択します。

Lake Formation 許可の付与に関する詳細ついては、「[Lake Formation 許可の概要](lf-permissions-overview.md)」を参照してください。

## ステップ 8: ブループリントを使用してワークフローを作成する
<a name="tut-create-workflow"></a>

 AWS Lake Formation ワークフローは、データレイクを検出して取り込むAWS Glueジョブ、クローラ、トリガーを生成します。ワークフローは、事前定義された Lake Formation ブループリントのいずれかに基づいて作成します。

1. Lake Formation コンソールのナビゲーションペインで **[Blueprints]** (ブループリント) を選択してから、**[Use blueprint]** (ブループリントを使用) を選択します。

1. **[Use a blueprint]** (ブループリントの使用) ページにある **[Blueprint type]** (ブループリントタイプ) で **[Database snapshot]** (データベーススナップショット) を選択します。

1. **[Import source]** (インポートソース) の **[Database connection]** (データベース接続) には、先ほど作成した接続である `datalake-tutorial`、またはデータソースの既存の接続を選択します。

1. **[Source data path]** (ソースデータパス) には、データの取り込み元となるパスを `{{<database>}}/{{<schema>}}/{{<table>}}` の形式で入力します。

   スキーマまたはテーブルの代わりに、パーセント (%) ワイルドカードを使用することができます。スキーマをサポートするデータベースの場合は、{{<database>}} 内の {{<schema>}} にあるすべてのテーブルと一致させるために、{{<database>}}/{{<schema>}}/% を入力します。Oracle データベースと MySQL はパス内のスキーマをサポートしないので、代わりに {{<database>}}/% を入力します。Oracle データベースの場合、{{<database>}} はシステム識別子 (SID) です。

   例えば、Oracle データベースの SID が `orcl` の場合は、`orcl/%` を入力して、JDCB 接続で指定されたユーザーがアクセスできるすべてのテーブルと一致させます。
**重要**  
このフィールドでは、大文字と小文字が区別されます。

1. **[Import target]** (インポートターゲット) で、以下のパラメータを指定します。    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/lake-formation/latest/dg/getting-started-tutorial-jdbc.html)

1. [Import Frequency] (インポート頻度) には、**[Run on demand]** (オンデマンドで実行) を選択します。

1. **[Import target]** (インポートオプション) で、以下のパラメータを指定します。    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/lake-formation/latest/dg/getting-started-tutorial-jdbc.html)

1. **[Create]** (作成) を選択し、ワークフローが正常に作成されたことコンソールが報告するまで待機します。
**ヒント**  
以下のエラーメッセージが表示されましたか?  
`User: arn:aws:iam::{{<account-id>}}:user/{{<datalake_administrator_user>}} is not authorized to perform: iam:PassRole on resource:arn:aws:iam::{{<account-id>}}:role/LakeFormationWorkflowRole...`  
その場合、データレイク管理者ユーザーのインラインポリシーで {{<account-id>}} を有効な AWS アカウント番号に置き換えたことを確認します。

## ステップ 9: ワークフローを実行する
<a name="tut-run-workflow"></a>

ワークフローをrun-on-demandするように指定したため、ワークフローを手動で開始する必要があります AWS Lake Formation。

1. Lake Formation コンソールの **[Blueprints]** (ブループリント) ページで、ワークフロー `lakeformationjdbctest` を選択します。

1. **[Actions]** (アクション) を選択してから、**[Start]** (開始) を選択します。

1. ワークフローの実行に伴って、その進捗状況を **[Last run status]** (最終実行ステータス) 列で確認します。更新ボタンを随時選択します。

   ステータスは、**[RUNNING]** (実行中) から、**[Discovering]** (検出中)、**[Importing]** (インポート中)、**[COMPLETED]** (完了) と移行します。

   ワークフローが完了すると、以下のようになります。
   + Data Catalog に新しいメタデータテーブルがある。
   + データがデータレイクに取り込まれる。

   ワークフローが失敗する場合は、以下を実行します。

   1. ワークフローを選択します。**[Actions]** (アクション) を選択してから、**[View graph]** (グラフを表示) を選択します。

      AWS Glue コンソールでワークフローが開きます。

   1. ワークフローを選択し、**[History]** (履歴) タブを選択します。

   1. 最新の実行を選択し、**[View run details]** (実行の詳細を表示) を選択します。

   1. 動的 (ランタイム) グラフで失敗したジョブまたはクローラを選択し、エラーメッセージを確認します。障害が発生したノードは赤色または黄色のいずれかになっています。

## ステップ 10: テーブルに対する SELECT を付与する
<a name="tut-grant-select"></a>

データアナリストがテーブルが指すデータをクエリ AWS Lake Formation できるように、 の新しいデータカタログテーブルに対する アクセス`SELECT`許可を付与する必要があります。

**注記**  
ワークフローは、ワークフローが作成するテーブルに対する `SELECT` 許可を、ワークフローを実行したユーザーに自動的に付与します。このワークフローはデータレイク管理者が実行したので、データアナリストに `SELECT` を付与する必要があります。

1. Lake Formation コンソールのナビゲーションペインにある **[許可]** で **[データレイクのアクセス許可]** を選択します。

1. **[Grant]** (付与) を選択し、**[Grant data permissions]** (データ許可の付与) ダイアログボックスで以下を実行します。

   1. **[Principals]** (プリンシパル) の **[IAM user and roles]** (IAM ユーザーおよびロール) で `datalake_user` を選択します。

   1. **[LF-Tags or catalog resources]** (LF タグまたはカタログリソース) で、**[Named data catalog resources]** (名前付きの Data Catalog リソース) を選択します。

   1. **[Database]** (データベース) には `lakeformation_tutorial` を選択します。

      **[Tables]** (テーブル) リストが表示されます。

   1. **[Tables]** (テーブル) には、データソースから 1 つ、または複数のテーブルを選択します。

   1. **[Table and column permissions]** (テーブルと列の許可) で **[Select]** (選択) をオンにします。

1. **[Grant]** (付与) を選択します。

**次のステップは、データアナリストとして実行します。**

## ステップ 11: を使用してデータレイクをクエリする Amazon Athena
<a name="tut-query-athena"></a>

 Amazon Athena コンソールを使用して、データレイク内のデータをクエリします。

1. Athena コンソール ([https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home)) を開き、データアナリストであるユーザー `datalake_user` としてサインインします。

1. 必要に応じて **[Get Started]** (開始する) を選択して、Athena クエリエディタに進みます。

1. **[Data source]** (データソース) で **[AwsDataCatalog]** を選択します。

1. **[Database]** (データベース) で、`lakeformation_tutorial` を選択します。

   **[Tables]** (テーブル) リストが表示されます。

1. テーブルの 1 つの横にあるポップアップメニューで、**[Preview table]** (テーブルのプレビュー) を選択します。

   クエリが実行され、10 行のデータが表示されます。

## ステップ 12: Amazon Redshift Spectrum を使用してデータレイク内のデータをクエリする
<a name="tut-query-redshift"></a>

Amazon Simple Storage Service (Amazon S3) データレイクにインポートしたデータをクエリするように Amazon Redshift Spectrum をセットアップすることができます。まず、Amazon Redshift クラスターを起動し、Amazon S3 データをクエリするために使用される AWS Identity and Access Management (IAM) ロールを作成します。 Amazon S3 次に、このロールにクエリを実行するテーブルに対する `Select` 許可を付与します。その後、Amazon Redshift クエリエディタを使用する許可をユーザーに付与します。最後に、Amazon Redshift クラスターを作成して、クエリを実行します。

管理者としてクラスターを作成し、データアナリストとしてクラスターをクエリします。

Amazon Redshift Spectrum の詳細については、「*Amazon Redshift データベースデベロッパーガイド*」の「[Amazon Redshift Spectrum を使用した外部データのクエリ](https://docs.aws.amazon.com/redshift/latest/dg/c-using-spectrum.html)」を参照してください。

**Amazon Redshift クエリを実行する許可をセットアップする**

1. IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を開きます。で作成した管理者ユーザー [管理アクセスを持つユーザーを作成する](getting-started-setup.md#create-an-admin) (ユーザー名 `Administrator`) または `AdministratorAccess` AWS 管理ポリシーを持つユーザーとしてサインインします。

1. ナビゲーションペインで **[Policies]** (ポリシー) を選択します。

   **[Policies]** (ポリシー) を初めて選択する場合は、**[Welcome to Managed Policies]** (マネージドポリシーにようこそ) ページが表示されます。**[Get Started]** (今すぐ始める) を選択します。

1. **[Create policy]** (ポリシーを作成) を選択します。

1. **[JSON]** タブを選択します。

1. 以下の JSON ポリシードキュメントを貼り付けます。

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "lakeformation:GetDataAccess",
                   "glue:GetTable",
                   "glue:GetTables",
                   "glue:SearchTables",
                   "glue:GetDatabase",
                   "glue:GetDatabases",
                   "glue:GetPartitions",
                   "lakeformation:GetResourceLFTags",
                   "lakeformation:ListLFTags",
                   "lakeformation:GetLFTag",
                   "lakeformation:SearchTablesByLFTags",
                   "lakeformation:SearchDatabasesByLFTags"                
              ],
               "Resource": "*"
           }
       ]
   }
   ```

1. 完了したら、**[Review]** (確認) を選択してポリシーを確認します。構文エラーがある場合は、ポリシーバリデータが報告します。

1. **[Review policy]** (ポリシーの確認) ページで、作成しているポリシーの **[Name]** (名前) に **RedshiftLakeFormationPolicy** を入力します。**[Description]** (説明) を入力します (オプション)。ポリシーの **[Summary]** (概要) を参照して、ポリシーによって付与された許可を確認します。次に、**[Create policy]** (ポリシーの作成) を選択して作業を保存します。

1. IAM コンソールのナビゲーションペインで、**[Roles]** (ロール)、**[Create role]** (ロールを作成) の順に選択します。

1. **[Select trusted entity]** (信頼されたエンティティの選択) で、**[AWS のサービス]** を選択します。

1. [Amazon Redshift] サービスを選択して、このロールを引き受けます。

1. サービスのユースケースに **[Redshift - Customizable]** (Redshift – カスタマイズ可能) を選択します。その後、**[Next]** (次へ) を選択します。

1. 作成した許可ポリシーである `RedshiftLakeFormationPolicy` を検索して、リスト内のそのポリシー名の横にあるチェックボックスをオンにします。

1. **[Next: Tags]** (次のステップ: タグ) を選択します。

1. **[Next: Review]** (次のステップ: レビュー) を選択します。

1. **[Role name]** (ロール名) に名前 **RedshiftLakeFormationRole** を入力します。

1. (オプション) **[Role description]** (ロールの説明) に、新しいロールの説明を入力します。

1. ロールを確認してから、**[Create role]** (ロールを作成) を選択します。

**Lake Formation データベース内でクエリされるテーブルに対する `Select` 許可を付与します。**

1. Lake Formation コンソール (‭‬[https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)‬) を開きます。データレイク管理者としてサインインします。

1. ナビゲーションペインの **[Permissions]** (許可) で **[Data lake permissions]** (データレイクの許可) を選択して、**[Grant]** (付与) を選択します。

1. 以下の情報を指定します。
   + **[IAM users and roles]** (IAM ユーザーおよびロール) には、作成した IAM ロールである `RedshiftLakeFormationRole` を選択します。Amazon Redshift クエリエディタを実行するときは、データに対する許可にこの IAM ロールが使用されます。
   + **[Database]** (データベース) で、`lakeformation_tutorial` を選択します。

     テーブルのリストが表示されます。
   + **[Table]** (テーブル) には、クエリするデータソース内のテーブルを選択します。
   + **[Select]** (選択) テーブル許可をオンにします。

1. **[Grant]** (付与) を選択します。

**Amazon Redshift Spectrum をセットアップしてクエリを実行する**

1. Amazon Redshift コンソール ([https://console.aws.amazon.com/redshift](https://console.aws.amazon.com/redshift) ) を開きます。ユーザー `Administrator` としてサインインします。

1. **[Create cluster]** (クラスターを作成) を選択します。

1. **[Create cluster]** (クラスターを作成) ページで、**[Cluster identifier]** (クラスター識別子) に `redshift-lakeformation-demo` を入力します。

1. **[Node type]** (ノードの種類) には、**[dc2.large]** を選択します。

1. スクロールダウンして、**[Database configurations]** (データベース設定) で、これらのパラメータを入力、または受け入れます。
   + **[Admin user name]** (管理者ユーザー名): `awsuser`
   + **[Admin user password]** (管理者ユーザーパスワード): `({{Choose a password}})`

1. **[Cluster permissions]** (クラスターの許可) を展開し、**[Available IAM roles]** (利用可能な IAM ロール) で **[RedshiftLakeFormationRole]** を選択します。次に、**[Add IAM role]** (IAM ロールを追加) を選択します。

1. デフォルト値である 5439 とは異なるポートを使用する必要がある場合は、**[Additional configurations]** (追加設定) の横にある **[Use defaults]** (デフォルトを使用) オプションをオフにします。**[Database configurations]** (データベース設定) のセクションを展開し、新しい **[Database port]** (データベースポート) 番号を入力します。

1. **[Create cluster]** (クラスターを作成) を選択します。

   **[Clusters]** (クラスター) ページがロードされます。

1. クラスターのステータスが **[Available]** (利用可能) になるまで待ちます。更新アイコンを定期的に選択します。

1. クラスターに対してクエリを実行する許可をデータアナリストに付与します。これには、以下のステップを実行します。

   1. IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を開き、`Administrator` ユーザーとしてサインインします。

   1. ナビゲーションペインで **[Users]** (ユーザー) を選択し、ユーザー `datalake_user` に以下のマネージドポリシーをアタッチします。
      + `AmazonRedshiftQueryEditor`
      + `AmazonRedshiftReadOnlyAccess` 

1. Amazon Redshift のコンソールからサインアウトし、ユーザー `datalake_user` として再度サインインします。

1. 左にある垂直ツールバーで **[Query Editor]** (クエリエディタ) アイコンを選択してクエリエディタを開き、クラスターに接続します。**[Connect to database]** (データベースに接続) ダイアログボックスが表示されたら、クラスター名 `redshift-lakeformation-demo` を選択し、作成したデータベース名 **dev**、ユーザー名 **awsuser**、およびパスワードを入力します。**[Connect to database]** (データベースに接続) を選択します。
**注記**  
接続パラメータのプロンプトが表示されず、クエリエディタで別のクラスターがすでに選択されている場合は、**[Change Connection]** (接続を変更) を選択して、**[Connect to database]** (データベースに接続) ダイアログボックスを開きます。

1. 新しい **[Query 1]** (クエリ 1) テキストボックスに以下のステートメントを入力して実行し、Lake Formation のデータベース `lakeformation_tutorial` を Amazon Redshift スキーマ名 `redshift_jdbc` にマップします。
**重要**  
{{<account-id>}} を有効な AWS アカウント番号に、{{<region>}} を有効な AWS リージョン名 (例: ) に置き換えます`us-east-1`。

   ```
   create external schema if not exists redshift_jdbc from DATA CATALOG database 'lakeformation_tutorial' iam_role 'arn:aws:iam::{{<account-id>}}:role/RedshiftLakeFormationRole' region '{{<region>}}';
   ```

1. **[Select schema]** (スキーマの選択) にあるスキーマリストで、**[redshift\_jdbc]** を選択します。

   テーブルのリストが表示されます。クエリエディタには、Lake Formation データレイク許可が付与されたテーブルのみが表示されます。

1. テーブル名の横にあるポップアップメニューで、**[Preview data]** (データをプレビュー) を選択します。

   Amazon Redshift は最初の 10 行を返します。

   これで、許可を持っているテーブルと列に対してクエリを実行できるようになりました。

## ステップ 13: Amazon Redshift Spectrum を使用して Lake Formation 許可を付与または取り消す
<a name="getting-started-tutorial-grant-revoke-redshift"></a>

Amazon Redshift は、変更された SQL ステートメントを使用してデータベースとテーブルに対する Lake Formation 許可の付与と取り消しを実行する機能をサポートします。これらのステートメントは、既存の Amazon Redshift ステートメントに似ています。詳細については、「*Amazon Redshift データベースデベロッパーガイド*」の「[GRANT](https://docs.aws.amazon.com/redshift/latest/dg/r_GRANT.html)」と「[REVOKE](https://docs.aws.amazon.com/redshift/latest/dg/r_REVOKE.html)」を参照してください。