1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS】IAM vs IAM Identity Center:違いとベストプラクティスガイド

Posted at

はじめに

今更、となりますが。。
IAMコンソールからIAMユーザを作ろうとすると以下の選択が表示れます。

  • Identity Centerでユーザを指定する- 推奨
  • IAMユーザを作成します

image.png

そこで、以下について分かりやすく解説してみます。

  • 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ロールを割り当てる。

image.png

ログインイメージは以下の感じ。

  • IAMユーザでログインするとAWSコンソール画面が表示される。

image.png

IAM Identity Centerの場合

IAM Identity Centerでユーザやグループを作成する場合は以下のイメージ。

  • 複数のAWSアカウントを管理する。
  • 作成したユーザとグループはAWSアカウントに割り当てる。
  • ユーザまたはグループに権限セットを割り当てる。権限セットはIAMロールの集まり。

image.png

ログインイメージは以下。

  • ユーザでログインすると権限セット選択画面が表示される。
  • 選択した権限セットでのAWSコンソール画面が表示される。

image.png

ポイントとしては、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と統合されています。
image.png

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アカウントにユーザやグループを割り当てるのですが、

image.png

作成したグループがそのまま一覧に並ぶので、どのグループを割り当てるのか見分けがつきにくい。

(ユーザとグループの選択画面)
image.png

作成した権限セットがそのまま一覧に並ぶので、どの権限セットを割り当てるのか見分けがつきにくい。

(権限セットを選択画面)
image.png

上記を回避するためにどのAWSアカウントに割り当てるのか一目でわかる命名規則が良いと思います。

おわりに

  • IAMは、STS(Security Token Service)とかPassRoleとかあるので理解が大変。。。

AWS IAMのSTS(Security Token Service)
STSは、一時的なセキュリティ認証情報を提供するサービスです。これにより、信頼されたユーザーがAWSリソースにアクセスするための一時的な認証情報を取得できます。

AWS IAMのPassRole
PassRoleは、IAMロールを他のユーザーやサービスに渡すための権限です。例えば、あるユーザーが特定のIAMロールを使用するためには、そのロールを「PassRole」権限を持つユーザーに渡す必要があります。これにより、ユーザーはそのロールの権限を一時的に引き受けることができます。

  • 少しでもみなさんの助けになりますように!

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?