TIP プラグインを使用して にアクセスする AWS のサービス - AWS SDKsとツール

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

TIP プラグインを使用して にアクセスする AWS のサービス

信頼できる ID 伝達 (TIP) は、 の管理者がグループの関連付けなどのユーザー属性に基づいてアクセス許可 AWS のサービス を付与 AWS IAM Identity Center できるようにする の機能です。信頼できる ID の伝播では、アイデンティティコンテキストが IAM ロールに追加され、 AWS リソースへのアクセスをリクエストするユーザーを識別します。このコンテキストは他の に伝達されます AWS のサービス。

ID コンテキストは、 がアクセスリクエストを受信したときに認可の決定を行うために AWS のサービス 使用する情報で構成されます。この情報には、リクエスタ (IAM Identity Center ユーザーなど)、アクセスがリクエストされる AWS のサービス (Amazon Redshift など)、アクセス範囲 (読み取り専用アクセスなど) を識別するメタデータが含まれます。受信側 AWS のサービス は、このコンテキストとユーザーに割り当てられたアクセス許可を使用して、そのリソースへのアクセスを承認します。詳細については、「 AWS IAM Identity Center ユーザーガイド」の「信頼された ID 伝達の概要」の「」を参照してください。

TIP プラグインは、信頼できる ID の伝播 AWS のサービス をサポートする で使用できます。参考ユースケースとして、「Amazon Q Business ユーザーガイド」の「 を使用して Amazon Q Business アプリケーション AWS IAM Identity Centerを設定する」を参照してください。

注記

Amazon Q Business を使用している場合は、サービス固有の手順について、「 を使用して Amazon Q Business アプリケーションを設定する AWS IAM Identity Center」を参照してください。

TIP プラグインを使用するための前提条件

プラグインを機能させるには、次のリソースが必要です。

  1. AWS SDK for Java または のいずれかを使用する必要があります AWS SDK for JavaScript。

  2. 使用しているサービスが信頼できる ID の伝播をサポートしていることを確認します。

    「 ユーザーガイド」の「IAM Identity Center と統合するマネージドアプリケーションの IAM Identity Center を介した信頼できる ID の伝播を有効にする」列を参照してください。 AWS AWS IAM Identity Center

  3. IAM Identity Center と信頼できる ID の伝播を有効にします。

    AWS IAM Identity Center ユーザーガイド「TIP の前提条件と考慮事項」を参照してください。

  4. Identity-Center-integratedアプリケーションが必要です。

    AWS IAM Identity Center 「 ユーザーガイド」のAWS 「 マネージドアプリケーション」または「カスタマーマネージドアプリケーション」を参照してください。

  5. 信頼できるトークン発行者 (TTI) を設定し、サービスを IAM アイデンティティセンターに接続する必要があります。

    「 ユーザーガイド」の「信頼できるトークン発行者の前提条件」および「信頼できるトークン発行者を設定するためのタスク」を参照してください。 AWS IAM Identity Center

コードで TIP プラグインを使用するには

  1. 信頼できる ID 伝達プラグインのインスタンスを作成します。

  2. とやり取りするためのサービスクライアントインスタンスを作成し AWS のサービス 、信頼できる ID 伝達プラグインを追加してサービスクライアントをカスタマイズします。

TIP プラグインは、次の入力パラメータを受け取ります。

  • webTokenProvider: 外部 ID プロバイダーから OpenID トークンを取得するためにお客様が実装する関数。

  • accessRoleArn: ユーザーの ID コンテキストを使用してプラグインが引き受ける IAM ロール ARN。ID 拡張認証情報を取得します。

  • applicationArn: クライアントまたはアプリケーションの一意の識別子文字列。この値は、OAuth 許可が設定されているアプリケーション ARN です。

  • applicationRoleArn: (オプション) OIDC と AWS STS クライアントをデフォルトの認証情報プロバイダーなしでブートストラップAssumeRoleWithWebIdentityできるように、 で引き受ける IAM ロール ARN。これを指定しない場合、 accessRoleArnパラメータの値が使用されます。

  • ssoOidcClient: (オプション) SsoOidcClient for Java や client-sso-oidc for Javascript など、お客様が定義した設定を持つ SSO OIDC クライアント。指定しない場合、デフォルト設定を使用する OIDC クライアントがインスタンス化されて使用されます。

  • stsClient: (オプション) AWS STS ユーザーが定義した設定を持つクライアント。ユーザーの ID コンテキストaccessRoleArnで引き受けるために使用されます。指定しない場合、デフォルト設定を使用する AWS STS クライアントがインスタンス化されて使用されます。

Java

AWS SDK for Java プロジェクトで TIP プラグインを使用するには、プロジェクトの pom.xml ファイルで TIP プラグインを依存関係として宣言する必要があります。

<dependency> <groupId>software.amazon.awsidentity.trustedIdentityPropagation</groupId> <artifactId>aws-sdk-java-trustedIdentityPropagation-java-plugin</artifactId> <version>1.0.0</version> </dependency>

ソースコードに、 に必要なパッケージステートメントを含めますsoftware.amazon.awssdk.trustedidentitypropagation

次のコード例は、信頼できる ID 伝達プラグインのインスタンスを作成し、そのプラグインをサービスクライアントインスタンスに追加する方法を示しています。

この例では、選択した AWS のサービス クライアントS3Clientとして を使用して、IAM Identity Center トークンの取得を示します。ただし、TIP AWS のサービス をサポートする他の も同様です。

StsClient client = StsClient.builder() .region(Region.US_EAST_1) .credentialsProvider(AnonymousCredentialsProvider.create()).build(); TrustedIdentityPropagationPlugin trustedIdentityPropagationPlugin = TrustedIdentityPropagationPlugin.builder() .stsClient(client) .webTokenProvider(() -> idToken) .applicationArn(idcApplicationArn) .accessRoleArn(accessRoleArn) .ssoOidcClient(SsoOidcClient.builder().region(Region.US_EAST_1).build()) .build(); S3Client s3Client = S3Client.builder().region(Region.US_EAST_1).addPlugin(trustedIdentityPropagationPlugin) .build();

詳細とソースについては、GitHub のtrusted-identity-propagation-java」を参照してください。

Javascript

次のコマンドを実行して、TIP 認証プラグインパッケージを AWS SDK for JavaScript プロジェクトにインストールします。

$ npm i @aws-sdk-extension/trusted-identity-propagation

最後の には、次のような依存関係を含めるpackage.json必要があります。

"dependencies": { "@aws-sdk-extension/trusted-identity-propagation": "^1.0.0" },

ソースコードで、必要なTrustedIdentityPropagationExtension依存関係をインポートします。

次のコード例は、信頼できる ID 伝達プラグインのインスタンスを作成し、そのプラグインをサービスクライアントインスタンスに追加する方法を示しています。

この例では、選択した AWS のサービス クライアントS3Clientとして を使用して、IAM Identity Center トークンの取得を示します。ただし、TIP AWS のサービス をサポートする他の も同様です。

import { S3Client } from "@aws-sdk/client-s3"; import { TrustedIdentityPropagationExtension } from "@aws-sdk-extension/trusted-identity-propagation"; // Plugin configurations, please refer to the documentation on each of these fields. const applicationRoleArn = 'YOUR_APPLICATION_ROLE_ARN'; const accessRoleArn = 'YOUR_ACCESS_ROLE_ARN'; const applicationArn = 'YOUR_APPLICATION_ARN'; const s3Client = new S3Client({ region, extensions: [ TrustedIdentityPropagationExtension.create({ webTokenProvider: async () => { return 'ID_TOKEN_FROM_YOUR_IDENTITY_PROVIDER'; }, applicationRoleArn, accessRoleArn, applicationArn, }), ], });

詳細とソースについては、GitHub のtrusted-identity-propagation-js」を参照してください。