【Security Hub修復手順】[CloudFront.4] CloudFront ディストリビューションでは、オリジンフェイルオーバーが設定されている必要があります

AWS SecurityHub 基礎セキュリティのベストプラクティスコントロール修復手順をご紹介します。
2023.07.31

こんにちは、AWS事業本部@福岡オフィスのべこみん(@beco_minn)です。

皆さん、お使いのAWS環境のセキュリティチェックはしていますか?

当エントリでは、AWS Security HubによるAWS環境のセキュリティ状況スコアリングに該当する項目についての修復手順をご紹介します。

本記事の対象コントロール

[CloudFront.4] CloudFront ディストリビューションでは、オリジンフェイルオーバーが設定されている必要があります

[CloudFront.4] CloudFront distributions should have origin failover configured

前提条件

本記事はAWS Security Hubで「AWS基礎セキュリティのベストプラクティススタンダード」を利用されている方向けの内容となります。 AWS Security Hubの詳細についてはこちらのブログをご覧ください。

対象コントロールの説明

実はAmazon CloudFrontでは「オリジングループ」という自前の機能でオリジンのフェイルオーバーを行うことが可能です。

本コントロールのタイトルだけでは対処方法が少し分かりづらいのですが、「2つ以上のオリジンが設定されたオリジングループ」を作成することで本コントロールの条件は満たされます。

通常、可用性を意識するのであれば下記のようにCloudFrontの後段にはALBを配置する構成になるかと思います。

ALBでAZレベルでの可用性は確保出来るため、AZレベルでの可用性確保十分なサービスであれば本コントロールを満たす必要は無いため本コントロールは抑制しても構いません。

しかし、金融系や社会インフラを担うサービスなどリージョン単位での可用性確保が必要な場合、CloudFrontのオリジンフェイルオーバー機能でリージョン単位のフェイルオーバーを行いましょう。

CloudFrontの高可用性最適化について、詳しくは下記をご参照ください。

修復手順

1. ステークホルダーに確認を取る

ステークホルダー(リソースの作成者や管理している部署などの関係者)に以下を確認します。

  • フェイルオーバー先のオリジンを確認する
    • フェイルオーバー先のオリジンが無い場合は作成します
  • フェイルオーバー基準となるHTTPステータスコードを決める
    • 400, 403, 404, 416, 500, 502, 503, 504から複数選択可能

2. 対象のリソースを把握する

SecurityHubの結果より、対象のディストリビューションを確認します。バージニア北部リージョン(us-east-1)の場合、下記URLから確認可能です。

https://us-east-1.console.aws.amazon.com/securityhub/home?region=us-east-1#/controls/CloudFront.4

下図赤枠部が対象のディストリビューションIDです。

3. フェイルオーバー先のオリジンを作成する

今回はフェイルオーバーの設定を行うため、勿論ですがフェイルオーバー先のオリジンを作成する必要があります。

例えばフェイルオーバー先をS3バケットとする場合、フェイルオーバー先のS3バケットを作成し、対象ディストリビューションの下記ボタンからオリジンを作成します。

※今回はオリジン作成の詳細な手順説明は省略します。

4. オリジングループを作成する

オリジングループが存在しない場合、オリジン一覧の下にあるオリジングループ一覧内の「オリジングループを作成」ボタンよりオリジングループを作成します。

オリジングループ作成画面では次の項目を設定します

  • グループに紐付けるオリジン
    • 優先度も指定可能
  • グループの名前
    • 任意の名前を入力
  • フェイルオーバー基準
    • 400 Bad Request
    • 403 Forbidden
    • 404 Not found
    • 416 Range Not Satisfiable
    • 500 Internal server error
    • 502 Bad gateway
    • 503 Service unavailable
    • 504 Gateway timeout

本コントロールを満たすためには、グループには2つ以上のオリジンを紐付ける必要があります。今回は2つ紐付けます。

オリジンは接続の優先度順に並んでいて、オリジン名の横にある矢印ボタンで任意の優先度に変更することが可能です。

次にオリジングループに任意の名前を入力します。

最後にフェイルオーバー基準を設定します。

フェイルオーバーの基準として設定出来るステータスコードは下図の通りで、このステータスコードがプライマリオリジンから返却された場合にセカンダリオリジンにフェイルオーバーします。

ステータスコードは複数選択可能です。下図では500番台のステータスコードのみ指定していますが、特に意図はありません。

下図の状態になればオリジングループを作成してください。

以上で設定は完了です。お疲れ様でした。

最後に

今回は、AWS Security HubによるAWS環境のセキュリティ状況スコアリングに該当する項目についての修正手順をご紹介しました。

コントロールを修正して、お使いのAWS環境のセキュリティをパワーアップさせましょう!

最後までお読みいただきありがとうございました!どなたかのお役に立てれば幸いです。

以上、べこみんでした。

クラスメソッドメンバーズをご契約の皆さまに

AWS Security Hub 「基礎セキュリティのベストプラクティス」の各チェック項目(コントロール)に対する弊社としての推奨対応やコメントを記載しているClassmethod Cloud Guidebook を提供しています。 クラスメソッドメンバーズポータルの「お役立ち情報」→「組織的な AWS 活用のためのノウハウ」からご参照ください。