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

IAM ロールの切り替え(AWS Command Line Interface)

ロールは、必要な AWS リソースへのアクセスに使用できるアクセス権限セットを指定します。その点では、AWS Identity and Access Management (IAM) のユーザーに似ています。ユーザーとしてサインインすると、特定のアクセス権限セットが付与されます。ただし、ロールにはサインインされませんが、一度ユーザーとしてサインインするとロールを切り替えることができます。 こうすると、元のユーザーアクセス権限が一時的に無効になり、そのロールに割り当てられたアクセス権限が代わりに付与されます。ロールは、自身のアカウントのロールでも、他の AWS アカウントのロールでもかまいません。ロールとその利点、およびロールを作成して設定する方法については、「IAM ロール」および「IAM ロールの作成」を参照してください。

重要

IAM ユーザーと切り替え後のロールのアクセス権限は、累積されません。同時に有効になるアクセス権限のセットは 1 つのみです。ロールを切り替えると、ユーザーアクセス権限が一時的に無効になり、切り替え後のロールに割り当てられたアクセス権限が有効になります。そのロールを終了すると、ユーザーアクセス権限が自動的に復元されます。

IAM ユーザー、すでにロールを使用している 外部で認証されたユーザー (SAML または OIDC) としてサインインしている場合、または、インスタンスプロファイルによるロールにアタッチされた Amazon EC2 インスタンスから実行する場合のみ、ロールを使用して AWS CLI コマンドを実行できます。 AWS アカウントの root ユーザーとしてサインインしているときに、ロールを切り替えることはできません。

このセクションでは、AWS Command Line Interface のコマンドラインで作業するときにロールを切り替える方法について説明します。

開発環境で作業する IAM ユーザーがいて、不定期に本稼働環境で AWS CLI のコマンドラインで作業する必要があるとします。 1 つのアクセスキー認証情報のセットがすでに使用可能です。 この情報のセットは、標準の IAM ユーザーに割り当てられたアクセスキーのペアである場合があります。または、フェデレーションユーザーとしてサインインしていれば、最初に割り当てられたロールのアクセスキーのペアである場合があります。 現在のアクセス権限で特定のロールを引き受けることができるなら、AWS CLI 設定ファイルの「プロファイル」でそのロールを特定できます。 このコマンドは、元のアイデンティティではなく、指定されたロールのアクセス権限を使用して実行されます。 AWS CLI コマンドでプロファイルを指定して新しいロールを使用する場合、同時に開発用アカウントのユーザーアクセス権限を使用することはできません。これは、同時に有効にできるアクセス権限のセットは 1 つのみであるためです。

注記

セキュリティ上の目的で、AWS CloudTrail を使用して、アカウントのロールの使用を監査することができます。CloudTrail ログでロールのアクションを特定するには、ロールセッション名を使用できます。このトピックで説明しているように、AWS CLI がユーザーに代わってロールを引き受けると、ロールセッション名が自動的に AWS-CLI-session-nnnnnnnn の形式で作成されます。ここで、nnnnnnnnUnix エポック時間 (1970 年 1 月 1 日午前 0 時 UTC からの秒数) で時刻を表す整数です。詳細については、AWS CloudTrail User Guide の「CloudTrail Event Reference」を参照してください。

AWS CLI を使用してロールを切り替えるには

  1. コマンドプロンプトを開き、IAM ユーザーまたはフェデレーションロールからのアクセスキーを使用するように、デフォルトのプロファイルを設定します。以前に AWS CLI を使用したことがあると、多くの場合、この設定はすでに完了しています。

    Copy
    $ aws configure AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: us-west-2 Default output format [None]: json

    詳細については、『AWS Command Line Interface ユーザーガイド』の「AWS Command Line Interface の設定」を参照してください。

  2. .aws/config ファイルのロールのための新しいプロファイルを作成します。 次の例では、123456789012 アカウントの ProductionAccessRole ロールへの切り替えをする「prodaccess」というプロファイルを作成します。 ロール ARN は、ロールを作成したアカウント管理者から入手します。このプロファイルが呼び出されると、AWS CLI は source_profile の認証情報を使用してロールのための認証情報をリクエストします。 そのため、source_profile として参照されるアイデンティティは、role_arn で指定されたロールの sts:AssumeRole アクセス権限がなければなりません。

    Copy
    [profile prodaccess] role_arn = arn:aws:iam::123456789012:role/ProductionAccessRole source_profile = default
  3. 新しいプロファイルを作成した後、--profile prodaccess パラメーターを指定した AWS CLI コマンドは、デフォルトのユーザーではなく、IAM ロールである ProductionAccessRole にアタッチされたアクセス権限により実行されます。

    Copy
    $ aws iam list-users --profile prodaccess

    このコマンドは、ProductionAccessRole に割り当てられたアクセス権限で現在の AWS アカウントのユーザーをリスト表示することができる場合に実行されます。

  4. 元の認証情報によって付与されるアクセス権限に戻すには、--profile パラメーターなしでコマンドを実行します。 AWS CLI は、ステップ 1 で設定したデフォルトのプロファイルの認証情報の使用に戻ります。

詳細については、『AWS Command Line Interface ユーザーガイド』の「 ロールを引き受ける 」を参照してください。