Security Hubになりたい山本拓海です。
今回は私がSecurity Hub Advanced (以下 SHA)有効化前に知っておきたかったコストに関する2点、有効化後無料期間中の想定コストの確認方法と、有効化前のCost Estimatorを利用時の注意点についてお伝えします。
なお、本文中にはCost ExplorerとCost Estimatorが登場しますので、誤解なきようご注意ください。
SHA有効化後のコスト確認方法
まずは有効化後のコスト確認方法について。
実際には有効化前にCost Estimatorを見てから有効化を実施するはずですので、タイムライン的には逆ですがその理由は後述します。
Cost Explorerでの無料期間中の利用量の確認
Cost Explorerの使用タイプで"FreeMonitored" が含まれる使用タイプが SHAの無料トライアル中の使用量になります。 こちらで表示できるのは料金ではなく使用時間なので、リソースあたりの単価をかけることで料金を算出します。

料金ページでは "USD 4.10 per resource unit per month" (ap-northeast-1リージョン)のように月単位で掲載されていますが、 使用量は時間単位で計上されていますので、以下の料金説明にしたがいリソースあたりの単価を計算します。 IAMは使用タイプの通り、グローバルリソースのためus-east-1リージョンの単価が適応されます。
料金は Amazon EC2 インスタンスを 1 リソース単位としており、AWS Lambda 関数はリソース単位の 12 分の1 (12 関数 = 1 リソース単位)、Amazon ECR コンテナイメージはリソースの 1/18 (18 イメージ = 1 リソース単位)、AWS IAM ユーザーとロールはリソースの 1/125 (125 IAM リソース = 1 リソース単位) となっています。
統合クラウドセキュリティソリューション – AWS Security Hub の料金 – Amazon Web Services
リソースごとの時間あたりの単価の計算式は以下の通りです
リソースごとの時間あたりの単価 = リージョンごとのリソースユニット単価 / リソース単位 / 1ヶ月の時間数 720
例:Lambda 関数(ap-northeast-1リージョン)の1hrあたりの課金 4.10 / 12(リソース単位) / 720(時間) = 0.0004745 (USD)
使用タイプと時間あたりの単価
IAM
- Global-FreeMonitoredIAMRole(Hrs)
- Global-FreeMonitoredIAMUser(Hrs)
- 3.75 / 125(リソース単位) / 720(時間) = 0.0000416(USD)
EC2(ap-northeast-1リージョンの例)
- APN1-FreeMonitoredEC2(Instance-hrs)
- 4.10 / 1(リソース単位) / 720(時間) = 0.0056944(USD)
Lambda(ap-northeast-1リージョンの例)
- APN1-FreeMonitoredFunction(Hrs)
- 4.10 / 12(リソース単位) / 720(時間) = 0.0004745 (USD)
ECR(ap-northeast-1リージョンの例)
- APN1-FreeMonitoredContainerImage(Hrs)
- 4.10 / 18(リソース単位) / 720(時間) = 0.0003164(USD)
Cost Explorer利用時のTips
上記の使用タイプ名の通り、EC2のみ単位がInstance-hrsと他の料金と異なる単位となっているため、 全てをまとめた利用量のグラフは作れません。EC2だけ別にして、ご確認ください。
グラフ表示時にグループ化条件を使用タイプとすると、それぞれの使用量がどのくらいか視覚的にもわかりやすく、内訳にも反映されます。 この状態でCSVをダウンロードすると計算しやすい形になりますので、ぜひご利用ください。


SHA有効化前のCost Estimatorを利用時の注意点
ここから、話題は有効化前のCost Estimatorを利用時の注意点です。
AWSが用意しているSecurity Hub Advancedを有効化した際の料金試算ツールがあります。
https://us-east-1.console.aws.amazon.com/securityhub/v2/home?region=us-east-1#/costEstimator
このツールを利用してSHA有効化前に料金の試算ができますが、表示されている金額を見て月額利用量のコストダウンになりそうと期待を持たれた方、ご注意ください。
私が見落としてしまったポイントは以下の通りです。
- IAMユーザ、IAMロールが正しくカウントされていない
- 表示されている料金はus-east-1の料金
1. IAMユーザ、IAMロールが正しくカウントされていない

画像はCost Estimatorの画面を一部抜粋したものです。
EC2, ECR, Inspectorはそれなりに正しいリソース数が出ているため見落としがちですが、
IAMユーザとIAMロールでも課金が発生します。
1hあたりの単価は上述した通り相当安いのですが、チリツモですので、トータルではそれなりの金額になります。
これが数百アカウントあるOrganizations環境だと、このIAMの差額だけで月間数万円〜数十万円の差が出る可能性がある部分ですので、Config Aggregatorなどでしっかりカウントし、事前に試算することをおすすめいたします。
私は完全に見としており、有効化後の予想金額を見て、oh... と言ってしまいました。
以下がConfig Aggregatorを使ったカウントのコマンドですので、ご利用ください。
# IAMユーザ数(合計)
aws configservice select-aggregate-resource-config \
--configuration-aggregator-name ${ご利用のConfig Aggregator名} \
--expression "SELECT COUNT(*) WHERE resourceType = 'AWS::IAM::User'" \
--profile ${ご利用のプロファイル}
# IAMロール数(合計)
aws configservice select-aggregate-resource-config \
--configuration-aggregator-name ${ご利用のConfig Aggregator名} \
--expression "SELECT COUNT(*) WHERE resourceType = 'AWS::IAM::Role'" \
--profile ${ご利用のプロファイル}
# IAMユーザ数(アカウント別)
aws configservice select-aggregate-resource-config \
--configuration-aggregator-name ${ご利用のConfig Aggregator名} \
--expression "SELECT accountId, COUNT(*) WHERE resourceType = 'AWS::IAM::User' GROUP BY accountId" \
--profile ${ご利用のプロファイル}
# IAMロール数(アカウント別)
aws configservice select-aggregate-resource-config \
--configuration-aggregator-name ${ご利用のConfig Aggregator名} \
--expression "SELECT accountId, COUNT(*) WHERE resourceType = 'AWS::IAM::Role' GROUP BY accountId" \
--profile ${ご利用のプロファイル}
※事前にOrganizations全体を対象としたConfig Aggregatorが作成されている必要があります。 参考記事:
2. 表示されている料金はus-east-1の料金
「見積ではus-east-1の料金を使用」という記載があるのですが、金額を出されるとこんなもんなのかなという気持ちになってしまうのが人間です。 ですが、よくよく計算してみたら、思ってたより下がってないということもあります。

画像はCost Estimatorの画面を一部抜粋したものです。
例えば、画像にあるCloudTrail管理イベントの金額、SHAに移行することで安くなるのかなと思って計算したところ、
ap-northeast-1リージョンの1Mイベントあたりの単価は4.72USDなので
40.035(Mイベント) * 4.72(USD) = 188.9652
と数値上は今より高くなります。 全てのイベントがap-northeast-1リージョンで発生しているわけではないので、この試算も精緻なものではないのですが、 Cost Estimatorの金額の根拠を確認し、一度Excelなどで利用料の精緻な試算をされるのが確実です。 当然こちらも規模が大きくなればなるほど、差額が大きくなるため大規模環境を管理されている方は特に要注意です。
Cost Estimatorの注意点とSHA有効化後の試算方法、時系列的には逆でしたが 事前にSHA有効後の料金試算方法を把握することで、Cost Estimatorの注意点もわかりやすくなるかと思い逆にしております。
Cost Estimator利用時は上記注意点にお気をつけください。
おわりに
今回はSHA有効化後無料期間中の想定コストの確認方法と、有効化前のCost Estimatorを利用時の注意点について記載しました。 有効化前のコスト試算には注意が必要ですが、SHAとなり便利にもなりました。 特に気に入っているのが、リソース機能です。特定のリソースに紐づく脆弱性や体制管理の課題などを合わせて見れるため、 例えば検出結果が多いコンピュートリソースを多く有しているアカウントなどが以前より直感的に見ることができます。

是非Security Hub Advancedを有効化しご活用ください!
山本 拓海(執筆記事の一覧)
クロスインダストリー第1本部 クラウドコンサルティング2課所属
Security Hubになりたい
写真は黒猫のくま。
記事に関するお問い合わせや修正依頼⇒ takumi.yamamoto@serverworks.co.jp