前提条件 - AWS Lake Formation

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

前提条件

AWS アカウントが Data Catalog リソース (データベースとテーブル) を別のアカウントまたは別のアカウントのプリンシパルと共有する前に、およびアカウントと共有されているリソースにアクセスする前に、次の前提条件を満たす必要があります。

クロスアカウントデータ共有の一般的な要件
  • ハイブリッドアクセスモードで Data Catalog のデータベースとテーブルを共有するには、[クロスアカウントバージョン設定][バージョン 4] に更新する必要があります。

  • Data Catalog リソースに対するクロスアカウント許可を付与する前に、そのリソースの IAMAllowedPrincipals グループからすべての Lake Formation 許可を取り消す必要があります。呼び出し元のプリンシパルがリソースにアクセスするためのクロスアカウント許可を持っていて、リソースに IAMAllowedPrincipals 許可がある場合、Lake Formation は AccessDeniedException をスローします。

    この要件は、基盤となるデータロケーションを Lake Formation モードで登録する場合にのみ該当します。データロケーションをハイブリッドモードで登録すると、IAMAllowedPrincipals グループ許可が共有データベースまたはテーブルに存在することになる可能性があります。

  • 共有する予定のテーブルが含まれるデータベースについては、新しいテーブルに IAMAllowedPrincipals への Super のデフォルト付与がないようにする必要があります。Lake Formation コンソールで、データベースを編集してオフにします。このデータベースの新しいテーブルには IAM アクセスコントロールのみを使用するか、次の AWS CLI コマンドを入力して、 をデータベースの名前databaseに置き換えます。基になるデータロケーションがハイブリッドアクセスモードで登録されている場合は、このデフォルト設定を変更する必要はありません。ハイブリッドアクセスモードでは、Lake Formation により、Amazon S3 と の Lake Formation 許可と IAM 許可ポリシーを同じリソース AWS Glue に選択的に適用できます。

    aws glue update-database --name database --database-input '{"Name":"database","CreateTableDefaultPermissions":[]}'
  • クロスアカウントアクセス許可を付与するには、付与者が AWS Glueおよび AWS RAM サービスに必要な AWS Identity and Access Management (IAM) アクセス許可を持っている必要があります。 AWS 管理ポリシーは、必要なアクセス許可AWSLakeFormationCrossAccountManagerを付与します。

    を使用してリソース共有を受信するアカウントのデータレイク管理者には、次の追加ポリシー AWS RAM が必要です。これにより、管理者は AWS RAM リソース共有の招待を受け入れることができます。また、管理者が組織とのリソース共有を有効にすることも可能にします。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ram:AcceptResourceShareInvitation", "ram:RejectResourceShareInvitation", "ec2:DescribeAvailabilityZones", "ram:EnableSharingWithAwsOrganization" ], "Resource": "*" } ] }
  • Data Catalog リソースを AWS Organizations または組織単位と共有する場合は、 で組織との共有を有効にする必要があります AWS RAM。

    組織との共有を有効にする方法については、「 ユーザーガイド」のAWS 「組織との共有を有効にするAWS RAM 」を参照してください。

    組織との共有を有効にするには、ram:EnableSharingWithAwsOrganization 許可が必要です。

  • 別のアカウントの IAM プリンシパルとリソースを直接共有するには、[Cross account version settings] (クロスアカウントバージョン設定) を [Version 3] (バージョン 3) に更新する必要があります。この設定は、[Data catalog settings] (データカタログ設定) ページにあります。[Version 1] (バージョン 1) を使用している場合は、設定を更新する手順「クロスアカウントデータ共有のバージョン設定の更新」を参照してください。

  • AWS Glue サービスマネージドキーで暗号化された Data Catalog リソースを別のアカウントと共有することはできません。共有できるのは、お客様の暗号化キーで暗号化された Data Catalog リソースのみです。リソース共有を受け取るアカウントには、オブジェクトを復号するための Data Catalog 暗号化キーに対する許可が必要です。

LF-TBAC 要件を使用したクロスアカウントデータ共有
  • Data Catalog リソースを AWS Organizations および組織単位 (OUsと共有するには、クロスアカウントバージョン設定バージョン 3 に更新する必要があります。

  • Data Catalog リソースをバージョン 3 のクロスアカウントバージョン設定と共有するには、付与者はアカウントの AWS 管理ポリシー AWSLakeFormationCrossAccountManager で定義されている IAM アクセス許可を持っている必要があります。

  • [クロスアカウントのバージョン設定] のバージョン 1 またはバージョン 2 を使用している場合、LF-TBAC を有効にする Data Catalog リソースポリシー (glue:PutResourcePolicy) が必要です。詳細については、「AWS Glue と Lake Formation の両方を使用したクロスアカウント許可の管理」を参照してください。

  • 現在 AWS Glue Data Catalog リソースポリシーを使用しており、[クロスアカウントバージョン設定] のバージョン 3 を使用してクロスアカウント許可を付与したいという場合、AWS Glue と Lake Formation の両方を使用したクロスアカウント許可の管理 セクションに示されているように glue:PutResourcePolicy API オペレーションを使用して Data Catalog 設定で glue:ShareResource 許可を付与する必要があります。AWS Glue Data Catalog リソースポリシー (バージョン 1 とバージョン 2 では glue:PutResourcePolicy の許可を使用) を使用してクロスアカウントアクセス付与を行わなかった場合、このポリシーは必要ありません。

    { "Effect": "Allow", "Action": [ "glue:ShareResource" ], "Principal": {"Service": [ "ram.amazonaws.com" ]}, "Resource": [ "arn:aws:glue:<region>:<account-id>:table/*/*", "arn:aws:glue:<region>:<account-id>:database/*", "arn:aws:glue:<region>:<account-id>:catalog" ] }
  • アカウントが AWS Glue Data Catalog リソースポリシーを使用してクロスアカウント共有を行っていて、現在 AWS RAM を使用してリソースを共有するために名前付きリソース方式または LF-TBAC ([クロスアカウント設定] バージョン 3) を使用してリソースを共有している場合、glue:PutResourcePolicy API オペレーションを呼び出すときに引数 EnableHybrid'true' に設定する必要があります。詳細については、「AWS Glue と Lake Formation の両方を使用したクロスアカウント許可の管理」を参照してください。

共有リソースにアクセスする各アカウントで必要になるセットアップ
  • リソースを と共有する場合 AWS アカウント、共有リソースを表示するには、コンシューマーアカウントの少なくとも 1 人のユーザーがデータレイク管理者である必要があります。データレイク管理者の作成方法については、「データレイク管理者を作成する」を参照してください。

    データレイク管理者は、共有リソースに対する Lake Formation 許可をアカウント内の他のプリンシパルに付与できます。他のプリンシパルは、データレイク管理者から共有リソースに対する許可を付与されるまで、そのリソースにアクセスできません。

  • Athena や Redshift Spectrum などの統合されたサービスでは、クエリに共有リソースを含めることができるように、リソースリンクが必要になります。プリンシパルは、その Data Catalog に、別の AWS アカウントアカウントからの共有リソースへのリソースリンクを作成する必要があります。リソースリンクの詳細については、「Lake Formation でのリソースリンクの仕組み」を参照してください。

  • リソースを IAM プリンシパルと直接共有する場合、Athena を使用してテーブルをクエリする場合、プリンシパルはそのリソースリンクを作成する必要があります。リソースリンクを作成するには、プリンシパルは Lake Formation の CREATE_TABLE または CREATE_DATABASE アクセス許可と、glue:CreateTable または glue:CreateDatabase IAM アクセス許可が必要です。

    プロデューサーアカウントが同じデータベース内の別のテーブルを同じプリンシパルまたは別のプリンシパルと共有している場合、そのプリンシパルはすぐにテーブルをクエリできます。

注記

データレイク管理者と、データレイク管理者から許可が付与されたプリンシパルには、共有リソースがローカル (所有) リソースであるかのように Data Catalog に表示されます。抽出、変換、ロード (ETL) ジョブは、共有リソースの基盤となるデータにアクセスできます。

共有リソースについては、Lake Formation コンソールの [Tables] (テーブル) および [Databases] (データベース) ページに所有者のアカウント ID が表示されます。

共有リソースの基盤となるデータにアクセスすると、共有リソースの受信者のアカウントとリソース所有者のアカウントの両方で CloudTrail ログイベントが生成されます。 CloudTrail イベントには、データにアクセスしたプリンシパルの ARN を含めることができますが、受信者アカウントがプリンシパル ARN をログに含めるようにオプトインする場合に限ります。詳細については、「クロスアカウント CloudTrail ログ記録」を参照してください。