目次

CloudWatch の高可用性

Network Security は、仮想アプライアンスの現在の状態に関する情報を含む CloudWatch メトリックデータを公開する機能を提供します。このメトリックデータを使用して、 CloudWatch アラームを設定し、ネットワーク環境で高可用性を有効にします。

CloudWatch アラームを設定する

  1. SNSダッシュボードに移動します。
  2. TopicsCreate topicの順にクリックします。次の2つのSNSトピックを作成します。SNSの詳細
    • インスタンス障害のSNSトピック: CloudWatch アラームからインスタンス障害の通知を受信します。
    • 欠落データのSNSトピック:インスタンスの欠落データの** SNSトピック。
  3. CloudWatch Dashboardに移動し、AlarmsCreate Alarmの順にクリックします。このアラームは、手順2で作成したSNSトピックにインスタンス障害の通知を送信します。
  4. Select metricをクリックします。
  5. Custom Namespacesで、Network Securityを選択し、InstanceIDを選択して、Instance IDのチェックボックスをオンにします。
  6. Select metricをクリックし、次のパラメータを入力します。
    • Statistic: 最大値
    • Period: 追加のネットワークセキュリティ設定の構成cloudwatch-health periodで選択したのと同じ期間を設定します。
    • 条件:
    • Threshold type: Static
    • Whenever InstanceHealth is...: 大/等しい
    • than...: 3
    • 追加設定:
    • Datapoints to alarm: 1/1
    • Missing data treatment: 欠落データを欠落データとして処理します。
  7. Nextをクリックします。
  8. 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: このインスタンスを再起動します。
  9. Nextをクリックします。
  10. アラームの名前と説明を入力し、Nextをクリックします。
  11. Preview画面で入力したアラーム情報を確認し、 Createアラームをクリックします。

Lambda関数を作成する

2023年9月5日より前にセキュリティVPCスタックを作成した場合は、AWS Lambda関数用にPythonランタイムをバージョン3.10に、Node.jsランタイムをバージョン20.xに手動でアップデートすることをお勧めします。

AWSコンソールでPythonおよびNode.jsのランタイムバージョンを手動でアップデートするには、

  1. Lambdaサービスページに移動します。
  2. リストからLambda関数を選択します。
  3. [Runtime Settings] まで下にスクロールし、[Edit] をクリックします。
  4. 使用可能なランタイムのドロップダウンメニューから [Python 3.10] および [Node.js 20.x] を選択し、[ Save] をクリックします。

Lambda関数を使用して、以下の手順で説明する検査をバイパスします。 Lambda関数は、すべてのインスタンスで1つのみ必要です。

  1. IAM Dashboardに移動し、PoliciesCreate policyの順にクリックします。

  2. Select a service below で、Lambda と入力します。

  3. Manual actionsAll Lambda actionsを選択します。

  4. 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": "*"
           }
         ]
       }
    
  5. Review Policyをクリックし、次のパラメータを入力してからCreate policyをクリックします。

    • Name: ec2-ReplaceRoute
    • Description: 検査をバイパスするルートを置き換えます。
  6. RolesCreate roles をクリックし、この役割を使用するサービスとしてLambdaを選択します。

  7. ec2-ReplaceRoute ポリシー( Attach permissions policies)を選択します。

  8. 役割名に「 BypassInspection_role 」と入力し、Create roleをクリックします。

  9. Lambda Dashboardに移動し、Create functionをクリックします。

  10. Create function画面で、次のパラメータを入力します。

    • Function name: 説明的な名前を入力します。
    • ランタイム: Python 3.10
    • Permissions: BypassInspection_roleを選択します。
  11. Create functionをクリックします。

  12. Lambda関数を作成したら、次のように設定を変更します。

    機能コード

    • Code entry type: コードをインラインで編集します。
    • Handler: lambda_function.change_routes
    • Function code: 展開プロセスで前に選択した展開オプションに応じて、 Lambda関数ウィンドウに関数コードをコピーして貼り付けます。以下の各展開オプションの Lambda関数コードの例を見つけてください。

    基本設定

    • Memory: 必要に応じてアップグレードします。
    • Timeout: 1分など、タイムアウト値を大きくすることをお勧めします。選択するタイムアウト値は、ネットワーク内のコンポーネントによって異なる場合があります。たとえば、複数のワークロードがTransit Gatewayに接続されている場合は、タイムアウト値を大きくします。
  13. SNSダッシュボードに移動します。

  14. Topics をクリックし、作成したSNSトピックの名前をクリックして、CloudWatchアラームを設定します。

  15. Subscriptionsで、Create subscriptionの順にクリックします。

  16. 次のパラメータを入力します。

    • Topic ARN: SNSトピックのIDです。
    • Protocol: AWS Lambda
    • Endpoint: 作成した Lambda関数。
  17. Create subscriptionをクリックしてサブスクライブします。Lambda関数SNSトピックに追加します。

バイパス検査のLambda関数の例

Lambda関数コードの例を使用して、 Network Security インスタンスを CloudWatch アラームに配置します。

  • SNS topic for instance missing data: この例については、サポート窓口にお問い合わせください。
  • HA Lambda: この例については、サポート窓口にお問い合わせください。

START OF CODE TO CHANGEEND OF CODE TO CHANGEの間のコードを編集します。インスタンスID、ルートテーブルID、VPC ID、およびゲートウェイIDのパラメータをコードに入力します。