logologo
AWSのスイッチロールとは?そのメリットと設定方法を解説!
switch role

AWSのスイッチロールとは?そのメリットと設定方法を解説!

アンドエンジニア編集部
2021.06.18
この記事でわかること
AWSのスイッチロールとは、アカウント権限をロールとして付与しロール切り替えでサービス利用するものです
AWSのスイッチロールで、複数アカウントのログイン・ログアウト処理せずアクセス権限が付与されます
AWSのスイッチロールはコンソール操作の他、CLIやAPIでも対応可能で柔軟な運用が可能です

AWSのスイッチロールとは?

switch role

AWSでは、アカウント管理AWS Identity and Access Management(IAM)を用います。AWSのスイッチロールとは、複数のAWSアカウントを利用する場合にアカウント権限をロールとして付与することで、ログイン処理の手間を削減AWSアカウントの利用効率を高めることができます。

AWSのアカウント運用は?

通常システムは開発環境やテスト環境、そして本番環境等に分類されて運用されています。この際、アクセス権限をその環境に適した制限を加えたり、業務に応じたロールを設定したりします。

ここで、事業規模が大きいシステム運用の場合を考えてみます。その場合、本番環境も目的に応じて複数のサーバー機能を持ちますし、開発担当者・テスト担当者・業務担当者がいるためそれぞれの管理者のユーザー数は膨大になってしまいます。通常アカウントは、サービス毎のAWSアカウントID・ユーザー名・パスワードを用います。そのため、管理するシステムが複数の場合は都度現行システムアカウントのログアウト移動先システムのログイン煩雑に実行しないといけません。

AWSのスイッチロールの具体的なメリットは?

先ほどAWSのアカウント運用の概要をお話し、AWSアカウントの管理の大変さは伝わったと思います。担当者がチーム再編で解散したり、担当変更による離任・着任が多く発生したりするケースでは、アカウントの追加・削除だけでも非常に多くの工数が発生します。加えて、管理者が複数のプロジェクトを同時に管理する場合は、さらに多くのAWSアカウントを管理する必要が出てきます。

これらの複雑での手間のかかるアカウント管理を簡素化するのが、スイッチロールです。スイッチロールではAWSアカウントをAWS IAM ユーザーとして管理し、各開発環境やテスト環境等に応じたロールを設定します。

利用例として、開発環境のアカウントからテスト環境のアカウントに移動する場合を考えてみます。その場合、ログイン済み開発環境アカウントでテスト環境用スイッチロールをクリックすることで、テスト環境のロールに移動します。同様に、他の環境へも同一操作で移動しますのでアカウントログインの手間大幅に削減され、アカウント情報入力ミスが削減できるでしょう。

AWS スイッチロールの利用方法は?

using switch role

AWS スイッチロールは簡単に利用できます。ロールを切り替えるには、AWS マネジメントコンソールの「IAMコンソール」を用います。その後、[Switch Role]の[ロールの切り替え]でアカウントIDと与えられたロール名を入力するだけです。 元に戻るには、「IAM コンソール」で[XXXに戻る] を選択します。XXXは元のユーザー名です。 参考:AWS Identity and Access Management ユーザーガイド ロールへの切り替え (コンソール)

なお、AWSアカウントのルートユーザーの場合はロールを切り替えることはできず、スイッチロールする際はIAMユーザーとしてサインインが必要です。

IAM コンソール以外のAWS スイッチロールの利用方法は?

IAM コンソール以外のAWS スイッチロール方法として、まずAWS CLIを用いてスイッチロールする手順を説明します。

(1)”aws configure”コマンドでアクセスキーID・シークレットアクセスキー・AWS リージョン・出力形式を一括初期設定(AWS CLIの初回のみ) (2)UnixまたはLinuxの「.aws/config」ファイル、またはWindowsの「C:\Users\USERNAME.aws\config」ファイルにプロファイル作成 (3)”aws iam list-users --profile YYYY”コマンドでロールの切り替え、ここでYYYYは(2)で作成したプロファイル名 (4)”aws iam list-users --profile”コマンドでロールを戻す、--profileの後はパラメータなし 参考:AWS Identity and Access Management ユーザーガイド IAM ロールの切り替え (AWS CLI)

AWS APIを用いる場合は、AssumeRole APIを用いてアマゾンリソース名(ARN)を引数で渡すだけです。AWS APIの場合は、スイッチしたロールが終了すると自動的に元のアクセス許可に戻ります。 参考:AWS Identity and Access Management ユーザーガイド IAM ロールの切り替え (AWS API)

AWS スイッチロール利用の事前準備は?

AWS スイッチロール利用のために、AWS IAMを用いてロールを設定します。なお、AWS IAMは以下の方法でアクセスが可能です。

AWS マネジメントコンソール  ブラウザによるアクセス ・AWS コマンドラインツール  AWS コマンドラインインターフェイス(CLI)またはAWS Tools for Windows PowerShell ・AWS SDK  ソフトウェア開発キット(SDK) ・IAM HTTPS API  HTTPSリクエストによるサービス接続 参考:AWS Identity and Access ManagementI ユーザーガイド IAM とは

IAM コンソールを用いたAWS IAM ロールの作成方法は?

AWS マネジメントコンソールを用いたロールの作成は以下の手順で行います。

(1)AWS マネジメントコンソールからIAM コンソールを選択 (2)IAMのナビゲーションペインで[ロール]、[ロールの作成] の選択 (3)[別のAWS アカウント] の選択 (4)AWS アカウントIDの入力 (5)管理対象外アカウントのCLI利用時に[外部 ID が必要]を選択 (6)多要素認証(MFA)使用時に[MFAが必要]を選択、[次へ: アクセス許可]の選択 (7)ポリシーを選択、または[ポリシーの作成]  (8)必要時[アクセス許可の境界の設定]、[次へ: タグ] を選択 (9)ロールへのタグ付けが必要であればタグ名を指定、[Next: Review]を選択 (10)[ロール名]を入力し[ロールの作成]を選択 参考:AWS Identity and Access ManagementI ユーザーガイド IAM ユーザーにアクセス権限を委任するロールの作成

  IAM コンソール以外のAWS IAM ロールの作成方法は?

ここでは、 IAM コンソールを用いずロールを作成していきます。AWS CLIとAWS APIによるロールの作成手順を紹介します。共に同等の手続きに従いますので、作業手順は同一です。

最初に、AWS CLIを用いた手順を説明します。 (1)”aws iam create-role”コマンドでロールを作成 (2)”aws iam attach-role-policy”コマンドでマネージドアクセス許可ポリシーをロールにアタッチ  (または”aws iam put-role-policy”コマンドでロールのインラインアクセス許可ポリシー 作成) (3)必要時”aws iam tag-role”コマンドでカスタム属性をロールに追加 (4)必要時”aws iam put-role-permissions-boundary”コマンドでロールのアクセス許可の境界設定

続いて、AWS APIによるロールの作成方法を説明します。 (1)CreateRole APIでロールを作成 (2)AttachRolePolicy APIでマネージドアクセス許可ポリシーをロールにアタッチ  (またはPutRolePolicy APIでロールのインラインアクセス許可ポリシーを作成) (3)必要時Tags Role APIでカスタム属性をユーザーに追加 (4)必要時PutRolePermissionsBoundary APIでアクセス許可の境界を設定

AWSのアカウント切り替えをスイッチロールで効率的に進めよう

future

AWSのサービスも利用が進むと複数アカウント管理が求められてきます。スイッチロールはAWSのアカウント切り替えをロール単位で行いますので、複数の業務責任を持つ方には大変効率的です。ぜひスイッチロールを体験していただき、効率的なクラウド運用を進めましょう。

気になる人のXをフォローしよう!
公式LINE
公式YouTube
マイナビITエージェント

編集部オススメコンテンツ

thumb_gptowten_01
ChatGPTの面白い使い方15選!ビジネスや遊び相手になる事例
アンドエンジニア編集部
2024.02.19

アンドエンジニアへの取材依頼、情報提供などはこちらから

お問い合わせ・情報提供

カテゴリー

編集部おすすめコンテンツ

アンドエンジニアへの取材依頼、情報提供などはこちらから

logologo
Powered by マイナビ AGENT