クロスアカウントデータ共有のベストプラクティスと考慮事項
Lake Formation のクロスアカウント機能により、ユーザーは複数の AWS アカウント、AWS 組織間、またはデータカタログメタデータおよび基盤となるデータへの細粒度のアクセスを提供する別のアカウントの IAM プリンシパルと直接、分散データレイクを安全に共有できます。
Lake Formation のクロスアカウントデータ共有を使用するときは、以下のベストプラクティスを検討してください。
-
独自の AWS アカウント内のプリンシパルに対して実行できる Lake Formation 許可付与の数に制限はありません。ただし、Lake Formation は、名前付きリソース方式を使用してアカウントで作成できるクロスアカウント付与に AWS Resource Access Manager (AWS RAM) 容量を使用します。AWS RAM 容量を最大化するには、名前付きリソース方式に関する次のベストプラクティスに従います。
-
新しいクロスアカウント付与モード ([クロスアカウントバージョン設定] の [バージョン 3] 以降を使用して、リソースを外部の AWS アカウント と共有します。詳細については、「クロスアカウントデータ共有のバージョン設定の更新」を参照してください。
-
AWS アカウントを組織として編成し、組織または組織単位に許可を付与します。組織または組織単位への付与は、1 つの付与として計上されます。
組織または組織単位への付与によって、付与に関する AWS Resource Access Manager (AWS RAM) のリソース共有招待を承諾する必要もなくなります。詳細については、「共有 Data Catalog テーブルとデータベースへのアクセスと表示」を参照してください。
-
データベース内にある多数のテーブルそれぞれに対する許可を付与する代わりに、特別な [All tables] (すべてのテーブル) ワイルドカードを使用して、データベース内のすべてのテーブルに対する許可を付与します。[All tables] (すべてのテーブル) に対する付与は、単一の付与として計上されます。詳細については、「データカタログリソースに対するアクセス許可の付与」を参照してください。
注記
AWS RAM のリソース共有数の制限引き上げリクエストの詳細については、「AWS 全般のリファレンス」の「AWS サービスクォータ」を参照してください。
-
-
データベースを Amazon Athena および Amazon Redshift Spectrum クエリエディタで表示するには、そのデータベースの共有データベースへのリソースリンクを作成する必要があります。同様に、Athena と Redshift Spectrum を使用して共有テーブルをクエリできるようにするには、そのテーブルへのリソースリンクを作成する必要があります。そうすることで、リソースリンクがクエリエディタのテーブルリストに表示されます。
クエリのために多数のテーブルそれぞれに対するリソースリンクを作成する代わりに、[All tables] (すべてのテーブル) ワイルドカードを使用して、データベース内のすべてのテーブルに対する許可を付与することができます。そうすることで、そのデータベースのリソースリンクを作成し、クエリエディタでそのデータベースリソースリンクを選択するときに、クエリのために、そのデータベース内のすべてのテーブルにアクセスできるようになります。詳細については、「リソースリンクの作成」を参照してください。
-
別のアカウントのプリンシパルとリソースを直接共有する場合、受信者アカウントの IAM プリンシパルには、Athena と Amazon Redshift Spectrum を使用して共有テーブルをクエリするためのリソースリンクを作成するアクセス許可がないことがあります。データレイク管理者は、共有されているテーブルごとにリソースリンクを作成する代わりに、プレースホルダーデータベースを作成して
ALLIAMPrincipal
グループにCREATE_TABLE
アクセス許可を付与できます。その後、受信者アカウントのすべての IAM プリンシパルがプレースホルダーデータベースにリソースリンクを作成し、共有テーブルのクエリを開始できます。名前付きリソース方式を使用したデータベースのアクセス権限の付与 でアクセス許可を
ALLIAMPrincipals
に付与する方法については、CLI コマンドの例を参照してください。 -
Athena と Redshift Spectrum は列レベルのアクセスコントロールをサポートしますが、これは包含のみで、除外にはサポート適用されません。AWS Glue ETLジョブでは、列レベルのアクセスコントロールはサポートされません。
-
リソースが AWS アカウントと共有される場合、そのリソースに対する許可を付与できるのは、そのアカウント内のユーザーのみになります。リソースに対する許可を、他の AWS アカウント、組織 (アカウント所有者の組織も含まれます)、または
IAMAllowedPrincipals
グループに付与することはできません。 -
データベースに対する
DROP
またはSuper
を外部アカウントに付与することはできません。 -
データベースまたはテーブルを削除する前に、クロスアカウント許可を取り消します。これを行わない場合は、AWS Resource Access Manager で孤立したリソース共有を削除する必要があります。
以下も参照してください。
-
クロスアカウントアクセスに関する追加のルールと制限については、「Lake Formation 許可のリファレンス」の「CREATE_TABLE」を参照してください。