別のアカウントからデータカタログを登録する - Amazon Athena

別のアカウントからデータカタログを登録する

Athena のクロスアカウント AWS Glue カタログ機能を使用して、所有するアカウント以外のアカウントから AWS Glue カタログを登録できます。AWS Glue に必要な IAM アクセス許可を設定して、カタログを Athena DataCatalog リソースとして登録したら、Athena を使用してクロスアカウントクエリを実行できます。必要な許可の設定については、「AWS Glue データカタログへのクロスアカウントアクセスを構成する」を参照してください。

以下の手順では、Athena を使用して、所有する Amazon Web Services アカウント以外のアカウントの AWS Glue Data Catalog をデータソースとして設定する方法を説明します。

コンソールから登録する

  1. AWS Glue データカタログへのクロスアカウントアクセスを構成する」のステップに従って、他のアカウントのデータカタログをクエリする許可があることを確認します。

  2. https://console.aws.amazon.com/athena/ で Athena コンソールを開きます。

  3. コンソールのナビゲーションペインが表示されない場合は、左側の展開メニューをクリックします。

    展開メニューを選択します。
  4. [データソースとカタログ] を選択します。

  5. コンソールの右上で、[Create data source] (データソースの作成) を選択します。

  6. [Choose a data source] (データソースを選択) ページの [Data sources] (データソース) で、[S3 - AWS Glue Data Catalog] (S3 – AWS Glue Data Catalog データカタログ) を選択してから、[Next] (次へ) を選択します。

  7. [Enter data source details] (データソースの詳細を入力) ページの [AWS Glue Data Catalog] (AWS Glue Data Catalog データカタログ) セクションにある [Choose an AWS Glue Data Catalog] (AWS Glue Data Catalog データカタログを選択) で、[AWS Glue Data Catalog in another account] (別のアカウントの AWS Glue Data Catalog データカタログ) を選択します。

  8. [Data source details] (データソースの詳細) に、以下の情報を入力します。

    • [Data source name] (データソース名) – 他のアカウントにあるデータカタログを参照するために SQL クエリで使用する名前を入力します。

    • Description (説明) – (オプション) 他のアカウントにあるデータカタログの説明を入力します。

    • カタログ ID – データカタログが属する Amazon Web Services アカウントの 12 桁のアカウント ID を入力します。Amazon Web Services アカウント ID はカタログ ID です。

  9. (オプション) [Tags] (タグ) では、データソースと関連付けるキーと値のペアを入力します。タグの詳細については、Athena リソースにタグ付けするを参照してください。

  10. [Next] を選択します。

  11. [Review and create] (確認と作成) ページで入力した情報を確認してから、[Create data source] (データソースの作成) を選択します。[Data source details] (データソースの詳細) ページに、登録したデータカタログのデータベースとタグがリストされます。

  12. [データソースとカタログ] を選択します。登録したデータカタログは、[Data source name] (データソース名) 列にリストされています。

  13. データカタログに関する情報を表示または編集するには、カタログを選択してから、[Actions] (アクション)、[Edit] (編集) の順に選択します。

  14. 新しいデータカタログを削除するには、カタログを選択してから、[Actions] (アクション)、[Delete] (削除する) の順に選択します。

API オペレーションを使用して登録する

  1. 以下の CreateDataCatalog リクエストボディは、クロスアカウントアクセス用に AWS Glue カタログを登録します。

    # Example CreateDataCatalog request to register a cross-account Glue catalog: { "Description": "Cross-account Glue catalog", "Name": "ownerCatalog", "Parameters": {"catalog-id" : "<catalogid>" # Owner's account ID }, "Type": "GLUE" }
  2. 以下のサンプルコードは、Java クライアントを使用して DataCatalog オブジェクトを作成します。

    # Sample code to create the DataCatalog through Java client CreateDataCatalogRequest request = new CreateDataCatalogRequest() .withName("ownerCatalog") .withType(DataCatalogType.GLUE) .withParameters(ImmutableMap.of("catalog-id", "<catalogid>")); athenaClient.createDataCatalog(request);

    これらのステップの後、借用者が ListDataCatalogs API オペレーションを呼び出すと、ownerCatalog が表示されます。

AWS CLI を使用して登録する

次の CLI コマンド例を使用して、別のアカウントから AWS Glue Data Catalog を登録します。

aws athena create-data-catalog \ --name cross_account_catalog \ --type GLUE \ --description "Cross Account Catalog" \ --parameters catalog-id=<catalogid>

詳細については、AWS Big Data Blog の「Query cross-account AWS Glue Data Catalogs using Amazon Athena」を参照してください。