AWS Lake Formation を使用して AWS Glue データカタログのデータベースとテーブルをクロスアカウントで共有する方法を教えてください。
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 ロケーションをハイブリッドアクセスモードで登録する
次の手順を実行します。
- Lake Formation コンソールを開き、データレイク管理者でサインインします。
- ナビゲーションペインの [管理] で [データレイクのロケーション] を選択します。
- [データレイクのロケーション] ページで、[ロケーションを登録] をクリックします。
- [ロケーションを登録] ページで、次の情報を入力します。
[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」(ロケーションの登録に使用されるロールの要件) を参照してください。
[アクセス許可モード] で、[ハイブリッドアクセスモード] を選択します。 - [ロケーションを登録] をクリックします。
Amazon S3 ロケーションを登録したら、データレイクのロケーション情報を確認します。アクセス許可モードがハイブリッドアクセスモードであることを確認します。
データベースとテーブルへのクロスアカウントアクセス許可を付与する
次の手順を実行します。
- Lake Formation コンソールを開き、データレイク管理者でサインインします。
- ナビゲーションペインで [データベース] をクリックし、該当するデータベースを選択します。
- [アクション] を選択してから、[付与] を選択します。
- [アクセス許可の付与] 画面の [プリンシパル] で、[外部アカウント] を選択します。
- [AWS アカウント ID] または [AWS 組織 ID] に、ターゲットアカウントのアカウント ID を入力します。
- [ハイブリッドアクセスモード] で、[Lake Formation のアクセス許可をすぐに有効にする] を選択します。
- [付与] をクリックします。
- テーブルにクロスアカウントアクセス許可を付与するには、前の手順を繰り返します。必ず [すべてのテーブル] または [特定のテーブル] オプションを選択してください。
注: この設定では、コンシューマーアカウントの Lake Formation 管理者ロールが Lake Formation アクセス許可を使用するようにオプトインします。この更新により、同じデータベースに対するコンシューマーアカウントの IAM および S3 へのアクセスが中断されることはありません。この共有を行っても、IAMAllowedPrincipal グループへのアクセス権は取り消されません。
デフォルトの IAM Lake Formation アクセス許可モード
ソースアカウントで、次のタスクを実行します。
データベースとそのテーブルをターゲットアカウントと共有する
次の手順を実行します。
- Lake Formation コンソールを開き、データレイク管理者でサインインします。
- ナビゲーションペインで [データベース] をクリックし、該当するデータベースを選択します。
- [アクション] を選択してから、[付与] を選択します。
- [アクセス許可の付与] 画面の [プリンシパル] で、[外部アカウント] を選択します。
- [AWS アカウント ID] または [AWS 組織 ID] に、ターゲットアカウントのアカウント ID を入力します。
- [テーブル] で [すべてのテーブル] を選択します。
- [テーブルのアクセス許可] と [付与可能なアクセス許可] で、付与するアクセス許可を選択します。
- [付与] をクリックします。
リソースを設定する
ターゲットアカウントの場合、次の構成では、ハイブリッドモードとデフォルトの IAM Lake Formation アクセス許可モードのどちらも同じプロセスです。
- 共有リソースの受け入れ
- IAM ユーザーまたはロールへのアクセス許可の付与
- リソースリンクの作成
リソースを設定するには、次の手順を実行します。
- 共有されたリソースを受け入れます。詳細については、「Access AWS resources shared with you」(共有されている AWS リソースにアクセスする) を参照してください。
- 共有されたデータカタログデータベースへのリソースリンクを作成します。リソースリンクの詳細については、「Creating resource links」(リソースリンクの作成) を参照してください。
- IAM ユーザーまたはプリンシパルに、リソースリンクと共有データベースに必要なアクセス許可を付与します。
注: IAM ユーザーは、Amazon Athena コンソールまたは Amazon Redshift Spectrum でデータベースとリソースのリンクを閲覧することもできます。ターゲットアカウントの IAM ユーザーとプリンシパルは、ソースアカウントの Amazon S3 パスにアクセスできる必要があります。
IAM ユーザーに共有データベースへのアクセス許可を付与するには、次の手順を実行します。
- Lake Formation コンソールを開き、データレイク管理者でサインインします。
- ナビゲーションペインで [データベース] をクリックします。
- 共有データベースを選択します。
- [アクション] を選択してから、[付与] を選択します。
- [プリンシパル] で [IAM ユーザーとロール] を選択します。次に、アクセス許可を付与する IAM ユーザーまたはプリンシパルを選択します。
- [データベースのアクセス許可] で [説明] を選択します。
- [付与] をクリックします。
注: このステップにより、共有データベースを閲覧するための最低限のアクセス許可がユーザーに付与されます。
データベース内のすべてのテーブルか特定のテーブルへのアクセスを許可するには、[すべてのテーブル] オプションを選択します。
- [すべてのテーブル] で、リソースリンクを選択します。
- [アクション] を選択してから、[付与] を選択します。
- [IAM ユーザーとロール] をクリックします。次に、アクセス許可を付与する IAM ユーザーまたはプリンシパルを選択します。
- [LF タグまたはカタログリソース] で、次の操作を行います。
データベース内のすべてのテーブルへのアクセスを許可するには、[テーブル - オプション] で [すべてのテーブル] を選択します。
データベース内の特定のテーブルのみへのアクセスを許可するには、[テーブル - オプション] で特定のテーブルを選択します。 - [テーブルアクセス許可] と [付与可能なアクセス許可] で、[選択] をクリックし、[説明] を選択します。
- [付与] をクリックします。
注: ソースアカウントで [付与可能なアクセス許可] として選択したアクセス許可のみを付与できます。
必要なアクセス許可を付与すると、ターゲットアカウントから 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 (ハイブリッドアクセスモードの設定 - 一般的なシナリオ)
This article was reviewed and updated on 2026-02-20.
関連するコンテンツ
質問済み 2年前

