IAM Identity Center 認証 AWS CLI を使用して を設定する - AWS Command Line Interface

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

IAM Identity Center 認証 AWS CLI を使用して を設定する

このトピックでは、 AWS IAM Identity Center (IAM Identity Center) AWS CLI で を設定して、 AWS CLI コマンドを実行するための認証情報を取得する方法について説明します。IAM Identity Center でユーザーを認証して、 config ファイルを介して AWS CLI コマンドを実行するための認証情報を取得するには、主に 2 つの方法があります。

  • (推奨) SSOトークンプロバイダーの設定。

  • 更新不可のレガシー設定。

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

注記

AWS CLI コマンドで IAM Identity Center を使用するガイド付きプロセスについては、「」を参照してくださいチュートリアル: IAM Identity Center を使用して Amazon S3 コマンドを実行する

トピック

前提条件

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

  • まず、IAMIdentity Center 内のSSO認証にアクセスする必要があります。 AWS 認証情報にアクセスするには、次のいずれかの方法を選択します。

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

注記

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

ポータルを終了し、再度サインインして AWS アカウント、、プログラムによるアクセスの詳細、および Administratorまたは のオプションを確認しますPowerUserAccess。を使用するPowerUserAccessときに を選択しますSDK。

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

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

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

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

IAM Identity Center へのアクセスを取得したら、以下を実行して IAM Identity Center 情報を収集します。

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

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

  3. IAM Identity Center の認証情報メソッドを選択して、 の実行に必要な SSO Start URLSSO Regionの値を取得しますaws configure sso。登録するスコープ値の詳細については、IAM「 Identity Center OAuth ユーザーガイド」の「2.0 アクセススコープ」を参照してください。

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

の IAM Identity Center プロファイルを設定するには AWS CLI:
  1. 任意のターミナルで、 aws configure sso コマンドを実行します。

    IAM Identity Center

    セッション名を作成し、IAMIdentity Center の開始 URL、IAMIdentity Center ディレクトリをホスト 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
    Legacy IAM Identity Center

    セッション名をスキップして、IAMIdentity Center の開始URLと Identity Center ディレクトリをホストする AWS リージョンを指定します。

    $ aws configure sso SSO session name (Recommended): SSO start URL [None]: https://my-sso-portal.awsapps.com/start SSO region [None]:us-east-1
  2. は、IAMデフォルトのブラウザを開いて Identity Center アカウントのサインインプロセス AWS CLI を実行しようとします。このプロセスにより、データ AWS CLI へのアクセスを許可するように求められる場合があります。 AWS CLI は SDK for Python 上に構築されているため、アクセス許可メッセージにはbotocore名前のバリエーションが含まれている可能性があります。

    • がブラウザ を開く 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
  3. 表示されたリストから、使用する AWS アカウントを選択します。1 つのアカウントのみを使用する権限がある場合、 はそのアカウント AWS CLI を自動的に選択し、プロンプトをスキップします。

    There are 2 AWS accounts available to you. > DeveloperAccount, developer-account-admin@example.com (123456789011) ProductionAccount, production-account-admin@example.com (123456789022)
  4. 表示されたリストから、使用するIAMロールを選択します。使用可能なロールが 1 つしかない場合、 はそのロール AWS CLI を自動的に選択し、プロンプトをスキップします。

    Using the account ID 123456789011 There are 2 roles available to you. > ReadOnly FullAccess
  5. デフォルトの出力形式 、コマンドの送信先のデフォルト AWS リージョン、およびプロファイル の名前を指定します。をプロファイル名defaultとして指定すると、このプロファイルが使用されるデフォルトのプロファイルになります。次の例では、デフォルトのリージョン、デフォルトの出力形式、プロファイルの名前を入力します。

    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>
  6. 最後のメッセージは、完了したプロファイル設定について説明しています。このプロファイルを使用して認証情報をリクエストできるようになりました。aws sso login コマンドを使用して、コマンドを実行するために必要な認証情報をリクエストして取得します。手順については、「IAM Identity Center セッションにサインインする」を参照してください。

これらのステップにより、 次のような sso-session セクションと名前付きプロファイルが config ファイル内に作成されます。

IAM Identity Center
[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
Legacy IAM Identity Center
[profile my-dev-profile] sso_start_url = https://my-sso-portal.awsapps.com/start sso_region = us-east-1 sso_account_id = 123456789011 sso_role_name = readOnly region = us-west-2 output = json

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

注記

この設定は、レガシー IAM Identity Center と互換性がありません。

aws configure sso-session コマンドは、 ~/.aws/config ファイル内のsso-sessionセクションを更新します。aws configure sso-session コマンドを実行し、IAMIdentity Center の開始URLと IAM Identity Center ディレクトリをホストする 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

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

IAM Identity Center の設定情報は config ファイルに保存され、テキストエディタを使用して編集できます。IAM Identity Center のサポートを名前付きプロファイルに手動で追加するには、キーと値を config ファイルに追加する必要があります。

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

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

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

[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トークン設定のすべてのシナリオで sso_role_name sso_account_idおよび が必要なわけではありません。アプリケーションでベアラー認証をサポートする 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

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

注記

トークンの自動更新は、更新不可のレガシー設定ではサポートされていません。SSO トークン設定を使用することをお勧めします。

IAM Identity Center のサポートを名前付きプロファイルに手動で追加するには、 config ファイル内のプロファイル定義に次のキーと値を追加する必要があります。

.aws/config ファイルには、有効な他のキーと値を含めることができます。次の例は Identity Center IAM プロファイルです。

[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 region = us-west-2 output = json

コマンドを実行するには、まず一時的な認証情報IAM Identity Center セッションにサインインするをリクエストして取得する必要があります。

config ファイルとcredentials ファイルの詳細については、「設定ファイルと認証情報ファイルの設定」を参照してください。

IAM Identity Center セッションにサインインする

注記

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

IAM Identity Center 認証情報のセットを取得してキャッシュ AWS CLI するには、 に対して次のコマンドを実行してデフォルトのブラウザを開き、IAMIdentity Center のログインを確認します。

$ aws sso login --profile my-dev-profile SSO authorization page has automatically been opened in your default browser. Follow the instructions in the browser to complete this authorization request. Successfully logged into Start URL: https://my-sso-portal.awsapps.com/start

IAM Identity Center セッション認証情報はキャッシュされ、 AWS CLI はそれらを使用して、プロファイルで指定されたIAMロールの AWS 認証情報を安全に取得します。

AWS CLI がブラウザを開くことができない場合は、ブラウザを自分で開き、指定されたコードを入力するように求められます。

$ aws sso login --profile my-dev-profile Using a browser, open the following URL: https://device.sso.us-west-2.amazonaws.com/ and enter the following code: QCFK-N451

aws sso login コマンドの --sso-session パラメータを使用してログインするときに、どの sso-session プロファイルを使用するかも指定できます。このオプションはsso-sessionレガシー IAM Identity Center では使用できません。

$ aws sso login --sso-session my-dev-session

認証トークンは、 に基づくファイル名で ~/.aws/sso/cache ディレクトリの下のディスクにキャッシュされますsso_start_url

IAM Identity Center プロファイルでコマンドを実行する

ログインしたら、認証情報を使用して、関連付けられた名前付きプロファイルで AWS CLI コマンドを呼び出すことができます。次の例は、プロファイルを使用したコマンドを示しています。

$ aws sts get-caller-identity --profile my-dev-profile

IAM Identity Center にサインインしていて、キャッシュされた認証情報の有効期限が切れていない限り、 は必要に応じて期限切れの AWS 認証情報 AWS CLI を自動的に更新します。ただし、IAMIdentity Center の認証情報の有効期限が切れた場合は、IAMIdentity Center アカウントに再度ログインして明示的に更新する必要があります。

IAM Identity Center セッションからサインアウトする

IAM Identity Center プロファイルの使用が終了したら、認証情報の有効期限が切れるようにするか、次のコマンドを実行してキャッシュされた認証情報を削除できます。

$ aws sso logout Successfully signed out of all SSO profiles.

トラブルシューティング

を使用して問題が発生した場合は AWS CLI、AWS CLI エラーのトラブルシューティング「」でトラブルシューティングの手順を参照してください。

関連リソース

その他のリソースは次のとおりです。