データカタログへのクロスアカウントアクセスを設定する - Amazon Athena

データカタログへのクロスアカウントアクセスを設定する

別のアカウントのデータカタログにアクセスするには、Athena のクロスアカウント AWS Glue 機能を使用するか、Lake Formation でクロスアカウントアクセスをセットアップします。

オプション A: Athena でデータカタログへのクロスアカウントアクセスを設定する

Athena のクロスアカウント AWS Glue カタログ機能を使用して、アカウントにカタログを登録できます。この機能は Athena エンジンバージョン 2 以降でのみ使用でき、アカウント間の同一リージョンでの使用に制限されています。詳細については、「別のアカウントからデータカタログを登録する」を参照してください。

共有するデータカタログのリソースポリシーが AWS Glue で設定されている場合、次の例のように AWS Resource Access Manager へのアクセスを許可し、アカウント B へ許可を付与して、アカウント A のデータカタログを使用するように、更新する必要があります。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "ram.amazonaws.com" }, "Action": "glue:ShareResource", "Resource": [ "arn:aws:glue:<REGION>:<ACCOUNT-A>:table/*/*", "arn:aws:glue:<REGION>:<ACCOUNT-A>:database/*", "arn:aws:glue:<REGION>:<ACCOUNT-A>:catalog" ] }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<ACCOUNT-B>:root" }, "Action": "glue:*", "Resource": [ "arn:aws:glue:<REGION>:<ACCOUNT-A>:table/*/*", "arn:aws:glue:<REGION>:<ACCOUNT-A>:database/*", "arn:aws:glue:<REGION>:<ACCOUNT-A>:catalog" ] } ] }

詳細については、「AWS Glue データカタログへのクロスアカウントアクセスを構成する」を参照してください。

オプション B: Lake Formation でクロスアカウントアクセスを設定する

AWS Lake Formation では、単一のアカウントを使用して中央データカタログを管理できます。この機能を使用して、データカタログメタデータと基盤となるデータにクロスアカウントアクセスを実装します。例えば、所有者アカウントは、テーブルに対する SELECT 許可を別の (受信者) アカウントに付与できます。

共有のデータベースまたはテーブルを Athena クエリエディタに表示するには、Lake Formation で共有のデータベースまたはテーブルへのリソースリンクを作成します。Lake Formation の受信者アカウントが所有者のテーブルをクエリすると、CloudTrail が受信者アカウントと所有者アカウントの両方のログにデータアクセスイベントを追加します。

共有ビューの場合は、次の点に注意してください。

  • クエリは、ソーステーブルまたはビューではなく、ターゲットリソースリンクで実行され、出力がターゲットアカウントと共有されます。

  • ビューだけを共有するだけでは不十分です。ビューの作成に関与するすべてのテーブルは、クロスアカウント共有の一部である必要があります。

  • 共有リソースで作成されたリソースリンクの名前は、所有者アカウントのリソースの名前と一致する必要があります。名前が一致しない場合、「Failed analyzing stored view 'awsdatacatalog.my-lf-resource-link.my-lf-view': line 3:3: Schema schema_name does not exist」のようなエラーメッセージが表示されます。

Lake Formation でのクロスアカウントアクセスの詳細については、「AWS Lake Formation デベロッパーガイド」の以下のリソースを参照してください。

クロスアカウントアクセス

Lake Formation でのリソースリンクの仕組み

CloudTrail のクロスアカウントロギング