前の記事では、 Amazon Cognitoについて学びました。
Cognitoは、Webサイトやモバイルアプリを利用する エンドユーザーの認証に利用できるサービスでした。
では、企業で働く社員が複数のAWSアカウントを利用する場合は どのようにアクセスを管理すればよいのでしょうか?
社員ごとに各AWSアカウントへIAMユーザーを作る?
AWSアカウントが増えるたびにIAMユーザーを個別管理すると、 ユーザーや権限の管理が複雑になっていきます。
そこで利用できるのが、 AWS IAM Identity Centerです。
IAM Identity Centerが 「組織のユーザーによるAWSアカウントやアプリケーションへのアクセスを一元管理する仕組み」 であることを理解し、IAMやAmazon Cognitoとの違いを説明できる状態を目指します。
IAM Identity Centerとは?
AWS IAM Identity Centerは、 企業などの組織で働くユーザーの AWSアカウントやアプリケーションへのアクセスを一元管理 するためのサービスです。
以前は AWS Single Sign-On(AWS SSO) という名称でした。
名前は変わりましたが、 複数のAWSアカウントなどへのアクセスを まとめて管理できるという考え方が重要です。
組織でAWSを利用するユーザーやグループを管理
どのAWSアカウントで何ができるかを管理
割り当てられたAWSアカウントやアプリへアクセス
なぜIAM Identity Centerが必要なの?
1つのAWSアカウントしか利用していない場合は、 複数アカウント管理の問題をイメージしにくいかもしれません。
しかし企業では、 用途ごとにAWSアカウントを分けることがあります。
ここに複数の社員がアクセスするとします。
各AWSアカウントへ社員ごとのIAMユーザーを個別に作成すると、 AWSアカウントが増えるほど管理対象も増えていきます。
佐藤IAMユーザー
鈴木IAMユーザー
佐藤IAMユーザー
鈴木IAMユーザー
佐藤IAMユーザー
鈴木IAMユーザー
社員が退職した場合などには、 複数のAWSアカウントに存在するユーザーを確認する必要もあります。
そこで、 ユーザーとAWSアカウントへのアクセスを 中央で管理する考え方が重要になります。
IAM Identity Centerならアクセスを一元管理できる
IAM Identity Centerを利用すると、 どのユーザーが、どのAWSアカウントへ、どの権限でアクセスできるか を中央で管理できます。
AWS Organizationsと組み合わせることで、 組織内の複数AWSアカウントへのアクセス権限を IAM Identity Centerから管理できます。
SSO(シングルサインオン)とは?
IAM Identity Centerを理解するときに覚えておきたいのが SSO(Single Sign-On)です。
SSOとは、 一度の認証によって複数のサービスやシステムへアクセスしやすくする仕組み です。
ユーザーはIAM Identity Centerの AWSアクセスポータルへサインインすると、 自分に割り当てられているAWSアカウントやアプリケーションを確認できます。
AWSアクセスポータルからAWSアカウントへアクセスする
IAM Identity Centerを利用するユーザーは、 AWSアクセスポータルから 割り当てられたAWSアカウントへアクセスできます。
ただし、 表示されているAWSアカウントで 何でも操作できるわけではありません。
そこで重要になるのが Permission Set(アクセス許可セット) です。
Permission Set(アクセス許可セット)とは?
Permission Setは、 IAM Identity Centerで ユーザーやグループがAWSアカウントで利用できる権限を定義する仕組み です。
たとえば、 次のようなアクセス許可セットを用意できます。
そして、 ユーザー・AWSアカウント・Permission Setを 組み合わせてアクセスを割り当てます。
田中さんは「開発AWSアカウント」に 「PowerUser相当の権限」でアクセスできる
Permission SetとIAMポリシーは何が違う?
以前の記事で学習した IAMポリシーとの違いも整理しておきましょう。
どのAWSサービスに対して どの操作を許可・拒否するかを定義
IAMポリシーなどを利用して AWSアカウントで利用する権限を定義
Permission Setには、 AWS管理ポリシーやカスタマー管理ポリシー、 インラインポリシーなどを利用できます。
Permission Setを割り当てるとIAMロールが作られる
Permission Setは、 単にIAM Identity Centerの画面上だけで動作する仕組みではありません。
ユーザーやグループにAWSアカウントへのアクセスを割り当てると、 IAM Identity Centerによって対象AWSアカウント側に 対応するIAMロールが作成・管理されます。
ここで、以前学習した IAMロールの知識につながります。
ユーザーはIAM Identity Center経由で 割り当てられたロールを利用してAWSへアクセスします。
IAM Identity CenterからAWSアカウントへアクセスするときも、 IAMロールと一時的な認証情報が重要な役割を持っています。
ユーザー情報はどこで管理する?
IAM Identity Centerでは、 ユーザー情報をIAM Identity Center内で管理することもできます。
一方、すでに企業で利用している 外部のIDプロバイダーやディレクトリ と連携することもできます。
ディレクトリ
Identity Provider
Active Directory
つまり、 すでに企業で利用しているユーザー管理の仕組みを AWSアクセスにも活用できます。
Active DirectoryとIAM Identity Centerを連携する方法については、 既存の関連記事で詳しく解説しています。 初級では「既存のユーザー管理基盤と連携できる」と理解できれば十分です。
IAM Identity CenterとActive Directoryの連携を詳しく見る →IAM・Cognito・IAM Identity Centerの違い
ここまで学習した認証・認可関連のサービスを 一度整理してみましょう。
| 仕組み | 主な対象 | 主な用途 |
|---|---|---|
| IAM | AWSのワークロードやIAMアイデンティティなど | AWSリソースへのアクセス権限を管理 |
| Amazon Cognito | アプリのエンドユーザー | Web・モバイルアプリのユーザー認証・認可 |
| IAM Identity Center | 組織のワークフォースユーザー | AWSアカウントやアプリへのアクセスを一元管理 |
理解度チェック:どのサービスを使う?
IAM・Cognito・IAM Identity Centerの どれを使うのが適しているか考えてみましょう。
この場面では何を使う?
「誰のアクセスを管理するのか」に注目しましょう。
初心者が間違えやすいポイント
① IAM Identity CenterとIAMは同じもの
名前にはどちらも「IAM」が入っていますが、 役割は同じではありません。
IAMはAWSリソースへのアクセス制御の基盤となるサービスで、 IAM Identity Centerは ワークフォースユーザーのAWSアカウントやアプリへのアクセスを一元管理 するために利用します。
② Permission SetはIAMポリシーとまったく同じ
Permission Setは、 IAMポリシーなどを利用して AWSアカウントで利用する権限を定義する アクセス権限のテンプレートです。
③ IAM Identity CenterはCognitoの代わりになる
CognitoとIAM Identity Centerでは、 主な対象となるユーザーが異なります。
確認問題:IAM Identity Centerを理解できたか確認しよう
IAM Identity Centerの主な用途として適切なのはどれですか?
IAM Identity Centerは、 ワークフォースユーザーのAWSアカウントや アプリケーションへのアクセスを一元管理できます。
Permission Setの役割として適切なのはどれですか?
Permission Setは、 ユーザーやグループがAWSアカウントで利用する アクセス権限を定義するための仕組みです。
ECサイトの一般会員をログインさせたい場合、より適しているサービスはどれですか?
Web・モバイルアプリなどの エンドユーザー認証にはAmazon Cognitoを利用できます。 IAM Identity Centerは主に組織のワークフォースユーザーを対象とします。
3問に挑戦してみましょう。
まとめ
IAM Identity Centerは 組織のユーザーによるAWSアカウントやアプリへのアクセスを一元管理 できる
複数のAWSアカウントへのアクセスを 中央から管理できる
ユーザーは AWSアクセスポータルから割り当てられたAWSアカウントなどへアクセスできる
Permission Setによって、 AWSアカウントで利用する権限を定義する
外部IdPやActive Directoryなどの 既存のユーザー管理基盤と連携することもできる
次はAWSで必要になるネットワークの基礎を学ぼう
ここまでAWSの基本やIAM関連の仕組みについて学んできました。
ここからVPCやEC2など、 AWSの具体的なサービスを理解していくためには ネットワークの基礎知識が重要になります。
たとえばAWSでは、 VPC・サブネット・ルートテーブル・Route 53など、 ネットワークの知識を前提としたサービスや機能が数多く登場します。
次の記事では、 AWSを本格的に学習する前に知っておきたい TCP/IP・DNS・ルーティングの基礎を整理します。
次は「AWSで必要なネットワーク基礎」を学びましょう
AWSのVPCやEC2を理解するための土台となる TCP/IP・DNS・ルーティングの基本を学習します。
「AWSの設定がなぜ必要なのか」を理解するための重要な基礎 です。
AWSを学ぶ前に知っておきたいTCP/IP・DNS・ルーティング →
