AWS CLIでSwitch Roleする方法とは?手順を詳しく徹底説明!
IT・技術関連
更新日:2024.09.05


Switch Role(スイッチロール)とは
Switch Role(スイッチロール)とは、AWSマネジメントコンソールを使って操作するときやそのコマンドライン版であるAWS CLIのコマンドを実行するときに使われるIAMユーザーの権限を、別のIAMロールが持つ権限に一時的に置き換えられる機能です。
Switch Roleを使うことで、大事な顧客データが入ったデータベースやストレージに対して、普段はリードオンリーの権限を持たせておき、必要なときに一時的にフルアクセスの権限を持たせるといった運用ができます。
また、別のAWSアカウントにあるIAMロールにSwitch Roleすることもでき、この場合、別のAWSアカウントにあるAWSリソースを操作できます。
たとえば、普段は開発用のAWSアカウントを使い、デプロイするときに一時的に本番用のAWS アカウントにアクセスできるようにするといった運用ができます。さらに、同じAWSアカウントにあるIAMロールに対してSwitch Roleをすることもできます。
Switch Roleしたときの権限を設定する

項目名 | 設定例 |
---|---|
ユーザーが所属するAWSアカウントID | 111156789012 |
操作対象となるリソースやIAMロールがあるAWSアカウントID | 222256789012 |
ロール名 | S3ReadOnly |
Switch Roleしたときの権限を持つIAMロールを作る

項目名 | 設定例 | 説明 |
---|---|---|
信頼されたエンティティの種類を選択 | 別のAWSアカウント | 別のアカウントがなくてもこちらを選択します。 |
アカウントID | 111156789012 | 自分のアカウントを指定することもできます。自分のアカウントとは、作成しようとしている IAM ロールがある AWS アカウント ID のことです。 |
オプション | (すべてチェックなし) |
項目名 | 設定例 | 説明 |
---|---|---|
ポリシー名 | AmazonS3ReadOnlyAccess | チェックを入れます |
項目名 | 設定例 | 説明 |
---|---|---|
ロール名 | S3ReadOnly | |
ロールの説明 | (空欄) |
ユーザーにSwitch Roleできる権限を与える
ユーザーが所属するAWSアカウント(例:111156789012)にサインインします。 Switch Roleするポリシーを作ります。 [ https://console.aws.amazon.com/iam/ >> ポリシー >> ポリシーの作成 ] JSONタブに下記を入力します。{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": [
"arn:aws:iam::222256789012:role/S3ReadOnly"
]
}
]
}
項目名 | 設定例 | 説明 |
---|---|---|
名前 | 222256789012_S3ReadOnly | たとえば、操作対象となる AWS アカウント ID とロール名にします |
説明 | (空欄) |
項目名 | 設定例 | 説明 |
---|---|---|
ポリシー名 | 222256789012_S3ReadOnly | チェックを入れます |
項目名 | 設定例 | 説明 |
---|---|---|
ポリシー名 | 222256789012_S3ReadOnly | チェックを入れます |
AWS CLIの設定をする

~/.aws/config ファイルの設定
~/.aws/config ファイルに下記を追加します。[profile 222256789012-S3ReadOnly]
role_arn = arn:aws:iam::222256789012:role/S3ReadOnly
credential_source = Ec2InstanceMetadata
設定例 | 説明 |
---|---|
222256789012-S3ReadOnly | プロファイル名。たとえば、操作対象となる AWS アカウント ID とロール名にします |
222256789012 | 操作対象となる AWS アカウント ID |
S3ReadOnly | ロール名 |
EC2外のAWS CLIの場合
もし、EC2外のAWS CLIの場合は、上記の内容を一部変更します。変更前: credential_source = Ec2InstanceMetadata
変更後: source_profile = default
以上の設定を変更することで、今まで開いていたシェルに対しても設定が有効になります。
AWS CLIでSwitch Roleする

Switch Roleする
AWS CLIのコマンドを使うシェルでSwitch Roleするには、環境変数AWS_PROFILEを設定します。値は~/.aws/configファイルに書いた [profile ____] の ____ の部分です。 bashの場合:export AWS_PROFILE=222256789012-S3ReadOnly
環境変数が設定されているシェルで実行したAWS CLIのコマンドは、Switch Roleした権限やAWSアカウントで実行されます。たとえば、S3のバケットを一覧することで別のAWSアカウントが操作対象になっていることを確認できます。
aws s3 ls # AWS CLI コマンドの例
Switch Roleした状態から戻す
AWS CLIのコマンドを使うシェルで環境変数AWS_PROFILEを削除すると、Switch Roleした状態からSwitch Roleしていない状態、つまり、IAMユーザーに戻ります。 bashの場合:export AWS_PROFILE=
または
unset AWS_PROFILE
一時的にSwitch Roleしてコマンドを実行する
環境変数を設定しないで、AWS CLIのコマンドに–profileオプションを付ければ、そのコマンドはSwitch Roleした状態で実行されます。aws s3 ls --profile 222256789012-S3ReadOnly # AWS CLI コマンドの例
Switch Roleを使いこなして安心して作業しよう
この記事の監修者・著者

- AWSパートナー/Salesforce認定コンサルティングパートナー 認定企業
-
ITエンジニア派遣サービス事業を行っています。AWSやSalesforceなど専門領域に特化したITエンジニアが4,715名在籍し、常時100名以上のITエンジニアの即日派遣が可能です。
・2021年:AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
・2022年3月:人材サービス型 AWSパートナー認定
・AWS認定資格保有者数1,154名(2024年6月現在)
・Salesforce認定コンサルティングパートナー
・Salesforce認定資格者276名在籍(2024年5月現在)
・LPIC+CCNA 認定資格者:472 名(2024年6月時点)
最新の投稿
- 2024-12-27営業インタビュー情報共有の活性化の中心に。SP企画部の新たな取り組み
- 2024-07-01営業インタビュー最短で当日にご提案可能。 OPE営業の対応が早い3つの理由
- 2024-07-01営業インタビュー研修見学ツアーが高評価!「お客様のOPEに対する期待を高め、継続に貢献できればと思います。」
- 2024-07-01営業インタビュー信頼関係を構築し、エンジニアの長期就業へ
ITエンジニアの派遣を利用したい企業様へ

- 求人・転職サイトや自社採用サイトを使っているが、自社に合ったITエンジニアが応募してこない…
- すぐに採用したいが、応募がぜんぜん集まらない
こんな悩みをお持ちの採用・人事担当者の方は、
オープンアップITエンジニアをご検討ください!
オープンアップITエンジニアをご検討ください!
当社のITエンジニア派遣サービスは
- 派遣スピードが速い!(最短即日)
- 4,500名のエンジニアから貴社にマッチした人材を派遣
- 正社員雇用も可能
こんな特長があり、貴社の事業やプロジェクトに合った最適なITエンジニアを派遣可能です。
まずは下記ボタンから無料でご相談ください。