IAM Identity Centerでユーザーの追加・設定

AWS ECR(Elastic Container Registry)のプライベートリポジトリにDockerイメージをプッシュするまでの手順を記録します。手順はAWS CLIのインストール、AWSアカウントの作成、IAM Identity Centerでユーザーの追加・設定、AWS SSOの設定、Amazon ECRでDockerイメージのプッシュに分けます。無料枠での利用を想定しています。

# 環境
- CentOS7
- Dockerはインストール済み

# 手順
1\. [AWS CLIのインストール](https://qiita.com/aomrikti/private/0908000f4aa58098c761)　
2\. [AWSアカウントの作成](https://qiita.com/aomrikti/private/0e63569eeade661cf7b6)
3\. [IAM Identity Centerでユーザーの追加・設定](https://qiita.com/aomrikti/private/389672d4900989d447ad)（本記事）
4\. [AWS SSOの設定](https://qiita.com/aomrikti/private/0ebb0bda84d631cd6ea1)
5\. [Amazon ECRでDockerイメージのプッシュ](https://qiita.com/aomrikti/private/241fad7126657439491e)

# IAM Identity Centerを「有効にする」
#### IAM Identity Centerとは
>従業員ユーザーを作成または接続し、すべてのユーザーやアプリケーションにわたるアクセスを一元管理できます。 AWS アカウント 「マルチアカウント権限」を使用してワークフォースユーザーに AWS アカウントへのアクセス権を割り当てることができます。アプリケーション割り当てを使用して、 AWS 管理対象アプリケーションと顧客管理型アプリケーションへのアクセス権をユーザーに割り当てることができます。

- コンソール画面上の検索バーに「IAM Identity Center」と入力し、検索結果をクリックしてIAM Identity Centerのページに移動する
- 同ページ内の「有効にする」をクリックする
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570127/22ac3885-89a1-1367-cedc-7009898860af.png" width=100%>

- 「AWS Organizationsで有効にする」を選択し、「続行」をクリックする
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570127/5f90c301-2b27-189b-eae6-b0e39864386e.png" width=100%>

# グループの作成
- ナビゲーションペインの「グループ」をクリックする
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570127/1b374644-7bf6-16ba-18f9-2fe51eb77ba6.png" width=100%>


- 任意のグループ名を入力し、「グループを作成」をクリックする
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570127/9eaf2a70-3d7a-82b3-80f3-a7ee350dd5dc.png" width=100%>


# ユーザーの追加
- ナビゲーションペインの「ユーザー」をクリックする
- 「ユーザーを追加」をクリックする
- ステップ１（ユーザーの詳細を指定）に進み、「プライマリ情報」（ユーザー名、パスワードの受け取り方法※本記事はEメールでの受け取りを選択、Eメールアドレス、名、姓、表示名）を入力し、「次へ」をクリックする
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570127/e1f95934-061c-c4d8-4797-998e843186a0.png" width=100%>

- ステップ２（ユーザーをグループに追加）に進み、先ほど作成したグループを選択し、「次へ」をクリックする
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570127/4f8bfbc8-80d9-e2dc-f89f-a26bee723462.png" width=100%>

- ステップ３（ユーザーの確認と追加）に進み、内容を確認の上「ユーザーを追加」をクリックする

# 許可セットの作成
#### 許可セットとは
>IAM ポリシーを 1 つ以上、複数の AWS アカウント にデプロイすることができるテンプレートのことです。 許可セットを AWS アカウント に割り当てると、IAM アイデンティティセンターが IAM ロールを作成し、IAM ポリシーをそのロールにアタッチします。

#### IAMとは
>Identity and Access Management (IAM) は、AWS リソースへのアクセスを安全に管理するためのウェブサービスです。IAM を使用すると、ユーザーがアクセスできる AWS のリソースを制御するアクセス許可を集中管理できます。IAM を使用して、誰を認証 (サインイン) し、誰にリソースの使用を認可する (アクセス許可を付与する) かを制御します。


- ナビゲーションペインから「マルチアカウント許可」配下の「許可セット」をクリックする
- 下記ページの「許可セットを作成」をクリックする
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570127/3219792d-13fa-454e-fc47-3ff18b80f15a.png" width=100%>

- ステップ１（許可セットタイプを選択）に進み、「事前定義された許可セットのポリシー」から「PowerUserAccess」を選択し、「次へ」をクリックする
    - PowerUserAccess：AWS サービスとリソースへのフルアクセス権限があるが、ユーザーとグループの管理はできない。次に設定するSSOを使用するために、この許可セットを選択する

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570127/8d6aed9a-7a47-bac1-2374-a5d4ef5a9a09.png" width=50%><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570127/f005a212-0e17-1009-3e00-e7c08f51f537.png" width=50%>

- ステップ２（許可セットの詳細を指定）に進み、内容を確認し、「次へ」をクリックする
- ステップ３（確認して作成）に進み、内容を確認し、「次へ」をクリックする

# 許可セットの割り当て
- ナビゲーションペインの「マルチアカウント許可」配下の「AWSアカウント」をクリックする
- 「管理アカウント」を選択し、「ユーザーまたはグループを割り当て」をクリックする
- ステップ１（ユーザーとグループの選択）に進み、許可セットを割り当てるグループを選択し、「次へ」をクリックする
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570127/094e8deb-82f9-10d9-a6c5-90b70472c814.png" width=100%>

- ステップ２（許可セットを選択）にステップ１で選択したグループに割り当てる許可セットを選択し、「次へ」をクリックする
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570127/2519eb29-1257-7596-dd8c-12b4dd7d7994.png" width=100%>

- ステップ３（確認して送信）に進み、内容を確認し、「送信」をクリックする

# ユーザーの初期設定
#### パスワードの作成
- 指定したEメールアドレスにアクセスし、件名が「Invitation to join AWS IAM Identity Center」のメールを開く
- メール本文中の「Accept Invitation」をクリックする

- 下記ページが開いたら、「新規パスワード」を入力し、「新しいパスワードを設定」をクリックする

#### MFA（多要素認証）デバイスの登録
- 続く画面で使用するMFAデバイスを選択し、画面の指示に従い設定を行う
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570127/311fa6d0-de87-85c2-7de3-44782388ddee.png" width=100%>

#### AWSアクセスポータルにログイン

##### AWSアクセスポータルとは
>Office 365、Concur、Salesforce など、すべての AWS アカウント および最も一般的に使用されるクラウドアプリケーションへのシングルサインオンアクセスをユーザー (エンドユーザー) に提供します。ポータル内から、 AWS アカウント またはアプリケーションのアイコンを選択するだけで、複数のアプリケーションをすばやく起動できます。 AWS アクセスポータルにアプリケーションアイコンが存在するということは、会社の管理者がそれらの AWS アカウント またはアプリケーションへのアクセスを許可していることを意味します。また、追加のサインインプロンプトなしで、 AWS アクセスポータルからこれらのアカウントまたはアプリケーションすべてにアクセスできることも意味します。


- パスワード・MFAデバイスの登録が完了すると、AWSアクセスポータルのトップ画面が表示される
- 割り当てた許可セットが「AWS accounts」の下に表示されれば設定が完了していることが確認できる
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570127/c743defb-d70f-2ebf-06ff-be810d7d73f8.png" width=100%>

# 参考
- IAM Identity Centerについて
https://docs.aws.amazon.com/ja_jp/singlesignon/latest/userguide/what-is.html

- IAM Identity Centerの設定について
https://docs.aws.amazon.com/cli/latest/userguide/getting-started-prereqs.html
https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html

- 許可セットについて
https://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/transitioning-to-multiple-aws-accounts/creating-permission-sets.html#:~:text=%E8%A8%B1%E5%8F%AF%E3%82%BB%E3%83%83%E3%83%88%E3%81%A8%E3%81%AF%E3%80%81IAM,%E3%83%AD%E3%83%BC%E3%83%AB%E3%81%AB%E3%82%A2%E3%82%BF%E3%83%83%E3%83%81%E3%81%97%E3%81%BE%E3%81%99%E3%80%82

- IAMについて
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/introduction.html

- AWS アクセスポータルについて
https://docs.aws.amazon.com/ja_jp/singlesignon/latest/userguide/using-the-portal.html