メインコンテンツまでスキップ
Sumo Logic Japanese

Evident.io ESP アプリケーションのログ収集

このページでは、Evident.io ESP アプリケーションのログ収集を設定する手順を実際に示し、ログ メッセージとクエリの例を示します。

このページでは、Evident.io ESP アプリケーションのログ収集を設定する手順を実際に示し、ログ メッセージとクエリの例を示します。

プロセス概要

Evident.io のログ収集の設定は、以下の作業から構成されます。

  1. Sumo Logic で、Hosted Collector と HTTP Source を設定します。
  2. Evident.io 統合から AWS Simple Notification Service (SNS) への設定をします。
  3. SNS 通知をサブスクライブします。
  4. 未処理のメッセージの配信を有効化します。

ステップ 1.Sumo Logic Collector と Source の追加

  1. Sumo Logic で、Hosted Collector を設定します。
  2. HTTP Source を設定します。
    1. Name (名前): 「Evident.io SNS Integration」と入力します。  
    2. Source Category。「security_evident」と入力します。
  3. [Advanced (詳細)] セクションで以下を設定します。
    1. Enable Timestamp Parsing (タイムスタンプ parse の有効化): [Extract timestamp information from log files (ログ ファイルからタイムスタンプ情報を抽出)] のチェック ボックスをアクティブ化します。
    2. Time Zone (タイム ゾーン): [Ignore time zone from log file (ログ ファイルからのタイムゾーンを無視)] を選択し、[(UTC) Etc/UTC] を選択します。
  4. Processing Rules (処理ルール)。次のマスク ルールを作成します。
    1. Name (名前): 適切なタイムスタンプの parse を有効にします。
    2. Filter (フィルタ)。\"(?:created_at|updated_at|ended_at)\":\"\d+-\d+-\d+(T)\d+:\d+:\d+.\d+Z\" と入力します。
    3. Type (タイプ): [Mask messages that match (一致するメッセージをマスクする)] を選択します。
    4. 文字列をマスクします。「t」と入力します。
  5. [適用] をクリックします。
  6. [Save (保存)] をクリックします。
  7. HTTP Source アドレス URL をコピーし、次のセクションで使用します。

ステップ 2.AWS SNS との Evident.io 統合の設定

AWS SNS との Evident.io 統合を設定するには、次の手順を実行します。

  1. Evident.io で統合を追加します。
  2. AWS SNS 統合を有効にします。

ステップ 3.SNS 通知へのサブスクライブ

Hosted Collector と HTTP Source が設定できたら、Hosted Collector を Evident.io からのデータを収集するトピックにサブスクライブします。

  1. AWS マネジメント コンソールで、[SNS] > [Topics (トピック)] に移動し、「AWS SNS との Evident.io 統合の設定」で作成したトピックを見つけます。
  2. トピックのチェックボックスをオンにします。
  3. [Amazon SNS] の下にある [Actions (アクション)] メニューで [Subscribe to Topic (トピックにサブスクライブ)] を選択します。
  4. [Protocol (プロトコル)] から、[HTTPS] を選択して、最初の手順で作成した Sumo Logic HTTP Source URL を [Endpoint (エンドポイント)] フィールドに貼り付けます。
  5. [Create Subscription (Subscription を作成)] をクリックします。
  6. 数分以内に Sumo Logic に確認メッセージが送信されます。
  7. Sumo Logic で SubscribeURL を検索して HTTP Source からの確認メッセージを見つけます。
    たとえば、次のクエリを使用します。 
    _sourceCategory=security_evident SubscribeURL
  8. その後、[Messages (メッセージ)] タブで、[JSON] フィールド SubscribeURL を探し、表示のとおり URL をクリップボードにコピーします。
  9. AWS マネジメント コンソールで、[SNS] > [Topics (トピック)] の順に選択します。
  10. [Amazon SNS] > [Actions (アクション)] から [Confirm a subscription (サブスクリプションを確認)] を選択します。
  11. SubscribeURL[Subscription confirmation URL (サブスクリプション確認 URL)] フィールドに貼り付け、[Confirm subscription (サブスクリプション確認)] クリックします。

ステップ 4.未処理メッセージの配信の有効化

トピックの未処理メッセージの配信を有効化します。

詳細については、http://docs.aws.amazon.com/sns/latest/dg/large-payload-raw-message.html を参照してください。

  1. [AWS Topic (AWS トピック)] を選択します。
  2. [Other subscription actions (その他のサブスクリプション アクション)] をクリックします。
  3. [Edit subscription attributes (サブスクリプション属性を編集)] をクリックします。
  4. [Raw message delivery (未処理メッセージの配信)] チェック ボックスをオンにします。
  5. [Set subscription attributes (サブスクリプション属性を設定)] をクリックします。

ログ メッセージのサンプル

{
   "data":{
      "id":"881237069",
      "type":"alerts",
      "attributes":{
         "created_at":"2017-10-02t18:39:11.577Z",
         "status":"fail",
         "risk_level":"medium",
         "resource":"dgadoury",
         "updated_at":"2017-10-02t18:39:11.577Z",
         "started_at":"2017-10-02T18:39:11.578Z",
         "ended_at":null
      },
      "relationships":{
         "external_account":{
            "data":{
               "id":"3256",
               "type":"external_accounts"
            },
            "links":{
               "related":"https://esp.evident.io/api/v2/external_accounts/3256.json"
            }
         },
         "region":{
            "data":{
               "id":"8",
               "type":"regions"
            },
            "links":{
               "related":"https://esp.evident.io/api/v2/regions/8.json"
            }
         },
         "signature":{
            "data":{
               "id":"83",
               "type":"signatures"
            },
            "links":{
               "related":"https://esp.evident.io/api/v2/signatures/83.json"
            }
         },
         "custom_signature":{
            "data":null,
            "links":{
               "related":null
            }
         },
         "suppression":{
            "links":{
               "related":null
            }
         },
         "metadata":{
            "data":{
               "id":"262926952",
               "type":"metadata"
            },
            "links":{
               "related":"https://esp.evident.io/api/v2/alerts/264543844/metadata.json"
            }
         },
         "cloud_trail_events":{
            "data":[


            ],
            "links":{
               "related":"https://esp.evident.io/api/v2/alerts/264543844/cloud_trail_events.json"
            }
         },
         "tags":{
            "data":[


            ],
            "links":{
               "related":"https://esp.evident.io/api/v2/alerts/264543844/tags.json"
            }
         },
         "compliance_controls":{
            "links":{
               "related":"https://esp.evident.io/api/v2/alerts/2645:43844/compliance_controls.json"
            }
         }
      }
   },
   "included":[
      {
         "id":"2433",
         "type":"external_accounts",
         "attributes":{
            "created_at":"2016-03-22t20:55:47.000Z",
            "name":"Test",
            "updated_at":"2016-10-05t01:05:22.000Z",
            "arn":"arn:aws:iam::926226587429:role/Evident_Service",
            "account":"123226587429",
            "external_id":"62dd0abc-5b44-410b-99d9-063f2c2b203e",
            "cloudtrail_name":null
         },
         "relationships":{
            "organization":{
               "links":{
                  "related":"https://esp.evident.io/api/v2/organizations/1000.json"
               }
            },
            "sub_organization":{
               "links":{
                  "related":"https://esp.evident.io/api/v2/sub_organizations/2000.json"
               }
            },
            "team":{
               "links":{
                  "related":"https://esp.evident.io/api/v2/teams/3000.json"
               }
            },
            "scan_intervals":{
               "links":{
                  "related":"https://esp.evident.io/api/v2/external_accounts/5000/scan_intervals.json"
               }
            }
         }
      },
      {
         "id":"8",
         "type":"regions",
         "attributes":{
            "code":"ap_southeast_1",
            "created_at":"2014-06-05t23:42:37.000Z",
            "updated_at":"2014-06-05t23:42:37.000Z"
         }
      },
      {
         "id":"83",
         "type":"signatures",
         "attributes":{
            "created_at":"2014-06-09t22:33:54.000Z",
            "description":"Ensure RDS restorable windows are within bounds -- exceeding 5 minutes is problematic.",
            "identifier":"AWS:ELB-070",
            "name":"ELB SSL Expiry 90day",
            "resolution":"RDS Restorable Windows are the timeframe to which the latest data is restorable. If these windows begin to exceed 5 minutes, then something is generally lagging in the system and could be broken. This signature alerts users if the 'latest restorable time' stops working as intended, which increases your potential risk if you need to recover data from your backups. Overall, it is expect to see this alert switch from PASS to FAIL on occasion with ESP due to transient delays from AWS.  If this alert fails consistently for one of your accounts, we recommend contacting AWS Support and asking them to take a look. For more information, AWS has information explaining how the Latest Restorable Time impacts your ability to restore a DB instance to a specific point in time http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIT.html",
            "risk_level":"Low",
            "updated_at":"2016-10-13t00:00:15.000Z"
         },
         "relationships":{
            "service":{
               "links":{
                  "related":"https://esp.evident.io/api/v2/services/10.json"
               }
            }
         }
      }
   ]
}

クエリのサンプル

Alerts by Status (ステータス別アラート)

_sourceCategory=security_evident
| json "data.id", "data.attributes" as id, data_attrib
| json "included.[0].attributes.name" as account_name
| json "included.[1].attributes.code" as region
| json "included.[2].attributes" as sig_attrib
| json field=data_attrib "resource", "status", "started_at", "created_at", "ended_at", "updated_at"
| json field=sig_attrib "description", "identifier", "name", "resolution", "risk_level" 
| first(updated_at) by id, status
| count by status