前提条件 - 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 Identity and Access Management (IAM) アクセス許可を持っている必要があります。AWS Glue および AWS RAM サービス。 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 RAM ユーザーガイドAWS 「組織との共有を有効にする」を参照してください。

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

  • 別のアカウントのIAMプリンシパルとリソースを直接共有するには、クロスアカウントのバージョン設定バージョン 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 と共有するには、付与者はAWSLakeFormationCrossAccountManagerアカウントの AWS マネージドポリシーで定義されたIAMアクセス許可を持っている必要があります。

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

  • 現在 を使用している場合 AWS Glue リソースを共有する Data Catalog リソースポリシー。クロスアカウントバージョン設定 のバージョン 3 を使用してクロスアカウントアクセス許可を付与する場合は、 両方を使用したクロスアカウントアクセス許可の管理 AWS Glue および Lake Formationセクションに示すように、 glue:PutResourcePolicyAPIオペレーションを使用して 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 リソースポリシー。現在、名前付きリソースメソッドまたは LF-TBAC with Cross アカウント設定バージョン 3 を使用してリソースを共有しています。リソースの共有 AWS RAM には を使用します。 glue:PutResourcePolicy API オペレーションを呼び出す'true'ときに 引EnableHybrid数を に設定する必要があります。詳細については、「両方を使用したクロスアカウントアクセス許可の管理 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:CreateDatabaseIAM許可が必要です。

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

注記

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

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

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