のバージョン 5 (V5) AWS Tools for PowerShell がリリースされました。
新しいバージョンのツールの使用を開始するには、「AWS Tools for PowerShell ユーザーガイド (V5)」、特に V5 への移行に関するトピックを参照してください。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS でツール認証を設定する
AWS のサービス を使用して開発する際には、AWS によりコードがどのように認証するかを設定する必要があります。環境と利用可能な AWS のアクセスに応じて、AWS リソースへのプログラムによるアクセスを設定する方法は異なります。
Tools for PowerShell のさまざまな認証方法については、「AWS SDK とツールのリファレンスガイド」の「認証とアクセス」を参照してください。
このトピックでは、新しいユーザーがローカルで開発しており、雇用主から認証方法を与えられておらず、AWS IAM Identity Center を使って一時的な認証情報を取得する予定であることを前提としています。ご使用の環境がこれらの前提条件に当てはまらない場合、このトピックの情報の一部はお客様に該当しない場合や、既に提供されている可能性があります。
この環境を構成するにはいくつかのステップが必要で、その概要は以下のとおりです。
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 アクセスポータルセッションの開始には、このトピックで説明しているように、Initialize-AWSSSOConfiguration および Invoke-AWSSSOLogin コマンドレットを使用することをお勧めします。このバージョン以降の Tools for PowerShell にアクセスできない場合、またはそれらのコマンドレットを使用できない場合でも、AWS CLI を使用して同様のタスクを実行できます。その方法については、「ポータルログインに AWS CLI を使用する」を参照してください。
次の手順では、Tools for PowerShell が一時的な認証情報の取得に使用する SSO 情報を追加して、共有 config AWS ファイルを更新します。この手順の結果として、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ファイルにはmy-sso-profileというプロファイルが含まれており、Tools for PowerShell から参照できる設定値セットが保存されています。このファイルの場所を確認するには、「AWS SDK とツールのリファレンスガイド」の「共有ファイルの場所」を参照してください。Tools for PowerShell は、リクエストを AWS に送信する前に、プロファイルの SSO トークンプロバイダー設定を使用して認証情報を取得します。IAM Identity Center 許可セットに接続された IAM ロールである
sso_role_name値により、アプリケーションで使用されている AWS のサービス にアクセスできます。次のサンプルは、上記のコマンドを使用して作成されたプロファイルを示しています。実際のプロファイルでは、一部のプロパティの値や順序が異なる場合があります。プロファイルの
sso-sessionプロパティはmy-sso-sessionというセクションを参照しており、ここには AWS アクセスポータルセッションを開始するための設定が含まれています。[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 SDK とツールのリファレンスガイド」の「AWS リージョン」を参照してください。-
ベストプラクティスの詳細については、IAM ユーザーガイドの「IAM でのセキュリティのベストプラクティス」を参照してください。
-
短期 AWS 認証情報を作成するには、IAM ユーザーガイドの「一時的セキュリティ認証情報」を参照してください。
-
その他の認証情報プロバイダーについては、「AWS SDK とツールのリファレンスガイド」の「標準化された認証情報プロバイダー」を参照してください。