AWS Tools for PowerShell での認証情報の共有 - AWS Tools for PowerShell

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

AWS Tools for PowerShell での認証情報の共有

Tools for Windows PowerShell は、AWS CLI および他の AWS SDK と同様に、AWS 共有認証情報ファイルの使用をサポートします。Tools for Windows PowerShell で、.NET 認証情報ファイルおよび AWS 共有認証情報ファイルに対して、basicsession、および assume role 認証情報プロファイルの読み書きをサポートするようになりました。この機能は、新しい Amazon.Runtime.CredentialManagement 名前空間で有効になります。

警告

セキュリティリスクを避けるため、専用ソフトウェアの開発や実際のデータを扱うときは、IAM ユーザーを認証に使用しないでください。代わりに、AWS IAM Identity Center などの ID プロバイダーとのフェデレーションを使用してください。

注記

このトピックの情報は、短期または長期認証情報を手動で取得および管理する必要がある場合を対象としています。短期認証情報と長期認証情報に関する追加情報については、「AWS SDK およびツールリファレンスガイド」の「その他の認証方法」を参照してください。

セキュリティのベストプラクティスについては、ツール認証を設定する の説明に従って AWS IAM Identity Center を使用してください。

新しいプロファイルタイプと AWS 共有認証情報ファイルへのアクセスは、認証情報に関連するコマンドレットに追加された各パラメータ、Initialize-AWSDefaultConfigurationNew-AWSCredentialSet-AWSCredential でサポートされます。サービスコマンドレットで共通パラメータ -ProfileName を追加すると、新しいプロファイルを参照できます。

AWS Tools for PowerShell での IAM ロールの使用

AWS 共有認証情報ファイルを使用すると、追加の種類のアクセスが可能になります。例えば、IAM ユーザーの長期認証情報の代わりに IAM ロールを使用して AWS リソースにアクセスできます。これを行うには、ロールを継承するアクセス許可を持つ標準プロファイルが必要です。ロールを指定したプロファイルを使用するように AWS Tools for PowerShell に指示すると、AWS Tools for PowerShell は SourceProfile パラメータで識別されるプロファイルを検索します。これらの認証情報は、RoleArn パラメータで指定されたロールの一時的な認証情報を要求するために使用されます。ロールが第三者によって継承される場合は、オプションで、多要素認証 (MFA) デバイスまたは ExternalId コードの使用を要求できます。

Parameter Name 説明

ExternalId

ロールを引き受ける際に使用するユーザー定義の外部 ID (ロールで必要とされる場合)。これは通常、アカウントへのアクセス権を第三者に委任する場合にのみ必要です。第三者は、割り当てられたロールを継承するときに、パラメータとして ExternalId を含める必要があります。詳細については、IAM ユーザーガイドの「AWS リソースへのアクセス権を第三者に付与するときに外部 ID を使用する方法」を参照してください。

MfaSerial

ロールを引き受ける際に使用する MFA シリアル番号 (ロールで必要とされる場合)。詳細については、IAM ユーザーガイドの「AWS での多要素認証 (MFA) の使用」を参照してください。

RoleArn

ロールの継承認証情報を引き受けるロールの ARN。ロールの作成と使用の詳細については、IAM ユーザーガイドIAM ロールを参照してください。

SourceProfile

ロールの継承認証情報によって使用されるソースプロファイルの名前。このプロファイルで見つかった認証情報は、RoleArn パラメータで指定されたロールを継承するために使用されます。

ロールを継承するためのプロファイルの設定

次に、IAM ロールを直接継承することができるソースプロファイルを設定する方法の例を示します。

最初のコマンドは、ロールプロファイルが参照するソースプロファイルを作成します。2 番目のコマンドは、継承するロールプロファイルを作成します。3 番目のコマンドは、ロールプロファイルの認証情報を表示します。

PS > Set-AWSCredential -StoreAs my_source_profile -AccessKey access_key_id -SecretKey secret_key PS > Set-AWSCredential -StoreAs my_role_profile -SourceProfile my_source_profile -RoleArn arn:aws:iam::123456789012:role/role-i-want-to-assume PS > Get-AWSCredential -ProfileName my_role_profile SourceCredentials RoleArn RoleSessionName Options ----------------- ------- --------------- ------- Amazon.Runtime.BasicAWSCredentials arn:aws:iam::123456789012:role/role-i-want-to-assume aws-dotnet-sdk-session-636238288466144357 Amazon.Runtime.AssumeRoleAWSCredentialsOptions

このロールプロファイルを Tools for Windows PowerShell サービスコマンドレットで使用するには、ロールプロファイルを参照するコマンドに -ProfileName 共通パラメータを追加します。次の例では、前の例で定義されたロールプロファイルを使用して Get-S3Bucket コマンドレットにアクセスします。AWS Tools for PowerShell は my_source_profile で認証情報を検索し、それらの認証情報を使用してユーザーの代わりに AssumeRole を呼び出し、それらの一時的なロールの認証情報を使用して Get-S3Bucket を呼び出します。

PS > Get-S3Bucket -ProfileName my_role_profile CreationDate BucketName ------------ ---------- 2/27/2017 8:57:53 AM 4ba3578c-f88f-4d8b-b95f-92a8858dac58-bucket1 2/27/2017 10:44:37 AM 2091a504-66a9-4d69-8981-aaef812a02c3-bucket2

認証情報プロファイルタイプの使用

認証情報プロファイルタイプを設定するには、プロファイルのタイプで必要とされる情報を提供するパラメーターを把握します。

認証情報タイプ 使用する必要があるパラメータ

Basic (ベーシック)

これらは、IAM ユーザーの長期的な認証情報です。

-AccessKey

-SecretKey

セッション:

これらは、Use-STSRole コマンドレットを直接呼び出すなど、手動で取得する IAM ロールの短期的な認証情報です。

-AccessKey

-SecretKey

-SessionToken

ロール:

これらは、AWS Tools for PowerShell が取得する IAM ロールの短期認証情報です。

-SourceProfile

-RoleArn

オプション: -ExternalId

オプション: -MfaSerial

ProfilesLocation 共通パラメータ

-ProfileLocation を使用して共有認証情報ファイルに書き出すことができると同時に、コマンドレットに認証情報ファイルから読み取るよう指示を出すこともできます。-ProfileLocation パラメータを追加することで、共有認証情報ファイルと .NET 認証情報ファイルのどちらを Tools for Windows PowerShell で使用するかを制御できます。次の表では、Tools for Windows PowerShell でのこのパラメータの動作方法について説明します。

プロファイルの場所の値 プロファイルの解決動作

null (未設定) または空

最初に、.NET 認証情報ファイル内で指定された名前のプロファイルを検索します。プロファイルが見つからない場合は、(user's home directory)\.aws\credentials で AWS 共有認証情報ファイルを検索します。

AWS 共有認証情報ファイル形式のファイルへのパス

指定されたファイルのみを対象に、指定された名前のプロファイルを検索します。

認証情報の認証情報ファイルへの保存

2 つの認証情報ファイルのどちらか一方に、認証情報を書き込み、保存するには、Set-AWSCredential コマンドレットを実行します。次の例は、その方法を示しています。最初のコマンドは、Set-AWSCredential-ProfileLocation と共に使用して、-ProfileName パラメータで指定されたプロファイルにアクセスキーとシークレットキーを追加します。2 行目では、Get-Content コマンドレットを実行して認証情報ファイルの内容を表示しています。

PS > Set-AWSCredential -ProfileLocation C:\Users\auser\.aws\credentials -ProfileName basic_profile -AccessKey access_key2 -SecretKey secret_key2 PS > Get-Content C:\Users\auser\.aws\credentials aws_access_key_id=access_key2 aws_secret_access_key=secret_key2

認証情報プロファイルの表示

Get-AWSCredential コマンドレットを実行して、-ListProfileDetail パラメータを追加すると、認証情報ファイルのタイプと場所、プロファイル名のリストが返されます。

PS > Get-AWSCredential -ListProfileDetail ProfileName StoreTypeName ProfileLocation ----------- ------------- --------------- source_profile NetSDKCredentialsFile assume_role_profile NetSDKCredentialsFile basic_profile SharedCredentialsFile C:\Users\auser\.aws\credentials

認証情報プロファイルの削除

認証情報プロファイルを削除するには、新しい Remove-AWSCredentialProfile コマンドレットを実行します。Clear-AWSCredential は廃止されましたが、下位互換性のために引き続き使用できます。

重要な注意点

ロールプロファイルのパラメータがサポートされるのは、Initialize-AWSDefaultConfigurationNew-AWSCredentialSet-AWSCredential のみです。Get-S3Bucket -SourceProfile source_profile_name -RoleArn arn:aws:iam::999999999999:role/role_name などのコマンドでは、ロールパラメータを直接指定することはできません。サービスコマンドレットは SourceProfile または RoleArn パラメータを直接サポートしていないため、これは機能しません。代わりに、これらのパラメータをプロファイルに保存し、-ProfileName パラメータを指定してコマンドを呼び出す必要があります。