IPv4 および IPv6 対応セキュリティグループのイングレスルール内の単一ホストネットワークエントリを確認する - AWS 規範ガイダンス

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

IPv4 および IPv6 対応セキュリティグループのイングレスルール内の単一ホストネットワークエントリを確認する

作成者: SaiJeevan Devireddy (AWS)、Ganesh Kumar (AWS)、John Reynolds (AWS)

環境:本稼働

テクノロジー: ネットワーク、セキュリティ、アイデンティティ、コンプライアンス

AWS サービス: Amazon SNS 、AWS CloudFormation、Amazon CloudWatch、AWS Lambda 、Amazon VPC

[概要]

このパターンは、Amazon Web Services (AWS) のリソースが仕様を満たさない場合に通知するセキュリティコントロールを提供します。これにより、Internet Protocol バージョン 4 (IPv4) と IPv6 の両方のセキュリティグループソースアドレスフィールドのシングルホストネットワークエントリを検索する AWS Lambda 関数が提供されます。Lambda 関数は、Amazon CloudWatch Events が Amazon Elastic Compute Cloud (Amazon EC2)AuthorizeSecurityGroupIngressAPI コールを検出したときに開始されます。Lambda 関数のカスタムロジックは、セキュリティグループイングレスルールの CIDR ブロックのサブネットマスクを評価します。サブネットマスクが /32 (IPv4) または /128 (IPv6) 以外であると判断された場合、Lambda 関数は Amazon Simple Notification Service (Amazon SNS) を使用して違反通知を送信します。

前提条件と制限

前提条件

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

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

制約事項

  • このセキュリティモニタリングソリューションはリージョン限定であり、モニタリングする各 AWS リージョンごとにデプロイする必要があります。

アーキテクチャ

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

  • Lambda 関数

  • SNS トピック

  • Amazon EventBridge ルール

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

自動化とスケール

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

ツール

AWS サービス

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

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

  • AWS Lambda は、サーバーをプロビジョニングまたは管理せずにコードを実行することをサポートします。

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

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

Code

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

  • Lambda セキュリティコントロールコード (index.py) を含む .zip ファイル

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

エピック

タスク説明必要なスキル

Lambda コード用の S3 バケットを作成します。

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

クラウドアーキテクト

S3 バケットに Lambda コードをアップロードします。

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

クラウドアーキテクト
タスク説明必要なスキル

Python バージョンを変更する。

「添付ファイル」セクションに記載されている CloudFormation テンプレート (security-control.yml) をダウンロードします。ファイルを開き、Lambda がサポートする最新バージョン (現在は Python 3.9) を反映するように Python バージョンを変更します。

たとえば、コード内で python を検索し、Runtime の値を python3.6 から python3.9 に変更できます。

Python ランタイムバージョンのサポートに関する最新情報については、AWS Lambda ドキュメントを参照してください。

クラウドアーキテクト

AWS CloudFormation テンプレートをデプロイします。

AWS CloudFormation コンソールで、S3 バケットと同じ AWS リージョンに CloudFormation テンプレート () をデプロイしますsecurity-control.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