ポータルログインに AWS CLI を使用する - AWS Tools for PowerShell (バージョン 4)

のバージョン 5 (V5) AWS Tools for PowerShell がリリースされました。

新しいバージョンのツールの使用を開始するには、「AWS Tools for PowerShell ユーザーガイド (V5)」、特に V5 への移行に関するトピックを参照してください。

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

ポータルログインに AWS CLI を使用する

Tools for PowerShell のバージョン 4.1.538 以降、SSO 認証情報の設定および AWS アクセスポータルセッションの開始には、「AWS でツール認証を設定する」で説明しているように、Initialize-AWSSSOConfiguration および Invoke-AWSSSOLogin コマンドレットを使用することをお勧めします。このバージョン以降の Tools for PowerShell にアクセスできない場合、またはそれらのコマンドレットを使用できない場合でも、AWS CLI を使用して同様のタスクを実行できます。

AWS CLI から、IAM Identity Center を使用するように Tools for PowerShell を設定します。

まだ行っていない場合は、先に進む前に必ず IAM Identity Center を有効にして設定してください。

AWS CLI から IAM Identity Center を使用するように Tools for PowerShell を設定する方法に関する情報は、「AWS SDK とツールのリファレンスガイド」の IAM Identity Center 認証に関するトピックのステップ 2 に記載されています。この設定を完了すると、システムには以下の要素が含まれるようになります。

  • アプリケーションを実行する前に AWS アクセスポータルセッションを開始するために使用する AWS CLI。

  • Tools for PowerShell から参照できる構成値のセットを含む[default] プロファイル を含む AWS config 共有ファイル。このファイルの場所を確認するには、「AWS SDK とツールのリファレンスガイド」の「共有ファイルの場所」を参照してください。Tools for PowerShell は、リクエストを AWS に送信する前に、プロファイルの SSO トークンプロバイダー設定を使用して認証情報を取得します。IAM Identity Center 許可セットに接続された IAM ロールである sso_role_name 値により、アプリケーションで使用されている AWS のサービス にアクセスできます。

    次のサンプル config ファイルは、SSO トークンプロバイダーで設定された [default] プロファイルを示しています。プロファイルの sso_session 設定は、指定された sso-session セクションを参照します。sso-session セクションには、AWS アクセスポータルセッションを開始するための設定が含まれています。

    [default] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = SampleRole region = us-east-1 output = json [sso-session my-sso] sso_region = us-east-1 sso_start_url = https://provided-domain.awsapps.com/start sso_registration_scopes = sso:account:access
重要

SSO 解決が機能するには、PowerShell セッションに次のモジュールをインストールしてインポートする必要があります。

  • AWS.Tools.SSO

  • AWS.Tools.SSOOIDC

古いバージョンの Tools for PowerShell を使用していて、これらのモジュールがない場合は、「Assembly AWSSDK.SSOOIDC could not be found...」 (Assembly AWSSDK.SSOOIDC が見つかりません...) のようなエラーが表示されます。

AWS アクセスポータルセッションを開始する

AWS のサービス にアクセスするコマンドを実行する前に、Tools for Windows PowerShell が IAM Identity Center 認証を使用して認証情報を解決するためのアクティブな AWS アクセスポータルセッションが必要です。設定したセッションの長さによっては、アクセスが最終的に期限切れになり、Tools for Windows PowerShell で認証エラーが発生します。AWS アクセスポータルにサインインするには、AWS CLI で次のコマンドを実行します。

aws sso login

[default] プロファイルを使用しているため、--profile オプションを指定してコマンドを呼び出す必要はありません。SSO トークンプロバイダー設定で名前付きプロファイルを使用している場合、コマンドは代わりに aws sso login --profile named-profile になります。名前付きプロファイルの詳細については、「AWS SDK とツールのリファレンスガイド」の「プロファイル」セクションを参照してください。

アクティブなセッションが既にあるかどうかをテストするには、次の AWS CLI コマンドを実行します (名前付きプロファイルを使用している場合は、前述の点を考慮してください)。

aws sts get-caller-identity

このコマンドへの応答により、共有 config ファイルに設定されている IAM Identity Center アカウントとアクセス許可のセットが報告されます。

注記

既にアクティブな AWS アクセスポータルセッションがあって aws sso login を実行している場合は、認証情報を入力するように要求されません。

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

以下は、Tools for PowerShell で IAM Identity Center を使用する方法の例です。以下を想定しています。

  • IAM Identity Center を有効にし、このトピックで前述したように構成している。SSO プロパティが [default] プロファイルにある。

  • aws sso login を使用して AWS CLI を通してログインすると、そのユーザーには少なくとも Amazon S3 の読み取り専用アクセス許可が付与される。

  • そのユーザーは一部の S3 バケットを閲覧できる。

次の PowerShell コマンドを使用して S3 バケットのリストを表示します。

Install-Module AWS.Tools.Installer Install-AWSToolsModule S3 # And if using an older version of the AWS Tools for PowerShell: Install-AWSToolsModule SSO, SSOOIDC # In older versions of the AWS Tools for PowerShell, we're not invoking a cmdlet from these modules directly, # so we must import them explicitly: Import-Module AWS.Tools.SSO Import-Module AWS.Tools.SSOOIDC # Older versions of the AWS Tools for PowerShell don't support the SSO login flow, so login with the CLI aws sso login # Now we can invoke cmdlets using the SSO profile Get-S3Bucket

前述のように、[default] プロファイルを使用しているため、-ProfileName オプションを指定して Get-S3Bucket コマンドレットを呼び出す必要はありません。SSO トークンプロバイダー設定で名前付きプロファイルを使用している場合、コマンドは Get-S3Bucket -ProfileName named-profile です。名前付きプロファイルの詳細については、「AWS SDK とツールのリファレンスガイド」の「プロファイル」セクションを参照してください。

追加情報

  • プロファイルや環境変数の使用など、Tools for PowerShell の認証に関するその他のオプションについては、「AWS SDK とツールのリファレンスガイド」の設定に関する章を参照してください。

  • 一部のコマンドでは、AWS リージョンを指定する必要があります。-Region コマンドレットオプション、[default] プロファイル、AWS_REGION 環境変数など、いくつかの指定方法があります。詳細については、このガイドの「AWS リージョンの指定」および「AWS SDK とツールのリファレンスガイド」の「AWS リージョン」を参照してください。

  • ベストプラクティスの詳細については、IAM ユーザーガイドの「IAM でのセキュリティのベストプラクティス」を参照してください。

  • 短期 AWS 認証情報を作成するには、IAM ユーザーガイドの「一時的セキュリティ認証情報」を参照してください。

  • その他の認証情報プロバイダーについては、「AWS SDK とツールのリファレンスガイド」の「標準化された認証情報プロバイダー」を参照してください。