AWSで複数アカウントを切り替えて使う（Swith Role）

AWSで運用を始めると、開発環境と本番環境でAWSアカウントを分けて利用することがあるかと思います。複数アカウントで作業を始めると切り替えが、かなり面倒になってきますよね。

そこで、AWSにはスイッチロールという仕組みがあるので、ちょっと試してみましょう。

# スイッチロールとは
所有する異なるAWSアカウントでクロスアカウントアクセスを設定することで、あるアカウントからサインアウトして別アカウントへサインインする必要が無くなります。また、アカウントごとにIAMユーザーをを作成する必要がなくなります。

公式ドキュメントの "[IAM チュートリアル: AWS アカウント間の IAM ロールを使用したアクセスの委任](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html)"で上記のように説明されています。

![AWSクロスアカウント.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703384/06d720b9-3294-9227-ff7f-51e1c2a969be.png)

# この記事で行うこと
２つのAWSアカウントの間でクロスアカウントアクセスの設定をおこない、スイッチロールできるようにします。
具体的には、BアカウントでIAMロールを作成し、Aアカウントからスイッチロールできるようにします。

# 事前に決めておくこと
Bアカウントで作成するIAMロールへアクセス権限を設定するため、必要な権限を決めておくこと。

# スイッチロールを作成する手順
それぞれのアカウントで以下の作業をおこないます。

### Bアカウント（切り替え先のアカウント）で行う作業
1. Bアカウントへログイン
2. IAMのコンソールを開く
3. IAMロールを作成する
4. 作成されたロールを確認する
5. Bアカウントからログアウトする

### Aアカウント（切り替え元のアカウント）で行う作業
1. Aアカウントへログインする
2. 右上のメニューからロールの切り替え
3. スイッチロールする情報を入力する
4. ロールを切り替える

# 実際に作成してみましょう

## Bアカウント（切り替え先のアカウント）へ設定する
### Bアカウントへログイン
![スクリーンショット 2020-09-29 8.44.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703384/6b45ae70-cc88-4f88-a47d-3b79b99ac39e.png)

### IAMのコンソールを開く
![スクリーンショット 2020-09-29 8.48.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703384/b00b57ad-0684-298d-7044-61aeeaed06d1.png)

### IAMロールを作成する
![スクリーンショット 2020-09-29 8.50.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703384/4676854e-8e79-b153-bca4-6acdab167363.png)

#### 信頼されたエンティティとして別のAWSアカウントで作成する
`別のAWSアカウント`を選び、`アカウントID`へAアカウント（切り替え元となるアカウント）のID（１２桁）を入力しましょう。

![スクリーンショット 2020-09-29 8.55.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703384/05962a2a-b1e4-c9fa-4e48-ddb358f9ae7b.png)

#### 付与するアクセス権限ポリシーを選ぶ
スイッチロールした際に許可するアクセス権限ポリシーを選択しましょう。

![スクリーンショット 2020-09-29 8.56.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703384/438eac9b-44b4-5d29-6ee4-65697ac0a03a.png)

#### タグを追加する
![スクリーンショット 2020-09-29 8.57.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703384/4e0be3fc-096e-e551-16ef-d7e805b389fb.png)

#### ロール名などを設定する
`ロール名`を決めます。このロール名は、スイッチロールする時に指定するため、わかりやすい名前にしておくことをオススメします。`ロールの説明`は、IAMコンソールの一覧で表示されるため、目的を簡潔に記述しておくことをオススメします。
`信頼されたエンティティ`と`ポリシー`へ設定した値が表示されていることを確認してください。

![スクリーンショット 2020-09-29 8.58.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703384/df567001-a1a1-feb0-f59e-3a4a12489f61.png)

### 作成されたロールを確認する
![スクリーンショット 2020-09-29 9.06.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703384/027e4cfd-12dd-de45-e984-a3fce3d0c30c.png)


### Bアカウントからログアウトする


## Aアカウント（切り替え元のアカウント）で切り替えてみる

### Aアカウントへログインする
![スクリーンショット 2020-09-29 9.23.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703384/ee2ad45e-3701-b777-37eb-fda6c1120c50.png)

### 右上のメニューから`ロールの切り替え`をする
![スクリーンショット 2020-09-29 9.23.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703384/7db694af-30a9-7281-c62a-c1c42006d195.png)

### スイッチロールする情報を入力する
`アカウント`には、Bアカウント（切り替え先のアカウント）のID（１２桁）を入力しましょう。
`ロール`には、Bアカウントで作成したIAMロールのロール名を入力しましょう。
`表示名`は、適当な名称でOKです。切り替えた際に右上メニューに表示される名称になります。
色は、右上メニューへ表示された時の背景色になります。大事なスイッチ先の場合は、赤にするとか決めるとアカウントが複数になった場合でもわかりやすくなります。

![スクリーンショット 2020-09-29 9.24.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703384/63577243-bf88-8642-417c-89691c7a5c7f.png)

### ロールを切り替える
`ロールの切り替え`でBアカウントへ切り替わったでしょうか？
切り替わると、右上メニューへ先程入力した`表示名`の名称が表示され、`現在アクティブです。`へBアカウントのIDとロール名が表示されるようになります。

![スクリーンショット 2020-09-29 9.25.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703384/e7062b15-3bde-50ac-83a1-240388884372.png)