従来の IAM ユーザー棚卸し手法は IAM Identity Center で管理するユーザーにも通用するのか確認してみた

できないことを確認したという情報が欲しかった。
2024.06.23

未使用 IAM ユーザーの定期的な棚卸しは、セキュリティリスク軽減に不可欠です。 本記事では、AWS IAM Identity Center 環境で従来の棚卸し手法を用いて「n 日以上ログインしていないユーザーを特定」できるのか検証します。

確認結果

検証した 4 つの方法は、IAM Identity Center 管理ユーザーには非対応でした。

  1. 認証情報レポート
  2. AWS Config の特定ルール
  3. IAM Access Advisor
  4. IAM Access Analyzer の未使用アクセスアナライザー

以下、各方法の詳細な検証結果を説明します。

AWS IAM Identity Center 概要

AWS IAM Identity Center は、AWS アカウントへのシングルサインオンを提供します。 詳細は以下のブログをご覧ください。

未使用ユーザーの棚卸し手法検証

今回の目的は、IAM Identity Center 管理ユーザーの中で、n 日以上ログインしていないユーザーを特定することです。

IAM 管理ユーザーの場合、マネジメントコンソールで簡単に確認できます。

ユーザー___IAM___Global

残念ながら Identity Center で管理しているユーザーは「最後のアクティビティ」の様な情報をマネージメントコンソールから確認できません。

ユーザー___IAM_Identity_Center___ap-northeast-1

手間をかけずに未使用ユーザーを検出する方法はないかと、棚卸しでよく知られている以下の 4 つの方法を検証しました。

  1. 認証情報レポート
  2. AWS Config の特定ルール
  3. IAM Access Advisor
  4. IAM Access Analyzer の未使用のアクセスアナライザー

前提条件

  1. AWS Organizations 利用中
  2. IAM Identity Center のアイデンティティソース:Identity Center Directory
    • (AWS IAM Identity Center 提供の独自 ID ストア)
  3. AWS Control Tower 未使用

認証情報レポートの検証

認証情報レポートは、IAM 管理ユーザーの認証情報一覧を提供する機能です。

検証内容

認証情報レポートに IAM Identity Center 管理のユーザー情報は載ってこないのでしょうか?検証の結果、以下のことが分かりました。

  • IAM Identity Center を管理しているアカウントで認証情報レポートを出力しても、そのアカウントの IAM 管理ユーザーの情報のみが出力されます
  • 管理アカウントで認証情報レポートを出力すると、管理アカウントの IAM 管理のユーザー情報のみが出力されます
  • メンバーアカウントで認証情報レポートを出力すると、そのメンバーアカウントの IAM 管理のユーザー情報のみが出力されます

IAM Identity Center を管理しているアカウントの認証情報レポートの例をあげます。こちらは IAM 管理のユーザーは一切作成せずに IAM Identity Center で一元管理している環境です。認証情報レポートには root ユーザーの情報しか載ってきませんでした。

status_reports_Fri_Jun_21_2024_09_53_45_GMT_0900__日本標準時_

確認結果

認証情報レポートには IAM Identity Center 管理のユーザー情報は出力されない。

AWS Config の検証

未使用ユーザー確認には、AWS Config のiam-user-unused-credentials-checkルールが一般的です。

検証内容

この Config ルールの対象に IAM Identity Center 管理のユーザー情報は含まれるのでしょうか?検証の結果、以下のことが分かりました。

  • IAM 管理のユーザーのみが対象

リソース___AWS_Config___ap-northeast-1

確認結果

IAM Identity Center 管理のユーザーは対象外である。

IAM Access Advisor の検証

IAM Access Advisor は、アクセス権を持つサービスの最終アクセス日時を表示します。未使用ユーザーの判断材料としては粒度が細かいので少し遠回りにはなりますが有用です。

iam-test-user___IAM___Global

検証内容

IAM Access Advisor は IAM Identity Center のユーザーでも利用可能か?検証の結果、以下のことが分かりました。

  • IAM Identity Center のユーザーから IAM Access Advisor の情報を確認できない
  • アクセスアドバイザーのタブ表示がない

ユーザーの詳細___IAM_Identity_Center___ap-northeast-1

確認結果

IAM Identity Center 管理のユーザーは IAM Access Advisor 機能が利用できない。

IAM Access Analyzer の検証

IAM Access Analyzer の未使用アクセスアナライザーは未使用の IAM ユーザー、IAM ロールを確認できます。 アカウント単体でも、AWS Organizations 配下のメンバーアカウントに対しても実行できます。

検証内容

IAM Access Advisor は IAM Identity Center のユーザーでも利用可能か?検証の結果、以下のことが分かりました。

  • IAM Identity Center のユーザーは対象外だった
  • もちろん IAM 管理のユーザーであれば確認できます

未使用のアクセス___Access_Analyzer___ap-northeast-1-3

注意:Organizations 全体での利用は、リソース数や対象アカウント数に応じてコストが増加する可能性があります。

請求書___Billing_and_Cost_Management___Global-7

確認結果

IAM Access Analyzer の未使用アクセスアナライザーは IAM Identity Center 管理のユーザーは検出対象外でした。

まとめ

本検証により、従来の IAM 管理ユーザー棚卸し手法は、IAM Identity Center 管理ユーザーに適用できないことが判明しました。

  1. 認証情報レポート
    • IAM Identity Center 管理のユーザー情報を含まず
  2. AWS Config
    • IAM Identity Center 管理のユーザーは非対応
  3. IAM Access Advisor
    • IAM Identity Center 管理のユーザーは利用不可
  4. IAM Access Analyzer の未使用のアクセスアナライザー
    • IAM Identity Center 管理のユーザーは非対応

今後の展望

IAM Identity Center 管理ユーザーの未使用アカウント検出には、現状 CloudTrail のログ分析が最も有効と考えられます。

Logging IAM Identity Center API calls with AWS CloudTrail - AWS IAM Identity Center

次回は CloudTrail から確認方法を模索してみます。

参考