AWS Security Hubの通知内容をAWS CLIで調べる

重要度ごとの件数を知りたかったのです。
2022.05.16

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

とあるAWSアカウントでAWS Security Hubを有効にしたところ、通知がいっぱい出ました。 そのため、「まずは件数を知りたい!」となったので、AWS CLIを使って調べてみました。

おすすめの方

  • AWS Security Hubの通知内容をAWS CLIで調べたい方

いろいろな条件で調べるコマンド

適宜アレンジしてください。なお、件数を知りたい場合はjqを利用しています。

重要度がCRITICALのタイトルだけを見たい

aws securityhub get-findings \
    --filters '{"SeverityLabel":[{"Value": "CRITICAL","Comparison":"EQUALS"}]}' \
    --query 'Findings[].Title'

重要度がCRITICALの件数を知りたい

aws securityhub get-findings \
    --filters '{"SeverityLabel":[{"Value": "CRITICAL","Comparison":"EQUALS"}]}' \
    --query 'Findings[].Title' | jq 'length'

コンプライアンスのステータスがFAILEDの件数を知りたい

aws securityhub get-findings \
    --filters '{"ComplianceStatus":[{"Value": "FAILED","Comparison":"EQUALS"}]}' \
    --query 'Findings[].Title' | jq 'length'

コンプライアンスのステータスがFAILED、かつ、レコード状態がACTIVEの件数を知りたい

aws securityhub get-findings \
    --filters '{"ComplianceStatus":[{"Value":"FAILED","Comparison":"EQUALS"}],"RecordState":[{"Value":"ACTIVE","Comparison":"EQUALS"}]}' \
    --query 'Findings[].Title' | jq 'length'

レコード状態がACTIVE、かつ、重要度がCRITICALの件数を知りたい

aws securityhub get-findings \
    --filters '{"RecordState":[{"Value":"ACTIVE","Comparison":"EQUALS"}],"SeverityLabel":[{"Value": "CRITICAL","Comparison":"EQUALS"}]}' \
    --query 'Findings[].Title' | jq 'length'

レコード状態がACTIVE、かつ、重要度がCRITICAL、かつ、ワークフローのステータスがNEWorNOTIFIEDの件数を知りたい

aws securityhub get-findings \
    --filters '{"RecordState":[{"Value":"ACTIVE","Comparison":"EQUALS"}],"SeverityLabel":[{"Value":"CRITICAL","Comparison":"EQUALS"}],"WorkflowStatus":[{"Value":"NEW","Comparison":"EQUALS"},{"Value":"NOTIFIED","Comparison":"EQUALS"}]}' \
    --query 'Findings[].Title' | jq 'length'

レコード状態がACTIVE、かつ、重要度がHIGH、かつ、ワークフローのステータスがNEWorNOTIFIEDの件数を知りたい

aws securityhub get-findings \
    --filters '{"RecordState":[{"Value":"ACTIVE","Comparison":"EQUALS"}],"SeverityLabel":[{"Value":"HIGH","Comparison":"EQUALS"}],"WorkflowStatus":[{"Value":"NEW","Comparison":"EQUALS"},{"Value":"NOTIFIED","Comparison":"EQUALS"}]}' \
    --query 'Findings[].Title' | jq 'length'

レコード状態がACTIVE、かつ、重要度がMEDIUM、かつ、ワークフローのステータスがNEWorNOTIFIEDの件数を知りたい

aws securityhub get-findings \
    --filters '{"RecordState":[{"Value":"ACTIVE","Comparison":"EQUALS"}],"SeverityLabel":[{"Value":"MEDIUM","Comparison":"EQUALS"}],"WorkflowStatus":[{"Value":"NEW","Comparison":"EQUALS"},{"Value":"NOTIFIED","Comparison":"EQUALS"}]}' \
    --query 'Findings[].Title' | jq 'length'

レコード状態がACTIVE、かつ、重要度がLOW、かつ、ワークフローのステータスがNEWorNOTIFIEDの件数を知りたい

aws securityhub get-findings \
    --filters '{"RecordState":[{"Value":"ACTIVE","Comparison":"EQUALS"}],"SeverityLabel":[{"Value":"LOW","Comparison":"EQUALS"}],"WorkflowStatus":[{"Value":"NEW","Comparison":"EQUALS"},{"Value":"NOTIFIED","Comparison":"EQUALS"}]}' \
    --query 'Findings[].Title' | jq 'length'

レコード状態がACTIVE、かつ、東京リージョン以外の件数を知りたい

aws securityhub get-findings \
    --filters '{"RecordState":[{"Value":"ACTIVE","Comparison":"EQUALS"}],"ResourceRegion":[{"Value": "ap-northeast-1","Comparison":"NOT_EQUALS"}]}' \
    --query 'Findings[].Title' | jq 'length'

なお、下記の違いがあります。

  • Region: 調査結果が生成された地域
  • ResourceRegion: 該当リソースがある地域

さいごに

AWS CLIでAWS Security Hubの通知を取得してみました。 filtersで使える値は、AWS CLIのドキュメントをご覧ください。