スキップしてコンテンツを表示

AWS Lake Formation を使用して AWS Glue データカタログのデータベースとテーブルをクロスアカウントで共有する方法を教えてください。

所要時間3分
0

AWS Lake Formation を使用して AWS Glue データカタログのデータベースとテーブルを AWS アカウント間で共有したいと考えています。

解決策

Lake Formation のクロスアカウント機能を使用すると、データレイクとの間でデータを書き込んだり、共有したりするためのアクセス許可を他の AWS アカウントに付与できます。リソースは、タグベースのアクセス制御または名前付きリソースのいずれかで共有できます。

クロスアカウント共有を使用するには、次のいずれかの方法を使用します。

  • ハイブリッドアクセスモード
  • デフォルトの AWS Identity and Access Management (IAM) Lake Formation アクセス許可モード

前提条件:

  • クロスアカウントアクセスに必要なアクセス許可を追加します。詳細については、「Sharing Data Catalog tables and databases across AWS accounts or IAM principals from external accounts」(外部アカウントから AWS アカウントまたは IAM プリンシパル間でデータカタログテーブルとデータベースを共有する) または「AWSLakeFormationCrossAccountManager」を参照してください。
  • AWS Organizations との共有を有効にします。
  • クロスアカウント共有の前提条件を満たします。
  • ハイブリッドアクセスモードの場合は、クロスアカウントバージョン設定をバージョン 4 に更新します。詳しくは、「Common hybrid access mode use cases」(一般的なハイブリッドアクセスモードのユースケース) を参照してください。
  • デフォルトの AWS IAM Lake Formation アクセス許可モードの場合は、データカタログリソースの IAMAllowedPrincipals グループからすべての Lake Formation アクセス許可を取り消します。また、データカタログのデフォルトアクセス許可をスーパーアクセス許可を含まないように変更します。詳細については、「Changing the default settings for your data lake」(データレイクのデフォルト設定の変更) を参照してください。

注: ハイブリッドアクセスモードまたはデフォルトの IAM Lake Formation アクセス許可モードのいずれかを使用するには、データベースとデータベーステーブルを組織外のターゲットアカウントと共有する必要があります。ソースアカウントのすべてのテーブルを共有すると、ソースアカウントで作成した新しいテーブルは、ターゲットアカウントと自動的に共有されます。

ハイブリッドアクセスモード

ソースアカウントで、次のタスクを実行します。

Amazon S3 ロケーションをハイブリッドアクセスモードで登録する

次の手順を実行します。

  1. Lake Formation コンソールを開き、データレイク管理者でサインインします。
  2. ナビゲーションペインの [管理] で [データレイクのロケーション] を選択します。
  3. [データレイクのロケーション] ページで、[ロケーションを登録] をクリックします。
  4. [ロケーションを登録] ページで、次の情報を入力します。
    [Amazon S3 ロケーション] には、データベースとテーブルの A Amazon Simple Storage Service (Amazon S3) ロケーションを指定します。
    [IAM ロール] には、Amazon S3 ロケーションのデータにアクセスできる AWS Identity and Access Management (IAM) ロールを指定します。このロール要件の詳細については、「Requirements for roles used to register locations」(ロケーションの登録に使用されるロールの要件) を参照してください。
    [アクセス許可モード] で、[ハイブリッドアクセスモード] を選択します。
  5. [ロケーションを登録] をクリックします。

Amazon S3 ロケーションを登録したら、データレイクのロケーション情報を確認します。アクセス許可モードがハイブリッドアクセスモードであることを確認します。

データベースとテーブルへのクロスアカウントアクセス許可を付与する

次の手順を実行します。

  1. Lake Formation コンソールを開き、データレイク管理者でサインインします。
  2. ナビゲーションペインで [データベース] をクリックし、該当するデータベースを選択します。
  3. [アクション] を選択してから、[付与] を選択します。
  4. [アクセス許可の付与] 画面の [プリンシパル] で、[外部アカウント] を選択します。
  5. [AWS アカウント ID] または [AWS 組織 ID] に、ターゲットアカウントのアカウント ID を入力します。
  6. [ハイブリッドアクセスモード] で、[Lake Formation のアクセス許可をすぐに有効にする] を選択します。
  7. [付与] をクリックします。
  8. テーブルにクロスアカウントアクセス許可を付与するには、前の手順を繰り返します。必ず [すべてのテーブル] または [特定のテーブル] オプションを選択してください。

注: この設定では、コンシューマーアカウントの Lake Formation 管理者ロールが Lake Formation アクセス許可を使用するようにオプトインします。この更新により、同じデータベースに対するコンシューマーアカウントの IAM および S3 へのアクセスが中断されることはありません。この共有を行っても、IAMAllowedPrincipal グループへのアクセス権は取り消されません。

デフォルトの IAM Lake Formation アクセス許可モード

ソースアカウントで、次のタスクを実行します。

データベースとそのテーブルをターゲットアカウントと共有する

次の手順を実行します。

  1. Lake Formation コンソールを開き、データレイク管理者でサインインします。
  2. ナビゲーションペインで [データベース] をクリックし、該当するデータベースを選択します。
  3. [アクション] を選択してから、[付与] を選択します。
  4. [アクセス許可の付与] 画面の [プリンシパル] で、[外部アカウント] を選択します。
  5. [AWS アカウント ID] または [AWS 組織 ID] に、ターゲットアカウントのアカウント ID を入力します。
  6. [テーブル] で [すべてのテーブル] を選択します。
  7. [テーブルのアクセス許可] と [付与可能なアクセス許可] で、付与するアクセス許可を選択します。
  8. [付与] をクリックします。

リソースを設定する

ターゲットアカウントの場合、次の構成では、ハイブリッドモードとデフォルトの IAM Lake Formation アクセス許可モードのどちらも同じプロセスです。

  • 共有リソースの受け入れ
  • IAM ユーザーまたはロールへのアクセス許可の付与
  • リソースリンクの作成

リソースを設定するには、次の手順を実行します。

  1. 共有されたリソースを受け入れます。詳細については、「Access AWS resources shared with you」(共有されている AWS リソースにアクセスする) を参照してください。
  2. 共有されたデータカタログデータベースへのリソースリンクを作成します。リソースリンクの詳細については、「Creating resource links」(リソースリンクの作成) を参照してください。
  3. IAM ユーザーまたはプリンシパルに、リソースリンクと共有データベースに必要なアクセス許可を付与します。

注: IAM ユーザーは、Amazon Athena コンソールまたは Amazon Redshift Spectrum でデータベースとリソースのリンクを閲覧することもできます。ターゲットアカウントの IAM ユーザーとプリンシパルは、ソースアカウントの Amazon S3 パスにアクセスできる必要があります。

IAM ユーザーに共有データベースへのアクセス許可を付与するには、次の手順を実行します。

  1. Lake Formation コンソールを開き、データレイク管理者でサインインします。
  2. ナビゲーションペインで [データベース] をクリックします。
  3. 共有データベースを選択します。
  4. [アクション] を選択してから、[付与] を選択します。
  5. [プリンシパル] で [IAM ユーザーとロール] を選択します。次に、アクセス許可を付与する IAM ユーザーまたはプリンシパルを選択します。
  6. [データベースのアクセス許可] で [説明] を選択します。
  7. [付与] をクリックします。

注: このステップにより、共有データベースを閲覧するための最低限のアクセス許可がユーザーに付与されます。

データベース内のすべてのテーブルか特定のテーブルへのアクセスを許可するには、[すべてのテーブル] オプションを選択します。

  1. [すべてのテーブル] で、リソースリンクを選択します。
  2. [アクション] を選択してから、[付与] を選択します。
  3. [IAM ユーザーとロール] をクリックします。次に、アクセス許可を付与する IAM ユーザーまたはプリンシパルを選択します。
  4. [LF タグまたはカタログリソース] で、次の操作を行います。
    データベース内のすべてのテーブルへのアクセスを許可するには、[テーブル - オプション] で [すべてのテーブル] を選択します。
    データベース内の特定のテーブルのみへのアクセスを許可するには、[テーブル - オプション] で特定のテーブルを選択します。
  5. [テーブルアクセス許可] と [付与可能なアクセス許可] で、[選択] をクリックし、[説明] を選択します。
  6. [付与] をクリックします。

注: ソースアカウントで [付与可能なアクセス許可] として選択したアクセス許可のみを付与できます。

必要なアクセス許可を付与すると、ターゲットアカウントから Athena のテーブルにクエリを実行できます。

注: ソースアカウントから以前に付与されたアクセス許可を取り消すと、ターゲットアカウントは共有データベースまたはテーブルにアクセスできなくなります。ただし、ターゲットアカウントで作成したリソースリンクは自動的に削除されません。リソースリンクは手動で削除する必要があります。

ターゲットアカウントとテーブルのみを共有する

個々のテーブルを対象アカウントと共有するには、「リソースを設定する」セクションの手順を実行してください。手順の一環として、以下のリソースを更新します。

ソースアカウント

Lake Formation コンソールからターゲットアカウントへのアクセスを許可するには、データベースではなく、個々のテーブルを選択します。

ターゲットアカウント

Lake Formation コンソールで共有テーブルにアクセスするには、AWS Resource Access Manager (AWS RAM) コンソールでリソース共有を承認します。次に、共有テーブル用のリソースリンクを作成します。リソースリンクの作成後は、データレイク管理者のアクセス許可を使用して共有テーブルをクエリできます。

IAM ユーザーまたはプリンシパルに共有テーブルへのアクセス許可を付与するには、リソースリンクに対するアクセス許可を付与する必要があります。

注: テーブルにアクセス許可を付与するときに、アクセスをテーブル内の列のみに制限することができます。アクセスを制限すると、ターゲットアカウントは共有テーブル内の該当する列のみを表示できます。

データベースまたはテーブルを削除しても、Lake Formation は AWS RAM のリソース共有を自動的に削除しません。共有データベースまたはテーブルを削除する前に、クロスアカウントアクセス許可を手動で取り消す必要があります。

関連情報

Granting permissions on Data Catalog resources (データカタログリソースに対するアクセス許可の付与)

How AWS Lake Formation cross-account feature works (AWS Lake Formation のクロスアカウント機能のしくみ)

Updating cross-account data sharing version settings (クロスアカウントデータ共有バージョン設定の更新)

Setting up hybrid access mode - common scenarios (ハイブリッドアクセスモードの設定 - 一般的なシナリオ)

1コメント

This article was reviewed and updated on 2026-02-20.

エキスパート

応答済み 20日前