サイトアイコン 協栄情報ブログ

AWS Security Hubを有効化してセキュリティチェックを行う


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

AWS Security Hubとは

AWS Security Hub は、AWSのセキュリティ関連のサービスのアラートや検知した情報を集約、整理、優先順位付けて一元管理できるサービスになります。複数の AWS アカウントに対して管理アカウントで統合して管理することも可能です。
今回はSecurity Hubでセキュリティチェックを行い、SNS通知機能も実装してみると思います。

セキュリティチェック

AWS Security Hubでセキュリティチェックが可能です。セキュリティチェック時に利用できるルールセットがAWS Security Hubでは用意されています。具体的には、下記の基準に沿ってチェックが可能です。

  1. CIS AWS Foundations Benchmark
    米国の非営利団体である CIS (Center for Internet Security) が公開しているAWS アカウントの基本的なセキュリティを実装するための技術的なベストプラクティスです。

  2. AWS 基礎セキュリティのベストプラクティス
    AWSが用意しているセキュリティ基準です。クレジットカード情報を扱うなどの特別な要件がなければこちらの『AWS 基礎セキュリティのベストプラクティス』に沿ってチェックを行うことがおすすめです。

  3. PCI DSS(Payment Card Industry Data Security Standard)
    カード会員情報の保護を目的として、VISAなどのクレジットカードブランド5社が共同で策定したカード情報セキュリティの国際統一基準です。

構築

1.全体像


※SecurityHubがリージョンサービスのため、リージョン毎に有効化が必要

  1. SecurityHubでのCISベンチマーク、AWSベストプラクティス診断を有効化すると、Configルールが作成され自動診断処理が定期実行される。
  2. 各メンバーアカウントの検知結果をマスターアカウントに共有される。
  3. セキュリティ診断は日次で行い、検出結果を更新する。
  4. EventBridgeのルールにより、Security Hubの特定のイベントを検知して、SNSにパブリッシュしてE-Mailで通知する。

2.前提

セキュリティチェックを行う為には、AWS Configがの有効化が必要となります。

  1. AWS マネージメントコンソール上部の検索ボックスに Config と入力して、出現した Config を選択します。
  2. 今すぐ始める を選択します。
  3. グローバルリソース (AWS IAM リソースなど) を含める にチェックを入れた後に、次へ を押します。

  4. ルールは何も選択せず、そのまま 次へ を押します。必要に応じて有効化していただいて問題ありません。

  5. グローバルリソースを含む となっていることを確認して、確認 を押します。
  6. これで、AWS Config でリソースの記録が有効化できました。

3.マスターアカウント/メンバーアカウントの関係を作る

まずはマスターアカウント/メンバーアカウントSecurity Hubを有効化します。

  1. AWS マネージメントコンソール上部の検索ボックスに SecurityHub と入力して、出現した SecurityHub を選択します。
  2. SecurityHubの有効化画面が表示されていて、設定をデフォルトのままSecurityHubの有効化ボタンをクリックする。

  3. SecurityHubのコンソール画面が表示されました。
    ※Security Hub を有効にした後、新しく有効になった標準のセキュリティチェックの結果が表示されるまでに最長 2 時間かかることがある。それまでは、コントロールのステータスは「No data」になります。
    • ※ 検出結果の例:
    • 検出された結果が重要度と共に一覧化されています。タイトルをクリックすると、検出された詳細な情報と、検出対象の AWS リソースを確認できます。また、修復手順をクリックすることで、詳細な AWS Document を確認することもできます。

      次はマスターアカウントがメンバーアカウントへ招待を送ります。

    • [SecurityHubダッシュボード]→[設定]→[アカウント]→Add accountsをクリックする
    • メンバーアカウントの情報を入力し、Addをクリックします。
    • 入力したアカウントIDとメールアドレスが表示されていることを確認した上にNextをクリックします。
    • 設定画面に戻り、メンバーアカウントへの招待が生成されていることを確認し、Inviteをクリックします。
    • もう一度Inviteをクリックする。

      招待の状態が「Email verification in progress」になっています。
      これで「マスターアカウント側SecurityHubの有効化、メンバーアカウントへの招待」が完了です。

さいごに、メンバーアカウントがその招待を受諾します。

メンバーアカウントSecurityHub有効化の手順を省略します。

4.EventBridgeルールを作る

検出結果通知機能は、SecurityHubからAmazon EventBridgeに発信される検出結果イベントをトリガーに、EventBridgeイベントルールを設定し、SNSと連携することで実現できます。
今回は例として、通知対象セキュリティチェック基準とコントロールIDが「AWS 基礎セキュリティのベストプラクティス」["IAM.6","S3.2"]を選定し、EventBridgeルールを作りましょう。
※通知対象選定なしで下記設定を行うと大量のメールが送信される可能性がございます。ご注意ください。

{
    "source": ["aws.securityhub"],
    "detail-type": ["Security Hub Findings - Imported"],
    "detail": {
      "findings": {
        "Compliance": {
          "Status": ["FAILED"]
        },
        "RecordState": ["ACTIVE"],
        "ProductFields": {
          "StandardsArn" : [ { "prefix": "arn:aws:securityhub:::standards/aws-foundational-security-best-practices" } ],
          "ControlId": ["IAM.6","S3.2"]
        },
        "Severity": {
          "Label": ["HIGH", "CRITICAL"]
        },
        "Workflow": {
          "Status": ["NEW"]
        }
      }
    }
  }

まとめ

AWS Security Hub は、AWSアカウントのセキュリティ状態を包括的に把握し、ベストプラクティスに沿っているかのチェックに役立ちます。
Security Hub で検出したイベントを SNS (メール) で通知してみました。検出結果を通知手段としてEメールを使いたい場面では、手軽に整形できるので是非利用してみて下さい。

モバイルバージョンを終了