翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 情報を収集します。
-
AWS アクセスポータルで、開発に使用するアクセス許可セットを選択し、アクセスキーリンクを選択します。
-
「認証情報の取得」ダイアログボックスで、オペレーティングシステムに一致するタブを選択します。
-
IAM Identity Center の認証情報メソッドを選択して、 の実行に必要な
SSO Start URL
とSSO Region
の値を取得しますaws configure sso
。登録するスコープ値の詳細については、IAM「 Identity Center OAuth ユーザーガイド」の「2.0 アクセススコープ」を参照してください。
aws
configure sso
ウィザードでプロファイルを設定する
の IAM Identity Center プロファイルを設定するには AWS CLI:
-
任意のターミナルで、
aws configure sso
コマンドを実行します。 -
は、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
-
表示されたリストから、使用する 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
) -
表示されたリストから、使用するIAMロールを選択します。使用可能なロールが 1 つしかない場合、 はそのロール AWS CLI を自動的に選択し、プロンプトをスキップします。
Using the account ID
123456789011
There are 2 roles available to you. > ReadOnly FullAccess -
デフォルトの出力形式 、コマンドの送信先のデフォルト 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> -
最後のメッセージは、完了したプロファイル設定について説明しています。このプロファイルを使用して認証情報をリクエストできるようになりました。
aws sso login
コマンドを使用して、コマンドを実行するために必要な認証情報をリクエストして取得します。手順については、「IAM Identity Center セッションにサインインする」を参照してください。
これらのステップにより、 次のような sso-session
セクションと名前付きプロファイルが config
ファイル内に作成されます。
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-sessionmy-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
[profileprod
] sso_session =my-sso
sso_account_id =111122223333
sso_role_name =SampleRole2
[sso-sessionmy-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_id
と sso_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 エラーのトラブルシューティング「」でトラブルシューティングの手順を参照してください。
関連リソース
その他のリソースは次のとおりです。
-
aws configure sso
AWS CLI バージョン 2 リファレンスの -
aws configure sso-session
AWS CLI バージョン 2 リファレンスの -
aws sso login
AWS CLI バージョン 2 リファレンスの -
aws sso logout
AWS CLI バージョン 2 リファレンスの -
Amazon ユーザーガイドの AWS CLI 「 で を使用するための のセットアップ CodeCatalyst CodeCatalyst 」
-
IAM Identity Center ユーザーガイドOAuthの 2.0 アクセススコープ
-
IAM Identity Center ユーザーガイドの開始方法のチュートリアル