メニュー
AWS Identity and Access Management
ユーザーガイド

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 PowerShell のコマンドラインで作業する必要があるとします。1 つのアクセスキー認証情報のセットがすでに使用可能です。この情報のセットは、標準の IAM ユーザーに割り当てられたアクセスキーのペアである場合があります。または、フェデレーションユーザーとしてサインインしていれば、最初に割り当てられたロールのアクセスキーのペアである場合があります。これらの認証情報を使用して、パラメータとして新しいロールの ARN を渡す Use-STSRole コマンドレットを実行します。このコマンドは、リクエストされたロールの一時的なセキュリティ証明書を返します。それらの認証情報は、以降の PowerShell コマンドで、本稼働環境のリソースにアクセスするためのロールのアクセス権限と共に使用します。ロールの使用中に、Development アカウントのユーザー権限を使用することはできません。これは、同時に有効にできるアクセス権限のセットは 1 つのみであるためです。

注記

セキュリティ上の目的で、AWS CloudTrail を使用して、アカウントのロールの使用を監査することができます。Use-STSRole コマンドレットには、長さが 2 ~ 64 文字の -RoleSessionName パラメータを含める必要があります。パラメータには、文字、数字、記号 =,.@- を使用できます。ロールのセッション名は、一時的なセキュリティ認証情報を使用して実行されるアクションを識別するために、CloudTrail ログで使用されます。詳細については、AWS CloudTrail User Guide の「CloudTrail Event Reference」を参照してください。

すべてのアクセスキーとトークンは例にすぎず、実際にはそのように使用できないことに注意してください。ライブ環境の適切な値に置き換えてください。

Tools for Windows PowerShell からロールに切り替えるには

  1. PowerShell コマンドプロンプトを開き、現在の IAM ユーザーまたはフェデレーションロールのアクセスキーを使用するように、デフォルトのプロファイルを設定します。Tools for Windows PowerShell を以前に使用した場合、この設定はすでに完了している可能性があります。AWS account root user ではなく、IAM ユーザーとしてサインインしている場合にのみ、ロールを切り替えることができます

    Copy
    PS C:\> Set-AWSCredentials -AccessKey AKIAIOSFODNN7EXAMPLE -SecretKey wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY -StoreAs MyMainUserProfile PS C:\> Initialize-AWSDefaults -ProfileName MyMainUserProfile -Region us-east-2

    詳細については、AWS Tools for Windows PowerShell ユーザーガイド の「AWS 認証情報の使用」を参照してください。

  2. 新しいロールの認証情報を取得するには、以下のコマンドを実行して 123456789012 アカウントの RoleName ロールに切り替えます。ロール ARN は、ロールを作成したアカウント管理者から入手します。コマンドには、セッション名も指定する必要があります。その名前には任意のテキストを選択できます。以下のコマンドは、認証情報をリクエストした後、返されたオブジェクトから Credentials プロパティオブジェクトを取得して、$Creds 変数に格納します。

    Copy
    PS C:\> $Creds = (Use-STSRole -RoleArn "arn:aws:iam::123456789012:role/RoleName" -RoleSessionName "MyRoleSessionName").Credentials

    $Creds オブジェクトにはこの時点で、以降の手順に必要な AccessKeyIdSecretAccessKeySessionToken 要素が格納されています。以下のサンプルコマンドに示しているのは、一般的な値です。

    Copy
    PS C:\> $Creds.AccessKeyId AKIAIOSFODNN7EXAMPLE PS C:\> $Creds.SecretAccessKey wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY PS C:\> $Creds.SessionToken AQoDYXdzEGcaEXAMPLE2gsYULo+Im5ZEXAMPLEeYjs1M2FUIgIJx9tQqNMBEXAMPLECvSRyh0FW7jEXAMPLEW+vE/7s1HRp XviG7b+qYf4nD00EXAMPLEmj4wxS04L/uZEXAMPLECihzFB5lTYLto9dyBgSDyEXAMPLE9/g7QRUhZp4bqbEXAMPLENwGPy Oj59pFA4lNKCIkVgkREXAMPLEjlzxQ7y52gekeVEXAMPLEDiB9ST3UuysgsKdEXAMPLE1TVastU1A0SKFEXAMPLEiywCC/C s8EXAMPLEpZgOs+6hz4AP4KEXAMPLERbASP+4eZScEXAMPLEsnf87eNhyDHq6ikBQ== PS C:\> $Creds.Expiration Thursday, June 18, 2018 2:28:31 PM
  3. 以降のコマンドでこれらの認証情報を使用するには、-Credentials パラメータに指定します。たとえば、以下のコマンドでロールの認証情報を使用すると、そのロールに iam:ListRoles アクセス権限が付与されている場合にのみ、Get-IAMRoles コマンドレットを実行できます。

    Copy
    PS C:\> get-iamroles -Credential $Creds
  4. 元の認証情報に戻すには、-Credentials $Creds パラメータの使用を止めるだけです。PowerShell ではデフォルトのプロファイルに保存された認証情報が再び使用されるようになります。