IAM ロールに切り替える (Tools for Windows PowerShell)
ロールは、必要な AWS リソースへのアクセスに使用できる一連のアクセス許可を指定します。その点では、AWS Identity and Access Management(IAM)のユーザーに似ています。ユーザーとしてサインインすると、特定の一連のアクセス許可が付与されます。ただし、ロールにはサインインされませんが、一度サインインするとロールを切り替えることもできます。こうすると、元のユーザーアクセス権限が一時的に無効になり、そのロールに割り当てられたアクセス権限が代わりに付与されます。ロールは、自身のアカウントのロールでも、他の AWS アカウント のロールでもかまいません。ロールとその利点、およびロールを作成して設定する方法については、「IAM ロール」および「IAM ロールの作成」を参照してください。
重要
IAM ユーザーと切り替え後のロールのアクセス許可は、累積されません。同時に有効になるアクセス権限のセットは 1 つのみです。ロールを切り替えると、ユーザーアクセス権限が一時的に無効になり、切り替え後のロールに割り当てられたアクセス権限が有効になります。そのロールを終了すると、ユーザーアクセス権限が自動的に復元されます。
このセクションでは、AWS Tools for Windows PowerShell のコマンドラインで作業するときにロールを切り替える方法について説明します。
開発環境にアカウントがあり、場合によって、本稼働環境で Tools for Windows PowerShellUse-STSRole コマンドレットを実行します。このコマンドは、リクエストされたロールの一時的なセキュリティ証明書を返します。それらの認証情報は、以降の PowerShell コマンドで、本稼働環境のリソースにアクセスするためのロールのアクセス権限と共に使用します。ロールの使用中に、開発アカウントのユーザーアクセス許可を使用することはできません。同時に有効になるアクセス許可のセットは 1 つに限られるためです。
注記
セキュリティ上の理由から、管理者は AWS CloudTrail ログを確認して、AWS でアクションを実行したユーザーを調べることができます。管理者は、ロールを引き受けるときに、ソース ID またはロールセッション名の指定を要求する場合があります。詳細については、「sts:SourceIdentity」および「sts:RoleSessionName」を参照してください。
すべてのアクセスキーとトークンは例にすぎず、実際にはそのように使用できないことに注意してください。ライブ環境の適切な値に置き換えてください。
ロールに切り替えるには (Tools for Windows PowerShell)
-
PowerShell コマンドプロンプトを開き、現在の IAM ユーザーまたはフェデレーションロールのアクセスキーを使用するように、デフォルトのプロファイルを設定します。Tools for Windows PowerShell を以前に使用した場合、この設定はすでに完了している可能性があります。AWS アカウントのルートユーザー ではなく、IAM ユーザーとしてサインインしている場合にのみ、ロールを切り替えることができます。
PS C:\>Set-AWSCredentials -AccessKey-SecretKeyAKIAIOSFODNN7EXAMPLE-StoreAswJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEYMyMainUserProfilePS C:\>Initialize-AWSDefaults -ProfileNameMyMainUserProfile-Regionus-east-2詳細については、AWS ユーザーガイドの「AWS Tools for PowerShell 認証情報の指定」を参照してください。
-
新しいロールの認証情報を取得するには、以下のコマンドを実行して 123456789012 アカウントの
ロールに切り替えます。ロール ARN は、ロールを作成したアカウント管理者から入手します。コマンドには、セッション名も指定する必要があります。その名前には任意のテキストを選択できます。以下のコマンドは、認証情報をリクエストした後、返されたオブジェクトからRoleNameCredentialsプロパティオブジェクトを取得して、$Creds変数に格納します。PS C:\>$Creds = (Use-STSRole -RoleArn "arn:aws:iam::123456789012:role/RoleName" -RoleSessionName "MyRoleSessionName").Credentials$Credsオブジェクトにはこの時点で、以降の手順に必要なAccessKeyId、SecretAccessKey、SessionToken要素が格納されています。以下のサンプルコマンドに示しているのは、一般的な値です。PS C:\>$Creds.AccessKeyIdAKIAIOSFODNN7EXAMPLEPS C:\>$Creds.SecretAccessKeywJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEYPS C:\>$Creds.SessionTokenAQoDYXdzEGcaEXAMPLE2gsYULo+Im5ZEXAMPLEeYjs1M2FUIgIJx9tQqNMBEXAMPLECvSRyh0FW7jEXAMPLEW+vE/7s1HRp XviG7b+qYf4nD00EXAMPLEmj4wxS04L/uZEXAMPLECihzFB5lTYLto9dyBgSDyEXAMPLE9/g7QRUhZp4bqbEXAMPLENwGPy Oj59pFA4lNKCIkVgkREXAMPLEjlzxQ7y52gekeVEXAMPLEDiB9ST3UuysgsKdEXAMPLE1TVastU1A0SKFEXAMPLEiywCC/C s8EXAMPLEpZgOs+6hz4AP4KEXAMPLERbASP+4eZScEXAMPLEsnf87eNhyDHq6ikBQ==PS C:\>$Creds.ExpirationThursday, June 18, 2018 2:28:31 PM -
以降のコマンドでこれらの認証情報を使用するには、
-Credentialパラメータに指定します。たとえば、以下のコマンドでロールの認証情報を使用すると、そのロールにiam:ListRolesアクセス許可が付与されている場合にのみ、Get-IAMRolesコマンドレットを実行できます。PS C:\>get-iamroles -Credential $Creds -
元の認証情報に戻すには、
-Credentials $Credsパラメータの使用を止めるだけです。PowerShell ではデフォルトのプロファイルに保存された認証情報が再び使用されるようになります。