IT人材をお探しの方は、まずはお電話ください。担当営業がすぐにご要望にマッチした人材をご提案いたします。
tel:03-6409-6766 お急ぎの方はお電話ください

ブログTOP > IT・技術関連 > AWS CLIでSwitch Roleする方法とは?手順を詳しく徹底説明!

AWS CLIでSwitch Roleする方法とは?手順を詳しく徹底説明!

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

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したときの権限を設定する

Switch Roleをしたときにどのような権限を与えるのかを設定する方法を示します。この設定を行うと、AWS CLIコマンドを使うシェルでSwitch Roleができるようになるだけでなく、AWSマネジメントコンソールでもSwitch Roleができるようになります。これはクラウドのシステム管理者が行う作業なので、読み飛ばしてもらって構いません。 まずは、「ユーザーが所属するAWSアカウントID」と「操作対象となるリソースやIAMロールがあるAWSアカウントID」をメモしておきます。また、Switch Roleをしたときの権限を持つロールの名前も決めておきます
項目名 設定例
ユーザーが所属するAWSアカウントID 111156789012
操作対象となるリソースやIAMロールがあるAWSアカウントID 222256789012
ロール名 S3ReadOnly

Switch Roleしたときの権限を持つIAMロールを作る

IAMロールを作るAWSアカウントにサインインします。操作対象となるAWSリソースが所属するAWSアカウントと、同じAWSアカウントにIAMロールを作ります。AWSマネジメントコンソールでの手順は以下のようになります。 スイッチロールしたときの権限を作ります。 [ https://console.aws.amazon.com/iam/ >> ポリシー >> ポリシーの作成 ] ロールを作ります。 [ https://console.aws.amazon.com/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 とロール名にします
説明 (空欄)
グループにポリシーをアタッチする場合[ https://console.aws.amazon.com/iam/ >> グループ >> (対象のグループ)>> ポリシーのアタッチ ]
項目名 設定例 説明
ポリシー名 222256789012_S3ReadOnly チェックを入れます
ユーザーにポリシーをアタッチする場合 [ https://console.aws.amazon.com/iam/ >> ユーザー >> (対象のユーザー)>> アクセス権限の追加 >> 既存のポリシーを直接アタッチ(右上)]
項目名 設定例 説明
ポリシー名 222256789012_S3ReadOnly チェックを入れます

AWS CLIの設定をする

実行するときのロールのARN(リソース名)を設定ファイルに書く必要があるので、書き方について説明します。

~/.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アカウントIDとロール名をクラウドのシステム管理者に聞いてから操作してください。

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を使いこなして安心して作業しよう

以上、Switch Roleするときの権限の設定方法と、AWS CLIのコマンドを使うシェルでSwitch Roleする方法の説明でした。大事なデータを誤って消す可能性が低くなることで、安心して作業できるようになるでしょう。]]>

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア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月時点)
ITエンジニアの派遣を利用したい企業様へ
ITエンジニアを派遣で採用したい企業様へ
  • 求人・転職サイトや自社採用サイトを使っているが、自社に合ったITエンジニアが応募してこない…
  • すぐに採用したいが、応募がぜんぜん集まらない
こんな悩みをお持ちの採用・人事担当者の方は、
オープンアップITエンジニアをご検討ください!

当社のITエンジニア派遣サービスは

  • 派遣スピードが速い!(最短即日)
  • 4,500名のエンジニアから貴社にマッチした人材を派遣
  • 正社員雇用も可能

こんな特長があり、貴社の事業やプロジェクトに合った最適なITエンジニアを派遣可能です。
まずは下記ボタンから無料でご相談ください。

無料相談のお申し込みはこちら
IT・技術関連の記事一覧へ

カテゴリから記事を探す

すべての記事一覧へ