導入
社員が数十人・数百人になると、AWSアカウントごとにIAMユーザーを作るのは現実的ではありません。「社内の認証基盤とAWSを連携させたい」というニーズに応えるのが、IAM Identity Centerとフェデレーションです。
説明
フェデレーション(Federation) とは、既存の認証基盤(社内AD、Google Workspaceなど)の認証情報をそのまま使って、AWSへの一時的なアクセスを得る仕組みです。SAML 2.0 や OIDC(OpenID Connect) という標準プロトコルで実現します。
IAM Identity Center(旧称 AWS SSO)は、複数のAWSアカウント・アプリケーションへのアクセスを一元管理するサービスです。
flowchart LR
AD["社内AD/IdP"] -- "SAMLでフェデレーション" --> IC["IAM Identity Center"]
IC -- "シングルサインオン" --> A1["AWSアカウント1"]
IC -- "シングルサインオン" --> A2["AWSアカウント2"]
IC -- "シングルサインオン" --> A3["AWSアカウント3"]
- 社員は社内IDでサインインするだけで、権限のある複数のAWSアカウントに切り替えてアクセスできる
- IAMユーザーを個別に作る必要がなく、退職時のアカウント無効化も社内AD側で一元管理できる
- AWS Organizations(レッスン11)と組み合わせて使うのが標準構成
Amazon Cognito は少し役割が異なり、こちらは自社が作るWebアプリ・モバイルアプリのエンドユーザー認証を担うサービスです。
| 機能 | 役割 |
|---|---|
| ユーザープール(User Pool) | エンドユーザーのサインアップ・サインイン・ID管理(認証) |
| IDプール(Identity Pool) | 認証済みユーザーに一時的なAWS認証情報を発行(認可) |
IAM Identity Centerは「社員がAWS管理コンソール/CLIを使うための認証」、Cognitoは「一般ユーザーが自社アプリにログインするための認証」と使い分けます。
具体例
1つの会社の中に、まったく別物の「2種類のログイン」が同居します。主語で見分けるのがコツです。
- 社員300人が、複数のAWSアカウントを使い分ける … 各アカウントにIAMユーザーを300個ずつ作るのは非現実的。そこで社内の認証基盤(Active Directory)を IAM Identity Center にフェデレーション(SAML)連携。社員は普段の社内IDでサインインするだけで、権限のあるAWSアカウントへSSOで入れる。退職者が出たらAD側で無効化すれば全アカウントのアクセスが一括で止まる。
- 自社スマホアプリの利用者100万人がログインする … これはAWSを操作する人ではなく、アプリのエンドユーザー。→ Cognitoのユーザープールでサインアップ/サインインを管理し、Googleアカウントでのログインにも対応。
ありがちな誤りが「アプリの顧客ログインをIAMやIdentity Centerで作ろうとする」こと。問題文の主語が「社員・運用担当・複数アカウント管理」ならIdentity Center、「アプリの利用者・モバイルのログイン」ならCognito、と読み分けます。
読んでみよう
問題文に「社員」「運用担当者」「複数アカウントの一元管理」とあればIAM Identity Center、「アプリのエンドユーザー」「モバイルアプリのログイン機能」とあればCognito、と主語で見分けるのがコツです。