AWSにログインする時にIAM Identity Centerのユーザーを使う

**はじめに**
セキュリティ面の配慮で、AWSアカウントを作成したら、日常の操作ではそのアカウントを直接使うことは推奨されません。従来はIAMユーザーを作成し、日常操作用の許可セットを割り当て、管理コンソールのログインユーザーとして使います。

しかし最近からはIAMのユーザー作成ボタンを押下し、IAMユーザーを作成しようとしたら、下記画面が表示される。
![推奨.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69940/0712cdee-0c18-3c4c-6d04-cc9ab8d59b2b.jpeg)

AWSからはIAMユーザーというより、IAM Identity Center(旧AWS SSO)管理したユーザーが推奨されてます。AWS利用はベストプラクティスを従うべきなので、今回の内容はこのIAM Identity Centerを使ってログイン用ユーザの作成方法を説明いたします。

上記画面で「次へ」ボタンを押下すると、IAMユーザー作成が中断され、IAM Identity Centerの有効化する画面に遷移される。
![有効化.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69940/f14b1ac8-3ea0-de55-add9-f2daf8baecbb.jpeg)

「有効にする」ボタンを押下し、有効化したいリージョンを選択するとIAM Identity Centerのインスタンスが作成されます。
IAM Identity Centerが有効できるリージョンは一つのみです。ほかのリージョンに有効化したい場合、元に有効化したリージョンを無効にしなければならないです。

IAM Identity Centerの画面：
![IIC.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69940/ae02d9a3-e6ad-8809-a1cf-7554466f5a0f.jpeg)
左側のサイドメニューには、ユーザーとグループの作成機能があります（IAMの画面とは似てますね）。

**ここから、IAM Identity Centerのユーザーを作成します。**
1. **ユーザー情報を入力します。**  
   - ユーザー名を入力します
   - 必要に応じて姓や名、**メールアドレス**も入力してください

2. **パスワードの設定を行います。**  
   自動生成のパスワードをユーザーに送信するか、手動でパスワードを設定するか選択します

3. **ユーザーの作成を完了します。**  
   入力内容を確認し、「ユーザーの追加」をクリックします
   
   
4. **招待メールが登録された宛に送信されます**  
   ユーザーが作成されると、招待メールが登録された宛に送信されます。メールの中は、ユーザーログイン用のリンクが記載されてます。このリンクは「AWS access portal URL」と呼びます。従来のログイン画面とは違って、IAM Identity Centerのユーザーは自分専用のポータル画面からログインします（下図のように）。取りあえずログインしなくてよい
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69940/e55597d5-2ef9-2a01-8202-52330477fc6e.png)


**セキュリティを高めるため、ユーザーに二要素認証（MFA）を設定します。**
  - MFAの設定はどこでも同じなので詳細は省略させていただきます

**続いて、AWS管理アカウントの許可セット（とは、許可する操作のセット）をユーザーに割り当てます。**
![割り当て.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69940/fe583030-b900-0d0f-b8be-ed2acf1eda89.jpeg)

1. **許可セットを作成または選択します。**  
   - 左側のメニューで「許可セット」をクリックします
   - 許可セットはAWS「事前定義された許可セット」と「カスタマイズ許可セット」があります。本編と関係ないですが、自分は最初適当に「PowerUser」を開発用ユーザーに付与しましたが、AWS SAMのアプリをデプロイする時権限不足でした。でもどうしても最高権限のAdministratorAccessは嫌ですね。**ユーザーの役目に合わせてちゃんと設計する上に許可セットを設定しましょう**

2. **ユーザーへの割り当てを行います。**  
   - サイドメニューの「AWSアカウント」を選択し、AWSアカウント画面が表示されます
   - ここから「ユーザーまたはグループを割り当て」の黄色のボタンを押下し管理アカウントの許可セットを割り当てあげる
   - アカウントとしてAWS管理アカウントを選択します
   - 許可セットを選び、割り当てを完了します
![assign02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69940/72a1a6fa-ce34-0bdc-d4ab-14047755025e.jpeg)

これで許可セットにより規定された操作を行われるユーザーが作成されました！早速前述の「AWS access portal URL」からログインしてみましょう。

ログイン後にAWSアカウント名をクリックすると、許可セット(下図の"PowerUserAccess")が表示されます。その許可セットをクリックすれば普通に管理コンソルにログインできます。

![login-1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69940/7749e039-4511-4ab2-4caa-5045980345e8.jpeg)

**後書き**
 - 本編はIAM Identity Centerを使って管理コンソールへログインする方法を簡単に紹介しました。個人AWSアカウントなら参考できます。規模のあるチームならちゃんと組織構造からグループ、ユーザーの構成、許可セットを設計しなければならない。なおIAM Identity Centerは組織のアカウント管理、SSOなどを対応するためのサービスです。本編はその内容に言及しない（といいますが本人もわかりません）
 - 「AWS access portal」ログイン後の画面から「アクセスキー」のリンクをクリックすると、該当Entityのシークレットキー、アクセスキーID、access portal urlなど表示されます、アプリケーション、AWS-CLIなどはこの情報を利用して認証情報を作成できます

 - 本編の内容は下図にまとめられます
 ![concept.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69940/e379ae85-2f9f-dd4f-f987-ff1d37b3c406.jpeg)