チームプロジェクトでAWS管理(2) - 管理者IAMユーザー

前回の記事に続き、実際に管理者IAMユーザーを生成してみる。生成した管理者IAMユーザーは、Rootユーザーと同じくAWSサービスを管理するために使用できる。

# 管理用IAMユーザー作成
### IAMユーザー作成画面に移動
上段のナビゲーションバーでIAMを検索し、IAMダッシュボードを開く。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1050681/f494cb15-ff4f-c4f1-e0f2-5f203d407899.png)
そして、左側のUsersをクリックしてAdd Usersを通して、IAMユーザー追加を開始する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1050681/fede6845-e592-a0de-3627-c37891d83f1e.png)
管理者の役割をするユーザーを追加するため、User nameを[Administrator]と入力し、access typeは[Password - AWS Management Console access]を選択して、AWSのウェブページからログインできるようにする。パスワード設定は自由にしてもかまいませんが、できれば以下のイメージのように設定してIAMユーザーがログイン時にパスワードを変更するように設定する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1050681/1b7a386d-a917-e248-b990-25b40998989f.png)

### グループ作成およびポリシー権限(Policy)の設定
Next: Permissionsをクリックして次のページに移動し、Create groupでAdministrators]と名前を設定する。権限はすべてのサービスおよびリソースにアクセス可能な管理用IAMユーザにするために、Administrator Accessポリシーをチェックしてグループを生成する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1050681/72c92ccb-ac04-b87e-0865-1b4314629fbf.png)
グループ作成が完了したら、Next:Tagsをクリックして次のページに
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1050681/9072104c-aa69-6cc9-a53f-1361d94e1735.png)
次はタグの追加画面が表示されるが、必須事項ではないため、Next:Reviewをクリックして進む。

### IAMユーザー作成完了
Reviewページを通じて上記のユーザー名とグループ名を確認することができ、確認後に問題なければCreate userでIAMユーザー作成を完了する。以下のようにSuccessが出れば、ユーザー作成が完了。そして、成功メッセージともに与えられたログインURLを通じて、IAMユーザーログインができる。このように生成されたIAMユーザー情報は.csvファイルをダウンロードして共有したり、Send mailでIAMユーザーに伝達することができる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1050681/73e58a58-6554-09f0-6f42-c088a8ce9317.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1050681/8b494720-3b5b-b409-c440-40d6edbd6438.png)

### Account Alias設定
ログインURLは基本的に12桁のAWSアカウントIDに設定されているが、別にAccount Aliasを設定してより簡単にログインURLを使用できる。IAM dashboardの右側にAWS Accountという項目があり、Account AliasのCreateでAliasを指定することができる。このようにAliasを設定すると、会社で環境別にAWSリソースを管理する際にBookmarkを通してより簡単にアクセスできる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1050681/b8bf2648-b558-a0a7-f968-e098474e28a9.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1050681/f4bb05c1-9f48-034a-cd03-aa19c344133e.png)

### 新しい管理者IAMユーザーとしてログイン
渡されたIAMユーザー情報とログインURL
* Account Alias未設定 : http://${12桁のアカウントID}。signin.aws.amaz on.com/console
* Account Alias設定 : https://${自分のAlias}.signin.aws.amazon.com/console
を通じてログインする。そして、最初のログインを実施すれば、自動的にパスワードを変更しろという案内メッセージが出る。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1050681/df97a4c1-b2f6-a56a-76eb-a8a6de509430.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1050681/08e2bc75-f252-93fe-94a0-097ef1150911.png)

### MFA設定
このように生成された管理用IAMユーザーは、安全なログインのために2重認証のためにMFA設定を行うことを推奨(管理用IAMユーザーだけでなく、Rootユーザー、その他開発者用IAMユーザーにもすべて設定することが望ましい)。MFA設定とはスマートフォンまたはその他のデバイスを通じてT-OTP(時間基盤の使い捨て暗号)を発給し、これを通じて2次認証をすることを意味する。様々なOTPアプリがあるが、私がお勧めするのは以下の3つがある。
* [Chrome extenstion](https://chrome.google.com/webstore/detail/authenticator/bhghoamapcdpbohphigoooaddinpkbai?hl=ko)
* [Google Authenticator](https://apps.apple.com/kr/app/google-authenticator/id388497605)
* [Step Two](https://steptwo.app/)

どのアプリを使っても大きな問題にはならないため、自分の環境に合った適切なOTPアプリの使用を推奨（本稿ではStep Twoを使用するが、ブラウザで手軽に使用したい場合は、Chrome extenstionが無難）する。MFA設定はIAM dashboardにあるAdd MFAをクリックして設定できる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1050681/decf9c83-30b7-30ec-17b3-b060c9ef948c.png)
スクロールを少し下げると、Multi-factor authentication(MFA)項目があり、Assign MF AdeviceのVirtual MFAdeviceをクリックして登録を進めてくれる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1050681/cd3d9786-8f49-d034-2f4b-ba4d0d3f6eef.png)
登録が完了するとOTPアプリにT-OTPが生成され、これを2回に分けてMFA code1、2に入力した後、Assign MFAをクリックすると設定が完了。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1050681/b9fddc2b-c234-6cbf-0737-a13e511a6ed7.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1050681/05b2a867-2d22-b309-6fbd-3bfce7c5ce70.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1050681/5f9c9226-4f38-3c26-8392-c3a70e85b900.png)

このように生成された管理者IAMユーザアカウント(Administrator Accessポリシーを持つAdministratorsグループに属しているため、Rootユーザと同様にIAMユーザ管理およびAWSリソース使用、一部特別な場合を除く)ができる。そのため、チーム員にこのIAMユーザーを全て共有するよりは、アカウント所有者になる本人が使用することをお勧めする。