Amazon CloudFront ディストリビューションでアクセスログ、HTTPS、TLS のバージョンを確認する - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon CloudFront ディストリビューションでアクセスログ、HTTPS、TLS のバージョンを確認する

環境:本稼働

テクノロジー: コンテンツ配信、セキュリティ、ID、コンプライアンス

ワークロード:その他すべてのワークロード

AWS サービス: Amazon SNSAWS CloudFormation、Amazon CloudWatch、AWS Lambda

[概要]

このパターンは、Amazon CloudFront ディストリビューションをチェックして、HTTPS を使用し、Transport Layer Security (TLS) バージョン 1.2 以降を使用し、アクセスログ記録が有効になっていることを確認します。 CloudFront は、.html、.css、.js、イメージファイルなどの静的および動的なウェブコンテンツのユーザーへの配信を高速化する Amazon Web Services (AWS) が提供するサービスです。 は、エッジロケーションと呼ばれるデータセンターのグローバルネットワークを介してコンテンツを CloudFront 配信します。ユーザーが で処理しているコンテンツをリクエストすると CloudFront、リクエストはレイテンシー (時間遅延) が最も低いエッジロケーションにルーティングされ、コンテンツは可能な限り最高のパフォーマンスで配信されます。

このパターンは、Amazon CloudWatch Events が CloudFront API コール CreateDistribution、、CreateDistributionWithTagsまたは を検出したときに開始される AWS Lambda 関数を提供しますUpdateDistribution。Lambda 関数のカスタムロジックは、AWS アカウントで作成または更新されたすべての CloudFront ディストリビューションを評価します。以下の違反を検出すると、Amazon Simple Notification Service (Amazon SNS) を使用して違反通知が送信されます。

  • グローバルチェック:

    • カスタム証明書は TLS バージョン 1.2 を使用しません

    • ロギングの配信は無効化されています

  • オリジンチェック:

    • オリジンは TLS バージョン 1.2 で構成されていません

    • オリジンとの通信は HTTPS 以外のプロトコルで許可されています

  • 動作チェック:

    • デフォルト動作通信は HTTPS 以外のプロトコルで許可されます

    • カスタム動作通信は HTTPS 以外のプロトコルで許可されます

前提条件と制限

前提条件

  • アクティブなAWS アカウント

  • 違反の通知を受信する E メールアドレス

制約事項

  • このセキュリティコントロールでは、ディストリビューションが更新されていない限り、既存の Cloudfront ディストリビューションはチェックされません。

  • CloudFront はグローバルサービスと見なされ、特定の AWS リージョンに関連付けられていません。ただし、グローバルサービスの Amazon CloudWatch Logs および AWS Cloudtrail API ログ記録は、米国東部 (バージニア北部) リージョン () で行われます。us-east-1したがって、 のこのセキュリティコントロールは、 でデプロイおよび維持 CloudFront する必要がありますus-east-1。この単一のデプロイは、 のすべてのディストリビューションをモニタリングします CloudFront。セキュリティコントロールを他の AWS リージョンにデプロイしないでください。(他のリージョンにデプロイすると、 CloudWatch イベントと Lambda 関数の開始に失敗し、SNS 通知は行われません)。

  • このソリューションは、 CloudFront ウェブコンテンツディストリビューションによる広範なテストを経ています。リアルタイムメッセージングプロトコル (RTMP) ストリーミングディストリビューションは対象外です。

アーキテクチャ

ターゲットテクノロジースタック

  • Lambda 関数

  • SNS トピック

  • Amazon EventBridge ルール

ターゲットアーキテクチャ

自動化とスケール

  • AWS Organizations を使用している場合は、AWS Cloudformation StackSets を使用して、モニタリングする複数のアカウントにアタッチされたテンプレートをデプロイできます。

ツール

AWS サービス

  • AWS CloudFormation – CloudFormation は、Infrastructure as Code を使用して AWS リソースをモデル化およびセットアップするのに役立つサービスです。

  • Amazon EventBridge – 独自のアプリケーション、Software as a Service (SaaS) アプリケーション、および AWS のサービスからリアルタイムデータのストリームを EventBridge 配信し、そのデータを Lambda 関数などのターゲットにルーティングします。

  • AWS Lambda – AWS Lambda を使用すると、サーバーをプロビジョニングまたは管理しなくてもコードを実行できます。

  • Amazon S3 — Amazon Simple Storage Service (Amazon S3) は、拡張性の高いオブジェクトストレージサービスで、ウェブサイト、モバイルアプリケーション、バックアップ、データレイクなど、幅広いストレージソリューションに使用できます。

  • Amazon SNS — Amazon SNS は、ウェブサーバーや E メールアドレスを含む、パブリッシャーとクライアント間のメッセージの配信または送信を調整および管理するウェブサービスです。サブスクライバーは、サブスクライブしているトピックに対して発行されたすべてのメッセージを受信します。また、同じトピックのサブスクライバーはすべて同じメッセージを受信します。

Code

添付のコードには以下が含まれます。

  • Lambda コード (index.py) を含む.zip ファイル

  • Lambda コードをデプロイするために実行する CloudFormation テンプレート (.yml ファイル)

エピック

タスク説明必要なスキル
Lambda コード用の S3 バケットを作成します。

Amazon S3 コンソールで、先頭にスラッシュを含まない一意の名前で S3 バケットを作成します。S3 バケット名はグローバルに一意であり、名前空間はすべての AWS アカウントによって共有されています。S3 バケットは、Lambda コードをデプロイする予定のリージョンに存在する必要があります。

クラウドアーキテクト
S3 バケットに Lambda コードをアップロードします。

添付ファイル」セクションで提供されている Lambda コード (cloudfront_ssl_log_lambda.zip ファイル) を、前のステップで作成した S3 バケットにアップロードします。

クラウドアーキテクト
タスク説明必要なスキル
CloudFormation テンプレートをデプロイします。

AWS CloudFormation コンソールで、S3 バケットと同じ AWS リージョンに、添付ファイルセクションで提供されている CloudFormation テンプレート (cloudfront-ssl-logging.yml) をデプロイします。 

クラウドアーキテクト
S3 バケット名を指定します。

S3 バケット パラメータには、最初のエピックで作成した S3 バケットの名前を指定します。

クラウドアーキテクト
Lambda ファイルの Amazon S3 キー名を指定します。

S3 キーパラメータには、S3 バケット内の Lambda コード .zip ファイルの Amazon S3 のロケーションを指定します。先頭にスラッシュを含めないでください (たとえば、lambda.zip や controls/lambda.zip と入力してください)。

クラウドアーキテクト
通知用 E メールアドレスを提供します。

通知メールパラメータには、違反通知を受け取るメールアドレスを指定します。

クラウドアーキテクト
ロギングのレベルを定義します。

Lambda ロギングレベルのパラメータでは、Lambda 関数のロギングレベルを定義します。次のいずれかの値を選択します。 

  • INFO を使用すると、アプリケーションの進行状況に関する詳細な情報メッセージを取得できます。

  • ERROR を使用すると、アプリケーションの実行を継続できるエラーイベントに関する情報を取得できます。

  • WARNING は、潜在的に有害な状況に関する情報を取得するためのものです。

クラウドアーキテクト
タスク説明必要なスキル
サブスクリプションを確認します。

CloudFormation テンプレートが正常にデプロイされると、新しい SNS トピックが作成され、指定した E メールアドレスにサブスクリプションメッセージが表示されます。違反通知を受信するには、このメールサブスクリプションを確認する必要があります。

クラウドアーキテクト

添付ファイル

このドキュメントに関連する追加コンテンツにアクセスするには、次のファイルを解凍してください。「attachment.zip