このページのトピック
CloudWatch の高可用性
Network Security は、仮想アプライアンスの現在の状態に関する情報を含む CloudWatch メトリックデータを公開する機能を提供します。このメトリックデータを使用して、 CloudWatch アラームを設定し、ネットワーク環境で高可用性を有効にします。
CloudWatch アラームを設定する
- SNSダッシュボードに移動します。
- Topics → Create topicの順にクリックします。次の2つのSNSトピックを作成します。SNSの詳細
- インスタンス障害のSNSトピック: CloudWatch アラームからインスタンス障害の通知を受信します。
- 欠落データのSNSトピック:インスタンスの欠落データの** SNSトピック。
- CloudWatch Dashboardに移動し、Alarms → Create Alarmの順にクリックします。このアラームは、手順2で作成したSNSトピックにインスタンス障害の通知を送信します。
- Select metricをクリックします。
- Custom Namespacesで、Network Securityを選択し、InstanceIDを選択して、Instance IDのチェックボックスをオンにします。
- Select metricをクリックし、次のパラメータを入力します。
- Statistic: 最大値
- Period: 追加のネットワークセキュリティ設定の構成の
cloudwatch-health period
で選択したのと同じ期間を設定します。 - 条件:
- Threshold type: Static
- Whenever InstanceHealth is...: 大/等しい
- than...: 3
- 追加設定:
- Datapoints to alarm: 1/1
- Missing data treatment: 欠落データを欠落データとして処理します。
- Nextをクリックします。
- Configure actions画面で、次の通知を設定します。
- 通知処理:
- Whenever this alarm state is...: アラーム
- Select an existing SNS topic: 手順2で作成したインスタンスエラーのSNSトピックを選択します。
- 通知処理:
- Whenever this alarm state is...: OK
- Select an existing SNS topic: 手順2で作成したインスタンスエラーのSNSトピックを選択します。
- 通知処理:
- Whenever this alarm state is...: データが不足しています
- Select an existing SNS topic: 手順2で作成したインスタンスのデータが欠落しているSNSトピックを選択します。
- EC2の処理:
- Whenever this alarm state is...: アラーム
- Take this action: このインスタンスを再起動します。
- Nextをクリックします。
- アラームの名前と説明を入力し、Nextをクリックします。
- Preview画面で入力したアラーム情報を確認し、 Createアラームをクリックします。
Lambda関数を作成する
2023年9月5日より前にセキュリティVPCスタックを作成した場合は、AWS Lambda関数用にPythonランタイムをバージョン3.10に、Node.jsランタイムをバージョン20.xに手動でアップデートすることをお勧めします。
AWSコンソールでPythonおよびNode.jsのランタイムバージョンを手動でアップデートするには、
- Lambdaサービスページに移動します。
- リストからLambda関数を選択します。
- [Runtime Settings] まで下にスクロールし、[Edit] をクリックします。
- 使用可能なランタイムのドロップダウンメニューから [Python 3.10] および [Node.js 20.x] を選択し、[ Save] をクリックします。
Lambda関数を使用して、以下の手順で説明する検査をバイパスします。 Lambda関数は、すべてのインスタンスで1つのみ必要です。
-
IAM Dashboardに移動し、Policies → Create policyの順にクリックします。
-
Select a service below で、Lambda と入力します。
-
Manual actionsでAll Lambda actionsを選択します。
-
JSONタブをクリックし、次の権限をコピーして貼り付けます。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "LambdaLogging", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:*" }, { "Sid": "ReplaceRoutes", "Effect": "Allow", "Action": [ "ec2:ReplaceRoute" ], "Resource": "*" } ] }
-
Review Policyをクリックし、次のパラメータを入力してからCreate policyをクリックします。
- Name: ec2-ReplaceRoute
- Description: 検査をバイパスするルートを置き換えます。
-
Roles →Create roles をクリックし、この役割を使用するサービスとしてLambdaを選択します。
-
ec2-ReplaceRoute ポリシー( Attach permissions policies)を選択します。
-
役割名に「 BypassInspection_role 」と入力し、Create roleをクリックします。
-
Lambda Dashboardに移動し、Create functionをクリックします。
-
Create function画面で、次のパラメータを入力します。
- Function name: 説明的な名前を入力します。
- ランタイム: Python 3.10
- Permissions: BypassInspection_roleを選択します。
-
Create functionをクリックします。
-
Lambda関数を作成したら、次のように設定を変更します。
機能コード
- Code entry type: コードをインラインで編集します。
- Handler: lambda_function.change_routes
- Function code: 展開プロセスで前に選択した展開オプションに応じて、 Lambda関数ウィンドウに関数コードをコピーして貼り付けます。以下の各展開オプションの Lambda関数コードの例を見つけてください。
基本設定
- Memory: 必要に応じてアップグレードします。
- Timeout: 1分など、タイムアウト値を大きくすることをお勧めします。選択するタイムアウト値は、ネットワーク内のコンポーネントによって異なる場合があります。たとえば、複数のワークロードがTransit Gatewayに接続されている場合は、タイムアウト値を大きくします。
-
SNSダッシュボードに移動します。
-
Topics をクリックし、作成したSNSトピックの名前をクリックして、CloudWatchアラームを設定します。
-
Subscriptionsで、Create subscriptionの順にクリックします。
-
次のパラメータを入力します。
- Topic ARN: SNSトピックのIDです。
- Protocol: AWS Lambda
- Endpoint: 作成した Lambda関数。
-
Create subscriptionをクリックしてサブスクライブします。Lambda関数SNSトピックに追加します。
バイパス検査のLambda関数の例
Lambda関数コードの例を使用して、 Network Security インスタンスを CloudWatch アラームに配置します。
- SNS topic for instance missing data: この例については、サポート窓口にお問い合わせください。
- HA Lambda: この例については、サポート窓口にお問い合わせください。
START OF CODE TO CHANGE
と END OF CODE TO CHANGE
の間のコードを編集します。インスタンスID、ルートテーブルID、VPC ID、およびゲートウェイIDのパラメータをコードに入力します。