[アップデート] Security HubでIAM Access Analyzerの未使用アクセスFindingsが追加コストなしで使えるようになりました
こんにちは、AWS事業本部@福岡オフィスのべこみん(@beco_minn)です。
みなさん、新しくなったAWS Security Hub(以下、Security Hub)は使ってますか?
先日、Security Hubのダッシュボードの定期チェックをしていたところ、態勢管理コンソールで Low findings が急増していることに気づきました。急増の原因を調べてみたら、なかなか嬉しいアップデートが見つかったので本記事にてご紹介します。

ざっくりまとめ
- Security Hubの基本プランの機能に、IAM Access Analyzerの「未使用アクセスの検出」が追加された
- Security Hubを有効化していれば無料で使える
- すでにSecurity Hubを利用しているアカウントでもデフォルトで有効化されている
- 「態勢管理」ダッシュボードで検出結果を確認可能、「露出」の要素となることもあり
- 検出対象は4種類、いずれも過去90日間利用されていないものが対象
- 未使用のIAMロール
- 未使用のIAMユーザーアクセスキー
- 未使用のIAMユーザーパスワード
- 未使用のIAM権限(IAMロールまたはIAMユーザーに付与されているもの)
- Security Hubを有効化すると自動でIAM Access Analyzerに
サービスリンクアナライザーが作成される- 上記アナライザーは バージニア北部(us-east-1) のIAM Access Analyzerコンソールで参照可能
アップデートを見つけた経緯
普段運用しているサービスでSecurity Hubの定期チェックをしていたところ、態勢管理ダッシュボードの「Posture management finding trends」ウィジェットで Low findings が今年の5月21日頃から急増していることに気づきました。

新しくなったSecurity Hubのダッシュボードだとfindingsの増減の推移が見やすいので、こういう変化にすぐ気づけるのが良いですね。
ということで急増したfindingsを確認したところ、見慣れない Unused IAM Role や Unused Permission といったfinding typeが並んでいました。What's Newとユーザーガイドを確認したところ、どうやら5月20日頃に以下のアップデートがリリースされていたことが分かりました。
What's New: AWS Security Hub が未使用のアクセスによるアイデンティティリスクを明らかにするようになりました - AWS
ユーザーガイド: Security Hub で検出された未使用アクセスに関する問題の理解 - AWS Security Hub
何が変わったのか?
アップデート内容としては、Security Hubの機能にIAM Access Analyzerの未使用アクセス検出機能が追加された、というものです。
この未使用アクセス検出はIAM Access Analyzerの有料機能なので、Security Hubの基本料金の機能で利用できるようになったのは非常に嬉しいですね。不要なIAMリソースの棚卸しが捗ります。
Security Hubが担うCIEMの役割
ここで話は少し脱線しますが、実は新しくなったSecurity HubはCNAPP(Cloud Native Application Protection Platform)のような統合的セキュリティプラットフォームを目指しているような側面があります。
これに関する考察は昨年執筆されたこちらの記事をご参照ください。
新しいAWS Security HubはCNAPPなのか?現在のAWS環境でのCNAPPについて考えてみた | CloudNative BLOGs
上記記事には以下のような記載があります。
CIEM領域のうちIAMや各種AWSサービスの権限設定不備はAWS Security Hub CSPMで補うところと、IAM Access Analyzerによる検出の組み合わせです。
IAM Access Analyzerの内容を新しいAWS Security Hubで扱うことは現状できませんが、(以下略)
CIEMとはCloud Infrastructure Entitlement Managementの略称で、パブリッククラウドにおける権限を監視・修正するための管理ソリューションです。読み方は「キーム」です。
今回のアップデート(What's New)には以下のような記載があります。
Security Hub は、実際の使用パターンに基づいて推奨される最小権限ポリシーのオンデマンド生成も提供するため、チームが IAM アクセス許可を絞り込んでアタックサーフェスを減らすのに役立ちます。これらの機能は、一貫したワークフロー、自動化ルール、ダウンストリーム統合によって実現される、Security Hub のより広範なクラウドインフラストラクチャエンタイトルメント管理への基本的な第一歩になります。
引用元: AWS Security Hub が未使用のアクセスによるアイデンティティリスクを明らかにするようになりました - AWS
つまり今回のアップデートは、Security HubにCIEMが導入されてCNAPPに一歩近付いたもの、とも言えそうです。
それではここからは、当該機能についてユーザーガイドの内容を掻い摘んでご紹介します。
検出される4つのFinding type
Security Hubの未使用アクセスFindings typeには以下の4種類が含まれます。
| Finding type | 検出内容 | 評価対象 |
|---|---|---|
| UnusedIAMRole | 90日間Assume Roleされていないロール | IAMロール |
| UnusedIAMUserAccessKey | 90日間使われていないアクセスキー | IAMユーザー |
| UnusedIAMUserPassword | 90日間コンソールサインインに使われていないIAMユーザーのパスワード | IAMユーザー |
| UnusedPermission | ロール/ユーザーに付与されているが、90日間使われていない個別のIAM権限 | IAMロール/ユーザー |
これらの評価は24時間おきに行われ、findingが生成された評価対象が次の評価時(24時間後)までに利用された場合、該当のfindingは自動的に解決扱いになります。
また、UnusedPermission について、権限の一部(未使用権限)を削除した場合、既存のfindingはクローズされますが、残りの権限に未使用権限がまだ残っている場合には修正後のポリシーに対して新しいfindingが作成されます。
Service-linked analyzer(サービスリンクアナライザー)とは
今回のアップデートではService-linked analyzer(サービスリンクアナライザー)というものがIAM Access Analyzerに自動作成されます。
要するにSecurity Hubというサービスが管理するアナライザーということですね。このアナライザーには以下の特徴があります。
- Security Hubを有効化することで自動的に作成される
- 手動での設定は不要
- いずれかのリージョンでSecurity Hubを有効化している間はアナライザーの削除・変更不可
- Security Hubを全て無効化するとアナライザーは自動で削除される
- 自動削除が失敗した場合は
DeleteServiceLinkedAnalyzerAPIで削除可能だが、このAPI操作はSecurity Hubが完全に無効化された状態でないと失敗する
- 自動削除が失敗した場合は
- IAM自体がグローバルサービスなので、当該アナライザーはバージニア北部リージョンで実行される
- ただし、バージニア北部リージョンでSecurity Hubが有効化されている必要は無い
- 未使用アクセスのfindingsは全リージョンのSecurity Hubに複製・表示される
- 当該アナライザーはユーザーによってIAM Access Analyzerコンソール(バージニア北部)上から確認可能
ということで、作成されたアナライザーは実際にコンソール上から確認することができます。この場合、当該アナライザーはバージニア北部で作成されているため、IAM Access Analyzerのダッシュボードのリージョンがバージニア北部であることに注意が必要です。URLだと以下ですね。
実際に確認してみると、確かにありました。
- アナライザー一覧(アナライザー設定)

- アナライザー詳細

- 概要ダッシュボードでのアナライザー選択

- 概要ダッシュボードでの「未使用のアクセスに関する検出結果」

- 未使用のアクセス ダッシュボード

ちゃんとIAM Access Analyzerのダッシュボードからアナライザーの選択も可能で、検出結果を確認できますね。これを実質無料で使えるのは非常にありがたいです。
露出(Exposure findings)での未使用アクセスの扱い
今回の未使用アクセスの検出を簡単に確認できるのはSecurity Hubの「態勢管理」ダッシュボードからですが、実は露出(Exposure findings)の文脈情報としてもこの未使用アクセスの情報は付与されるそうです。
例えば、EC2インスタンスにアタッチされたIAMロールに未使用の権限がある場合、そのEC2のExposure findingに「このリソースにアタッチされたロールには未使用権限がある」というような補足情報が乗ります。
本記事執筆時点で、対象となるリソースタイプは以下の通りです。
- Amazon EC2 インスタンス
- AWS Lambda 関数
- Amazon ECS サービス
- Amazon EKS クラスター
- IAMユーザー
未使用の権限に関するポリシー推奨
UnusedPermission findingに対して、Security Hubは実際の権限使用パターンに基づいた最小権限ポリシーの推奨を生成してくれるとのことです。これもIAM Access Analyzerのポリシー生成機能のようなものですね。後述しますが、叩いているAPI自体は異なるようです。
Security Hubにおける本機能の詳細は下記ガイドに記載してあります。
Generating policy recommendations for unused access findings - AWS Security Hub
実際に確認してみます。下記画面はIAMロールのUnusedPermission finding詳細を開き、「改善」タブを押した画面です。

赤枠部を拡大したものが下図です。確かにステップ3として具体的な是正ポリシーやデタッチなどの操作が記載されています。

ちなみにこの是正内容は、「改善」タブを開いた時点で生成が開始されます。生成には数十秒ほどかかります。以下は開いた直後の「改善」タブです。

この操作では GenerateRecommendedPolicyV2 というAPIが叩かれるようです。変更ログを確認したところ今年の5月5日に作成されたAPIのようですね。

引用元: Change log of AWS IAM permissions
単に「未使用権限があります」と教えてくれるだけでなく、実際に使っているアクションだけを残した置き換え用ポリシーまで提示してくれるのは便利ですね。もちろん、生成されたポリシーをそのまま鵜呑みにするのではなく、レビューした上で適用する流れになります。
最後に
今回は、Security HubにIAM Access Analyzerの未使用アクセスFindingsが追加コストなしで統合されたというアップデートをご紹介しました。
個人的に今まで「割とお得かも?」という印象だった新Security Hubですが、今回のアップデートを受けて「かなりお得じゃない?」という印象に変わりました。未使用IAMの棚卸しが実質無料でここまで簡単にできるのは最高ですね。
これを機に、コスト面を意識した上で皆さんも是非Security Hubを有効化してみてはいかがでしょうか。
本記事がどなたかのお役に立てれば幸いです。
以上、べこみんでした。







