View a markdown version of this page

カスタマーマネージドアプリケーションの AWS アカウントアクセスを有効にする - AWS IAM アイデンティティセンター

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

カスタマーマネージドアプリケーションの AWS アカウントアクセスを有効にする

IAM Identity Center でカスタマーマネージドアプリケーションの AWS アカウントアクセスを有効にするには、信頼できるトークン発行者を設定します。信頼できるトークン発行者は、認証されたユーザーに代わって署名付きトークンを発行する OAuth 2.0 認可サーバーです。IAM Identity Center は、これらのトークンを認証情報と交換して、アプリケーションがそれらのユーザーに割り当てられた AWS アカウントとロールにプログラムでアクセスできるようにします。信頼できるトークン発行者は、 AWS マネージドアプリケーションへのアクセスにも使用できます。詳細については、「信頼できるトークン発行者によるアプリケーションの使用」を参照してください。

注記

この機能は、IAM Identity Center の組織インスタンスでのみ有効にできます。カスタマーマネージドアプリケーションsso:account:accessの範囲を有効にすることができるのは、管理アカウント管理者または委任管理者のみです。メンバーアカウントの Application Builder の場合は、IAM Identity Center 管理者に連絡して、アプリケーションのこのスコープを有効にします。

仕組み

管理者がカスタマーマネージドアプリケーションのsso:account:accessスコープを有効にすると、次のワークフローが発生します。

  1. ユーザーは、外部 ID プロバイダー (IdP) を介してアプリケーションにサインインします。

  2. アプリケーションは IdP から署名付き JWT トークンを受け取ります。

  3. アプリケーションは、JWT ベアラー許可タイプ () で CreateTokenWithIAM API を呼び出して、このトークンを IAM アイデンティティセンタートークンと交換しますurn:ietf:params:oauth:grant-type:jwt-bearer。この呼び出しには、署名バージョン 4 (SigV4) 認証が必要です。詳細については、IAM Identity Center OIDC API リファレンスの「CreateTokenWithIAM」を参照してください。

  4. アプリケーションは IAM Identity Center トークンを使用してポータル API オペレーション (ListAccountsListAccountRolesGetRoleCredentials) を呼び出し、ユーザーに割り当てられたアカウントとロールを検出し、ユーザーに代わって一時的な AWS 認証情報を取得します。

  5. ユーザーは、追加のサインイン手順なしでアプリケーションを介して AWS リソースにアクセスします。

アプリケーションの設定時に更新トークン許可を有効にした場合、 はアクセストークンとともに更新トークンCreateTokenWithIAMも返します。アプリケーションはこの更新トークンを使用して、JWT ベアラートークンの完全な交換を繰り返すことなく、新しいアクセストークンを取得できます。アクセストークンを更新するには、 refresh_token 許可タイプCreateTokenWithIAMで を呼び出します。

前提条件

カスタマーマネージドアプリケーションのアカウントアクセスを有効にする前に、以下が必要です。

  • JSON ウェブトークン (JWTs) をサポートする IAM アイデンティティセンターで設定されたカスタマーマネージドアプリケーション。アプリケーションには、認証情報を安全に保存できるバックエンドサーバーコンポーネントが必要です。単一ページアプリケーション (SPAs) やその他のパブリッククライアントなどのブラウザベースのアプリケーションは、この機能ではサポートされていません。

  • アプリケーションにアタッチされた信頼できるトークン発行者

  • IAM Identity Center AWS Organizations の管理アカウントまたは委任管理者アカウントへのアクセス。メンバーアカウントの Application Builder は、このスコープを直接有効にすることはできません。

アカウントアクセスを有効にする

カスタマーマネージドアプリケーションのsso:account:accessスコープを有効にするには
  1. 組織の管理アカウントまたは委任管理者アカウント AWS マネジメントコンソール を使用して にサインインします。

  2. IAM Identity Center コンソールを開きます。

  3. ナビゲーションペインで、[アプリケーション] を選択します。

  4. [カスタマーマネージド] タブを選択します。

  5. 設定するアプリケーションの名前を選択します。

  6. AWS アカウントアクセスセクションで、 AWS アカウントアクセスを有効にするをオンにします。

アカウントアクセスを有効にすると、アプリケーションは Identity Portal API オペレーションをプログラムで呼び出してアカウントとロールを一覧表示し、認証されたユーザーがアクセスを許可されているロールの一時的な AWS 認証情報を取得できます。

重要

アプリケーションのsso:account:accessスコープを有効にすると、そのアプリケーションは、アクセス許可セットの割り当てを通じて、認証されたユーザーが利用できるすべてのアカウントとロールにアクセスできます。アプリケーションを特定のアカウントまたはロールに制限することはできません。この機能を有効にする前に、このアクセスレベルを理解してください。

プログラム的なアクセス

PutApplicationAccessScope API を使用して、カスタマーマネージドアプリケーションのsso:account:accessスコープをプログラムで有効にできます。組織の管理アカウントまたは委任管理者アカウントから API を呼び出す必要があります。

AWS CLI

aws sso-admin put-application-access-scope \ --application-arn arn:aws:sso::123456789012:application/ssoins-1234567890abcdef/apl-1234567890abcdef \ --scope "sso:account:access"

API リクエスト:

{ "ApplicationArn": "arn:aws:sso::123456789012:application/ssoins-1234567890abcdef/apl-1234567890abcdef", "Scope": "sso:account:access" }

アカウントアクセスを無効にするには、同じアプリケーション ARN とスコープ値で DeleteApplicationAccessScope API を使用します。

詳細については、IAM Identity Center API リファレンスの「PutApplicationAccessScope」とDeleteApplicationAccessScope」を参照してください。

セキュリティのベストプラクティス

  • sso:account:access スコープは、認証されたユーザーが利用できるすべてのアカウントとロールへのアクセス権をアプリケーションに付与します。特定のアカウントまたはロールへのアクセスを制限することはできません。このアクセスレベルを必要とするアプリケーションに対してのみ、このスコープを有効にします。

  • IAM Identity Center アクセストークンと更新トークンをバックエンドサーバーに保持します。クライアント側のコードに公開しないでください。

  • アプリケーションログ、エラーメッセージ、またはデバッグ出力にトークンまたは認証情報を記録しないでください。

  • URL クエリパラメータでトークンを渡さないでください。アクセストークンには x-amz-sso_bearer_tokenヘッダーを使用します。

  • を使用してAWS CloudTrail、アプリケーションによって行われた API コールをモニタリングします。