AWS Lake Formation モデルへのAWS Glueデータアクセス許可のアップグレード - AWS Lake Formation

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

AWS Lake Formation モデルへのAWS Glueデータアクセス許可のアップグレード

AWS Lake Formation アクセス許可により、データレイク内のデータのきめ細かなアクセスコントロールが可能になります。Lake Formation 許可モデルを使用して、Amazon Simple Storage Service (Amazon S3) の既存の AWS Glue Data Catalog オブジェクトとデータロケーションを管理できます。

Lake Formation のアクセス許可モデルは、APIサービスアクセスに粗粒度の AWS Identity and Access Management (IAM) アクセス許可を使用します。これは、ユーザーおよびそれらのサービスが Lake Formation 機能を介してアクセスできるデータを制限します。比較すると、AWS Glueモデルはきめ細かなアクセスコントロール許可を介してデータアクセスを付与します。 IAMこれらを切り替えるには、本ガイドの手順を実行してください。

詳細については、「Lake Formation 許可の概要 」を参照してください。

デフォルトのアクセス許可について

との下位互換性を維持するためにAWS Glue、デフォルトでは、 は既存のすべての AWS Glue Data Catalog リソースに対する アクセスSuper許可を IAMAllowedPrincipalsグループに AWS Lake Formation 付与し、アクセスコントロールのみの使用設定が有効になっている場合は、新しい Data Catalog リソースに対する IAM アクセスSuper許可を付与します。これにより、Data Catalog リソースと Amazon S3 ロケーションへのアクセスは、実質的に (IAM) ポリシーによって AWS Identity and Access Management のみ制御されます。IAMAllowedPrincipals グループには、IAMポリシーによって Data Catalog オブジェクトへのアクセスが許可されているIAMユーザーとロールが含まれます。この Super 許可は、プリンシパルが、許可の対象であるデータベースまたはテーブルで、サポートされているすべての Lake Formation 操作を実行できるようにします。

Lake Formation を使用してデータへのアクセスの管理を開始するには、Lake Formation で既存の Data Catalog リソースのロケーションを登録するか、ハイブリッドアクセスモードを使用することができます。Amazon S3 ロケーションをハイブリッドアクセスモードで登録すると、そのロケーションにあるデータベースとテーブルのプリンシパルをオプトインすることで、Lake Formation 許可を有効にできます。

IAM および Amazon S3 モデルから Lake Formation 許可へのデータレイク許可の移行を容易にするために、Data Catalog にはハイブリッドアクセスモードを使用することをお勧めします。ハイブリッドアクセスモードを使用すると、増分パスにより、他の既存のユーザーやワークロードを中断することなく、特定のユーザーのセットに対して Lake Formation アクセス許可を有効にすることができます。

詳細については、「ハイブリッドアクセスモード」を参照してください。

デフォルトの Data Catalog 設定を無効にすると、テーブルの既存のユーザー全員をワンステップで Lake Formation に移動できます。

既存の AWS Glue Data Catalog データベースとテーブルでの Lake Formation 許可の使用を開始するには、以下を実行する必要があります。

  1. 各データベースとテーブルに対するユーザーの既存のIAMアクセス許可を決定します。

  2. Lake Formation でこれらの許可を複製します。

  3. データが含まれる各 Amazon S3 ロケーションについて、以下を実行します。

    1. そのロケーションを参照する各 Data Catalog リソースに対する Super 許可を IAMAllowedPrincipals グループから取り消します。

    2. ロケーションを Lake Formation に登録します。

  4. 既存のきめ細かなアクセスコントロールIAMポリシーをクリーンアップします。

重要

Data Catalog の移行中に新しいユーザーを追加するには、以前IAMと同じように で詳細なAWS Glueアクセス許可を設定する必要があります。また、このセクションの説明どおりに Lake Formation でこれらの許可を複製する必要もあります。このガイドで説明されている粗粒度のIAMポリシーを新規ユーザーが持っている場合は、 にアクセスSuper許可が付与されているデータベースまたはテーブルを一覧表示できますIAMAllowedPrincipals。これらのリソースのメタデータを表示することも可能です。

このセクションの手順を実行して、Lake Formation 許可モデルにアップグレードします。

ステップ 1: ユーザーとロールの既存の許可をリストする

既存のAWS Glueデータベースとテーブルで AWS Lake Formation アクセス許可の使用を開始するには、まずユーザーの既存のアクセス許可を決定する必要があります。

重要

開始する前に、「Lake Formation の使用の開始」のタスクを確実に完了してください。

API オペレーションの使用

AWS Identity and Access Management (IAM) ListPoliciesGrantingServiceAccessAPIオペレーションを使用して、各プリンシパル (ユーザーまたはロール) にアタッチされたIAMポリシーを決定します。結果で返されたポリシーから、プリンシパルに付与されるIAMアクセス許可を決定できます。プリンシパルAPIごとに個別に を呼び出す必要があります。

次の AWS CLI 例では、ユーザー にアタッチされたポリシーを返しますglue_user1

aws iam list-policies-granting-service-access --arn arn:aws:iam::111122223333:user/glue_user1 --service-namespaces glue

このコマンドは、以下のような結果を返します。

{ "PoliciesGrantingServiceAccess": [ { "ServiceNamespace": "glue", "Policies": [ { "PolicyType": "INLINE", "PolicyName": "GlueUserBasic", "EntityName": "glue_user1", "EntityType": "USER" }, { "PolicyType": "MANAGED", "PolicyArn": "arn:aws:iam::aws:policy/AmazonAthenaFullAccess", "PolicyName": "AmazonAthenaFullAccess" } ] } ], "IsTruncated": false }

の使用 AWS Management Console

この情報は、 AWS Identity and Access Management (IAM) コンソールのユーザーまたはロールの概要ページの Access Advisor タブでも確認できます。

  1. でIAMコンソールを開きますhttps://console.aws.amazon.com/iam/

  2. IAM ナビゲーションペインで、[Users] (ユーザー) または [Roles] (ロール) を選択します。

  3. リスト内の名前を選択すると、その [Summary] (概要) ページが表示されるので、[Access Advisor] (アクセスアドバイザー) タブを選択します。

  4. 各ポリシーを調べて、各ユーザーが許可を持っているデータベース、テーブル、およびアクションの組み合わせを特定します。

    データ処理ジョブがデータにアクセスするためのロールを引き受けている可能性があるため、このプロセスでは、ユーザーに加えてロールも調べるようにしてください。

の使用 AWS CloudTrail

既存のアクセス許可を決定するもう 1 つの方法は、ログの additionaleventdataフィールドにinsufficientLakeFormationPermissionsエントリが含まれている AWS CloudTrail AWS GlueAPI呼び出しを調べることです。このエントリは、ユーザーが同じアクションを実行するために Lake Formation 許可を必要とするデータベースとテーブルをリストします。

これらはデータアクセスログであるため、ユーザーとその許可の包括的なリストを生成することは限りません。ユーザーのデータアクセスパターンを取得するには、幅広い時間範囲 (数週間または数か月など) を選択することをお勧めします。

詳細については、「 AWS CloudTrail ユーザーガイド」の「イベント履歴を使用した CloudTrail イベントの表示」を参照してください。

次は、AWS Glue 許可に相当する Lake Formation 許可をセットアップできます。「ステップ 2: 同等の Lake Formation 許可をセットアップする」を参照してください。

ステップ 2: 同等の Lake Formation 許可をセットアップする

で収集された情報を使用してステップ 1: ユーザーとロールの既存の許可をリストする、 AWS Lake Formation アクセス許可と一致するアクセスAWS Glue許可を付与します。以下の方式のいずれかを使用して、付与を実行します。

詳細については、「Lake Formation 許可の概要 」を参照してください。

Lake Formation 許可を設定したら、「ステップ 3: Lake Formation を使用するIAMアクセス許可をユーザーに付与する」に進みます。

ステップ 3: Lake Formation を使用するIAMアクセス許可をユーザーに付与する

アクセス AWS Lake Formation 許可モデルを使用するには、プリンシパルに Lake Formation に対する AWS Identity and Access Management (IAM) アクセス許可が必要ですAPIs。

で次のポリシーIAMを作成し、データレイクへのアクセスを必要とするすべてのユーザーにアタッチします。ポリシーには LakeFormationDataAccess という名前を付けます。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "LakeFormationDataAccess", "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess" ], "Resource": "*" } ] }

次に、Lake Formation 許可へのアップグレードを 1 度に 1 データロケーションずつ実行します。「ステップ 4: データストアを Lake Formation 許可モデルに切り替える」を参照してください。

ステップ 4: データストアを Lake Formation 許可モデルに切り替える

Lake Formation 許可へのアップグレードを 1 度に 1 データロケーションずつ実行します。これを行うには、Data Catalog によって参照されるすべての Amazon Simple Storage Service (Amazon S3) パスを登録するまで、このセクション全体を繰り返します。

Lake Formation 許可を検証する

ロケーションを登録する前に、検証ステップを実行して、正しいプリンシパルに必要な Lake Formation 許可があること、および Lake Formation 許可がそれらを持つべきではないプリンシパルに付与されていないことを確認します。Lake Formation GetEffectivePermissionsForPathAPIオペレーションを使用して、Amazon S3 の場所を参照する Data Catalog リソースと、それらのリソースに対するアクセス許可を持つプリンシパルを特定します。

次の AWS CLI 例では、Amazon S3 バケット を参照する Data Catalog データベースとテーブルを返しますproducts

aws lakeformation get-effective-permissions-for-path --resource-arn arn:aws:s3:::products --profile datalake_admin

profile オプションに注意してください。このコマンドは、データレイク管理者として実行することをお勧めします。

以下は、返された結果の抜粋です。

{ "PermissionsWithGrantOption": [ "SELECT" ], "Resource": { "TableWithColumns": { "Name": "inventory_product", "ColumnWildcard": {}, "DatabaseName": "inventory" } }, "Permissions": [ "SELECT" ], "Principal": { "DataLakePrincipalIdentifier": "arn:aws:iam::111122223333:user/datalake_user1", "DataLakePrincipalType": "IAM_USER" } },...
重要

AWS Glue Data Catalog が暗号化されている場合、GetEffectivePermissionsForPath は、Lake Formation の一般提供後に作成または変更されたデータベースとテーブルのみを返します。

既存の Data Catalog リソースをセキュア化する

次に、そのロケーションについて特定した各テーブルと各データベースに対する Super 許可を IAMAllowedPrincipals から取り消します。

警告

Data Catalog にデータベースとテーブルを作成するオートメーションを設定している場合、次のステップにより、オートメーションとダウンストリームの抽出、変換、ロード (ETL) ジョブが失敗する可能性があります。この手順は、既存のプロセスを変更するか、必要なプリンシパルに明示的な Lake Formation 許可を付与した後でのみ、続行するようにしてください。Lake Formation 許可については、「Lake Formation 許可のリファレンス」を参照してください。

テーブルに対する SuperIAMAllowedPrincipals から取り消す
  1. で AWS Lake Formation コンソールを開きますhttps://console.aws.amazon.com/lakeformation/。データレイク管理者としてサインインします。

  2. ナビゲーションペインで [Table] (テーブル) を選択します。

  3. [Tables] (テーブル) ページで、目的のテーブルの横にあるラジオボタンを選択します。

  4. [Actions] (アクション) メニューで、[Revoke] (取り消す) を選択します。

  5. 「アクセス許可の取り消し」ダイアログボックスのIAM「ユーザーとロール」リストで、「グループの見出し」までスクロールし、「」を選択しますIAMAllowedPrincipals

  6. [Table permissions] (テーブルの許可) で [Super] (スーパー) が選択されていることを確認してから、[Revoke] (取り消す) を選択します。

データベースに対する SuperIAMAllowedPrincipals から取り消す
  1. で AWS Lake Formation コンソールを開きますhttps://console.aws.amazon.com/lakeformation/。データレイク管理者としてサインインします。

  2. ナビゲーションペインで、[Databases] (データベース) を選択します。

  3. [Databases] (データベース) ページで、目的のデータベースの横にあるラジオボタンを選択します。

  4. [Actions] (アクション) メニューで、[Edit] (編集) を選択します。

  5. データベースの編集ページで、このデータベースの新しいテーブルにのみIAMアクセスコントロールを使用 を選択し、 の保存 を選択します。

  6. [Databases] (データベース) ページに戻り、データベースが選択されていることを確認してから、[Actions] (アクション) メニューで [Revoke] (取り消す) を選択します。

  7. 「アクセス許可の取り消し」ダイアログボックスのIAM「ユーザーとロール」リストで、「グループ」見出しまでスクロールし、「」を選択しますIAMAllowedPrincipals

  8. [Database permissions] (データベースの許可) で [Super] (スーパー) が選択されていることを確認してから、[Revoke] (取り消す) を選択します。

Amazon S3 ロケーションの Lake Formation 許可を有効にする

次に、Amazon S3 ロケーションを Lake Formation に登録します。これを実行するには、「データレイクへの Amazon S3 ロケーションの追加」で説明されているプロセスを使用できます。または、「」の説明に従って RegisterResourceAPIオペレーションを使用します認証情報供給 API

注記

親ロケーションが登録されている場合、子ロケーションを登録する必要はありません。

これらの手順を完了して、ユーザーがそのデータにアクセスできることをテストしたら、Lake Formation 許可を正常にアップグレードしたことになります。次のステップである「ステップ 5: 新しい Data Catalog リソースをセキュア化する」に進みます。

ステップ 5: 新しい Data Catalog リソースをセキュア化する

次に、デフォルト Data Catalog 設定を変更することによって、すべての新しい Data Catalog リソースをセキュア化します。新しいデータベースとテーブルに対して AWS Identity and Access Management (IAM) アクセスコントロールのみを使用するオプションをオフにします。

警告

Data Catalog にデータベースとテーブルを作成するオートメーションを設定している場合、次のステップにより、オートメーションとダウンストリームの抽出、変換、ロード (ETL) ジョブが失敗する可能性があります。この手順は、既存のプロセスを変更するか、必要なプリンシパルに明示的な Lake Formation 許可を付与した後でのみ、続行するようにしてください。Lake Formation 許可については、「Lake Formation 許可のリファレンス」を参照してください。

デフォルトの Data Catalog 設定を変更する
  1. で AWS Lake Formation コンソールを開きますhttps://console.aws.amazon.com/lakeformation/。IAM 管理ユーザー (ユーザーAdministratorまたは AdministratorAccess AWS 管理ポリシーを持つ別のユーザー) としてサインインします。

  2. ナビゲーションペインで [Settings] (設定) を選択します。

  3. [Data catalog settings] (Data Catalog の設定) ページで、両方のチェックボックスをオフにしてから [Save] (保存) を選択します。

次のステップは、将来追加されるデータベースまたはテーブルに対するアクセス権のユーザーへの付与です。「ステップ 6: 将来のデータレイクアクセスのための新しいIAMポリシーをユーザーに付与する」を参照してください。

ステップ 6: 将来のデータレイクアクセスのための新しいIAMポリシーをユーザーに付与する

将来、追加の Data Catalog データベースまたはテーブルへのアクセスをユーザーに許可するには、以下の粗粒度の AWS Identity and Access Management (IAM) インラインポリシーをユーザーに付与する必要があります。ポリシーには GlueFullReadAccess という名前を付けます。

重要

Data Catalog 内のすべてのデータベースとテーブルに対する SuperIAMAllowedPrincipals から取り消す前にこのポリシーをユーザーにアタッチすると、そのユーザーは、SuperIAMAllowedPrincipals に付与されている任意のリソースのすべてのメタデータを表示することができます。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "GlueFullReadAccess", "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:GetTable", "glue:GetTables", "glue:SearchTables", "glue:GetDatabase", "glue:GetDatabases", "glue:GetPartitions" ], "Resource": "*" } ] }
注記

このステップと前のステップで指定されたインラインポリシーには、最小限のIAMアクセス許可が含まれています。データレイク管理者、データアナリスト、その他のペルソナに対する推奨ポリシーについては、「Lake Formation のペルソナと IAM 許可のリファレンス」を参照してください。

次に、「ステップ 7: 既存のIAMポリシーをクリーンアップする」に進みます。

ステップ 7: 既存のIAMポリシーをクリーンアップする

アクセス AWS Lake Formation 許可を設定し、粗粒度のアクセスコントロール AWS Identity and Access Management (IAM) ポリシーを作成してアタッチしたら、次の最終ステップを完了します。

そうすることによって、これらのプリンシパルが Amazon Simple Storage Service (Amazon S3) 内のデータに直接アクセスできないことを確実にします。その後、これらのプリンシパルのデータレイクアクセスを Lake Formation を通じて完全に管理することができます。