すべてのプロダクト
Search
ドキュメントセンター

ActionTrail:カスタムアラート ルールの作成

最終更新日:Nov 09, 2025

特定のイベントを監視するために、カスタムアラート ルールを作成できます。これは、ビジネスのセキュリティを監視するのに役立ちます。ActionTrail は、構成したクエリ文、チェック頻度、およびトリガー条件に基づいてアラートを生成します。 ActionTrail は、構成したアラートポリシーとアクションポリシーに基づいてアラートのノイズを除去し、通知を送信します。このトピックでは、カスタムアラート ルールの作成方法について説明します。また、さまざまなシナリオのカスタムクエリ文とカスタムクエリ文の例も示します。

背景情報

カスタムアラート ルールを使用すると、SQL 文を使用してイベントをクエリできます。 SQL 構文の詳細については、「ログ検索の概要」および「ログクエリと分析の概要」をご参照ください。

手順

  1. ActionTrail コンソール にログインします。

  2. 左側のナビゲーションウィンドウで、イベントアラート をクリックします。

  3. [アラート ルール] タブの [アラート センター] ページで、[アラートの作成] をクリックします。

  4. [アラートの作成] パネルで、カスタムクエリ文を構成します。

    1. [作成] をクリックし、[クエリ統計] パラメーターの横にある

    2. [詳細設定][クエリ統計] ダイアログ ボックスの 種類ログストア承認既定 タブで、 パラメーターを に、 パラメーターを に設定します。

      説明

      [リージョン] パラメーターと [プロジェクト] パラメーターは、イベントアラート機能が有効になっているトレイルに基づいて自動的に構成されます。

    3. トレイルがイベントを配信する Logstore を選択します。Logstore 名は actiontrail_<Trail Name> フォーマットです。

    4. 専用 SQL を有効にするかどうかを構成します。

      説明
      • [自動]: デフォルトでは、専用 SQL は無効になっています。同時クエリ数が上限を超えた場合、またはクエリ結果が不正確な場合、Simple Log Service は専用 SQL を使用してクエリを自動的に再試行します。

      • 有効にする: 専用 SQL が有効になります。

      • 無効にする: 専用 SQL が無効になります。

      専用 SQL を有効にする方法の詳細については、「専用 SQL を有効にする」をご参照ください。

    5. [時間範囲] パラメーターを構成し、[クエリ] フィールドにカスタムクエリ文を入力して、[プレビュー] をクリックします。

      カスタムクエリ文の詳細については、「カスタムクエリ文」をご参照ください。

    6. [確認] をクリックします。

  5. [アラートの作成] パネルで、[ルール名][チェック頻度][グループ評価][トリガー条件][ラベルの追加][アノテーションの追加][リカバリー通知][高度な設定][宛先] の各パラメーターを設定します。

    詳細については、「アラートおよびモニタリングルールのパラメーター」をご参照ください。

  6. [OK] をクリックします。

    カスタムアラートルールが作成されると、そのルールはアラートルールリストに表示されます。必要に応じて、作成したカスタムアラートルールを管理できます。詳細については、「アラートルールの管理」をご参照ください。

カスタムアラート文

シナリオ

説明

カスタムアラート文

クラウド サービスの特定のイベントをクエリする

serviceName パラメーターと eventName パラメーターを構成して、クラウド サービスの特定のイベントをクエリできます。

  • クラウド サービスのイベントをクエリします。たとえば、次の文を使用して、Elastic Compute Service (ECS) インスタンスの作成時に生成されるイベントをクエリできます。

    event.serviceName: Ecs and event.eventName: RunInstances

  • クラウド サービスの複数のイベントをクエリします。たとえば、次の文を使用して、ApsaraDB RDS インスタンスのリリース時に生成されるイベントをクエリできます。

    event.serviceName: RDS and (event.eventName: DeleteDBInstance or event.eventName: Release or event.eventName: DestroyDBInstance)

  • 異なるクラウド サービスの複数のイベントをクエリします。たとえば、次の文を使用して、Resource Management と Resource Access Management (RAM) の権限変更に関するイベントをクエリできます。

    (event.serviceName: ResourceManager and (event.eventName: AttachPolicy or event.eventName: DetachPolicy )) or (event.serviceName: Ram and (event.eventName: AttachPolicyToUser or event.eventName: AttachPolicyToGroup or event.eventName: AttachPolicyToRole or event.eventName: DetachPolicyFromUser or event.eventName: DetachPolicyFromGroup or event.eventName: DetachPolicyFromRole))

指定されたパラメーターの値をクエリする

イベントパラメーターは、JSON フォーマットで event.requestParameterJson パラメーターに格納されます。ActionTrail では、カスタムアラートルールを作成して、イベントパラメーターの値がクエリされたときにアラートを生成できます。

  • ECS インスタンスのリリース保護属性が false に変更されたときに生成されるイベントをクエリします。

    event.serviceName: Ecs and event.eventName: ModifyInstanceAttribute | SELECT * FROM (SELECT cast(json_extract("event.requestParameterJson", '$.DeletionProtection') as varchar) as deletion_protection FROM log) WHERE deletion_protection = 'false'

  • IP アドレス 0.0.0.0 が ApsaraDB RDS インスタンスのホワイトリストに追加されたときに生成されるイベントをクエリします。

    event.serviceName: Rds and event.eventName: ModifySecurityIps | SELECT * FROM (SELECT cast(json_extract("event.requestParameterJson", '$.SecurityIps') as varchar) as security_ips FROM log) WHERE security_ips like '%0.0.0.0%'

リソースをクエリする

resourceName パラメーターと resourceType パラメーターを構成して、特定のイベントに関連するリソースをクエリできます。

パラメーターの詳細については、「管理イベントの構造」をご参照ください。

リソースをクエリします。たとえば、次の文を使用して、インスタンス リリース イベントでリリースされた ECS インスタンスの ID をクエリできます。

event.serviceName: Ecs and (event.eventName: DeleteInstances or event.eventName: DeleteInstance or event.eventName: Release) | SELECT resourceArray[num] as instance_id FROM (SELECT split("event.resourceName", ';') as resourceArray, array_position(split("event.resourceType", ';'), 'ACS::ECS::Instance') as num FROM log) where num > 0

アイデンティティの照会

特定のイベントの ID に関する情報をクエリし、特定の ID に対してアラートを生成するカスタムアラート ルールを作成できます。

userIdentity パラメーターには、type、userName、principalId、accountId などの複数のフィールドが含まれています。パラメーターの詳細については、「管理イベントの構造」をご参照ください。

  • ID のタイプをクエリします。

    * | SELECT "event.userIdentity.type" as user_type

  • ID の名前をクエリします。

    * | SELECT "event.userIdentity.userName" as user_name

  • ID の ID をクエリします。

    * | SELECT "event.userIdentity.principalId" as principal_id

  • ID が属する Alibaba Cloud アカウントの ID をクエリします。

    * | SELECT "event.userIdentity.accountId" as account_id

統計をクエリする

イベントが生成された回数をクエリし、指定されたしきい値を超えたときにアラートを生成するカスタムアラート ルールを作成できます。

  • このアラートは、ECS インスタンスが過剰な回数 (たとえば 2 回以上) 再起動した場合にトリガーされます。

    event.serviceName: Ecs and (event.eventName: RebootInstances or event.eventName: RebootInstance) | SELECT account_id, resourceArray[num] as instance_id, count(*) as cnt FROM ( SELECT "event.userIdentity.accountId" as account_id, split("event.resourceName", ';') as resourceArray, array_position(split("event.resourceType", ';'), 'ACS::ECS::Instance') as num FROM log) where num > 0 group by account_id, instance_id

  • ログインエラーの数が指定されたしきい値 (たとえば 2) を超えた場合にアラートを生成します。

    event.eventName: ConsoleSignin and event.userIdentity.type: ram-user and not event.errorMessage: success | select "event.userIdentity.principalId" as user_id, "event.userIdentity.userName" as user_name, count(1) as cnt group by user_id, user_name

カスタムアラートの例

arbitrary 関数は、x の空でないランダムな値を返します。構文は arbitrary(x) です。詳細については、「arbitrary 関数」をご参照ください。以下に、arbitrary 関数を使用するカスタムアラートの 2 つの例を示します:

  • 例 1: RDS インスタンスのリリースに関するアラート

    event.serviceName: RDS and (event.eventName: DeleteDBInstance or event.eventName: Release or event.eventName: DestroyDBInstance) | SELECT account_id, resourceArray[num] as instance_id, ram_user_id, user_type, user_name FROM (SELECT "event.userIdentity.accountId" as account_id, "event.userIdentity.principalId" as ram_user_id, split("event.resourceName", ';') as resourceArray, array_position(split("event.resourceType", ';'), 'ACS::RDS::DBInstance') as num, "event.userIdentity.type" as user_type, "event.userIdentity.userName" as user_name FROM log ) where num > 0

  • 例 2: セキュリティグループの構成変更に関するアラート

    event.eventName: CreateSecurityGroup OR event.eventName: AuthorizeSecurityGroup OR event.eventName: AuthorizeSecurityGroupEgress OR event.eventName: RevokeSecurityGroup OR event.eventName: RevokeSecurityGroupEgress OR event.eventName: JoinSecurityGroup OR event.eventName: LeaveSecurityGroup OR event.eventName: DeleteSecurityGroup OR event.eventName: ModifySecurityGroupPolicy) | select "event.userIdentity.accountId" as account_id, "event.userIdentity.principalId" as ram_user_id, "event.eventName" as event_name, arbitrary("event.userIdentity.type") as user_type, arbitrary("event.userIdentity.userName") as user_name group by account_id, ram_user_id, event_name

参照

  • Simple Log Service でもカスタムアラート ルールを作成できます。詳細については、「アラート ルールを作成する」をご参照ください。

  • アラート ルールを有効にすると、Simple Log Service でアラート ルールに関する情報を表示できます。詳細については、「アラート ルールを管理する」をご参照ください。