例: AWS CDK CLI で使用する IAM Identity Center 自動トークン更新で認証する - AWS クラウド開発キット (AWS CDK) v2

これは AWS CDK v2 デベロッパーガイドです。旧版の CDK v1 は 2022 年 6 月 1 日にメンテナンスを開始し、2023 年 6 月 1 日にサポートを終了しました。

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

例: AWS CDK CLI で使用する IAM Identity Center 自動トークン更新で認証する

この例では、AWS IAM Identity Center トークンプロバイダー設定を使用してユーザーを認証するように、AWS Command Line Interface (AWS CLI) を設定します。SSO トークンプロバイダー設定により、AWS CLI は更新された認証トークンを自動的に取得して、AWS Cloud Development Kit (AWS CDK) コマンドラインインターフェイス (AWS CDK CLI) で使用できる短期認証情報を生成できます。

前提条件

この例では、以下の前提条件が完全に満たされていることを前提としています。

  • AWS のセットアップと初期 CLI ツールのインストールが完成していること。詳細については、「前提条件」を参照してください。

  • 組織により、ユーザー管理の方法として IAM Identity Center が設定されていること。

  • IAM Identity Center に少なくとも 1 人のユーザーが作成されていること。

ステップ 1: AWS CLI; の設定

このステップの詳細な手順については、「AWS コマンドラインインターフェイスユーザーガイド」の「IAM Identity Center トークンプロバイダー認証情報を自動認証更新で使用するように AWS CLI を設定する」を参照してください。

IAM Identity Center の情報を収集するために、組織が提供する AWS アクセスポータルにサインインします。これには、[SSO 開始 URL][SSO リージョン] が含まれます。

次に、AWS CLI の aws configure sso コマンドを使用して、ローカルマシンで IAM Identity Center プロファイルと sso-session を設定します。

$ 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 [sso:account:access]: <ENTER>

AWS CLI は、デフォルトのブラウザを開き、IAM Identity Center アカウントのログインプロセスを開始します。AWS CLI がブラウザを開くことができない場合、ログインプロセスを手動で開始するための手順が表示されます。このプロセスは、IAM Identity Center セッションを現在の AWS CLI セッションに関連付けます。

セッションを確立すると、AWS CLI には利用可能な AWS アカウントが表示されます。

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

矢印キーを使用して、[DeveloperAccount] を選択します。

次に、AWS CLI には、選択したアカウントから利用可能な IAM ロールが表示されます。

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

矢印キーを使用して、[FullAccess] を選択します。

次に AWS CLI は、プロファイルのデフォルトの出力形式、デフォルトの AWS リージョン、および名前を指定して、設定を完了するように促します。

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

AWS CLI には、名前付きプロファイルを AWS CLI で使用する方法を示す最終メッセージが表示されます。

To use this profile, specify the profile name using --profile, as shown: aws s3 ls --profile <my-dev-profile>

このステップを完了すると、config ファイルは以下のようになります。

[profile <my-dev-profile>] sso_session = <my-sso> sso_account_id = <123456789011> sso_role_name = <fullAccess> 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 と名前付きプロファイルを使用して、セキュリティ認証情報をリクエストできるようになります。

ステップ 2: AWS CLI を使用してセキュリティ認証情報を生成する

このステップの詳細な手順については、「AWS コマンドラインインターフェイスユーザーガイド」の「IAM Identity Center という名前のプロファイルを使用する」を参照してください。

AWS CLI aws sso login コマンドを使用して、プロファイルのセキュリティ認証情報をリクエストします。

$ aws sso login --profile <my-dev-profile>

AWS CLI はデフォルトのブラウザを開き、IAM ログインを検証しようとします。現在 IAM Identity Center にサインインしていない場合は、サインインプロセスを完了するように促されます。AWS CLI がブラウザを開くことができない場合、承認プロセスを手動で開始するための手順が表示されます。

ログインに成功すると、AWS CLI は IAM Identity Center セッションの認証情報をキャッシュします。これらの認証情報には有効期限タイムスタンプが含まれます。有効期限が切れると、AWS CLI は IAM Identity Center に再度サインインするようリクエストします。

有効な IAM Identity Center 認証情報を使用して、AWS CLI はプロファイルに指定されている IAM ロールの AWS 認証情報を安全に取得します。ここから、AWS CDK CLI を認証情報とともに使用できます。

ステップ 3: CDK CLI を使用する

CDK CLI コマンドでは、 --profile オプションを使用して、認証情報を生成した名前付きプロファイルを指定します。認証情報が有効な場合、CDK CLI はコマンドを正常に実行します。以下に例を示します。

$ cdk diff --profile <my-dev-profile> Stack CdkAppStack Hold on while we create a read-only change set to get a diff with accurate replacement information (use --no-change-set to use a less accurate but faster template-only diff) Resources [-] AWS::S3::Bucket amzn-s3-demo-bucket amzn-s3-demo-bucket5AF9C99B destroy Outputs [-] Output BucketRegion: {"Value":{"Ref":"AWS::Region"}} ✨ Number of stacks with differences: 1

認証情報の有効期限が切れると、以下のようなエラーメッセージが表示されます。

$ cdk diff --profile <my-dev-profile> Stack CdkAppStack Unable to resolve AWS account to use. It must be either configured when you define your CDK Stack, or through the environment

認証情報を更新するには、AWS CLI aws sso login コマンドを使用します。

$ aws sso login --profile <my-dev-profile>