IAM Identity Center 認証情報プロバイダー - AWS SDKs および ツール

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

IAM Identity Center 認証情報プロバイダー

この認証メカニズムは AWS IAM Identity Center 、コードへのシングルサインオン (SSO) アクセスを取得するために使用されます。 AWS のサービス

注記

AWS SDK API ドキュメントでは、IAM ID センターの認証情報プロバイダーは SSO 認証情報プロバイダーと呼ばれています。

IAM Identity Center を有効にしたら、共有ファイル内の設定用のプロファイルを定義します。 AWS configこのプロファイルは IAM Identity Center アクセスポータルへの接続に使用されます。ユーザーが IAM Identity Center で正常に認証されると、ポータルはそのユーザーに関連付けられた IAM ロールの短期認証情報を返します。SDK AWS のサービス が設定から一時的な認証情報を取得してリクエストに使用する方法については、を参照してくださいIAM Identity Center 認証を理解する

config ファイルを使用して IAM Identity Center を設定するには 2 つの方法があります。

  • SSO トークンプロバイダーの設定 (推奨) — セッション期間の延長。

  • 更新不可のレガシー構成 — 固定 8 時間のセッションを使用します。

どちらの構成でも、セッションの有効期限が切れたら再度サインインする必要があります。

カスタムセッション期間を設定するには、SSO トークンプロバイダー設定を使用する必要があります。

次の 2 つのガイドには、IAM Identity Center に関する追加情報が含まれています。

前提条件

最初に IAM Identity Center を有効にしておく必要があります。IAM アイデンティティセンターの認証を有効にする方法の詳細については、「AWS IAM Identity Center ユーザーガイド」の「開始方法」を参照してください。

または、「IAM Identity Center 認証」このガイドの指示に従ってください。これらの手順は、IAM アイデンティティセンターの有効化から、以下の必要な共有 config ファイル設定の完了まで、包括的なガイダンスとなります。

SSO トークンプロバイダー設定

SSO トークンプロバイダー設定を使用すると、 AWS SDK またはツールは延長されたセッション期間までセッションを自動的に更新します。セッション期間と最大時間について詳しくは、ユーザーガイドの「AWS アクセスポータルと IAM Identity Center 統合アプリケーションのセッション期間の設定」を参照してください。AWS IAM Identity Center

sso-sessionconfigファイルのセクションは、SSO アクセストークンを取得するための設定変数をグループ化するために使用され、それを使用して認証情報を取得できます。 AWS config ファイル内のセクションのフォーマットの詳細については、設定ファイルの形式を参照してください。

sso-session セクションを定義してプロファイルに関連付けます。sso_regionsso_start_urlsso-session セクション内に設定する必要があります。通常はsso_account_id、SDK sso_role_name profile AWS が認証情報をリクエストできるようにセクションで設定する必要があります。

注記

SDK とツールがこの構成を使用して認証情報を使用および更新する方法の詳細については、「IAM Identity Center 認証を理解する」を参照してください。

次の例では、IAM Identity Center 認証情報をリクエストするように SDK を設定します。トークンの自動更新もサポートしています。

[profile dev] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = SampleRole [sso-session my-sso] sso_region = us-east-1 sso_start_url = https://my-sso-portal.awsapps.com/start sso_registration_scopes = sso:account:access

sso-session 構成は複数のプロファイルで再利用できます。

[profile dev] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = SampleRole [profile prod] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = SampleRole2 [sso-session my-sso] sso_region = us-east-1 sso_start_url = https://my-sso-portal.awsapps.com/start sso_registration_scopes = sso:account:access

sso_account_idsso_role_name は SSO トークン設定のすべてのシナリオで必須というわけではありません。 AWS のサービス アプリケーションがベアラ認証をサポートする認証のみを使用している場合は、 AWS 従来の認証情報は必要ありません。ベアラー認証は、ベアラートークンと呼ばれるセキュリティトークンを使用する HTTP 認証スキームです。このシナリオでは、sso_account_idsso_role_name は必須ではありません。ベアラートークン認証をサポートしているかどうかは、個別のガイドを参照してください。 AWS のサービス

登録スコープは sso-session の一部として設定されます。スコープは、ユーザーのアカウントに対するアプリケーションのアクセスを制限する OAuth 2.0 のメカニズムです。アプリケーションは 1 つ以上のスコープをリクエストでき、アプリケーションに発行されたアクセストークンは付与されたスコープに限定されます。これらのスコープは、登録された OIDC クライアントがリクエストできるアクセス許可と、クライアントが取得するアクセストークンを定義します。サポートされているアクセススコープのオプションについては、「AWS IAM Identity Center ユーザーガイド」の「アクセススコープ」 を参照してください。次の例では、アカウントとロールを一覧表示するアクセスを許可するように sso_registration_scopes を設定しています。

[sso-session my-sso] sso_region = us-east-1 sso_start_url = https://my-sso-portal.awsapps.com/start sso_registration_scopes = sso:account:access

認証トークンは、セッション名に基づいたファイル名を使用して、~/.aws/sso/cache ディレクトリの下のディスクにキャッシュされます。

更新不可のレガシー設定

トークンの自動更新は、更新不可のレガシー設定ではサポートされていません。代わりに、SSO トークンプロバイダー設定 の使用をお勧めします。

更新不可のレガシー設定を使用するには、プロファイル内で次の設定を指定する必要があります。

  • sso_start_url

  • sso_region

  • sso_account_id

  • sso_role_name

プロファイルのユーザーポータルは、 sso_start_url および sso_region 設定を使用して指定します。アクセス許可は sso_account_id および sso_role_name 設定で指定します。

次の例では、 config ファイルに 4 つの必要となる値を設定します。

[profile my-sso-profile] sso_start_url = https://my-sso-portal.awsapps.com/start sso_region = us-west-2 sso_account_id = 111122223333 sso_role_name = SSOReadOnlyRole

認証トークンは、sso_start_url に基づいたファイル名を使用して、~/.aws/sso/cache ディレクトリの下のディスクにキャッシュされます。

IAM Identity Center 認証情報プロバイダーの設定

この機能は以下を使用して設定します。

sso_start_url-共有ファイル設定 AWS config

組織の IAM Identity Center アクセスポータルを指す URL。IAM Identity Center アクセスポータルの詳細については、AWS IAM Identity Center ユーザーガイドの「 AWS アクセスポータルの使用」を参照してください。

この値を確認するには、 IAM Identity Center コンソール を開き、 [ダッシュボード]を表示して、AWS [アクセスポータル URL]を検索します。

sso_region- AWS config 共有ファイル設定

IAM ID センターポータルホスト、つまり IAM ID センターを有効にする前に選択したリージョンを格納するもの。 AWS リージョン AWS これはデフォルトのリージョンとは独立しており、異なる場合もあります。

AWS リージョン とそのコードの詳細なリストについては、の「リージョナルエンドポイント」を参照してください。Amazon Web Services 全般のリファレンスこの値を確認するには、IAM Identity Centerコンソールを開いて[ダッシュボード]を表示し、[リージョン]を探します。

sso_account_id- AWS config 共有ファイル設定

AWS アカウント AWS Organizations 認証に使用するためにサービスを通じて追加されたの数値 ID。

使用可能なアカウントのリストを確認するには、IAM Identity Center コンソールに移動してAWS アカウントページを開きます。AWS IAM Identity Center ポータル API リファレンスの ListAccountsAPI メソッドを使用して、使用可能なアカウントのリストを確認することもできます。たとえば、list-accounts AWS CLI メソッドを呼び出すことができます。

sso_role_name-共有ファイル設定 AWS config

ユーザーのアクセス許可を定義するIAM ロールとしてプロビジョニングされたアクセス許可セットの名前。 AWS アカウント ロールは指定された by に存在する必要がありますsso_account_id。ロールの Amazon リソースネーム (ARN) ではなく、ロール名を使用してください。

アクセス許可セットには IAM ポリシーとカスタムアクセス許可ポリシーがアタッチされており、ユーザーに割り当てられた AWS アカウントに付与されるアクセスレベルを定義します。

使用可能な権限セットのリストを確認するには AWS アカウント、IAM Identity Center AWS アカウントコンソールに移動してページを開きます。 AWS アカウント 表に表示されている正しい権限セット名を選択してください。AWS IAM Identity Center ポータル API リファレンスの ListAccountRolesAPI メソッドを使用して、使用可能な権限セットのリストを確認することもできます。たとえば、 AWS CLI メソッドを呼び出すことができますlist-account-roles

sso_registration_scopes- AWS config 共有ファイル設定

sso-session に許可するスコープのカンマ区切りのリストです。スコープは、IAM Identity Center ベアラートークンで承認されたエンドポイントへのアクセスを許可します。IAM Identity Center サービスから更新トークンを取得するには、sso:account:access の最低限のスコープを付与する必要があります。サポートされているアクセススコープの文字列については、「AWS IAM Identity Center ユーザーガイド」の「アクセススコープ」を参照してください。この設定は、更新できない従来の設定には適用されません。レガシー構成を使用して発行されたトークンは、暗黙的にsso:account:access スコープに制限されます。

AWS SDK との互換性

以下の SDK は、このトピックで説明する機能と設定をサポートします。部分的な例外があれば、すべて記載されています。すべての JVM システムプロパティ設定は、 AWS SDK for Java とでのみサポートされます。 AWS SDK for Kotlin

SDK サポート 注意または詳細情報
AWS CLI v2 Yes
SDK for C++ Yes
SDK for Go V2 (1.x) Yes
SDK for Go 1.x (V1) Yes 共有 config ファイル設定を使用するには、設定ファイルからの読み込みを有効にする必要があります。「セッション」を参照してください。
SDK for Java 2.x Yes 設定値はcredentialsファイルでもサポートされています。
SDK for Java 1.x No
3.x JavaScript 用の SDK Yes
2.x JavaScript 用の SDK Yes
SDK for Kotlin Yes
SDK for .NET 3.x Yes
SDK for PHP 3.x Yes
SDK for Python (Boto3) Yes
SDK for Ruby 3.x Yes
SDK for Rust 部分的 更新不可のレガシー設定のみ。
以下のためのツール PowerShell Yes