この記事について
この記事は、Amazon Inspectorの利用を検討する上で調べた内容のまとめです。
Amazon Inspector とは?
Amazon Inspectorは、以下のAWSリソースを自動的に検出し、既知のソフトウェアの脆弱性や意図しないネットワークへの露出がないかスキャンするサービスです。
- Amazon EC2インスタンス
- Amazon ECR内のコンテナイメージ
- AWS Lambda関数
継続的なスキャンにより、潜在的なセキュリティリスクを早期に発見し、対策を講じることが可能になります。
EC2, ECR, Lambdaの脆弱性対策について検討している人には、一考の価値があるサービスかと思います。
主な機能
1. ハイブリッドスキャンモード
Amazon Inspectorを新規に有効化した場合、デフォルトでハイブリッドスキャンモードが有効になります。
- SSMエージェントがインストールされているインスタンス:エージェントベースのスキャン
- SSMエージェントがインストールされていないインスタンス:エージェントレススキャン
2. エージェントレススキャン
2024年4月22日のアップデートにより、エージェントレスでの脆弱性評価が可能となりました。
エージェントレススキャンの仕組み
- Amazon Inspectorが対象インスタンスのEBSボリュームのスナップショットを取得
- インスタンスのソフトウェアアプリケーションインベントリを収集
- 収集した情報に基づいて脆弱性評価を実行
メリット
- SSMエージェントがインストールされていないEC2インスタンスに対しても脆弱性評価が可能
- 全てのリージョンで利用可能
留意点
エージェントベースのスキャンと比較して、スキャン頻度が異なります。
- エージェントレススキャン:24時間ごと
- エージェントベースのスキャン(Linux):パッケージインストール時やCVE追加時にもスキャン可能
3. その他の機能
- 脆弱性データベース検索: CVE(共通脆弱性識別子)を用いてAmazon Inspectorの脆弱性データベースを検索可能
- 検出結果への対応の自動化: Amazon EventBridgeと連携し、検出結果に応じて自動的にタスクを実行可能
- 複数アカウントの一元管理: AWS Organizationsを利用している場合、単一のアカウントから複数アカウントのAmazon Inspector環境を一元管理可能
- 豊富なスキャン対象: Amazon EC2インスタンス、Amazon ECRコンテナイメージ、AWS Lambda関数など、多様なリソースをスキャン可能
- CI/CDツールとの統合: Jenkins、TeamCity、GitHub Actions、CodeCatalystなどのCI/CDツールと統合可能
料金
Amazon Inspectorは従量課金制です。料金は、スキャン対象のサービスや機能によって異なります。
サービスごとの料金形態
- Amazon EC2インスタンススキャン: 1か月間に評価されたEC2インスタンスの平均台数に基づいて課金
- Amazon EC2 CISベンチマーク評価: インスタンスごと、評価ごとに課金
- Amazon ECRコンテナイメージスキャン: 最初にスキャンされたイメージの数と、1か月間の再スキャン回数に基づいて課金
- オンデマンドコンテナイメージスキャン: 1か月間にスキャンされたイメージの数に基づいて課金
- AWS Lambda標準スキャン: 1か月間の平均Lambda関数スキャン数に基づいて課金(日割り計算)
- AWS Lambdaコードスキャン: 1か月間の平均Lambda関数スキャン数に基づいて課金(日割り計算)
EC2については、エージェントレススキャンのほうが若干料金が高くなるようなので、少しでも安くするなら、SSMの設定を頑張ってエージェントスキャンにするほうが良さそうです。
無料トライアル
Amazon Inspectorを初めて利用するユーザーは、15日間の無料トライアルが利用できます。ただし、CISベンチマーク評価は無料トライアルに含まれません。
詳細な料金については、AWSの公式ウェブサイトの料金表を参照してください。
スキャン対象のリソース
Amazon Inspectorがスキャンできるリソースは、以下に限定されています。
- EC2インスタンス
- ECRコンテナイメージ
- Lambda関数
特定のリソースがスキャン対象となるかどうかは、以下の要因によって異なります。
- アカウントで有効になっているスキャンタイプ
- リソースのタイプ
- リソースの状態
特定のリソースをスキャン対象から除外する方法
特定のリソースをスキャン対象から除外するには、リソースに特定のタグを付けます。
-
Amazon EC2 インスタンス: キーが
InspectorEc2Exclusion
のタグを付ける。値は何でもOK. -
AWS Lambda 関数のLambda 標準スキャン: キーが
InspectorExclusion
、値がLambdaStandardScanning
のタグを付ける -
AWS Lambda 関数のLambda コードスキャン: キーが
InspectorCodeExclusion
、値がLambdaCodeScanning
のタグを付ける
まとめ
EC2、Lambdaの脆弱性対策ができるツールを探していたのですが、セキュリティ対策として有効なサービスだと思いました。エージェントレスでの脆弱性評価のおかげで、導入しやすそうです。
本記事では、ソースから読み取れる範囲で情報をまとめましたが、料金体系や技術的な詳細情報については、公式ドキュメントを参照することをお勧めします。
間違いなどありましたらお知らせください。
参考