IAM Identity Center 認証を理解する - AWS SDKsとツール

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

IAM Identity Center 認証を理解する

IAM Identity Center の関連条項

以下の用語は、AWS IAM Identity Center の背後にあるプロセスと設定を理解するのに役立ちます。AWS SDK API のドキュメントでは、これらの認証概念の一部に IAM Identity Center とは異なる名前を使用しています。両方の名前を知っておくと役に立ちます。

次の表は、別名の相互関係を示しています。

IAM アイデンティティセンターの名前 SDK API の名前 説明
アイデンティティセンター sso AWS シングルサインオンの名前は変更されましたが、sso API 名前空間は下位互換性のために元の名前を維持します。詳細については、「AWS IAM Identity Center ユーザーガイド」の「What is IAM Identity Center」(IAM Identity Center とは) を参照してください。

IAM Identity Center コンソール

管理コンソール

シングルサインオンの設定に使用するコンソール。
AWS アクセスポータル URL IAM Identity Center のアカウントに一意の URL(https://xxx.awsapps.com/start など)。IAM Identity Center のサインイン認証情報を使用してこのポータルにサインインします。
IAM Identity Center アクセスポータルセッション 認証セッション 発信者がベアラーアクセストークンを取得できます。
アクセス許可設定セッション SDK が内部的に AWS のサービス 呼び出しに使用する IAM セッション。非公式な議論では、このセッションが誤って「ロールセッション」と呼ばれることがあります。
アクセス許可セット認証情報

AWS 認証情報

sigv4 認証情報

SDK がほとんどの AWS のサービス 呼び出し(具体的にはすべての sigv4 AWS のサービス 呼び出し)で実際に使用する認証情報。非公式な議論では、このセッションが誤って「ロール認証情報」と呼ばれることがあります。
IAM Identity Center 認証情報プロバイダー SSO 認証情報プロバイダー 認証情報の取得方法(機能を提供するクラスやモジュールなど)。

AWS のサービス の SDK 認証情報解決について理解します

IAM Identity Center API は、ベアラートークンの認証情報を sigv4 の認証情報と交換します。Amazon CodeWhisperer や Amazon CodeCatalyst のようないくつかの例外を除いて、AWS のサービス はほとんど sigv4 API です。以下では、AWS IAM Identity Center を通じてアプリケーションコードのほとんどの AWS のサービス 呼び出しをサポートするための認証情報解決プロセスについて説明します。

AWS アクセスポータルセッションを開始する

  • まず、認証情報を使用してセッションにサインインします。

    • AWS Command Line Interface (AWS CLI) の aws sso login コマンドを使用します。アクティブなセッションがまだない場合は、新しい IAM Identity Center セッションが開始されます。

  • 新しいセッションを開始すると、IAM Identity Center から更新トークンとアクセストークンを受け取ります。AWS CLI はまた、SSO キャッシュ JSON ファイルを新しいアクセストークンと更新トークンで更新し、SDK で使用できるようにします。

  • すでにアクティブなセッションがある場合、AWS CLI コマンドは既存のセッションを再利用し、既存のセッションの有効期限が切れると期限切れになります。IAM Identity Center セッションの長さを設定する方法については、「AWS IAM Identity Center ユーザーガイド」の「ユーザーの AWS アクセスポータルセッションの期間の設定」を参照してください。

    • 頻繁にサインインする必要性を減らすため、セッションの最大期間が 90 日間に延長されました。

SDK が AWS のサービス 呼び出しの認証情報を取得する方法

SDK を使用すると、サービスごとにクライアントオブジェクトをインスタンス化するときに AWS のサービス へのアクセスができるようになります。共有 AWS config ファイルの選択したプロファイルが IAM Identity Center の認証情報解決用に設定されている場合、IAM Identity Center を使用してアプリケーションの認証情報を解決します。

IAM Identity Center のシングルサインオンを使用して sigv4 API の認証情報を取得するために、SDK は IAM Identity Center のアクセストークンを使用して IAM セッションを取得します。この IAM セッションはアクセス許可セットセッションと呼ばれ、IAM ロールを引き受けることで SDK への AWS アクセスが可能となります。

  • アクセス許可セットのセッション期間は IAM Identity Center のセッション期間とは独立して設定されます。

    • アクセス許可セットのセッション期間を設定する方法については、「AWS IAM Identity Center ユーザーガイド」の「セッション期間の設定」を参照してください。

  • ほとんどの AWS SDK API ドキュメントでは、AWS 認証情報sigv4 認証情報とも呼ばれていることに注意してください。

アクセス許可セットの認証情報は、IAM Identity Center API の getRoleCredentials への呼び出しから SDK に返されます。SDK のクライアントオブジェクトは、引き受けた IAM ロールを使用して AWS のサービス を呼び出します。たとえば、アカウントのバケットを一覧表示するように Amazon S3 に要求します。クライアントオブジェクトは、アクセス許可セットセッションの有効期限が切れるまで、それらのアクセス許可セット認証情報を使用して操作を続けることができます。

セッションの有効期限と更新

SSO トークンプロバイダーの設定 を使用する場合、IAM Identity Center から取得した 1 時間単位のアクセストークンは、更新トークンを使用して自動的に更新されます。

  • SDK がアクセストークンを使用しようとしたときにそのアクセストークンの有効期限が切れている場合、SDK は更新トークンを使用して新しいアクセストークンの取得を試みます。IAM Identity Center は、更新トークンを IAM Identity Center のアクセスポータルのセッション期間と比較します。更新トークンの有効期限が切れていない場合、IAM Identity Center は別のアクセストークンで応答します。

  • このアクセストークンは、既存のクライアントのアクセス許可セットセッションを更新したり、新しいクライアントの認証情報を解決したりするために使用できます。

ただし、IAM Identity Center アクセスポータルセッションの有効期限が切れると、新しいアクセストークンは付与されません。そのため、アクセス許可セットの有効期間は更新できません。既存のクライアントのキャッシュされたアクセス許可セットセッションの長さがタイムアウトになると、有効期限が切れます(アクセスも失われます)。

IAM Identity Center セッションの有効期限が切れるとすぐに、新しいクライアントを作成するコードは認証に失敗します。これは、アクセス許可セットの認証情報がキャッシュされないためです。有効なアクセストークンが得られるまで、コードで新しいクライアントを作成したり、認証情報解決プロセスを完了したりすることはできません。

まとめると、SDK が新しいアクセス許可セット認証情報を必要とする場合、SDK はまず有効な既存の認証情報を確認し、それらを使用します。これは、認証情報が新しいクライアントのものか、認証情報の有効期限が切れた既存のクライアントのものかに関係なく適用されます。認証情報が見つからない、または有効でない場合、SDK は IAM Identity Center API を呼び出して新しい認証情報を取得します。API を呼び出すには、アクセストークンが必要です。アクセストークンの有効期限が切れている場合、SDK は更新トークンを使用して、IAM Identity Center サービスから新しいアクセストークンを取得しようとします。このトークンは、IAM Identity Center アクセスポータルセッションの有効期限が切れていない場合に付与されます。