AWS Tools for PowerShell を使用した の認証 AWS - AWS Tools for PowerShell (バージョン 5)

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

重要な変更とアプリケーションの移行については、「移行トピック」を参照してください。

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

AWS Tools for PowerShell を使用した の認証 AWS

開発 AWS 時にコードが で認証される方法を確立する必要があります AWS のサービス。 AWS リソースへのプログラムによるアクセスを設定するには、環境と利用可能な AWS アクセスに応じて、さまざまな方法があります。

Tools for PowerShell のさまざまな認証方法については、「AWS SDK およびツールリファレンスガイド」の「認証とアクセス」を参照してください。

このトピックでは、新しいユーザーがローカルで開発中であり、雇用主から認証方法が与えられておらず、 AWS IAM Identity Center を使用して一時的な認証情報を取得することを前提としています。ご使用の環境がこれらの前提条件に当てはまらない場合、このトピックの情報の一部はお客様に該当しない場合や、既に提供されている可能性があります。

この環境を構成するにはいくつかのステップが必要で、その概要は以下のとおりです。

コンソール認証情報を使用してログインする

へのプログラムによるアクセスには、既存の AWS マネジメントコンソールのサインイン認証情報を使用できます AWS のサービス。ブラウザベースの認証フローの後、 は AWS SDKs などのローカル開発ツールで動作する一時的な認証情報 AWS Tools for PowerShell を生成します AWS Tools for PowerShell AWS CLI。この機能は、特に長期的なアクセスキーの管理よりもインタラクティブな認証を希望する場合に、CLI 認証情報の設定と管理のプロセスを簡素化します。

このプロセスでは、最初のアカウント設定時に作成されたルート認証情報、IAM ユーザー、または ID プロバイダーからのフェデレーティッド ID を使用して認証できます。Tools for PowerShell は一時的な認証情報を自動的に管理します。このアプローチにより、長期的な認証情報をローカルに保存する必要がなくなるため、セキュリティが強化されます。

Invoke-AWSLogin コマンドレットを実行すると、アクティブなコンソールセッションから選択することも、ブラウザベースの認証フローからサインインすることもできます。これにより、一時的な認証情報が自動的に生成されます。 AWS Tools for PowerShell はこれらの認証情報を最大 12 時間自動的に更新します。

設定が完了すると、セッションは AWS Tools for PowerShell およびその他のすべての AWS SDKsとツールで使用できます。

Invoke-AWSLogin コマンドレット AWS を使用して にログインする

Invoke-AWSLogin コマンドレットを実行して、既存の AWS マネジメントコンソール認証情報を使用して認証します。以前にプロファイルを設定していない場合は、追加情報の入力を求められます。

プロファイルにサインインまたは設定するには、以下の手順に従います。

  1. インストールガイドからインストールした正しいモジュールをインポートしていることを確認します。

    注記

    PowerShell には、AWS.Tools、、AWSPowerShell.NetCoreおよび の 3 つの異なるモジュールがありますAWSPowerShell。詳細については「AWS Tools for PowerShellとは何ですか?」を参照してください。

    • PowerShell ターミナルで、 コマンドレットを実行します。これにより、 defaultプロファイルが使用されます。

      PS > Invoke-AWSLogin
    • 名前付きプロファイルにサインインするか、新しいプロファイルを作成するには、 -ProfileNameパラメータを使用します。

      PS > Invoke-AWSLogin -ProfileName 'my-dev-profile'
    • これが新しいプロファイルであるか、以前のプロファイル/環境変数で指定または設定 AWS リージョン されていない場合、コマンドレットはリージョンを指定するように求めます。

      Press Ctrl+C to cancel the following login prompts. Specify AWS Region No AWS region has been configured. The AWS region is the geographic location of your AWS resources. If you've used AWS before and already have resources in your account, tell us which region they were created in. If you haven't created resources in your account before, you can pick the region closest to you: https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-regions.html AWS Region:
  2. は、 AWS アカウントのサインインプロセスのためにデフォルトのブラウザを開 AWS Tools for PowerShell こうとします。

    Using region 'us-west-2' Attempting to open the login page for 'us-west-2' in your default browser. If the browser does not open, use the following URL to complete your login: https://signin.us-west-2.amazonaws.com/authorize?<abbreviated> If you cannot connect to this URL, make sure that you have specified a valid region.
    • を使用するデバイスにブラウザ AWS Tools for PowerShell がない場合は、 -Remoteパラメータを使用して、ブラウザ対応デバイスで を開くための URL を指定できます。

      PS > Invoke-AWSLogin -Remote
    • -Remote パラメータを使用した場合、使用している認可のタイプに基づいてサインインプロセスを手動で開始する手順が表示されます。表示される URL は、https://signin.us-east-1.amazonaws.com/authorize で始まる一意の URL です。ブラウザのログインが完了したら、生成された認可コードをコピーしてターミナルに貼り付ける必要があります。

      Press Ctrl+C to cancel the following login prompts. Using region 'us-west-2' determined by profile/environment defaults. To override, specify '-Region' parameter. Please complete the login workflow via the following URL: https://us-west-2.signin.aws.amazon.com/v1/authorize?<abbrievated> Please enter the authorization code displayed in the browser:
  3. ブラウザで、表示されたリストから使用する認証情報を選択し、ターミナルに戻ります。

    • 設定するプロファイルに、新しいセッションと一致しない以前に設定されたログインセッションがある場合、 は既存のプロファイルに対応するセッションを切り替えることを確認する AWS Tools for PowerShell ように求めます。

      WARNING: Previously profile default was configured for arn:aws:iam::0123456789012:user/ReadOnly, and is now being updated to arn:aws:iam::0123456789012:user/Admin. Do you wish to change the identity that default is associated with? (y/n)
  4. 最後のメッセージは、完了したプロファイル設定について説明しています。

    Login completed successfully for profile 'my-dev-profile'.

    認証トークンは、解決されたプロファイルに基づくハッシュファイル名を使用して、.aws/login/cache ディレクトリの下のディスクにキャッシュされます。

生成された設定ファイル

これらのステップにより、設定ファイルに次のようなデフォルトまたは指定されたプロファイルが作成されます。

[default] login_session = arn:aws:iam::0123456789012:user/username region = us-east-1 [my-dev-profile] login_session = arn:aws:iam::0123456789012:user/username region = us-east-1

プロファイルを使用してコマンドを実行する

サインインしたら、認証情報を使用して、関連付けられたプロファイルで Tools for PowerShell コマンドレットを呼び出すことができます。次の例では、デフォルトプロファイルを使用して Get-STSCallerIdentity コマンドレットを呼び出します。

PS > Get-STSCallerIdentity

特定のセッションを確認するには、 -ProfileNameパラメータを使用します。

PS > Get-STSCallerIdentity -ProfileName 'my-dev-profile'

一時的な認証情報トークンは 15 分で期限切れになりますが、 AWS Tools for PowerShell および SDKsリクエスト中に必要に応じてトークンを自動的に更新します。セッション全体は最大 12 時間有効です。その後、Invoke-AWSLoginコマンドレットを再度実行する必要があります。

Invoke-AWSLogout コマンドレットを使用してセッションからサインアウトする

セッションが完了したら、認証情報を期限切れにするか、 Invoke-AWSLogout コマンドレットを実行してキャッシュされた認証情報を削除できます。CLI または AWS_PROFILE 環境変数でプロファイルが指定されていない場合、コマンドはデフォルトのプロファイルからサインアウトします。次の の例では、デフォルトプロファイルからサインアウトします。

PS > Invoke-AWSLogout

特定のプロファイルセッションからサインアウトするには、 -ProfileNameパラメータを使用します。

PS > Invoke-AWSLogout -ProfileName 'my-dev-profile'

ログインしたすべてのプロファイルセッションからサインアウトするには、 -Allパラメータを使用します。

PS > Invoke-AWSLogout -All

キャッシュされた認証情報

一時キャッシュされた認証情報と更新に必要なメタデータは、Windows %USERPROFILE%\.aws\login\cacheの 、Linux および MacOS ~/.aws/login/cacheの にデフォルトで保存されます。

AWS_LOGIN_CACHE_DIRECTORY 環境変数を設定することで、この場所を上書きできます。

IAM Identity Center の有効化と設定

を使用するには AWS IAM Identity Center、まず有効にして設定する必要があります。PowerShell でこれを行う方法の詳細については、「AWS SDK およびツールリファレンスガイド」の IAM Identity Center 認証に関するトピックのステップ 1 を参照してください。具体的には、「IAM Identity Center 経由のアクセスを確立していません」にある必要な指示に従ってください。

IAM Identity Center を使用するように Tools for PowerShell を設定します。

注記

Tools for PowerShell のバージョン 4.1.538 以降では、このトピックで説明されているように、SSO 認証情報を設定し、 AWS アクセスポータルセッションを開始するための推奨方法は、 Invoke-AWSSSOLogin Initialize-AWSSSOConfigurationおよび コマンドレットを使用することです。Tools for PowerShell のそのバージョン (またはそれ以降) にアクセスできない場合、またはこれらのコマンドレットを使用できない場合は、 を使用してこれらのタスクを実行できます AWS CLI。詳細については、「」を参照してくださいポータルログイン AWS CLI に を使用する

次の手順では、Tools for PowerShell が一時的な認証情報を取得するために使用する SSO 情報を使用して共有 AWS configファイルを更新します。この手順の結果として、 AWS アクセスポータルセッションも開始されます。共有configファイルに既に SSO 情報があり、Tools for PowerShell を使用してアクセスポータルセッションを開始する方法を知りたい場合は、このトピックの次のセクション「」を参照してくださいAWS アクセスポータルセッションを開始する

  1. まだインストールしていない場合は、PowerShell を開き、一般的なコマンドレットを含むオペレーティングシステムと環境 AWS Tools for PowerShell に適した をインストールします。これを行う方法については、「の使用を開始する AWS Tools for PowerShell」を参照してください。

    例えば、Windows に Tools for PowerShell のモジュール化されたバージョンをインストールする場合、ほとんどの場合、次のようなコマンドを実行します。

    Install-Module -Name AWS.Tools.Installer Install-AWSToolsModule AWS.Tools.Common
  2. 以下のコマンドを実行してください。サンプルプロパティ値を IAM Identity Center 設定の値に置き換えます。これらのプロパティとその検索方法については、「 SDK およびツールリファレンスガイド」の「IAM Identity Center 認証情報プロバイダーの設定」を参照してください。 AWS SDKs

    $params = @{ ProfileName = 'my-sso-profile' AccountId = '111122223333' RoleName = 'SamplePermissionSet' SessionName = 'my-sso-session' StartUrl = 'https://provided-domain.awsapps.com/start' SSORegion = 'us-west-2' RegistrationScopes = 'sso:account:access' }; Initialize-AWSSSOConfiguration @params

    または、コマンドレット自体、、および Tools for PowerShell を使用してInitialize-AWSSSOConfiguration、プロパティ値の入力を求めることもできます。

    特定のプロパティ値に関する考慮事項:

    • IAM Identity Center を有効にして設定する手順に従うだけで、 の値は になる-RoleName場合がありますPowerUserAccess。ただし、PowerShell 作業専用の IAM Identity Center アクセス許可セットを作成した場合は、代わりにそれを使用します。

    • IAM Identity Center を設定した AWS リージョン を使用してください。

  3. この時点で、共有 AWS configファイルには、Tools for PowerShell から参照できる一連の設定値my-sso-profileを持つ というプロファイルが含まれています。このファイルの場所を確認するには、AWS SDK とツールのリファレンスガイドの「共有ファイルの場所」を参照してください。

    Tools for PowerShell は、リクエストを AWSに送信する前に、プロファイルの SSO トークンプロバイダー設定を使用して認証情報を取得します。IAM Identity Center アクセス許可セットに接続された IAM ロールである sso_role_name値は、アプリケーションで AWS のサービス 使用されている へのアクセスを許可する必要があります。

    次のサンプルは、上記のコマンドを使用して作成されたプロファイルを示しています。一部のプロパティ値とその順序は、実際のプロファイルで異なる場合があります。プロファイルの sso-sessionプロパティは、 AWS アクセスポータルセッションを開始するための設定を含む my-sso-sessionという名前のセクションを参照します。

    [profile my-sso-profile] sso_account_id=111122223333 sso_role_name=SamplePermissionSet sso_session=my-sso-session [sso-session my-sso-session] sso_region=us-west-2 sso_registration_scopes=sso:account:access sso_start_url=https://provided-domain.awsapps.com/start/
  4. アクティブな AWS アクセスポータルセッションが既にある場合は、Tools for PowerShell から既にログインしていることが通知されます。

    そうでない場合、Tools for PowerShell はデフォルトのウェブブラウザで SSO 認可ページを自動的に開こうとします。ブラウザのプロンプトに従います。プロンプトには、SSO 認可コード、ユーザー名とパスワード、 AWS IAM Identity Center アカウントとアクセス許可セットへのアクセス許可が含まれる場合があります。

    Tools for PowerShell は、SSO ログインが成功したことを通知します。

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

にアクセスするコマンドを実行する前に AWS のサービス、Tools for PowerShell が IAM Identity Center 認証を使用して認証情報を解決できるように、アクティブな AWS アクセスポータルセッションが必要です。 AWS アクセスポータルにサインインするには、PowerShell で次のコマンドを実行します。ここで、 -ProfileName my-sso-profileは、このトピックの前のセクションの手順に従ったときに共有configファイルで作成されたプロファイルの名前です。

Invoke-AWSSSOLogin -ProfileName my-sso-profile

アクティブな AWS アクセスポータルセッションが既にある場合は、Tools for PowerShell から既にログインしていることが通知されます。

そうでない場合、Tools for PowerShell はデフォルトのウェブブラウザで SSO 認可ページを自動的に開こうとします。ブラウザのプロンプトに従います。プロンプトには、SSO 認可コード、ユーザー名とパスワード、 AWS IAM Identity Center アカウントとアクセス許可セットへのアクセス許可が含まれる場合があります。

Tools for PowerShell は、SSO ログインが成功したことを通知します。

アクティブなセッションが既にあるかどうかをテストするには、必要に応じてAWS.Tools.SecurityTokenモジュールをインストールまたはインポートした後に次のコマンドを実行します。

Get-STSCallerIdentity -ProfileName my-sso-profile

Get-STSCallerIdentity コマンドレットへのレスポンスは、共有configファイルで設定された IAM Identity Center アカウントとアクセス許可セットを報告します。

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

  • IAM Identity Center を有効にし、このトピックで前述したように構成している。SSO プロパティは、このトピックの前半で設定した my-sso-profileプロファイルにあります。

  • Initialize-AWSSSOConfiguration または Invoke-AWSSSOLogin コマンドレットを使用してログインすると、ユーザーは少なくとも Amazon S3 の読み取り専用アクセス許可を持ちます。

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

必要に応じてAWS.Tools.S3モジュールをインストールまたはインポートし、次の PowerShell コマンドを使用して S3 バケットのリストを表示します。

Get-S3Bucket -ProfileName my-sso-profile

追加情報

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

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

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

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

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