自動認証更新で IAM Identity Center AWS CLI トークンプロバイダーの認証情報を使用するようにを設定します - AWS Command Line Interface

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

自動認証更新で IAM Identity Center AWS CLI トークンプロバイダーの認証情報を使用するようにを設定します

このトピックでは、 AWS IAM Identity Center (IAM Identity Center) AWS CLI トークンプロバイダー設定を使用してユーザーを認証するようにを設定する方法について説明します。SSO トークンプロバイダー設定を使用して、 AWS SDK、またはツールは、更新された認証トークンを自動的に取得できます。

IAM Identity Center を使用している場合は、Active Directory、組み込みの IAM Identity Center ディレクトリ、または IAM Identity Center に接続された別の IdP にログインできます。これらの認証情報を AWS Identity and Access Management (IAM) ロールにマッピングして、コマンドを実行できます。 AWS CLI

使用する IdP に関係なく、IAM Identity Center によってこれらの区別はなくなります。例えば、ブログ記事「The Next Evolution in IAM Identity Center」で説明されているように、Microsoft Azure AD を接続できます。

注記

アカウント ID とロールを使用しないベアラ認証の使用方法については、Amazon CodeCatalyst ユーザーガイドの「AWS CLI with CodeCatalyst を使用するためのセットアップ」を参照してください。

SSO トークンプロバイダー設定を使用すると、アプリケーションの必要に応じて認証トークンを自動的に更新し、セッション期間の延長オプションを使用できます。これは以下の方法で設定できます。

  • 自動的に、aws configure sso および aws configure sso-session コマンドを使用します。次のコマンドは、プロファイル設定と sso-session 情報の設定をガイドするウィザードです。

    • aws configure sso を使用して、config プロファイルと sso-session セクションの両方を作成または編集します。

    • aws configure sso-session を使用して、sso-session セクションのみを作成または編集します。

  • 手動: 名前付きプロファイルを保存する config ファイルを編集します。

前提条件

  • をインストールします。 AWS CLI詳細については、「AWS CLIの最新バージョンのインストールまたは更新」を参照してください。

  • 最初に IAM Identity Center 内で SSO 認証へのアクセス権が必要です。 AWS 認証情報にアクセスするには、以下のいずれかの方法を選択してください。

AWS IAM Identity Center ユーザーガイド」の「開始方法」の手順に従います。このプロセスでは、IAM Identity Center をアクティブ化して、管理者ユーザーを作成し、適切な最小特権のアクセス許可セットを追加します。

注記

最小権限権限を適用する権限セットを作成します。雇用主がこの目的のためにカスタムアクセス許可セットを作成していない限り、定義済みの PowerUserAccess アクセス許可セットを使用することをお勧めします。

ポータルを終了して再度サインインすると、 AWS アカウント Administratorまたはのオプションが表示されます。PowerUserAccessSDK を使用する場合は PowerUserAccess を選択します。これは、プログラムによるアクセスに関する詳細を確認する場合にも役立ちます。

ID AWS プロバイダーのポータルからにサインインします。クラウド管理者があなた PowerUserAccess (開発者) AWS アカウント に権限を付与している場合、アクセス権のある権限と権限セットが表示されます。アクセス許可セットの名前の横に、そのアクセス許可セットを使用してアカウントに手動またはプログラムでアクセスするオプションが表示されます。

カスタム実装では、アクセス許可セット名が異なるなど、エクスペリエンスが異なる場合があります。どのアクセス許可セットを使用すればよいかわからない場合は、IT チームにお問い合わせください。

AWS AWS アクセスポータルからにサインインします。クラウド管理者があなた PowerUserAccess (開発者) AWS アカウント に権限を付与している場合、アクセス権のある権限と権限セットが表示されます。アクセス許可セットの名前の横に、そのアクセス許可セットを使用してアカウントに手動またはプログラムでアクセスするオプションが表示されます。

サポートについては、IT チームにお問い合わせください。

aws configure sso ウィザードでプロファイルを設定する

IAM Identity Center プロファイルと sso-session の両方を AWS CLIに設定するには
  1. 次の手順を実行して IAM ID センターの情報を収集します。

    1. AWS アクセスポータルで、開発に使用する権限セットを選択し、「アクセスキー」リンクを選択します。

    2. 認証情報の取得」ダイアログ・ボックスで、ご使用のオペレーティング・システムに対応するタブを選択します。

    3. [IAM Identity Center 認証情報] メソッドを選択して、aws configure sso の実行に必要な SSO Start URLSSO Region の値を取得します。

    4. どのスコープ値を登録するかについては、「IAM Identity Center ユーザーガイド」の「OAuth 2.0 アクセススコープ」を参照してください。

  2. aws configure sso任意のターミナルでコマンドを実行し、IAM ID センターの開始 URL と ID AWS センターディレクトリをホストするリージョンを指定します。

    $ aws configure sso SSO session name (Recommended): my-sso SSO start URL [None]: https://my-sso-portal.awsapps.com/start SSO region [None]: us-east-1 SSO registration scopes [None]: sso:account:access
  3. はデフォルトのブラウザを開き、IAM Identity Center AWS CLI アカウントのログインプロセスを開始しようとします。

    Attempting to automatically open the SSO authorization page in your default browser.

    AWS CLI がブラウザを開くことができない場合は、ログインプロセスを手動で開始する方法を説明する次のメッセージが表示されます。

    If the browser does not open or you wish to use a different device to authorize this request, open the following URL: https://device.sso.us-west-2.amazonaws.com/ Then enter the code: QCFK-N451

    IAM Identity Center は、コードを使用して IAM Identity Center セッションを現在の AWS CLI セッションに関連付けます。IAM Identity Center ブラウザページでは、IAM Identity Center の認証情報を使用してログインするように求められます。これにより、IAM Identity Center AWS での使用が許可されているアカウントとロールを取得して表示する権限がに与えられます。 AWS CLI

    注記

    サインインプロセスでは、 AWS CLI データへのアクセスを許可するように求められる場合があります。 AWS CLI は SDK for Python をベースに構築されているため、botocore権限メッセージには名前のバリエーションが含まれる場合があります。

  4. には、 AWS CLI AWS 使用可能なアカウントが表示されます。1 つのアカウントのみを使用する権限がある場合、 AWS CLI は自動的にそのアカウントを選択し、プロンプトをスキップします。 AWS 使用できるアカウントは IAM Identity Center のユーザー設定によって決まります。

    There are 2 AWS accounts available to you. > DeveloperAccount, developer-account-admin@example.com (123456789011) ProductionAccount, production-account-admin@example.com (123456789022)

    矢印キーを使用して、使用するアカウントを選択します。左の 「>」文字は、現在の選択肢を指します。[Enter] キーを押して、選択を行います。

  5. AWS CLI はアカウントの選択を確認し、選択したアカウントで使用できる IAM ロールを表示します。選択したアカウントにロールが 1 つしか表示されていない場合、 AWS CLI は自動的にそのロールを選択し、プロンプトをスキップします。使用できるロールは、IAM Identity Center のユーザー設定によって決まります。

    Using the account ID 123456789011 There are 2 roles available to you. > ReadOnly FullAccess

    矢印キーを使用して、必要な IAM ロールを選択し、<ENTER> キーを押します。

  6. デフォルトの出力形式、コマンドの送信先となるデフォルトの AWS リージョンプロファイルの名前を指定すると、ローカルコンピュータに定義されているすべてのプロファイルからこのプロファイルを参照できるようになります。次の例では、デフォルトのリージョン、デフォルトの出力形式、プロファイルの名前を入力します。既定の設定がある場合は、代わりに <ENTER> キーを押して、角括弧の間に表示されるデフォルト値を選択することもできます。推奨されるプロファイル名は、アカウント ID 番号、アンダースコア、ロール名が続きます。

    CLI default client Region [None]: us-west-2<ENTER> CLI default output format [None]: json<ENTER> CLI profile name [123456789011_ReadOnly]: my-dev-profile<ENTER>
    注記

    defaultプロファイル名として指定すると、このプロファイルは、 AWS CLI プロファイル名を指定せずにコマンドを実行するときに使用されるプロファイルになります。

  7. 最後のメッセージは、完了したプロファイル設定について説明しています。

    To use this profile, specify the profile name using --profile, as shown: aws s3 ls --profile my-dev-profile
  8. その結果、次のような sso-session セクションと名前付きプロファイルが ~/.aws/config に作成されます。

    [profile my-dev-profile] sso_session = my-sso sso_account_id = 123456789011 sso_role_name = readOnly region = us-west-2 output = json [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 とプロファイルを使用して認証情報の更新をリクエストできます。aws sso login コマンドを使用して、コマンドを実行するために必要な認証情報をリクエストして取得します。手順については、「IAM Identity Center 名前付きプロファイルを使用する 」を参照してください。

aws configure sso-session ウィザードで sso-session セクションのみを設定する

aws configure sso-session コマンドは、~/.aws/config ファイル内の sso-session セクションのみを更新します。このコマンドは、セッションを作成または更新するために使用できます。これは、既存の設定があり、新しい設定を作成したり、既存の sso-session 設定を編集したりする場合に便利です。

aws configure sso-sessionコマンドを実行し、IAM ID センターの開始 URL と ID AWS センターディレクトリをホストするリージョンを指定します。

$ aws configure sso-session SSO session name: my-sso SSO start URL [None]: https://my-sso-portal.awsapps.com/start SSO region [None]: us-east-1 SSO registration scopes [None]: sso:account:access

情報を入力すると、完了したプロファイル設定について説明するメッセージが表示されます。

Completed configuring SSO session: my-sso Run the following to login and refresh access token for this session: aws sso login --sso-session my-sso
注記

サインインしている sso-session を更新する場合は、aws sso login コマンドを実行してトークンを更新します。

config ファイルを使用した手動設定

sso-sessionconfigファイルのセクションは、SSO アクセストークンを取得するための設定変数をグループ化するために使用され、それを使用して認証情報を取得できます。 AWS 次の設定を使用します。

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

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

さらに、登録スコープは sso-session の一部として設定できます。スコープは、ユーザーのアカウントに対するアプリケーションのアクセスを制限する OAuth 2.0 のメカニズムです。アプリケーションは 1 つ以上のスコープをリクエストでき、アプリケーションに発行されたアクセストークンは付与されたスコープに限定されます。これらのスコープは、登録された OIDC クライアントがリクエストできるアクセス許可と、クライアントが取得するアクセストークンを定義します。次の例では、アカウント/ロールを一覧表示するアクセスを許可するように 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 ディレクトリの下のディスクにキャッシュされます。