AWS Glue ETL での信頼できる ID 伝播の開始方法 - AWS Glue

AWS Glue ETL での信頼できる ID 伝播の開始方法

このセクションでは、IAM アイデンティセンターと統合し、信頼できる ID 伝播を有効にするためのインタラクティブセッションで AWS Glue アプリケーションを設定するのに役立ちます。

前提条件

  • 信頼できる ID 伝播が有効な AWS Glue インタラクティブセッションを作成する AWS リージョンのアイデンティセンターインスタンス。各アイデンティセンターインスタンスは、1 つの AWS アカウントに対して 1 つのリージョンにのみ存在できます。詳細については、「Enable IAM Identity Center」と「provision the users and groups from your source of identities into IAM Identity Cente」を参照してください。

  • Lake Formation、Amazon S3 Access Grants、Amazon Redshift クラスターなど、インタラクティブなワークロードがデータにアクセスするためにやり取りするダウンストリームサービスに対して、信頼できる ID 伝播を有効にします。

AWS Glue ETL を IAM アイデンティセンター接続するために必要なアクセス許可

IAM ロールを作成する

IAM アイデンティティセンター接続を作成するロールには、以下のインラインポリシーのように、AWS Glue と IAM アイデンティセンターでアプリケーション設定を作成および変更するアクセス許可が必要です。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:CreateGlueIdentityCenterConfiguration", "sso:CreateApplication", "sso:PutApplicationAssignmentConfiguration", "sso:PutApplicationAuthenticationMethod", "sso:PutApplicationGrant", "sso:PutApplicationAccessScope", "sso:ListInstances" ], "Resource": [ "*" ] } ] }

以下のインラインポリシーには、AWS Glue と IAM アイデンティセンターの統合のプロパティを表示、更新、削除するために必要な特定の権限が含まれています。

以下のインラインポリシーを使用して、IAM ロールで AWS Glue と IAM アイデンティセンターの統合を表示できるようにします。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:GetGlueIdentityCenterConfiguration" ], "Resource": [ "*" ] } ] }

以下のインラインポリシーを使用して、IAM ロールで AWS Glue と IAM アイデンティセンターの統合を更新できるようにします。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:UpdateGlueIdentityCenterConfiguration", "sso:PutApplicationAccessScope", "sso:DeleteApplicationAccessScope" ], "Resource": [ "*" ] } ] }

以下のインラインポリシーを使用して、IAM ロールで AWS Glue と IAM アイデンティセンターの統合を削除できるようにします。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:DeleteGlueIdentityCenterConfiguration", "sso:DeleteApplication" ], "Resource": [ "*" ] } ] }

アクセス許可の説明

  • glue:CreateGlueIdentityCenterConfiguration – AWS Glue IdC 設定を作成するためのアクセス許可を付与します。

  • glue:GetGlueIdentityCenterConfiguration – 既存の IdC 設定を取得する許可を付与します。

  • glue:DeleteGlueIdentityCenterConfiguration – 既存の AWS Glue IdC 設定セットを削除する許可を付与します。

  • glue:UpdateGlueIdentityCenterConfiguration – 既存の AWS Glue IdC 設定セットを更新する許可を付与します。

  • sso:CreateApplication – AWS Glue マネージド IAM アイデンティセンターアプリケーションを作成するためのアクセス許可を付与します。

  • sso:DescribeApplication – AWS Glue マネージド IAM アイデンティセンターアプリケーションを説明するためのアクセス許可を付与します。

  • sso:DeleteApplication – AWS Glue マネージド IAM アイデンティセンターアプリケーションを削除するためのアクセス許可を付与します。

  • sso:UpdateApplication – AWS Glue マネージド IAM アイデンティセンターアプリケーションを更新するためのアクセス許可を付与します。

  • sso:PutApplicationGrant – IdC アプリケーションに token-exchange、introspectToken、refreshToken、RevokeToken 許可を適用するアクセス許可を付与します。

  • sso:PutApplicationAuthenticationMethod – AWS Glue サービスプリンシパルが IdC アプリケーションとやり取りできるようにする AWS Glue マネージド IdC アプリケーションに authenticationMethod を配置するアクセス許可を付与します。

  • sso:PutApplicationAccessScope – AWS Glue マネージド IdC アプリケーションで承認されたダウンストリームサービススコープのリストを追加または更新するアクセス許可を付与します。

  • sso:DeleteApplicationAccessScope – AWS Glue マネージド IdC アプリケーションのスコープが削除された場合にダウンストリームスコープを削除するアクセス許可を付与します。

  • sso:PutApplicationAssignmentConfiguration – IdC アプリケーションに「User-assignment-not-required」設定を設定するアクセス許可を付与します。

  • sso:ListInstances – インスタンスを一覧表示し、identity-center-configuration パラメータで指定した IdC InstanceArn を検証するアクセス許可を付与します。

AWS Glue と IAM アイデンティセンターの接続

AWS Glue が IAM アイデンティセンターに接続されると、アカウントごとにシングルトンマネージド IdC アプリケーションが作成されます。次の例は、AWS Glue と IAM アイデンティセンターを接続する方法を示しています。

aws glue create-glue-identity-center-configuration \ --instance-arn arn:aws:sso:::instance/ssoins-123456789 \ --scopes '["s3:access_grants:read_write", "redshift:connect","lakeformation:query"]'

マネージドアプリケーションの範囲を更新するため (通常はダウンストリームサービスに伝播するために)、以下を使用できます。

aws glue update-glue-identity-center-configuration \ --scopes '["s3:access_grants:read_write", "redshift:connect","lakeformation:query"]'

Scopes パラメータはオプションであり、指定しない場合、すべてのスコープが追加されます。サポートされる値は s3:access_grants:read_writeredshift:connectlakeformation:query です。

設定の詳細の取得には、以下を使用できます。

aws glue get-glue-identity-center-configuration

AWS Glue と IAM アイデンティセンター間の接続を削除するには、次のコマンドを使用します。

aws glue delete-glue-identity-center-configuration
注記

AWS Glue は、サービスが ID 検証とダウンストリームサービスへの ID 伝播に使用するサービスマネージドアイデンティセンターアプリケーションをアカウントに作成します。AWS Glue で作成された作成したマネージドアイデンティセンターアプリケーションは、アカウント内のすべての信頼できる ID 伝播セッションで共有されます。

警告: マネージドアイデンティセンターアプリケーションの設定を変更しないでください。変更は、アカウントで信頼できる ID 伝播が有効なすべての AWS Glue インタラクティブセッションに影響を与える可能性があります。

信頼できる ID 伝播を有効にして AWS Glue インタラクティブセッションを作成する

AWS Glue と IAM アイデンティセンターを接続すると、ID が強化されたロール認証情報を使用して AWS Glue インタラクティブセッションを作成できます。5.0 AWS Glue セッションの作成時に追加のパラメータを渡す必要はありません。AWS Glue は IAM アイデンティセンターに接続されているため、AWS Glue で ID が強化されたロール認証情報が検出されると、ステートメントの一部として呼び出されるダウンストリームサービスに ID 情報が自動的に伝播されます。ただし、セッションのランタイムロールには、以下に示すように sts:SetContext アクセス許可が必要です。

ID を伝播するためのランタイムロールのアクセス許可

AWS Glue セッションでは ID が強化された認証情報を活用して ID をダウンストリームの AWS サービスに伝達するため、ランタイムロールの信頼ポリシーには、ダウンストリームサービス (Amazon S3 Access Grants、Lake Formation、Amazon Redshift) への ID 伝播を可能にするための追加のアクセス許可 sts:SetContext が必要です。ランタイムロールの作成方法の詳細については、ランタイムロールのセットアップについて参照してください。

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

さらに、ランタイムロールには、ジョブ実行がユーザー ID を使用してデータを取得するために呼び出すダウンストリーム AWS サービスのアクセス許可が必要です。Amazon S3 Access Grants と Lake Formation を設定するには、次のリンクを参照してください。