翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 ルール
ターゲットアーキテクチャ
![](images/pattern-img/ced163f6-ab1d-4f6b-accd-e3ae2b66cdef/images/28122271-2b17-4d00-94e2-eefdc526424f.png)
自動化とスケール
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 バケットに Lambda コードをアップロードします。 | 「添付ファイル」セクションで提供されている Lambda コード ( | クラウドアーキテクト |
タスク | 説明 | 必要なスキル |
---|---|---|
Python バージョンを変更する。 | 「添付ファイル」セクションに記載されている CloudFormation テンプレート ( たとえば、コード内で Python ランタイムバージョンのサポートに関する最新情報については、AWS Lambda ドキュメントを参照してください。 | クラウドアーキテクト |
AWS CloudFormation テンプレートをデプロイします。 | AWS CloudFormation コンソールで、S3 バケットと同じ AWS リージョンに CloudFormation テンプレート () をデプロイします | クラウドアーキテクト |
S3 バケット名を指定します。 | S3 バケット パラメータには、最初のエピックで作成した S3 バケットの名前を指定します。 | クラウドアーキテクト |
Lambda ファイルの Amazon S3 キー名を指定します。 | S3 キーパラメータには、S3 バケット内の Lambda コード .zip ファイルの Amazon S3 ロケーションを指定します。先頭にスラッシュを含めないでください (たとえば、 | クラウドアーキテクト |
通知用 E メールアドレスを提供します。 | 通知メールパラメータには、違反通知を受け取るメールアドレスを指定します。 | クラウドアーキテクト |
ロギングのレベルを定義します。 | Lambda ロギングレベルのパラメータでは、Lambda 関数のロギングレベルを定義します。次のいずれかの値を選択します。
| クラウドアーキテクト |
タスク | 説明 | 必要なスキル |
---|---|---|
サブスクリプションを確認します。 | CloudFormation テンプレートが正常にデプロイされると、新しい SNS トピックが作成され、指定した E メールアドレスにサブスクリプションメッセージが送信されます。違反通知を受信するには、このメールサブスクリプションを確認する必要があります。 | クラウドアーキテクト |
関連リソース
AWS CloudFormation コンソールでのスタックの作成 (AWS CloudFormation ドキュメント)
VPC 向けセキュリティグループ (Amazon VPC ドキュメント)
添付ファイル
このドキュメントに関連する追加コンテンツにアクセスするには、次のファイルを解凍してください。「attachment.zip」