のバージョン 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とツールで使用できます。
前提条件
-
ルートユーザー、IAM ユーザー、または IAM とのフェデレーションを通じて AWS マネジメントコンソールにサインインするためのアクセス。IAM Identity Center を使用する場合は、代わりに「IAM Identity Center を使用するように Tools for PowerShell を設定します。」を参照してください。
-
IAM ID に適切なアクセス許可があることを確認します。SignInLocalDevelopmentAccess 管理ポリシーを IAM ユーザー、ロール、またはグループにアタッチします。ルートユーザーとしてサインインする場合、追加のアクセス許可は必要ありません。
Invoke-AWSLogin コマンドレット AWS を使用して にログインする
Invoke-AWSLogin コマンドレットを実行して、既存の AWS マネジメントコンソール認証情報を使用して認証します。以前にプロファイルを設定していない場合は、追加情報の入力を求められます。
プロファイルにサインインまたは設定するには、以下の手順に従います。
-
インストールガイドからインストールした正しいモジュールをインポートしていることを確認します。
注記
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:
-
-
は、 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:
-
-
ブラウザで、表示されたリストから使用する認証情報を選択し、ターミナルに戻ります。
-
設定するプロファイルに、新しいセッションと一致しない以前に設定されたログインセッションがある場合、既存のプロファイルに対応するセッションを切り替えていることを確認するように 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)
-
-
最後のメッセージは、完了したプロファイル設定について説明しています。
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 アクセスポータルセッションを開始する」を参照してください。
-
まだ実行していない場合は、PowerShell を開き、一般的なコマンドレットを含むオペレーティングシステムと環境 AWS Tools for PowerShell に適した をインストールします。これを行う方法については、「の使用を開始する AWS Tools for PowerShell」を参照してください。
例えば、モジュール化されたバージョンの Tools for PowerShell を Windows にインストールするには、ほとんどの場合、次のようなコマンドを実行します。
Install-Module -Name AWS.Tools.Installer Install-AWSToolsModule AWS.Tools.Common -
以下のコマンドを実行してください。サンプルプロパティ値を IAM Identity Center 設定の値に置き換えます。これらのプロパティとその確認方法については、「AWS SDK とツールのリファレンスガイド」の「IAM Identity Center 認証情報プロバイダーの設定」を参照してください。
$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あるいは、コマンドレット
Initialize-AWSSSOConfigurationを単体で使用することもでき、その場合は Tools for PowerShell 側でプロパティ値の入力を求められます。特定のプロパティ値に関する考慮事項:
-
IAM Identity Center の有効化と設定の手順どおりに進めた場合、
-RoleNameの値はPowerUserAccessになっている可能性があります。ただし、PowerShell 作業専用に IAM Identity Center アクセス許可セットを作成した場合は、代わりにそれを使用します。 -
IAM Identity Center を設定した AWS リージョン を使用してください。
-
-
この時点で、共有 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=111122223333sso_role_name=SamplePermissionSetsso_session=my-sso-session [sso-session my-sso-session] sso_region=us-west-2sso_registration_scopes=sso:account:access sso_start_url=https://provided-domain.awsapps.com/start/ -
アクティブな 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」および「AWS SDK とツールのリファレンスガイド」の「AWS リージョン」を参照してください。-
ベストプラクティスの詳細については、IAM ユーザーガイドの「IAM でのセキュリティのベストプラクティス」を参照してください。
-
短期 AWS 認証情報を作成するには、IAM ユーザーガイドの「一時的なセキュリティ認証情報」を参照してください。
-
その他の認証情報プロバイダーについては、「AWS SDK とツールのリファレンスガイド」の「標準化された認証情報プロバイダー」を参照してください。