共有フェデレーティッドカタログへのアクセス - AWS Lake Formation

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

共有フェデレーティッドカタログへのアクセス

AWS Lake Formation クロスアカウント機能を使用すると、ユーザーは分散データレイクを複数の AWS アカウント、 AWS 組織間で安全に共有したり、別のアカウントの IAM プリンシパルと直接共有して、メタデータと基盤となるデータにきめ細かなアクセスを提供したりできます。

Lake Formation は AWS Resource Access Manager 、 (AWS RAM) サービスを使用してリソース共有を容易にします。カタログリソースを別のアカウントと共有すると、 は、リソース許可を承認または拒否するための招待を被付与者アカウント AWS RAM に送信します。

Amazon Athena や Redshift Spectrum などの統合分析サービスでは、クエリに共有リソースを含めるためにリソースリンクが必要です。プリンシパルは、別の から共有リソース AWS Glue Data Catalog へのリソースリンクを に作成する必要があります AWS アカウント。リソースリンクの詳細については、「Lake Formation でのリソースリンクの仕組み」を参照してください。

カタログリンクコンテナは、他のアカウントのローカルまたはクロスアカウントのフェデレーションデータベースレベルのカタログを参照する Data Catalog オブジェクトです AWS 。カタログリンクコンテナ内にデータベースリンクとテーブルリンクを作成することもできます。データベースリンクまたはテーブルリンクを作成するときは、同じターゲット Amazon Redshift データベースレベルカタログ (Amazon Redshift データベース) に存在するターゲットリソースを指定する必要があります。

カタログリンクコンテナを作成するには、Lake Formation CREATE_CATALOGまたは アクセスglue:CreateCatalog許可が必要です。

AWS Lake Formation コンソール、CreateCatalogAPI、 AWS Glue または AWS Command Line Interface () を使用して、任意の AWS リージョンの Redshift データベースレベルのフェデレーティッドカタログを指すカタログリンクコンテナを作成できますAWS CLI。

共有カタログへのカタログリンクコンテナを作成するには (コンソール)
  1. https://console.aws.amazon.com/lakeformation/ で AWS Lake Formation コンソールを開きます。Lake Formation アクセスCREATE_CATALOG許可を持つプリンシパルとしてサインインします。

  2. ナビゲーションペインで、カタログを選択し、カタログの作成を選択します。

  3. カタログの詳細の設定ページで、次の情報を入力します。

    名前

    カタログ名と同じルールに従う名前を入力します。名前は、ターゲット共有カタログと同じにすることができます。

    タイプ

    カタログのタイプとして Catalog リンクコンテナを選択します。

    ソース

    Redshift を選択してください。

    ターゲット Redshift カタログ

    Redshift データベースレベルのフェデレーティッドカタログを選択するか、リストからローカル (所有) カタログを選択します。

    リストには、アカウントと共有されているすべてのカタログが含まれます。カタログ所有者アカウント ID が各カタログにリストされていることに注意してください。アカウントと共有されていることがわかっているカタログが表示されない場合は、以下を確認してください。

    • データレイク管理者でない場合は、データレイク管理者がカタログに対する Lake Formation アクセス許可を付与していることを確認します。

    • データレイク管理者で、アカウントが付与アカウントと同じ AWS 組織にない場合は、カタログの AWS Resource Access Manager (AWS RAM) リソース共有招待を承諾していることを確認してください。詳細については、「からのリソース共有の招待の承諾 AWS RAM」を参照してください。

    注記

    コンソールを使用してカタログリンクコンテナを作成するNo matches場合、クロスアカウント Redshift カタログを選択しようとすると、ターゲット Redshift Catalog ドロップダウンが表示されることがあります。この表示にもかかわらず、Amazon Redshift フェデレーティッドデータベースレベルカタログ (Amazon Redshift データベース) のターゲット ARN を入力フィールドに手動で入力しても、フォームは正常に動作します。例: arn:aws:glue:us-east-1:123456789012:catalog/federated-catalog-redshift/dev

    この動作は、コンソールが現在サインインしているアカウント内の潜在的な候補のみを検索できるために発生します。ドロップダウンは自動入力機能を目的としていますが、クロスアカウントアクセスのために ARNs を手動で入力することはできます。

  4. Apache Iceberg クエリエンジンが Amazon Redshift 名前空間を読み書きできるようにするには、Amazon Redshift データウェアハウスのワークロードに影響を与えることなく、読み取りおよび書き込みオペレーションの実行に必要なコンピューティングリソースとストレージリソースを備えたマネージド Amazon Redshift クラスター AWS Glue を作成します。Amazon S3 バケットとの間でデータを転送するために必要なアクセス許可を IAM ロールに提供する必要があります。

  5. [次へ] を選択します。

  6. (オプション) アクセス許可を追加 を選択して、他のプリンシパルにアクセス許可を付与します。

    ただし、カタログリンクコンテナに対するアクセス許可を付与しても、ターゲット (リンク) カタログに対するアクセス許可は付与されません。カタログリンクを Athena に表示するには、ターゲットカタログに対するアクセス許可を個別に付与する必要があります。

  7. 次に、カタログリンクコンテナの詳細を確認し、カタログの作成を選択します。

    その後、カタログページのリンクコンテナ名を表示できます。

    これで、カタログリンクコンテナにデータベースリンクとテーブルリンクを作成して、クエリエンジンからのアクセスを有効にすることができます。

カタログリンクコンテナ CLI の作成例
  • 次の例では、 TargetRedshiftCatalog オブジェクトは Amazon Redshift フェデレーティッドデータベースレベルカタログ (Amazon Redshift データベース) の arn を指定します。カタログリンクコンテナを作成するときは、 を有効にするDataLakeAccess必要があります。

    aws glue create-catalog \
      --cli-input-json 
        '{
            "Name": "linkcontainer", 
            "CatalogInput": {
                "TargetRedshiftCatalog": {
                   "CatalogArn": "arn:aws:us-east-1:123456789012:catalog/nscatalog/dev"
                 },
                "CatalogProperties": {
                  "DataLakeAccessProperties" : {
                    "DataLakeAccess" : true,
                    "DataTransferRole" : "arn:aws:iam::111122223333:role/DataTransferRole"
                 } 
               }
            }
        }'
              

データベースとテーブルへのリンクへのリソースリンクは、カタログリンクコンテナの下に作成できます。データベースリソースリンクまたはテーブルリソースリンクを作成するときは、リンクコンテナが指すのと同じターゲット Amazon Redshift データベースレベルカタログ (Amazon Redshift データベース) に存在するターゲットリソースを指定する必要があります。

AWS Lake Formation コンソール、API、または AWS Command Line Interface () を使用して、共有 Amazon Redshift データベースまたはテーブルへのリソースリンクを作成できますAWS CLI。

  • 詳細な手順については、「共有 Data Catalog データベースへのリソースリンクの作成」を参照してください。

    以下は、カタログリンクコンテナの下にデータベースリソースリンクを作成する AWS CLI 例です。

    aws glue create-database \
      --cli-input-json \
        '{
            "CatalogId": "111122223333:linkcontainer",
            "DatabaseInput": {
                "Name": "dblink",
                 "TargetDatabase": {
                   "CatalogId": "123456789012:nscatalog/dev",
                    "DatabaseName": "schema1"
                 }
            }
        }'
            
  • カタログリンクコンテナの下にテーブルリソースリンクを作成するには、まずローカルに AWS Glue データベースを作成して AWS Glue Data Catalog 、テーブルリソースリンクを含める必要があります。

    共有テーブルへのリソースリンクの作成の詳細については、「」を参照してください共有 Data Catalog テーブルへのリソースリンクの作成

    • テーブルリソースリンクの例を含むデータベースを作成する

      aws glue create-database \
        --cli-input-json \
            '{
                "CatalogId": "111122223333:linkcontainer",
                "DatabaseInput": {
                    "Name": "db1",
                    "Description": "creating parent database for table link"
                }
            }'
                    
    • テーブルリソースリンクの作成例

      aws glue create-table \
        --cli-input-json \
          '{
              "CatalogId": "111122223333:linkcontainer",
               "DatabaseName": "db1",
              "TableInput": {
                  "Name": "tablelink",
                  "TargetTable": {
                      "CatalogId": "123456789012:nscatalog/dev",
                     "DatabaseName": "schema1", 
                      "Name": "table1"
                   }
              }
          }'