翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
セットアップ AWS Lake Formation
以下のセクションでは、Lake Formation を初めて設定する場合について説明します。Lake Formation の使用を開始するにあたり、すべての設定事項が必要になるわけではありません。手順を使用して Lake Formation アクセス許可モデルを設定し、Amazon Simple Storage Service (Amazon S3) の既存の AWS Glue Data Catalog オブジェクトとデータの場所を管理できます。
このセクションでは、Lake Formation リソースをセットアップする 2 つの異なる方法を示します。
AWS CloudFormation テンプレートの使用
Lake Formation コンソールの使用
AWS コンソールを使用して Lake Formation を設定するには、 に移動しますデータレイク管理者を作成する。
AWS CloudFormation テンプレートを使用して Lake Formation リソースを設定する
注記
AWS CloudFormation スタックは、ステップ 2 と 5 を除き、上記のステップ 1 から 6 を実行します。Lake Formation コンソールから デフォルトのアクセス許可モデルを変更するか、ハイブリッドアクセスモードを使用すると IAM Identity Center の統合を手動で実行します。
米国東部 (バージニア北部) リージョンのIAM管理者として https://console.aws.amazon.com/cloudformation
で AWS CloudFormation コンソールにサインインします。 [スタックの起動]
を選択します。 [Create Stack] (スタックの作成) 画面で、[Next] (次へ) を選択します。
[Stack name] (スタック名) を入力します。
DatalakeAdminName と にはDatalakeAdminPassword、データレイク管理者ユーザーのユーザー名とパスワードを入力します。
DatalakeUser1Name と DatalakeUser1Password には、データレイクアナリストユーザーのユーザー名とパスワードを入力します。
にDataLakeBucketName、作成する新しいバケット名を入力します。
[Next (次へ)] を選択します。
次のページで、[Next] (次へ) を選択します。
最終ページの詳細を確認し、IAMリソースを作成する AWS CloudFormation 可能性があることを確認します。
[Create] (作成) を選択します。
スタックの作成には、最大 2 分かかる場合があります。
リソースをクリーンアップする
AWS CloudFormation スタックリソースをクリーンアップする場合:
スタックが作成し、データレイクのロケーションとして登録した Amazon S3 バケットの登録を解除します。
AWS CloudFormation スタックを削除します。これにより、スタックによって作成されたすべてのリソースが削除されます。
データレイク管理者を作成する
データレイク管理者は、最初は、データロケーションと Data Catalog リソースに対する Lake Formation のアクセス許可を任意のプリンシパル AWS Identity and Access Management (自己を含むIAM) に付与できる唯一の () ユーザーまたはロールです。データレイク管理者の能力に関する詳細については、「黙示的な Lake Formation 許可」を参照してください。Lake Formation はデフォルトで、最大 30 人のデータレイク管理者の作成を許可します。
Lake Formation コンソールまたは Lake Formation の PutDataLakeSettings
オペレーションを使用して、データレイク管理者を作成できますAPI。
データレイク管理者の作成には、以下の許可が必要です。Administrator
ユーザーは、これらの許可を黙示的に持っています。
-
lakeformation:PutDataLakeSettings
-
lakeformation:GetDataLakeSettings
AWSLakeFormationDataAdmin
ポリシーをユーザーに付与する場合、そのユーザーは追加の Lake Formation 管理者ユーザーを作成できなくなります。
データレイク管理者を作成する (コンソール)
-
データレイク管理者になるユーザーがまだ存在しない場合は、IAMコンソールを使用して作成します。存在する場合は、データレイク管理者になる既存のユーザーを選択します。
注記
データレイク管理者になるIAM管理者ユーザー (
AdministratorAccess
AWS マネージドポリシーを持つユーザー) を選択しないことをお勧めします。次の AWS 管理ポリシーをユーザーにアタッチします。
ポリシー 必須/オプション メモ AWSLakeFormationDataAdmin
必須 基本的なデータレイク管理者許可。この AWS マネージドポリシーには、ユーザーが新しいデータレイク管理者を作成する PutDataLakeSetting
ことを制限する Lake Formation APIオペレーションの明示的な拒否が含まれています。AWSGlueConsoleFullAccess
,CloudWatchLogsReadOnlyAccess
オプション データレイク管理者が Lake Formation ブループリントから作成されたワークフローをトラブルシューティングを行う場合は、これらのポリシーをアタッチします。これらのポリシーにより、データレイク管理者は のトラブルシューティング情報を表示できます。AWS Glue コンソールと Amazon CloudWatch Logs コンソール。ワークフローについては、「Lake Formation でのワークフローを使用したデータのインポート」を参照してください。 AWSLakeFormationCrossAccountManager
オプション このポリシーをアタッチして、データレイク管理者が Data Catalog リソースに対するクロスアカウント許可の付与と取り消しを実行できるようにします。詳細については、「Lake Formation でのクロスアカウントデータ共有」を参照してください。 AmazonAthenaFullAccess
オプションです。 データレイク管理者が でクエリを実行する場合は、このポリシーをアタッチします Amazon Athena。 -
以下のインラインポリシーをアタッチします。これは、Lake Formation サービスリンクロールを作成する許可をデータレイク管理者に付与します。ポリシーに推奨される名前は
LakeFormationSLR
です。このサービスリンクロールは、データレイク管理者がより簡単に Amazon S3 ロケーションを Lake Formation に登録できるようにします。Lake Formation サービスリンクロールの詳細については、「Lake Formation のサービスリンクロールの使用」を参照してください。
重要
次のすべてのポリシーで、 を置き換えます。
<account-id>
有効な AWS アカウント番号。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringEquals": { "iam:AWSServiceName": "lakeformation.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "iam:PutRolePolicy" ], "Resource": "arn:aws:iam::
<account-id>
:role/aws-service-role/lakeformation.amazonaws.com/AWSServiceRoleForLakeFormationDataAccess" } ] } -
(オプション) 以下の
PassRole
インラインポリシーをユーザーにアタッチします。このポリシーは、データレイク管理者がワークフローを作成して実行できるようにします。iam:PassRole
は、ワークフローがLakeFormationWorkflowRole
ロールを引き受けてクローラとジョブを作成し、作成されたクローラとジョブにロールをアタッチすることを可能にします。ポリシーに推奨される名前はUserPassRole
です。重要
置換
<account-id>
有効な AWS アカウント番号。{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRolePermissions", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::
<account-id>
:role/LakeFormationWorkflowRole" ] } ] } -
(オプション) アカウントがクロスアカウント Lake Formation 許可を付与または受ける場合は、この追加のインラインポリシーをアタッチします。このポリシーにより、データレイク管理者は AWS Resource Access Manager (AWS RAM) リソース共有の招待を表示および承諾できます。また、 AWS Organizations 管理アカウントのデータレイク管理者の場合、ポリシーには組織へのクロスアカウント許可を有効にするアクセス許可が含まれます。詳細については、「Lake Formation でのクロスアカウントデータ共有」を参照してください。
ポリシーに推奨される名前は
RAMAccess
です。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ram:AcceptResourceShareInvitation", "ram:RejectResourceShareInvitation", "ec2:DescribeAvailabilityZones", "ram:EnableSharingWithAwsOrganization" ], "Resource": "*" } ] }
-
で AWS Lake Formation コンソールを開きhttps://console.aws.amazon.com/lakeformation/
、 で作成した管理者ユーザーとして、管理アクセスを持つユーザーを作成するまたは AdministratorAccess
ユーザー AWS 管理ポリシーを持つユーザーとしてサインインします。 -
Welcome to Lake Formation ウィンドウが表示されたら、ステップ 1 で作成または選択したIAMユーザーを選択し、「開始する」を選択します。
-
[Welcome to Lake Formation] (Lake Formation へようこそ) ウィンドウが表示されない場合は、以下の手順を実行して Lake Formation 管理者を設定します。
-
ナビゲーションペインで、[管理者] の [管理ロールとタスク] を選択します。コンソールページの [データレイク管理者] セクションで、[追加] を選択します。
-
[管理者を追加] ダイアログボックスで、[アクセスタイプ] の [データレイク管理者] を選択します。
IAM ユーザーとロール では、ステップ 1 で作成または選択したIAMユーザーを選択し、保存 を選択します。
-
デフォルトのアクセス許可モデルを変更するか、ハイブリッドアクセスモードを使用する
Lake Formation は、IAM「アクセスコントロールのみを使用する」設定で始まり、既存の AWS Glue Data Catalog 動作との互換性が確保されます。この設定では、IAMポリシーと Amazon S3 バケットポリシーを使用して、データレイク内のデータとそのメタデータへのアクセスを管理できます。
IAM および Amazon S3 モデルから Lake Formation アクセス許可へのデータレイクアクセス許可の移行を容易にするために、Data Catalog のハイブリッドアクセスモードを使用することをお勧めします。ハイブリッドアクセスモードを使用すると、増分パスにより、他の既存のユーザーやワークロードを中断することなく、特定のユーザーのセットに対して Lake Formation アクセス許可を有効にすることができます。
詳細については、「ハイブリッドアクセスモード」を参照してください。
デフォルト設定を無効にすると、テーブルの既存のユーザー全員が 1 ステップで Lake Formation に移動されます。
重要
既存の AWS Glue Data Catalog データベースとテーブルについては、このセクションの手順に従わないでください。代わりに、「アップグレード AWS GlueAWS Lake Formation モデルへのデータアクセス許可」の手順に従ってください。
警告
Data Catalog にデータベースとテーブルを作成するオートメーションがある場合、次の手順を実行すると、オートメーションとダウンストリームの抽出、変換、ロード (ETL) ジョブが失敗する可能性があります。この手順は、既存のプロセスを変更するか、必要なプリンシパルに明示的な Lake Formation 許可を付与した後でのみ、続行するようにしてください。Lake Formation 許可については、「Lake Formation 許可のリファレンス」を参照してください。
デフォルトの Data Catalog 設定を変更する
-
の Lake Formation コンソールで続行しますhttps://console.aws.amazon.com/lakeformation/
。で作成した管理者ユーザーとして、管理アクセスを持つユーザーを作成するまたは AdministratorAccess
AWS マネージドポリシーを持つユーザーとしてサインインしていることを確認します。 Data Catalog 設定を変更します。
-
ナビゲーションペインの [管理] で、[データカタログの設定] を選択します。
-
両方のチェックボックスをオフにして、[Save] (保存) を選択します。
-
データベース作成者の
IAMAllowedPrincipals
許可を取り消します。-
ナビゲーションペインで、[管理] の [管理ロールとタスク] を選択します。
-
[Administrative roles and tasks] (管理ロールとタスク) コンソールページの [Database creators] (データベース作成者) セクションで
IAMAllowedPrincipals
グループを選択し、[Revoke] (取り消す) を選択します。IAMAllowedPrincipals
に [Create database] (データベースの作成) 許可があることを示す、許可の [Revoke] (取り消す) ダイアログボックスが表示されます。 -
[Revoke] (取り消す) を選択します。
-
Lake Formation ユーザーにアクセス許可を割り当てる
でデータレイクにアクセスできるユーザーを作成します AWS Lake Formation。このユーザーは、データレイクをクエリするための最小特権アクセス許可を持っています。
ユーザーまたはグループの作成の詳細については、IAM「 ユーザーガイド」のIAM「 ID」を参照してください。
Lake Formation データにアクセスするためのアクセス許可を管理者以外のユーザーにアタッチするには
-
でIAMコンソールを開きhttps://console.aws.amazon.com/iam
、 で作成した管理者ユーザーとして、管理アクセスを持つユーザーを作成するまたは AdministratorAccess
AWS マネージドポリシーを持つユーザーとしてサインインします。 -
[ユーザー] または [ユーザーグループ] を選択します。
-
一覧から、ポリシーを埋め込むユーザーまたはグループの名前を選択します。
[Permissions] (許可) を選択します。
-
[アクセス許可の追加]、[ポリシーを直接アタッチする] の順に選択します。[Filter policies] (フィルターポリシー) テキストフィールドに「
Athena
」と入力します。結果のリストで、AmazonAthenaFullAccess
のボックスをオンにします。 -
[Create policy] (ポリシーの作成) ボタンを選択します。ポリシーの作成ページで、 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": "*" } ] }
-
最下部にある [Next] (次へ) ボタンを繰り返し選択して、[Review policy] (ポリシーの確認) ページを表示します。ポリシーの名前を入力します (
DatalakeUserBasic
など)。[ポリシーを作成] を選択し、[ポリシー] タブまたはブラウザウィンドウを閉じます。
データレイク用の Amazon S3 ロケーションを設定する
データレイク内のデータの管理とセキュア化に Lake Formation を使用するには、まず Amazon S3 ロケーションを登録する必要があります。ロケーションを登録すると、その Amazon S3 パスと、そのパスにあるすべてのフォルダが登録され、Lake Formation によるストレージレベルの許可の適用が可能になります。ユーザーが Amazon Athena などの統合エンジンからのデータをリクエストすると、Lake Formation はユーザーの許可を使用するのではなく、データアクセスを提供します。
ロケーションを登録するときは、そのロケーションに対する読み取り/書き込みアクセス許可を付与するIAMロールを指定します。Lake Formation は、登録された Amazon S3 ロケーションのデータへのアクセスをリクエストする統合 AWS サービスに一時的な認証情報を提供するときに、そのロールを引き受けます。Lake Formation のサービスにリンクされたロール (SLR) を指定するか、独自のロールを作成できます。
カスタムロールは、以下の状況で使用します。
-
Amazon CloudWatch Logs でメトリクスを発行する予定。ユーザー定義ロールには、アクセスSLR許可に加えて CloudWatch 、ログにログを追加し、メトリクスを発行するためのポリシーを含める必要があります。必要な CloudWatch アクセス許可を付与するインラインポリシーの例については、「」を参照してくださいロケーションの登録に使用されるロールの要件。
-
Amazon S3 ロケーションが別のアカウント内に存在します。詳細については、「別の AWS アカウントにある Amazon S3 ロケーションの登録」を参照してください。
-
Amazon S3 ロケーションに AWS マネージドキーで暗号化されたデータが含まれている。詳細については、「暗号化された Amazon S3 ロケーションの登録」および「AWS アカウント間での暗号化された Amazon S3 ロケーションの登録」を参照してください。
-
Amazon を使用して Amazon S3 の場所にアクセスする予定ですEMR。ロール要件の詳細については、「Amazon EMR管理ガイド」のIAM「Lake Formation のロール」を参照してください。
「ロケーションの登録に使用されるロールの要件」で説明したように、選択するロールには必要な許可がある必要があります。Amazon S3 ロケーションを登録する方法の手順については、「データレイクへの Amazon S3 ロケーションの追加」を参照してください。
(オプション) 外部データフィルタリング設定
サードパーティーのクエリエンジンを使用してデータレイク内のデータを分析および処理する予定の場合は、Lake Formation によって管理されるデータに外部エンジンがアクセスできるようにオプトインする必要があります。オプトインしない場合、外部エンジンは、Lake Formation に登録されている Amazon S3 ロケーションにあるデータにアクセスできません。
Lake Formation は、テーブル内の特定の列へのアクセスを制限するために、列レベルの許可をサポートしています。 Amazon Athena、Amazon Redshift Spectrum、Amazon などの統合分析サービスは、 からフィルタリングされていないテーブルメタデータEMRを取得します AWS Glue Data Catalog。クエリ応答内にある列の実際のフィルタリングは、統合サービスが担当します。データへの不正アクセスを回避するための許可の適切な処理は、サードパーティー管理者の責任になります。
サードパーティーエンジンによるデータへのアクセスとフィルタリングを許可するようにオプトインするには (コンソール)
-
の Lake Formation コンソールで続行しますhttps://console.aws.amazon.com/lakeformation/
。Lake Formation PutDataLakeSettings
APIオペレーションに対するIAMアクセス許可を持つプリンシパルとしてサインインしていることを確認します。で作成したIAM管理者ユーザーにサインアップする AWS アカウントには、このアクセス許可があります。 -
ナビゲーションペインの [管理] で、[アプリケーションの統合設定] を選択します。
-
[アプリケーションの統合設定] ページで、次の操作を行います。
-
[Allow external engines to filter data in Amazon S3 locations registered with Lake Formation] (外部エンジンが、Lake Formation に登録された Amazon S3 ロケーション内のデータをフィルタリングすることを許可する) チェックボックスをオンにします。
-
サードパーティーエンジン用に定義された [Session tag values] (セッションタグ値) を入力します。
-
AWS アカウント IDsには、Lake Formation に登録されているロケーションへのアクセスをサードパーティエンジンIDsに許可するアカウントを入力します。各アカウント ID の後で Enter キーを押します。
-
[Save] を選択します。
-
セッションタグを検証せずに外部エンジンがデータにアクセスできるように方法については、「フルテーブルアクセスのためのアプリケーション統合 」を参照してください。
(オプション) Data Catalog 暗号化キーへのアクセス権を付与する
AWS Glue Data Catalog が暗号化されている場合は、Data Catalog データベースとテーブルに対する Lake Formation のアクセス許可を付与する必要があるプリンシパルに、 AWS KMS キーに対する AWS Identity and Access Management (IAM) アクセス許可を付与します。
詳細については、AWS Key Management Service デベロッパーガイドを参照してください。
(オプション) ワークフローのIAMロールを作成する
では AWS Lake Formation、 AWS Glue クローラーによって実行されるワークフローを使用してデータをインポートできます。ワークフローは、データレイクにデータをインポートするためのデータソースとスケジュールを定義します。ワークフローは、Lake Formation が提供するブループリント (テンプレート) を使用して簡単に定義できます。
ワークフローを作成するときは、Lake Formation にデータを取り込むために必要なアクセス許可を付与する AWS Identity and Access Management (IAM) ロールを割り当てる必要があります。
以下の手順は、 に精通していることを前提としていますIAM。
ワークフローのIAMロールを作成するには
-
でIAMコンソールを開きhttps://console.aws.amazon.com/iam
、 で作成した管理者ユーザーとして、管理アクセスを持つユーザーを作成するまたは AdministratorAccess
AWS マネージドポリシーでユーザーとしてサインインします。 -
ナビゲーションペインで [Roles] (ロール)、[Create role] (ロールを作成) の順に選択します。
-
[Create role] (ロールを作成) ページで、[AWS service] (サービス) を選択して、[Glue] を選択します。[Next (次へ)] を選択します。
-
アクセス許可の追加ページで、AWSGlueServiceRoleマネージドポリシーを検索し、リスト内のポリシー名の横にあるチェックボックスをオンにします。次に、ロールに
LFWorkflowRole
という名前を付けて、[Create role] (ロールを作成) ウィザードを完了します。最後に、[Create role] (ロールを作成) を選択します。 -
[Roles] (ロール) ページに戻り、
LFflowRole
を検索してロール名を選択します。 -
ロールの [概要] ページにある [アクセス許可] タブで、[インラインポリシーの作成] を選択します。ポリシーの作成画面で、 JSONタブに移動し、次のインラインポリシーを追加します。ポリシーに推奨される名前は
LakeFormationWorkflow
です。重要
次のポリシーで、 を置き換えます。
<account-id>
有効な AWS アカウント 数値。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "lakeformation:GrantPermissions" ], "Resource": "*" }, { "Effect": "Allow", "Action": ["iam:PassRole"], "Resource": [ "arn:aws:iam::
<account-id>
:role/LakeFormationWorkflowRole" ] } ] }以下は、このポリシー内にある許可の簡単な説明です。
-
lakeformation:GetDataAccess
は、ワークフローによって作成されたジョブによるターゲットロケーションへの書き込みを可能にします。 -
lakeformation:GrantPermissions
は、ワークフローがターゲットテーブルに対するSELECT
許可を付与することを可能にします。 -
iam:PassRole
は、サービスがLakeFormationWorkflowRole
ロールを引き受けてクローラーとジョブ (ワークフローのインスタンス) を作成し、作成されたクローラーとジョブにロールをアタッチすることを可能にします。
-
-
LakeFormationWorkflowRole
ロールに 2 つのポリシーがアタッチされていることを確認します。 -
データレイクロケーションの外にあるデータを取り込んでいる場合は、そのソースデータを読み取るための許可を付与するインラインポリシーを追加します。