AWSマネジメントコンソールでスイッチロールする

スイッチしまくってやるよ～

# 1.準備
アカウントAのユーザでアカウントBのロールを引き受け、アカウントAのユーザでアカウントB内のリソースを操作する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/c505fe29-a3b1-7fb2-bb76-4788bacda77b.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/207688de-aca4-96b6-4c39-d9a1dfe1fb36.png)

## 1-1.アカウントB側の準備（スイッチ先）
アカウントBにロールを作る。IAMのサービス画面から[ロールを作成]をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/81bf3992-a706-9e65-ada1-5f2817f3e7b6.png)
[AWSアカウント]を選択する。
[別のAWSアカウント]を選択しアカウントAのアカウントIDを記入する。
次へ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/a1666877-fac3-e523-04ab-ee4c8e8ff571.png)
ロールに許可するポリシーを選択する。今回は[ReadOnlyAccess]を選択して次へ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/f9d908c8-23fb-4187-da90-9c74a6bb587c.png)
ロールの名前を入力する。
[ステップ1:信頼されたエンティティを選択する]には、このロールに付与する「信頼ポリシードキュメント」が表示されており、次のようになっている。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/28017cfb-32a2-1071-d203-6489fd03ceb8.png)

```json
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Principal": {
                "AWS": "アカウントAのアカウントID"
            },
            "Condition": {}
        }
    ]
}
```
これは`sts:AssumeRole`(≒「IAMロールを引き受ける」という動作・アクション )が、アカウントAに許可されていることを表している。
必要に応じてタグを追加し、[ロールを作成]をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/c1e3f892-b6a4-afc4-60b7-5fd7172af7c9.png)
ロールできた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/58ad00f3-6f3b-8469-f0b4-847b111efbac.png)
★このアカウントBに作成したロールのARNをコピーしてメモしておく。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/d8a4b024-32a7-1633-b1c8-44ee54b936c3.png)

## 1-2.アカウントA側の準備（スイッチ元）
アカウントAに、アカウントBのロールを引き受ける権限のポリシーを作成する。
アカウントAにログインし、IAMサービス画面から[ポリシー]-[ポリシーの作成]をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/2539685c-b803-c96b-9dac-addd3c70d932.png)
JSONで以下ポリシーを入力する。

```
{
    "Version": "2012-10-17",
    "Statement": {
        "Effect": "Allow",
        "Action": "sts:AssumeRole",
        "Resource":"arn:aws:iam::アカウントBのアカウントID:role/AccountB_role"
    }
}
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/5c2fecd7-923f-a952-722c-a16d3ff7335f.png)
`"Resource"`には、★でコピーしたアカウントBのロールのARNを記載する。
これで、アカウントBのロールを、`sts:AssumeRole`(≒「IAMロールを引き受ける」)ことが許可されている、ということになる。
必要に応じてタグを追加し、ポリシー名を入力してポリシーを作成する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/75db124e-1aac-0b7e-0a9c-4ac9d87c53c5.png)
ポリシーができた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/0b5b3353-3847-0509-78ec-426dd42dea30.png)

アカウントAにスイッチ元のユーザを作り、作成したポリシーをアタッチする。。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/9c4d34cd-8224-f771-61f5-f72ae511f027.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/699c39c2-ffb6-5f7d-2d51-336f2394d0ec.png)

これで、アカウントAのAccounA_userが、AccountB_roleを引き受けてスイッチロールする準備ができた。

# 2.AWSマネジメントコンソールでスイッチロールする
アカウントBにS3バケットを作っておく。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/99555ab4-02ea-f274-8f5d-263a1dae05dd.png)
アカウントAからアカウントBにスイッチロールして、アカウントAからアカウントBのバケットが見えるか確認する。

アカウントAで[ロールの切り替え]をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/ce80ce3d-326a-826b-e5bd-41aaf7323358.png)
[ロールの切り替え]をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/8bd5178c-3e32-c7de-1365-2f1e9fd22f20.png)
 - アカウント：アカウントB（スイッチ先）のアカウントID
 - ロール：アカウントBで作成したロール名
 - 表示名：なんでもいい。スイッチしたときに画面右上に表示される。
 - 色：なんでもいい。スイッチしたときに画面右上にこの色がつく。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/667cc544-9c95-a9dc-7c0f-30720f596a16.png)
[ロールの切り替え]をクリックすると、アカウントBにスイッチロールできる。
S3サービス画面を見ると、バケットも参照できる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/6d0a76d8-bcb1-95be-66cb-436e3e64d041.png)
[スイッチバック]でアカウントAに戻る。

# 参考

https://dev.classmethod.jp/articles/iam-switchrole-for-beginner/

https://qiita.com/emiki/items/4023d6c89253caaf6e2a