AWS IAM Identity Center入門|マルチアカウント環境のシングルサインオン設計と運用ガイド

Cloud Security

AWSの利用アカウントが増えてくると、「アカウントごとにIAMユーザーを作るのが限界になってきた」「全員のアクセスをどこか一か所で管理したい」という問題が出てきます。オンプレ環境では Active Directory(AD)が担っていたユーザー一元管理を、マルチアカウントのAWS環境でどう実現するか。答えが AWS IAM Identity Center(旧AWS SSO)です。

この記事では、IAM Identity Centerの基本概念からPermission Set設計・CLI連携・よくあるトラブルまで、オンプレ経験者にとってわかりやすい形で解説します。

AWS IAM Identity Center入門|マルチアカウント環境のシングルサインオン設計と運用ガイド

なぜ IAM Identity Center なのか?オンプレの Active Directory との比較

オンプレ環境での「認証の中心」はほぼ必ずActive Directory(AD)でした。ADドメインにログインすれば、Kerberosチケットでファイルサーバーも業務アプリも認証が通る。その体験に慣れていると、AWSへの移行後に「なぜアカウントごとに別々のIAMユーザーを作らなければならないのか」と感じるのは当然です。

アカウントが3つ4つなら何とかなります。しかし本番・開発・ステージング・セキュリティ監査用……と分割が進み、10個・20個となると、IAMユーザーの個別管理は事実上不可能になります。パスワードの失念、MFAデバイスの乱立、退職者のアカウント残存——こうした問題が起きやすい状態です。

AWS IAM Identity Center は、この問題を解消するためのサービスです。

比較項目 オンプレ(Active Directory) AWS IAM Identity Center
ユーザー管理の場所 ADドメインコントローラー IAM Identity Center(またはAD/外部IdPと連携)
認証プロトコル Kerberos / NTLM SAML 2.0 / OIDC
アクセス先 ドメイン参加済みのサーバー・業務アプリ 複数のAWSアカウント・SaaSアプリ
MFA RSAトークン等(別途導入が多い) 組み込み(TOTP / FIDO2対応)
料金 Windowsライセンス + CAL IAM Identity Center本体は無料

特に注目すべきは 料金が無料 という点です。オンプレのAD運用ではCALのコストが積み重なりますが、IAM Identity Center自体には追加費用がかかりません。

IAM Identity Center の基本概念

設定の前に、重要なキーワードを整理しておきます。

1. AWS Organizations との関係

IAM Identity Centerは AWS Organizations の管理アカウント上で有効化し、Organizations配下の複数アカウントにSSOを提供します。Organizationsを使っていない環境でも単体利用できますが、マルチアカウント管理が主なユースケースです。

2. アクセス許可セット(Permission Set)

オンプレのグループポリシーに近い概念です。「このロールにはReadOnlyAccess」「管理者グループにはAdministratorAccess」といった権限をPermission Setとして定義し、ユーザー・グループ・AWSアカウントの3つを組み合わせて割り当てます。

3. アクセスポータル

ユーザーがログインする画面です。https://d-xxxxxxxx.awsapps.com/start のようなURLで、ここからシングルサインオンで各AWSアカウントのコンソールに入れます。ユーザーからすると「ここに来て使いたいアカウントを選ぶだけ」という体験です。

4. IDソース(Identity Source)

どこのユーザー情報を認証に使うかを指定します。

IAM Identity Center(組み込み): IAM Identity Center上でユーザーを直接作成・管理するシンプルな方法
Active Directory(AWS Managed Microsoft AD / AD Connector): 既存のオンプレADやAWS Directory Serviceと連携する方法
外部IdP(Okta / Microsoft Entra ID 等): SAML 2.0対応のIdPを使う方法

オンプレからの移行案件では「既存のADをそのまま使いたい」というニーズが多く、AD Connectorでオンプレと接続するケースが目立ちます。新規構築ならOktaやEntra ID連携を選ぶ現場も増えています。

基本的な設定手順(組み込みIDソースの場合)

まず最もシンプルな「IAM Identity Center組み込みIDソース」での手順を説明します。本番環境では既存ADとの連携も検討してください。

1. IAM Identity Center の有効化

Organizations の管理アカウント(旧マスターアカウント)でコンソールにアクセスし、IAM Identity Centerを有効にします。

# AWS CLIで有効化状態を確認する aws sso-admin list-instances # 有効化はマネジメントコンソールから行う # IAM Identity Center → 「有効にする」ボタン # # ※リージョン選択に注意: 有効化後はリージョン変更不可 # 日本ユーザーが多い環境では東京リージョン(ap-northeast-1)を推奨

注意点: 有効化時に選択するリージョンは後から変更できません。間違えた場合はIAM Identity Centerを無効化して再作成が必要なので、最初に慎重に選んでください。

2. ユーザーとグループの作成

コンソールの「IAM Identity Center → ユーザー → ユーザーの追加」から作成します。CLIでも操作可能です。

# AWS CLIでユーザーを作成する(identity-store-idはコンソールで確認) aws identitystore create-user \ --identity-store-id d-xxxxxxxxxx \ --user-name "taro.yamada" \ --name "FamilyName=山田,GivenName=太郎" \ --emails "Value=taro.yamada@example.com,Type=work,Primary=true" # グループの作成 aws identitystore create-group \ --identity-store-id d-xxxxxxxxxx \ --display-name "CloudAdmins" \ --description "クラウドインフラ管理者グループ"

3. アクセス許可セット(Permission Set)の作成

「IAM Identity Center → アクセス許可セット → アクセス許可セットの作成」から作成します。AWSマネージドポリシーを使う場合と、カスタムポリシーを直接記述する場合があります。

# Permission Set の作成 aws sso-admin create-permission-set \ --instance-arn "arn:aws:sso:::instance/ssoins-xxxxxxxxxx" \ --name "ReadOnlyAll" \ --description "全サービスへの読み取り専用アクセス" \ --session-duration "PT8H" # AWSマネージドポリシーをアタッチ aws sso-admin attach-managed-policy-to-permission-set \ --instance-arn "arn:aws:sso:::instance/ssoins-xxxxxxxxxx" \ --permission-set-arn "arn:aws:sso:::permissionSet/ssoins-xxx/ps-xxx" \ --managed-policy-arn "arn:aws:iam::aws:policy/ReadOnlyAccess"

4. アカウントへのアクセス権限の割り当て

「どのユーザー/グループが」「どのAWSアカウントに」「どのPermission Setで」アクセスできるかを定義します。ここが IAM Identity Center設定の核心部分です。

# グループをAWSアカウントとPermission Setに割り当てる aws sso-admin create-account-assignment \ --instance-arn "arn:aws:sso:::instance/ssoins-xxxxxxxxxx" \ --target-id "123456789012" \ --target-type AWS_ACCOUNT \ --permission-set-arn "arn:aws:sso:::permissionSet/ssoins-xxx/ps-xxx" \ --principal-type GROUP \ --principal-id "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

この割り当てが完了すると、対象のグループに所属するユーザーがアクセスポータルにログインしたとき、割り当てられたAWSアカウントがリストに表示され、ワンクリックでコンソールに入れるようになります。

料金の仕組み(コスト感覚)

IAM Identity Center本体の料金は 無料 です。ただし、連携するサービスによって追加コストが発生する場合があります。

サービス 料金(2026年3月時点) 備考
IAM Identity Center本体 無料 ユーザー数・アカウント数に関係なく無料
AWS Organizations 無料 マルチアカウント管理の前提として必要
AWS Managed Microsoft AD 約$0.14〜$0.17/時間(スモールエディション) クラウド上でADを新規構築する場合
AD Connector 約$0.05〜$0.10/時間 オンプレADとVPN/Direct Connect越しに連携する場合
外部IdP(Okta等) 各IdPの料金体系による SaaS型IdPを使う場合は別途ライセンス費用

「IDソースをIAM Identity Center組み込みにする」なら追加費用ゼロです。既存のADをそのまま活用したい場合はAD Connectorのコストが発生しますが、オンプレのWindowsライセンスやCAL費用と比較すれば、大幅なコスト削減になるケースが多いです。

応用・実務 Tips

1. AWS CLI から SSO 経由で一時認証情報を取得する

コンソールのSSOだけでなく、AWS CLIもIAM Identity Center経由で認証できます。開発者がローカル環境から複数アカウントに接続する際に特に便利です。

# ~/.aws/config に設定を追加する [profile dev-account] sso_session = my-sso sso_account_id = 123456789012 sso_role_name = PowerUserAccess region = ap-northeast-1 [sso-session my-sso] sso_start_url = https://d-xxxxxxxx.awsapps.com/start sso_region = ap-northeast-1 sso_registration_scopes = sso:account:access # ログイン(ブラウザが開いて認証) aws sso login --profile dev-account # 認証後は通常どおりCLIを使える aws s3 ls --profile dev-account aws ec2 describe-instances --profile dev-account

注意: この機能は AWS CLI v2 以降 が必要です。v1では sso login コマンドが使えません。

2. セッション時間の設計

Permission Setの「セッション期間(session duration)」は、業務の実態に合わせて設定します。

本番環境(短め PT1H〜PT4H): セキュリティインシデント時の被害範囲を最小化
開発環境(長め PT8H〜PT12H): 作業効率を優先。毎時間の再認証を避ける
上限は PT12H: 12時間を超える設定は不可

3. 外部 IdP との連携(Okta / Microsoft Entra ID)

全社的にOktaやMicrosoft Entra ID(旧Azure AD)を導入済みの企業では、それらをIAM Identity CenterのIDソースとして設定することで、一つのポータルからSaaSもAWSも統合してアクセスできます。連携にはSAML 2.0のメタデータファイルの交換が必要で、各IdPの管理コンソールでAWSとの信頼関係を設定する手順が発生します。

LinuxサーバーとのID統合については、姉妹サイトLinuxMaster.JPでSSHキー管理や認証の基礎も解説しています。

よくあるトラブルと対処法

1. アクセスポータルにアカウントが表示されない

原因: アカウントへの割り当てが完了していないか、対象ユーザーが正しいグループに所属していない。
対処法: 「IAM Identity Center → AWSアカウント → 対象アカウントの割り当て」を確認し、グループとPermission Setが正しく設定されているか見直す。また、新規割り当て後は数分かかる場合があるため、少し待ってからリロードする。

2. Permission Set 変更後も古い権限のままになる

原因: Permission Setを変更しても、既存のアクティブセッションには即時反映されない。
対処法: 対象ユーザーに一度ログアウト→再ログインを依頼する。セッション期間を短く設定しておけば、自動的に権限が更新されるタイミングが早まる。

3. aws sso login でエラーになる

# まずAWS CLIのバージョンを確認 aws --version # aws-cli/2.x.x が必要(1.x系では sso login が使えない) # キャッシュが古い場合はクリアして再試行 rm -rf ~/.aws/sso/cache/ aws sso login --profile dev-account

原因: AWS CLI v1を使っている、またはSSOキャッシュが壊れている。
対処法: v2にアップグレードし、キャッシュを削除してから再試行する。

4. Active Directory 連携後にユーザーが反映されない

原因: AD ConnectorやAWS Managed Microsoft ADからの同期は即時ではなく、数分〜十数分の遅延がある。
対処法: しばらく待ってから確認する。それでも反映されない場合は、AD ConnectorのVPN/Direct Connect接続状態と、Directory Serviceのイベントログを確認する。

本記事のまとめ

項目 内容
主な用途 マルチアカウント環境でのSSO・ユーザー一元管理
料金 IAM Identity Center本体は無料。AD連携時はAD Connector等のコストが別途発生
IDソースの選択肢 ①IAM Identity Center組み込み ②オンプレAD連携 ③外部IdP(Okta/Entra ID)
設定の核心 Permission Setをユーザー/グループ × AWSアカウントの組み合わせで割り当てる
CLI対応 aws sso loginで一時認証情報を取得可能(AWS CLI v2必須)
オンプレとの対応関係 ADドメイン→Organizations / グループポリシー→Permission Set / ドメインログオン→アクセスポータル

AWS IAM Identity Centerは、オンプレのActive Directoryが担っていた「認証の一元管理」をクラウドマルチアカウント環境に持ち込むサービスです。無料で使えるうえ、既存ADや外部IdPとの連携も可能で、導入のハードルは決して高くありません。

アカウント数が増えてきたタイミング、あるいは退職者アカウントの棚卸しを機会に、IAM Identity Centerへの移行を検討してみてください。個別のIAMユーザー管理に費やしていた工数が、大幅に削減されます。

マルチアカウント管理に悩んでいませんか?

アカウントが増えるほど、IAM管理は複雑になります。IAM Identity Centerの設計パターンから、組織全体のクラウドセキュリティ戦略まで。
オンプレの経験を活かしながら、現場で使えるクラウドスキルを体系的に身につけたい方へ、メルマガで実践的なクラウド活用ノウハウをお届けしています。

コメント

タイトルとURLをコピーしました