Security Hub Essentials で IAM Access Analyzer Unused Access が自動的に利用可能になりました

記事タイトルとURLをコピーする

セキュリティサービス部 佐竹です。
新 Security Hub (SecurityHubV2)で、嬉しいアップデートがありましたのでご紹介します。

はじめに

新しく生まれ変わった方の AWS Security Hub (SecurityHubV2)を利用されていらっしゃるお客様はまだ少ないかと存じますが、この新 Security Hub で非常によいアップデートがありました。

aws.amazon.com

記事タイトル「AWS Security Hub now uncovers identity risks from unused access」ということで「AWS Security Hub が未使用アクセスからのアイデンティティリスクを検出可能になりました」。

それでは本アップデートを深堀してみましょう。

何が嬉しいのか?

機能の自動有効

AWS Security Hub における Unused Access の分析は、「IAM Access Analyzer Unused Access」の機能そのものを利用します。

この機能は、既に AWS Security Hub Essentials (基本となる Essentials plan) をご利用されているお客様にて、「自動的に有効化」されます。実際、弊社の検証環境ではこのアップデートと同時に、自動的に有効化されていました。

新たに AWS Security Hub を有効化される場合にも、同時に有効化されます。

有効化される時のアナライザーの設定条件

IAM Access Analyzer Unused Access が AWS Security Hub によって有効化される条件ですが、以下の通りであることが確認できています。

  • リージョン:バージニアリージョンにアナライザーが作成される
  • 組織単位での有効化かどうか:「Current account」で各 AWS アカウントごとにアナライザーが作成される (管理アカウントも対象)
  • Tracking period:追跡期間は「90日」に固定され、変更できない
  • 利用料:AWS Security Hub Essentials に含まれるため追加料金なし

以下は、上記各項目の解説です。

バージニアリージョンに作成される

自動作成される Unused Access のアナライザーは、バージニアリージョンに作成となります。

実際に確認してみると、_AccessAnalyzerForSecurityHubV2-************ という名称のアナライザーが作成されていることがわかります。

また、「Managed by」が「AWS Security Hub」となっている点も特徴です。

Current account で各 AWS アカウントごとに作成される

ここで、既存の「External access」の設定と見比べてみていただきたいと思います。

この External access は、手動で作成したもので、「Zone of trust: Current organization (o-xxxxxxxxxx)」となっています。つまり、アナライザーの作成時に「Analyzer details」で「Current organization」を選択しています。これをすれば、これ1つで全ての組織のアカウントを分析できるためです。

ですが、「Managed by」が「AWS Security Hub」の Unused においては、「Current account」で各 AWS アカウントごとにアナライザーが作成されます。要は、Organizations の機能を用いておらず、AWS アカウントに「1つずつ Unused Access のアナライザーが作成される」ということです。ここは少々意外でしたが、一旦そのような仕様です。

念のため管理アカウントでも調べましたが、管理アカウントにも問題なく「Current account」で Unused Access のアナライザーが作成されていました。

追跡期間は「90日」固定

docs.aws.amazon.com

AWS 公式ドキュメントにも記載がありますが、分析される期間は90日です。

90-day lookback period.

上画像はドキュメントの画面キャプチャとなりますが、90-day lookback period. というキーワードで検索してもわかる通りです。

Tracking period

マネジメントコンソール上でも「90日間」の設定となっていることが確認できます。

また、IAM Access Analyzer で作成された既存のアナライザー(Analyzers)は、仕様として「設定変更が不可能」です。設定変更する場合は、一度アナライザー自体を削除して、再作成しなければなりません。

よって、現時点では追跡期間は「90日」固定であり、変更できないという認識が必要です。

利用料金は無料

これも What's New ページ及び、AWS 公式ドキュメントにある通りですが、利用料金は発生しません。

The service-linked IAM Access Analyzer is provided to all Security Hub customers at no additional cost. You are not separately charged for the analyzer or for unused access findings.

[翻訳]

サービスに紐づいた IAM アクセスアナライザーは、Security Hub をご利用のお客様すべてに無料で提供されます。アナライザー自体や、未使用のアクセス解析結果に対して別途料金が発生することはありません。

なお、What's New には These capabilities are included with Security Hub Essentials at no additional cost. と記載があります。この「Security Hub Essentials」というのは、新 Security Hub の基本プランであり、有効化すると自動的にこの基本プランになりますので、Security Hub を有効化している場合と読み替えていただいて問題ありません。

既存の Unused Access を消したほうが良いかどうか

これまで見てきたように、AWS Security Hub で IAM Access Analyzer Unused Access が自動的に有効化され、ドキュメントの通り本機能は無料になっています。ただし、また後ほど補足説明をしますが、AWS Security Hub の通常料金に含まれるために追加料金がかからないという意味の無料であり、完全な無料という意味ではない点に注意してください。

さて、そもそも IAM Access Analyzer Unused Access は有料であり高額になりがちな機能でした。具体的には「1 か月あたりに分析された IAM ロールとユーザーの数 : USD 0.20 /分析された IAM ロールまたはユーザー/月」という費用が発生します。

blog.serverworks.co.jp

本機能を不用意に有効化すると、意図せずに高額な利用料を発生させてしまいかねない機能のため、上記のブログを記述して警告を促しました。実際に、Unused Access で意図せず高額な請求を受けたケースを確認しています。

そして今回、AWS Security Hub が IAM Access Analyzer Unused Access を無料で包括する(既存の機能の利用料金に含まれるため追加費用なし)という仕組みになったため、新 Security Hub と、自前で作成した IAM Access Analyzer Unused Access を両方保持しているユーザは、作成済の「IAM Access Analyzer Unused Access を削除する」ことで、シンプルにコスト削減が可能です。

ただし設定が「Zone of trust: Current organization」ではないため、集約アカウント(Delegated Administrator)の IAM Access Analyzer の画面から AWS Organizations 全体の Findings の閲覧ができなくなる、という違いはあります。

ですが、組織全体の Findings は AWS Security Hub の画面で閲覧できるようになるため、利用するコンソール(UI)を移動できるなら運用上も問題がないでしょう。

IAM principals with most posture management findings

今後 AWS Security Hub の益々の進化/機能追加も期待できますので、これを機に AWS Security Hub の画面に慣れるのもよいかもしれません。

Unused Access のコスト最適のために切り替えを検討できるか?

IAM Access Analyzer Unused Access の利用料を組織全体で見積もる方法」で記述したように、Unused Access は時に高額なコストを発生させてしまいかねません。

ですが、どうしてもこの機能を使いたい、という場合もあると存じます。その場合に、エンジニアブログにてご紹介した「一時的に有効化する」という回避策ではなく「Unused Access を AWS Security Hub の一部の機能として使ってしまう」という案も考えられます。

ネイティブの Unused Access は「1 か月あたりに分析された IAM ロールとユーザーの数 : USD 0.20 /分析された IAM ロールまたはユーザー/月」という費用ですが、Security Hub は課金の単位が異なります。

新 Security Hub の Essentials プランでは、料金が「リソースユニット」という単位に集約されており、東京リージョンでは 1 ユニットあたり月額 4.10 ドルです。注目したいのはこのユニットの「換算比率」で、IAM ユーザー/ロールは「125 リソース = 1 リソースユニット」と緩めに設定されています。

Resource unit ratios:
1 EC2 = 1 unit | 12 Lambda = 1 unit | 18 ECR images = 1 unit | 125 IAMusers/roles = 1 unit

単体で Unused Access を使うと 125 個の分析に月額 25.0 USD(0.20 USD × 125個)がかかりますが、Security Hub 越しならわずか 4.10 USD 相当で済む計算になります。

すでに新 Security Hub を導入している環境はもちろん、先のブログの例のように IAM ロールの数が非常に多く、単体機能のコストに二の足を踏んでいたケースでも、Security Hub 経由に切り替えることで大幅にコストを抑えて安全性を手に入れられるユーザーも多いと想像します。

これらの費用の詳細は以下のドキュメントも参考ください。

aws.amazon.com

また Security Hub は「Free Trial」も可能ですので、うまくこの Free Trial 期間を活用して、実際の費用を見積もられると良いでしょう。

まとめ

本ブログでは、新しい AWS Security Hub の Essentials plan で自動的に有効化されるようになった「IAM Access Analyzer Unused Access」について詳細を解説しました。

本アップデートにより、これまで単体では高額になりがちだった Unused Access が AWS Security Hub の料金に内包される形となりました。既に AWS Security Hub を有効化しつつ、単体で Unused Access のアナライザーを作成されているような場合には、既存の(単体の)Unused Access を削除して Security Hub に寄せることで無駄なコストを削減できます。

また「125 IAMリソース=1 ユニット」という Security Hub の換算比率により、Unused Access の単体利用と比べて大幅に費用を抑えられる可能性があります。費用面で Unused Access の導入を見送っていた方にとっても、AWS Security Hub を通じた Unused Access の有効化は魅力的な選択肢になるでしょう

興味のある方は、是非 AWS Security Hub 30日間の無料トライアル(Free Trial)を活用し、実環境での運用コストと各 Findings の状況を確認してみてください。

最後に補足ですが IAM Access Analyzer の3つの機能のうち、無料である「External access(外部アクセス)」と、もう1つの有料機能である「Internal access(内部アクセス)」は、それぞれ自動的に有効化されることはありません。

では、またお会いしましょう。

佐竹 陽一 (Yoichi Satake) エンジニアブログの記事一覧はコチラ

セキュリティサービス部所属。AWS資格全冠。2010年1月からAWSを業務利用してきています。主な表彰歴 2021-2022 AWS Ambassadors/2020-2025 Japan AWS Top Engineers/2020-2025 All Certifications Engineers。AWSのコスト削減やマルチアカウント管理と運用を得意としています。