Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

AWS 分析サービスで Amazon S3 Tables を使用する

フォーカスモード
AWS 分析サービスで Amazon S3 Tables を使用する - Amazon Simple Storage Service

アカウント内のテーブルを AWS 分析サービスからアクセスできるようにするには、Amazon S3 テーブルバケットを Amazon SageMaker Lakehouse と統合します。この統合により、AWS 分析サービスがテーブルデータを自動的に検出してアクセスできるようになります。この統合を使用して、以下のサービスのテーブルを操作できます。

注記

この統合では、AWS Glue および AWS Lake Formation サービスが使用され、AWS Glue リクエストとストレージのコストが発生する可能性があります。詳細については、AWS Glue の料金を参照してください。

S3 テーブルでクエリを実行する場合は、追加料金が適用されます。詳細については、使用しているクエリエンジンの料金情報を参照してください。

統合の仕組み

コンソールでテーブルバケットを作成すると、Amazon S3 は次のアクションを開始して、選択したリージョンのテーブルバケットを AWS 分析サービスと統合します。

  1. Lake Formation にすべてのテーブルバケットへのアクセスを許可する新しい AWS Identity and Access Management (IAM) サービスロールを作成します。

  2. サービスロールを使用して、Lake Formation は現在のリージョンにテーブルバケットを登録します。これにより、Lake Formation は、そのリージョン内のすべての現在および将来のテーブルバケットのアクセス、アクセス許可、ガバナンスを管理できます。

  3. s3tablescatalog カタログを現在のリージョンの AWS Glue Data Catalog に追加します。s3tablescatalog カタログを追加すると、すべてのテーブルバケット、名前空間、テーブルをデータカタログに入力できるようになります。

注記

これらのアクションは Amazon S3 コンソールを通じて自動化されています。この統合をプログラムで実装する場合は、これらの操作をすべて手動で実行する必要があります。

テーブルバケットの統合は AWS リージョンごとに 1 回行います。統合が完了すると、現在および将来のすべてのテーブルバケット、名前空間、およびテーブルが、そのリージョンの AWS Glue Data Catalog に追加されます。

次の図は、s3tablescatalog カタログが現在のリージョンのテーブルバケット、名前空間、テーブルをデータカタログ内の対応するオブジェクトとして自動的に入力する方法を示しています。テーブルバケットはサブカタログとして入力されます。テーブルバケット内の名前空間は、それぞれのサブカタログ内のデータベースとして入力されます。テーブルは、それぞれのデータベースにテーブルとして入力されます。

テーブルリソースが AWS Glue Data Catalog で表される方法
アクセス許可の仕組み

AWS Glue Data Catalog をメタデータストアとして使用するサービス間でテーブルデータを操作できるように、テーブルバケットを AWS 分析サービスと統合することをお勧めします。この統合により、AWS Lake Formation を通じてきめ細かなアクセスコントロールが可能になります。このセキュリティアプローチは、テーブルの操作前に AWS Identity and Access Management (IAM) アクセス許可に加えて、IAM プリンシパルにテーブルに対する Lake Formation 許可を付与する必要があることを意味します。

AWS Lake Formation には、2 つの主な許可タイプがあります。

  • メタデータに対するアクセス許可は、データカタログ内でメタデータデータベースとテーブルを作成、読み取り、更新、削除できるかどうかを制御します。

  • 基になるデータに対するアクセス許可は、データカタログリソースの参照先となる Amazon S3 の場所にデータを読み書きできるかどうかを制御します。

Lake Formation では、独自のアクセス許可モデルと IAM アクセス許可モデルを組み合わせて使用して、データカタログリソースと基になるデータへのアクセスを制御します。

  • データカタログリソースまたは基になるデータへのアクセスリクエストが成功するには、そのリクエストが IAM と Lake Formation の両方によるアクセス許可のチェックに合格する必要があります。

  • IAM アクセス許可は Lake Formation へのアクセス、AWS Glue の API とリソースへのアクセスを制御し、Lake Formation 許可はデータカタログリソース、Amazon S3 ロケーション、基になるデータへのアクセスを制御します。

Lake Formation 許可は付与されたリージョン内でのみ適用されます。プリンシパルが Lake Formation 許可を付与されるには、データレイク管理者または必要なアクセス許可を持つ別のプリンシパルによって認可される必要があります。

詳細については、AWS Lake Formation デベロッパーガイドの「Lake Formation 許可の概要」を参照してください。

統合の前提条件」と「テーブルバケットと AWS 分析サービスの統合」のステップに従って、AWS Glue Data Catalog とテーブルリソースにアクセスし、AWS 分析サービスを操作するための適切なアクセス許可があることを確認してください。

重要

アカウントで AWS 分析サービスとテーブルバケットの統合を実行したユーザーでない場合は、テーブルに対する必要な Lake Formation 許可が付与されている必要があります。詳細については、「テーブルまたはデータベースに対するアクセス許可の付与」を参照してください。

統合の前提条件

テーブルバケットを AWS 分析サービスと統合するには、次の前提条件が必要です。

重要

テーブルを作成するときは、テーブル名とテーブル定義にすべて小文字を使用してください。例えば、列名がすべて小文字であることを確認します。テーブル名またはテーブル定義に大文字が含まれている場合、テーブルは AWS Lake Formation または AWS Glue Data Catalog ではサポートされていません。この場合、テーブルバケットが AWS 分析サービスと統合されていても、テーブルは Amazon Athena などの AWS 分析サービスに表示されません。

テーブル定義に大文字が含まれている場合、Athena で SELECT クエリを実行すると、次のエラーメッセージが表示されます。「GENERIC_INTERNAL_ERROR: Get table request failed: com.amazonaws.services.glue.model.ValidationException: Unsupported Federation Resource - Invalid table or column names.」

テーブルバケットと AWS 分析サービスの統合

この統合は、AWS リージョンごとに 1 回行う必要があります。

重要

AWS 分析サービス統合では、WithPrivilegedAccess Lake Formation API オペレーションの registerResource オプションを使用して S3 テーブルバケットを登録するようになりました。この統合により、CreateCatalog AWS Glue API オペレーションの AllowFullTableExternalDataAccess オプションを使用して AWS Glue Data Catalog に s3tablescatalog カタログが作成されるようにもなりました。

プレビューリリースで統合を設定した場合は、現在の統合を引き続き使用できます。ただし、更新された統合プロセスではパフォーマンスが向上しているため、移行することをお勧めします。更新された統合に移行するには、「更新された統合プロセスへの移行」を参照してください。

  1. Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. 左側のナビゲーションペインで、[テーブルバケット] を選択します。

  3. [テーブルバケットを作成] を選択します。

    [テーブルバケットを作成] ページが開きます。

  4. テーブルバケット名を入力します。[統合を有効にする] チェックボックスがオンになっていることを確認してください。

  5. [テーブルバケットを作成] を選択します。Amazon S3 は、そのリージョンでテーブルバケットを自動的に統合しようとします。

任意のリージョンのテーブルバケットを初めて統合すると、Amazon S3 はユーザーに代わって新しい IAM サービスロールを作成します。このロールにより、Lake Formation はアカウント内のすべてのテーブルバケットにアクセスし、AWS Glue Data Catalog のテーブルへのフェデレーションアクセスが可能になります。

  1. Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. 左側のナビゲーションペインで、[テーブルバケット] を選択します。

  3. [テーブルバケットを作成] を選択します。

    [テーブルバケットを作成] ページが開きます。

  4. テーブルバケット名を入力します。[統合を有効にする] チェックボックスがオンになっていることを確認してください。

  5. [テーブルバケットを作成] を選択します。Amazon S3 は、そのリージョンでテーブルバケットを自動的に統合しようとします。

任意のリージョンのテーブルバケットを初めて統合すると、Amazon S3 はユーザーに代わって新しい IAM サービスロールを作成します。このロールにより、Lake Formation はアカウント内のすべてのテーブルバケットにアクセスし、AWS Glue Data Catalog のテーブルへのフェデレーションアクセスが可能になります。

AWS CLI を使用してテーブルバケットを統合するには

以下の手順は、AWS CLI を使用してテーブルバケットを統合する方法を示しています。これらの手順を使用するには、user input placeholders を実際の情報に置き換えます。

  1. テーブルバケットを作成します。

    aws s3tables create-table-bucket \ --region us-east-1 \ --name amzn-s3-demo-table-bucket
  2. Lake Formation がテーブルリソースにアクセスできるようにする IAM サービスロールを作成します。

    1. 次の信頼ポリシーを含むファイルを Role-Trust-Policy.json という名前で作成します。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "LakeFormationDataAccessPolicy", "Effect": "Allow", "Principal": { "Service": "lakeformation.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:SetContext", "sts:SetSourceIdentity" ], "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" } } } ] }

      次のコマンドを使用して IAM サービスロールを作成します。

      aws iam create-role \ --role-name S3TablesRoleForLakeFormation \ --assume-role-policy-document file://Role-Trust-Policy.json
    2. 次のポリシーを含むファイルを LF-GluePolicy.json という名前で作成します。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "LakeFormationPermissionsForS3ListTableBucket", "Effect": "Allow", "Action": [ "s3tables:ListTableBuckets" ], "Resource": [ "*" ] }, { "Sid": "LakeFormationDataAccessPermissionsForS3TableBucket", "Effect": "Allow", "Action": [ "s3tables:CreateTableBucket", "s3tables:GetTableBucket", "s3tables:CreateNamespace", "s3tables:GetNamespace", "s3tables:ListNamespaces", "s3tables:DeleteNamespace", "s3tables:DeleteTableBucket", "s3tables:CreateTable", "s3tables:DeleteTable", "s3tables:GetTable", "s3tables:ListTables", "s3tables:RenameTable", "s3tables:UpdateTableMetadataLocation", "s3tables:GetTableMetadataLocation", "s3tables:GetTableData", "s3tables:PutTableData" ], "Resource": [ "arn:aws:s3tables:us-east-1:111122223333:bucket/*" ] } ] }

      次のコマンドを使用してポリシーをロールにアタッチします。

      aws iam put-role-policy \ --role-name S3TablesRoleForLakeFormation \ --policy-name LakeFormationDataAccessPermissionsForS3TableBucket \ --policy-document file://LF-GluePolicy.json
  3. 以下を含むファイルを input.json という名前で作成します。

    { "ResourceArn": "arn:aws:s3tables:us-east-1:111122223333:bucket/*", "WithFederation": true, "RoleArn": "arn:aws:iam::111122223333:role/S3TablesRoleForLakeFormation" }

    次のコマンドを使用してテーブルバケットを Lake Formation に登録します。

    aws lakeformation register-resource \ --region us-east-1 \ --with-privileged-access \ --cli-input-json file://input.json
  4. 次のカタログを含むファイルを catalog.json という名前で作成します。

    { "Name": "s3tablescatalog", "CatalogInput": { "FederatedCatalog": { "Identifier": "arn:aws:s3tables:us-east-1:111122223333:bucket/*", "ConnectionName": "aws:s3tables" }, "CreateDatabaseDefaultPermissions":[], "CreateTableDefaultPermissions":[] } }

    次のコマンドを使用して s3tablescatalog カタログを作成します。このカタログを作成すると、テーブルバケット、名前空間、テーブルに対応するオブジェクトが AWS Glue Data Catalog に入力されます。

    aws glue create-catalog \ --region us-east-1 \ --allow-full-table-external-data-access \ --cli-input-json file://catalog.json
  5. 次のコマンドを使用して、s3tablescatalog カタログが AWS Glue に追加されたことを確認します。

    aws glue get-catalog --catalog-id s3tablescatalog

AWS CLI を使用してテーブルバケットを統合するには

以下の手順は、AWS CLI を使用してテーブルバケットを統合する方法を示しています。これらの手順を使用するには、user input placeholders を実際の情報に置き換えます。

  1. テーブルバケットを作成します。

    aws s3tables create-table-bucket \ --region us-east-1 \ --name amzn-s3-demo-table-bucket
  2. Lake Formation がテーブルリソースにアクセスできるようにする IAM サービスロールを作成します。

    1. 次の信頼ポリシーを含むファイルを Role-Trust-Policy.json という名前で作成します。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "LakeFormationDataAccessPolicy", "Effect": "Allow", "Principal": { "Service": "lakeformation.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:SetContext", "sts:SetSourceIdentity" ], "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" } } } ] }

      次のコマンドを使用して IAM サービスロールを作成します。

      aws iam create-role \ --role-name S3TablesRoleForLakeFormation \ --assume-role-policy-document file://Role-Trust-Policy.json
    2. 次のポリシーを含むファイルを LF-GluePolicy.json という名前で作成します。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "LakeFormationPermissionsForS3ListTableBucket", "Effect": "Allow", "Action": [ "s3tables:ListTableBuckets" ], "Resource": [ "*" ] }, { "Sid": "LakeFormationDataAccessPermissionsForS3TableBucket", "Effect": "Allow", "Action": [ "s3tables:CreateTableBucket", "s3tables:GetTableBucket", "s3tables:CreateNamespace", "s3tables:GetNamespace", "s3tables:ListNamespaces", "s3tables:DeleteNamespace", "s3tables:DeleteTableBucket", "s3tables:CreateTable", "s3tables:DeleteTable", "s3tables:GetTable", "s3tables:ListTables", "s3tables:RenameTable", "s3tables:UpdateTableMetadataLocation", "s3tables:GetTableMetadataLocation", "s3tables:GetTableData", "s3tables:PutTableData" ], "Resource": [ "arn:aws:s3tables:us-east-1:111122223333:bucket/*" ] } ] }

      次のコマンドを使用してポリシーをロールにアタッチします。

      aws iam put-role-policy \ --role-name S3TablesRoleForLakeFormation \ --policy-name LakeFormationDataAccessPermissionsForS3TableBucket \ --policy-document file://LF-GluePolicy.json
  3. 以下を含むファイルを input.json という名前で作成します。

    { "ResourceArn": "arn:aws:s3tables:us-east-1:111122223333:bucket/*", "WithFederation": true, "RoleArn": "arn:aws:iam::111122223333:role/S3TablesRoleForLakeFormation" }

    次のコマンドを使用してテーブルバケットを Lake Formation に登録します。

    aws lakeformation register-resource \ --region us-east-1 \ --with-privileged-access \ --cli-input-json file://input.json
  4. 次のカタログを含むファイルを catalog.json という名前で作成します。

    { "Name": "s3tablescatalog", "CatalogInput": { "FederatedCatalog": { "Identifier": "arn:aws:s3tables:us-east-1:111122223333:bucket/*", "ConnectionName": "aws:s3tables" }, "CreateDatabaseDefaultPermissions":[], "CreateTableDefaultPermissions":[] } }

    次のコマンドを使用して s3tablescatalog カタログを作成します。このカタログを作成すると、テーブルバケット、名前空間、テーブルに対応するオブジェクトが AWS Glue Data Catalog に入力されます。

    aws glue create-catalog \ --region us-east-1 \ --allow-full-table-external-data-access \ --cli-input-json file://catalog.json
  5. 次のコマンドを使用して、s3tablescatalog カタログが AWS Glue に追加されたことを確認します。

    aws glue get-catalog --catalog-id s3tablescatalog

AWS 分析サービス統合プロセスが更新されました。プレビューリリースで統合を設定した場合は、現在の統合を引き続き使用できます。ただし、更新された統合プロセスではパフォーマンスが向上しているため、以下の手順を使用して移行することをお勧めします。移行または統合プロセスの詳細については、「AWS Lake Formation デベロッパーガイド」の「AWS Glue Data Catalog での Amazon S3 Tables カタログの作成」を参照してください。

  1. https://console.aws.amazon.com/lakeformation/ で AWS Lake Formation コンソールを開き、データレイク管理者としてサインインします。データレイク管理者の作成方法の詳細については、「AWS Lake Formation デベロッパーガイド」の「データレイク管理者を作成する」を参照してください。

  2. 以下の手順で s3tablescatalog カタログを削除します。

    • 左側のナビゲーションペインで、[カタログ] を選択します。

    • [カタログ] リストで s3tablescatalog カタログの横にあるオプションボタンを選択します。Actions メニューで、Delete を選択します。

  3. 以下の手順で s3tablescatalog カタログのデータロケーションの登録を解除します。

    • 左側のナビゲーションペインで、[管理] セクションに移動し、[データレイクのロケーション] を選択します。

    • s3tablescatalog データレイクロケーション (s3://tables:region:account-id:bucket/* など) の横にあるオプションボタンを選択します。

    • [アクション] メニューで、[削除] を選択します。

    • 表示される確認ダイアログボックスで、[削除] を選択します。

  4. s3tablescatalog カタログとデータレイクロケーションを削除したので、更新された統合プロセスを使用して、テーブルバケットを AWS 分析サービスと統合する手順に従うことができます。

AWS 分析サービス統合プロセスが更新されました。プレビューリリースで統合を設定した場合は、現在の統合を引き続き使用できます。ただし、更新された統合プロセスではパフォーマンスが向上しているため、以下の手順を使用して移行することをお勧めします。移行または統合プロセスの詳細については、「AWS Lake Formation デベロッパーガイド」の「AWS Glue Data Catalog での Amazon S3 Tables カタログの作成」を参照してください。

  1. https://console.aws.amazon.com/lakeformation/ で AWS Lake Formation コンソールを開き、データレイク管理者としてサインインします。データレイク管理者の作成方法の詳細については、「AWS Lake Formation デベロッパーガイド」の「データレイク管理者を作成する」を参照してください。

  2. 以下の手順で s3tablescatalog カタログを削除します。

    • 左側のナビゲーションペインで、[カタログ] を選択します。

    • [カタログ] リストで s3tablescatalog カタログの横にあるオプションボタンを選択します。Actions メニューで、Delete を選択します。

  3. 以下の手順で s3tablescatalog カタログのデータロケーションの登録を解除します。

    • 左側のナビゲーションペインで、[管理] セクションに移動し、[データレイクのロケーション] を選択します。

    • s3tablescatalog データレイクロケーション (s3://tables:region:account-id:bucket/* など) の横にあるオプションボタンを選択します。

    • [アクション] メニューで、[削除] を選択します。

    • 表示される確認ダイアログボックスで、[削除] を選択します。

  4. s3tablescatalog カタログとデータレイクロケーションを削除したので、更新された統合プロセスを使用して、テーブルバケットを AWS 分析サービスと統合する手順に従うことができます。

テーブルにアクセスするには、Amazon Data Firehose でテーブルの名前空間をターゲットとするリソースリンクが必要です。リソースリンクは、データベースやテーブルなどの別のデータカタログリソースのエイリアスまたはポインタとして機能するデータカタログオブジェクトです。リンクは、作成されたアカウントまたはリージョンのデータカタログに保存されます。詳細については、「AWS Lake Formation デベロッパーガイド」の「リソースリンクの仕組み」を参照してください。

テーブルバケットを AWS 分析サービスと統合した後、Amazon Data Firehose でテーブルを操作するためのリソースリンクを作成できます。これらのリンクの作成の詳細については、「Amazon Data Firehose を使用したテーブルへのデータのストリーミング」を参照してください。

テーブルリソースに対する Lake Formation 許可の付与

テーブルバケットが AWS 分析サービスと統合された後、Lake Formation がテーブルリソースへのアクセスを管理します。Lake Formation は、データカタログリソースのきめ細かなアクセスコントロールを可能にする独自のアクセス許可モデル (Lake Formation 許可) を使用します。Lake Formation は、各 IAM プリンシパル (ユーザーまたはロール) に、Lake Formation が管理するリソースに対してアクションを実行する権限があることを必要とします。詳細については、AWS Lake Formation デベロッパーガイドの「Lake Formation 許可の概要」を参照してください。クロスアカウントデータ共有の詳細については、「AWS Lake Formation デベロッパーガイド」の「Lake Formation でのクロスアカウントデータ共有」を参照してください。

IAM プリンシパルが AWS 分析サービスのテーブルにアクセスする前に、それらのリソースに対する Lake Formation 許可を付与する必要があります。

注記

テーブルバケット統合を実行したユーザーである場合は、テーブルに対する Lake Formation 許可が既に付与されています。テーブルにアクセスする唯一のプリンシパルである場合は、このステップをスキップできます。テーブルに対する Lake Formation 許可を他の IAM プリンシパルに付与するだけで済みます。これにより、クエリを実行するときに他のプリンシパルがテーブルにアクセスできるようになります。詳細については、「テーブルまたはデータベースに対するアクセス許可の付与」を参照してください。

次のサービスでテーブルリソースを他の IAM プリンシパルが操作できるようにするには、テーブルリソースに対する Lake Formation 許可をそれらのプリンシパルに付与する必要があります。

  • Amazon Redshift

  • Amazon Data Firehose

  • Amazon QuickSight

  • Amazon Athena

注記

リソースリンクを使用してテーブルにアクセスする Amazon Data Firehose の場合、リソースリンクとターゲット (リンク先) 名前空間の両方にアクセス許可を個別に付与する必要があります。詳細については、「リソースリンクに対するアクセス許可の付与」を参照してください。

テーブルまたはデータベースに対するアクセス許可の付与

Lake Formation コンソールまたは AWS CLI を通じて、テーブルバケット内のテーブルまたはデータベースに対する Lake Formation 許可をプリンシパルに付与できます。

注記

データカタログリソースに対する Lake Formation のアクセス許可を外部アカウントに付与するか、または別のアカウントの IAM プリンシパルに直接付与する場合、Lake Formation は AWS Resource Access Manager (AWS RAM) サービスを使用してリソースを共有します。付与対象アカウントが付与する側のアカウントと同じ組織内にある場合、付与対象アカウントはその共有リソースをただちに使用できるようになります。付与対象アカウントが同じ組織内にない場合は、AWS RAM が付与対象アカウントに対して、リソース付与を受け入れる、または拒否するための招待を送信します。その後、共有リソースを利用可能にするために、付与対象アカウントのデータレイク管理者が AWS RAM コンソールまたは AWS CLI を使用して招待を承諾する必要があります。クロスアカウントデータ共有の詳細については、「AWS Lake Formation デベロッパーガイド」の「Lake Formation でのクロスアカウントデータ共有」を参照してください。

Console
  1. https://console.aws.amazon.com/lakeformation/ で AWS Lake Formation コンソールを開き、データレイク管理者としてサインインします。データレイク管理者の作成方法の詳細については、「AWS Lake Formation デベロッパーガイド」の「データレイク管理者を作成する」を参照してください。

  2. ナビゲーションペインで、[データアクセス許可][付与] の順に選択します。

  3. [アクセス許可の付与] ページの [プリンシパル] で、次のいずれかを実行します。

    • Amazon Athena または Amazon Redshift の場合は、[IAM ユーザーとロール] を選択した後、IAM 管理者ロールを選択します。

    • Amazon Data Firehose の場合は、[IAM ユーザーとロール] を選択した後、テーブルへのストリーミング用に作成したサービスロールを選択します。

    • Amazon QuickSight の場合は、[SAML ユーザーとグループ] を選択した後、Amazon QuickSight 管理者ユーザーの Amazon リソースネーム (ARN) を入力します。

  4. [LF タグまたはカタログリソース] で、[名前付きのデータカタログリソース] を選択します。

  5. [カタログ] で、テーブルバケットを統合したときに作成したサブカタログ (account-id:s3tablescatalog/amzn-s3-demo-bucket など) を選択します。

  6. [データベース] で、作成した S3 テーブルバケット名前空間を選択します。

  7. (オプション) [テーブル] で、テーブルバケットに作成した S3 テーブルを選択します。

    注記

    Athena クエリエディタで新しいテーブルを作成する場合は、テーブルを選択しないでください。

  8. 次のいずれかを行います:

    • 前のステップでテーブルを指定した場合は、[テーブルのアクセス許可][Super] を選択します。

    • 前のステップでテーブルを指定しなかった場合は、[データベースのアクセス許可] に進みます。クロスアカウントデータ共有の場合は、[Super] を選択して、データベースに対するすべてのアクセス許可を他のプリンシパルに付与することはできません。代わりに、[Describe] などのよりきめ細かなアクセス許可を選択します。

  9. [Grant] (付与) を選択します。

CLI
  1. 次の AWS CLI コマンドをデータレイク管理者として実行していることを確認してください。詳細については、「AWS Lake Formation デベロッパーガイド」の「データレイク管理者を作成する」を参照してください。

  2. 次のコマンドを実行して、S3 テーブルバケットのテーブルに対する Lake Formation 許可を IAM プリンシパルに付与し、テーブルにアクセスします。この例を実行するには、user input placeholders をユーザー自身の情報に置き換えます。

    aws lakeformation grant-permissions \ --region us-east-1 \ --cli-input-json \ '{ "Principal": { "DataLakePrincipalIdentifier": "user or role ARN, for example, arn:aws:iam::account-id:role/example-role" }, "Resource": { "Table": { "CatalogId": "account-id:s3tablescatalog/amzn-s3-demo-bucket", "DatabaseName": "S3 table bucket namespace, for example, test_namespace", "Name": "S3 table bucket table name, for example test_table" } }, "Permissions": [ "ALL" ] }'
  1. https://console.aws.amazon.com/lakeformation/ で AWS Lake Formation コンソールを開き、データレイク管理者としてサインインします。データレイク管理者の作成方法の詳細については、「AWS Lake Formation デベロッパーガイド」の「データレイク管理者を作成する」を参照してください。

  2. ナビゲーションペインで、[データアクセス許可][付与] の順に選択します。

  3. [アクセス許可の付与] ページの [プリンシパル] で、次のいずれかを実行します。

    • Amazon Athena または Amazon Redshift の場合は、[IAM ユーザーとロール] を選択した後、IAM 管理者ロールを選択します。

    • Amazon Data Firehose の場合は、[IAM ユーザーとロール] を選択した後、テーブルへのストリーミング用に作成したサービスロールを選択します。

    • Amazon QuickSight の場合は、[SAML ユーザーとグループ] を選択した後、Amazon QuickSight 管理者ユーザーの Amazon リソースネーム (ARN) を入力します。

  4. [LF タグまたはカタログリソース] で、[名前付きのデータカタログリソース] を選択します。

  5. [カタログ] で、テーブルバケットを統合したときに作成したサブカタログ (account-id:s3tablescatalog/amzn-s3-demo-bucket など) を選択します。

  6. [データベース] で、作成した S3 テーブルバケット名前空間を選択します。

  7. (オプション) [テーブル] で、テーブルバケットに作成した S3 テーブルを選択します。

    注記

    Athena クエリエディタで新しいテーブルを作成する場合は、テーブルを選択しないでください。

  8. 次のいずれかを行います:

    • 前のステップでテーブルを指定した場合は、[テーブルのアクセス許可][Super] を選択します。

    • 前のステップでテーブルを指定しなかった場合は、[データベースのアクセス許可] に進みます。クロスアカウントデータ共有の場合は、[Super] を選択して、データベースに対するすべてのアクセス許可を他のプリンシパルに付与することはできません。代わりに、[Describe] などのよりきめ細かなアクセス許可を選択します。

  9. [Grant] (付与) を選択します。

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.