Security Hub を PagerDuty に統合してみた

アラートの管理にお困りの方は、PagerDutyを使用してみると楽になるかも。
2021.11.24

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

PagerDutyとは

PagerDuty とは、インシデント管理SaaSサービスです。
様々なツールと連携し、アラートのグループ化や優先順位付け、また通知のルール化などといった機能を提供します。
通知としては、メールやSMS、カスタムアクションなども用意されているので非常に使い勝手が良いです。

やってみた

本記事では、AWS Security Hub を統合してみます。

CFnのテンプレートの準備

まず、下記サイトよりCFnのテンプレートをダウンロードします。

PagerDuty の設定

サービスの作成

統合先のサービスを作成します。PagerDuty のコンソールのServicesのService Directoryから作成します。

入力項目はデフォルトのままで作成します。

Integration Keyの発行

続いて、PagerDuty のコンソールからIntegration Keyを発行します。Automation の Event rules を開き、新しい RuleSet を作成します。

アラート集約時にインシデントが作成されるように、Edit Ruleから先ほど作成したサービスを指定し、保存します。


そして、ページに表示されているIntegration Keyをメモしておきます。

CFnスタックの作成

では、準備が整いましたので、スタックを作成します。先ほどダウンロードしたCFnのテンプレートをアップします。
作成時に、PagerDutyEventsEndpointとEventPatternParameterが求められるので、EventPatternParameterにはSecurity Hubの統合ルール、PagerDutyEventsEndpointには下記のように先ほどメモしたIntegration Keyを埋め込みます。

PagerDutyEventsEndpoint

https://events.pagerduty.com/x-ere/[YOUR_INTEGRATION_KEY_HERE]

例: Inspctor High Mediumのみ統合

{
  "detail-type": ["Security Hub Findings - Imported"],
  "source": ["aws.securityhub"],
  "detail": {
    "findings": {
      "ProductArn": ["arn:aws:securityhub:ap-northeast-1::product/aws/inspector"],
      "Workflow": {
        "Status": ["NEW"]
      },
      "Severity": {
        "Label": ["HIGH", "MEDIUM"]
      }
    }
  }
}


通知の確認

最後に、PagerDutyに統合されたかの確認を行います。
私の場合は、Inspctorのアラートの統合を行なっておりますので、Inpectorを実行し、アラートを発生させます。

PagerDutyのコンソールにインシデントの作成、メールの通知が行われていれば問題なく動作しています。

最後に

PagerDutyでは、他にも様々なツールとの連携が容易に行えます。通知のルール化も非常に魅力的なので、近いうちに触ってみたいです。

参考