はじめに
今更、となりますが。。
IAMコンソールからIAMユーザを作ろうとすると以下の選択が表示れます。
- Identity Centerでユーザを指定する- 推奨
- IAMユーザを作成します
そこで、以下について分かりやすく解説してみます。
- IAMとIAM Identity Centerの違い
- IAM Identity Centerのベストプラクティス
IAMとIAM Identity Centerの違い
IAMとIAM Identity Centerでユーザやグループを作成するときの違いをみていきます。
IAMの場合
IAMでIAMユーザやIAMグループを作成する場合は以下のイメージ。
- AWSアカウントの中で、IAMグループとIAMユーザを作成する。
- IAMユーザまたはIAMグループにIAMロールを割り当てる。
ログインイメージは以下の感じ。
- IAMユーザでログインするとAWSコンソール画面が表示される。
IAM Identity Centerの場合
IAM Identity Centerでユーザやグループを作成する場合は以下のイメージ。
- 複数のAWSアカウントを管理する。
- 作成したユーザとグループはAWSアカウントに割り当てる。
- ユーザまたはグループに権限セットを割り当てる。権限セットはIAMロールの集まり。
ログインイメージは以下。
- ユーザでログインすると権限セット選択画面が表示される。
- 選択した権限セットでのAWSコンソール画面が表示される。
ポイントとしては、IAMで作成するIAMユーザやIAMグループと、IAM Identity Centerで作成するユーザとグループは別物です。
振る舞いとして、権限をもってAWSサービスを使うことに変わりはありませんが、IAM Identity Centerの方が概念が大きいです。
IAMで作成したユーザやグループはIAMユーザ、IAMグループと表記しています。
IAM Identity Centerで作成したユーザやグループは、単に、ユーザ、グループと表記しています。
もちろん、IAM Identity Centerで割り当てたAWSアカウントの中でもIAMは利用できるので、IAMユーザやIAMグループを作成することができます。
ただ、過去にIAMでIAMユーザやIAMグループを作成している場合、それをそのままIAM Identity Centerのユーザやグループには移行できないですね。新規にIAM Identity Centerでユーザやグループを作成する必要がありそう。
ちなみに、AWSアカウントというのは、簡単に言うとAWSサービスが利用できる環境。
AWSアカウントはAWS Organizationsで一元管理でき、IAM Identity Centerと統合されています。
IAM Identity Centerは何が良いの?
ここでのIAM Identity Centerを推奨するメリット。
- シングルサインオン (SSO)
一度の認証で複数のAWSアカウントにアクセスできるため、ユーザーの作業効率が向上します。 - 管理の簡素化
複数のAWSアカウントのアクセス管理を一元化できるため、管理が簡単になります。
IAM Identity Centerのベストプラクティス
IAM Identity Centerを利用してみて、こうした方が良いかな、というのをまとめてみました。
(※個人意見)
-
AWSアカウントのEメールは個人のメールアドレスではなくAWSアカウント専用のメーリングリストが良い。
AWSアカウントに指定できるメールアドレスは、他のAWSアカウントで指定されていないもの。
複数AWSアカウントを作成するため、個人のメールアドレスでは対応しきれない。
AWSアカウントの利用目的に沿ったメールアドレスが良い。
例えば、プロジェクト単位にAWSアカウントを作成するのであれば、プロジェクトのメーリングリストを指定する。
AWSアカウントは、組織単位、プロジェクト単位で作成する。さらに環境単位で分けることもある。
あとは、
-
グループ名はAWSアカウント名をprefixにするのが良い。
グループはAWSアカウントに割り当てる。
どのAWSアカウントに割り当てるべきかを見てわかるようにAWSアカウント名をprefixにする。
例えば、AWSアカウントAccountXのグループGroupAの場合、AccountX_GroupAとする。 -
権限セットはグループ名にするのが良い。
権限セットはユーザまたはグループに割り当てる。基本的にはグループに割り当てる。
どのグループに割り当てるべきかを見てわかるようにグループ名にする。
例えば、グループAccountX_GroupAの場合、権限セットAccountX_GroupAとする。
グループに割り当てたユーザに別の権限セットを割り当てたい場合
別のグループを作成して、別の権限セットを作成する。
そのグループに権限セットを割り当て、そのグループにユーザを割り当てる。
というのも、IAM Identity Centerのコンソール画面からAWSアカウントにユーザやグループを割り当てるのですが、
作成したグループがそのまま一覧に並ぶので、どのグループを割り当てるのか見分けがつきにくい。
作成した権限セットがそのまま一覧に並ぶので、どの権限セットを割り当てるのか見分けがつきにくい。
上記を回避するためにどのAWSアカウントに割り当てるのか一目でわかる命名規則が良いと思います。
おわりに
- IAMは、STS(Security Token Service)とかPassRoleとかあるので理解が大変。。。
AWS IAMのSTS(Security Token Service)
STSは、一時的なセキュリティ認証情報を提供するサービスです。これにより、信頼されたユーザーがAWSリソースにアクセスするための一時的な認証情報を取得できます。
AWS IAMのPassRole
PassRoleは、IAMロールを他のユーザーやサービスに渡すための権限です。例えば、あるユーザーが特定のIAMロールを使用するためには、そのロールを「PassRole」権限を持つユーザーに渡す必要があります。これにより、ユーザーはそのロールの権限を一時的に引き受けることができます。
- 少しでもみなさんの助けになりますように!