View a markdown version of this page

Glue Data Catalog AWSの信頼できる ID 伝達の設定 - Amazon Quick

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

Glue Data Catalog AWSの信頼できる ID 伝達の設定

信頼できる ID 伝達により、AWSサービスはエンドユーザーの ID コンテキストに基づいてリソースにアクセスできます。IAM アイデンティティセンターで Quick、AWS Glue データカタログ、Amazon S3 Access Grants、Lake Formation AWSを設定すると、サインインしたユーザーの ID がサービス間で伝播されます。Lake Formation と S3 Access Grants は、そのユーザーまたは ID プロバイダーからのグループメンバーシップに対して定義されたアクセス許可に基づいて認可の決定を行います。

重要

Glue Data Catalog AWSによる信頼できる ID の伝播には、IAM Identity Center AWSが必要です。他の認証方法ではサポートされていません。

前提条件

重要

IAM Identity Center AWSインスタンス、Lake Formation、AWS Glue Data Catalog、Amazon S3 Access Grants はすべて同じ にデプロイする必要がありますAWS リージョン。

  • AWS IAM アイデンティティセンターでクイックを設定する – 信頼できる ID の伝播は、IAM AWSアイデンティティセンターと統合されたクイックアカウントでのみサポートされます。ID 伝達を使用してAWS Glue Data Catalog データソースを作成するには、IAM Identity Center ユーザー (作成者)AWSである必要があります。

  • AWS Glue Data Catalog は Lake Formation によって管理される必要があります – Lake Formation はデータベースとテーブルにアクセス許可を適用する必要があります。データベースまたはテーブルが引き続き Superに を付与する場合IAMAllowedPrincipals、Lake Formation はユーザーごとのアクセス許可を適用しません。

  • Lake Formation はAWS IAM アイデンティティセンターと統合する必要があります – Quick が使用するのと同じAWS IAM アイデンティティセンターインスタンスを使用します。この統合により、Lake Formation は伝播されたユーザー ID を認識できます。

  • Lake Formation にデータ S3 の場所を登録する – ユーザーがテーブルにクエリを実行すると、Lake Formation はデータのスコープが限定された一時的な S3 認証情報を提供します。ユーザーのクエリには、データバケットに対する独自の S3 アクセス許可は必要ありません。すべてのテーブル形式 (Parquet、Apache Iceberg、S3 Tables) の場所を登録します。

  • Lake Formation の IAM Identity Center ユーザーとグループにアクセス許可を付与する – アクセス許可と、各ユーザーがアクセスできるカタログ、データベース、テーブル、行、および列を制御する行、列、またはセルデータフィルターを設定します。

  • クイック管理者は接続を承認します – 信頼できる ID の伝達により、クイックロールはテーブルデータに対する直接 S3 アクセス許可を必要としません。Lake Formation はこれらの認証情報を提供します。

  • Athena 結果バケットの S3 Access Grants – Glue クエリは Athena エンジンを介して実行され、クエリ結果バケットに結果を書き込みます。このバケットは、S3 Access Grants (Lake Formation とは別) によって管理されます。各ユーザーまたはグループには、結果バケットに S3 アクセス許可 (READ/WRITE) が必要になる場合があります。

ステップ 1: Lake Formation –AWS IAM Identity Center 統合を有効にする

Lake Formation AWSは、Quick から伝播された ID を認識できるように、IAM Identity Center インスタンスに接続する必要があります。これは、アカウントレベルとリージョンレベルの 1 回限りのステップです。Athena の信頼できる ID 伝達を既に使用している場合、このステップはすでに完了しています。Lake Formation データレイク管理者である必要があります。

コンソール: Lake Formation コンソールで、管理IAM Identity Center 統合を選択し、作成を選択します。AWS IAM Identity Center インスタンスを選択します。

AWS CLI:

aws lakeformation create-lake-formation-identity-center-configuration \ --catalog-id 111122223333 \ --instance-arn arn:aws:sso:::instance/<idc-instance-id> \ --region us-west-2

このコマンドは、Lake Formation IAM Identity Center AWSアプリケーションを作成します。レスポンスApplicationArnの を書き留めます。ID 伝達を設定するときに、これを承認されたターゲットとして使用します。

後でアプリケーション ARN を取得するには、以下を実行します。

aws lakeformation describe-lake-formation-identity-center-configuration \ --catalog-id 111122223333 \ --region us-west-2

レスポンスには、ApplicationArn次の形式の が含まれます。

arn:aws:sso::111122223333:application/<idc-instance-id>/<lf-application-id>

ステップ 2: 必要なアクセス許可を持つ IAM ロールを設定する

クイックアカウントは、必要なアクセス許可を持つ IAM ロールを使用する必要があります。アカウントが既にカスタム IAM ロールを使用している場合は、変更します。それ以外の場合は、新しいロールを作成します。

必要な信頼ポリシー:

ロールの信頼ポリシーは、クイックサービスプリンシパルがそれを引き受け、ユーザーの ID コンテキストをセッションにアタッチすることを許可する必要があります。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "quicksight.amazonaws.com" }, "Action": ["sts:AssumeRole", "sts:TagSession", "sts:SetContext"] }] }
注記

sts:SetContext は、ユーザーのAWS IAM Identity Center アイデンティティコンテキストを引き受けたロールセッションにアタッチできるようにするために必要です。

必要な許可:

ロールには、Glue Data Catalog AWSメタデータを読み取り、Lake Formation が提供するデータアクセスを取得するためのアクセス許可が必要です。Lake Formation はスコープ付きの一時的な S3 認証情報を提供するため、ロールにはテーブルデータに対する直接アクセスs3:*許可は必要ありません。

"Action": [ "glue:GetCatalog", "glue:GetCatalogs", "glue:GetDatabase", "glue:GetDatabases", "glue:GetTable", "glue:GetTables", "glue:GetConnection", "glue:GetConnections", "glue:GetTags", "glue:ListDataQualityResults", "glue:GetDataQualityResult", "lakeformation:GetTemporaryGlueTableCredentials", "lakeformation:GetDataAccess" ]

ステップ 3: IAM ロールを使用するようにクイックアカウントを設定する

このステップは、クイック管理者が完了する必要があります。

  1. クイックコンソールで、プロファイルアイコンを選択し、クイックの管理を選択します。

  2. [Security & permissions (セキュリティとアクセス許可)] を選択します。

  3. AWSサービスへのクイックアクセスで、管理を選択します。

  4. Glue Data Catalog リソースを検索または追加します。

  5. ステップ 2 で設定した IAM ロールを選択します。

  6. Amazon S3 で、Athena クエリ結果バケットへのアクセスを許可します。

  7. [更新] を選択します。

ステップ 4: ID 伝達設定を更新する

次のAWS CLI コマンドを実行して、Data Catalog の ID 伝達を有効にします。

aws quicksight update-identity-propagation-config \ --aws-account-id 111122223333 \ --service GLUE_DATA_CATALOG \ --authorized-targets arn:aws:sso::111122223333:application/<idc-instance-id>/<lf-application-id>

--authorized-targets 値は、ステップ 1 AWSで取得した Lake Formation IAM Identity Center アプリケーション ARN です。これにより、ID AWSを伝達する IAM Identity Center アプリケーションが Quick に指示されます。

確認するには、以下を実行します。

aws quicksight list-identity-propagation-configs \ --aws-account-id 111122223333

がサービスリストGLUE_DATA_CATALOGに表示されることを確認します。

ステップ 5: Glue Data Catalog AWSデータソースを作成する

作成者が Glue Data Catalog AWSデータソースを作成すると、Quick はサインインユーザーの伝播されたアイデンティティを使用してカタログを一覧表示することでアクセシビリティを検証します。ユーザーは、Lake Formation 許可が許可するカタログ、データベース、およびテーブルのみを表示します。

セットアップの検証

次のチェックリストを使用して設定を確認します。

  • Lake Formation とAWS IAM アイデンティティセンターの統合は、 を返しますApplicationArn

  • ID 伝達スコープには が表示されますGLUE_DATA_CATALOG

  • IAM ロールには、信頼ポリシーsts:SetContextに正しいアクセス許可と があります。

  • データ S3 の場所は Lake Formation に登録されます。

  • Lake Formation 許可は、IAM Identity Center ユーザーとグループ用に設定されます。

  • S3 Access Grants は、Athena 結果バケット (該当する場合) で設定されます。

  • End-to-endのテスト: テストユーザーとしてサインインし、データソースを作成し、テーブルにクエリを実行します。

主な考慮事項と制限事項

  • アクセス許可は、IAM Identity Center のエンドユーザーとそのグループに対して評価されます。

  • クエリパスは Athena を介して実行されます。各ユーザーには、Athena 結果バケットに S3 Access Grants が必要です。

  • フルテーブルが同じユーザーにも付与されている場合、データフィルターSELECTは効果がありません。

  • ベストプラクティス: 管理を容易にするために、個々のユーザーではなくグループにアクセス許可を付与します。

  • S3 Access Grants は結果整合性があります。新しく追加された権限の伝播には数分かかる場合があります。

  • Lake Formation できめ細かなアクセスコントロール (行、列、セルフィルター) を設定します。

  • スコープダウンポリシーは、エンドユーザーの ID に対して評価されます。

Athena の信頼できる ID の伝播については、Amazon Athena の信頼できる ID の伝播」を参照してください。