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

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

最終更新日:Jun 17, 2026

カスタムアラートルールを作成すると、特定のイベントを監視して、柔軟なエンタープライズセキュリティ監視が可能になります。ActionTrail は、設定したクエリ、チェック頻度、トリガー条件に基づいてアラートを生成し、その後、アラートのノイズ除去を実行して、アラートポリシーとアクションポリシーに基づいて通知を送信します。

背景情報

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

手順

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

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

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

  4. アラートの作成 パネルで、クエリと分析の設定を追加します。

    1. [クエリと分析] の右側にある [追加] をクリックします。

    2. [クエリと分析] ダイアログボックスで、詳細設定 タブの タイプログストア名 に、Authorization Methodデフォルト に設定します。

      説明

      [リージョン] フィールドと [プロジェクト] フィールドは、イベントアラートが有効になっているトレイルに合わせて自動的に入力されます。

    3. トレイルがイベントを配信する Logstore を選択します。Logstore 名は actiontrail_<trail_name> の形式です。

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

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

      • [有効化]:すべてのクエリと分析で専用 SQL を有効にします。

      • 閉じる:専用 SQL を無効にします。

      専用 SQL の詳細については、「高性能・高精度のクエリと分析 (専用 SQL)」をご参照ください。

    5. 検索期間 を設定し、クエリ の右側にあるテキストボックスにカスタムクエリ文を入力してから、[プレビュー] をクリックします。

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

    6. 確定 をクリックします。

  5. アラートの作成 パネルで、ルール名チェック頻度[グループ評価]トリガー条件タグの追加ラベルを追加する[データなし復旧]詳細設定ターゲット Logstore などのパラメータを設定します。

    パラメータの詳細については、「アラート監視ルールのパラメータ」をご参照ください。

  6. 決定 をクリックします。

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

カスタムクエリ文

シナリオ

説明

カスタムクエリ文

クラウドサービスとイベントでフィルタリング

クラウドサービスとイベント名でイベントをフィルタリングします。

  • 1 つのサービスに対して 1 つのイベントを指定します。たとえば、ECS のインスタンス作成イベントを指定します。

    event.serviceName: Ecs and event.eventName: RunInstances

  • 1 つのサービスに対して複数のイベントを指定します。たとえば、ApsaraDB RDS のインスタンス解放イベントを指定します。

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

  • 複数のサービスに対して複数のイベントを指定します。たとえば、Resource 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))

パラメータの取得と指定

event.requestParameterJson オブジェクト内の特定のパラメータ値でイベントをフィルタリングします。

  • ECS インスタンスの DeletionProtection 属性が 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'

  • ApsaraDB RDS インスタンスのホワイトリストが 0.0.0.0 に設定されたイベントをフィルタリングします。

    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%'

リソースの取得

リソース名またはタイプでイベントをフィルタリングします。

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

単一のリソースを取得します。たとえば、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

アイデンティティの取得

イベントを開始したアイデンティティでイベントをフィルタリングします。

アイデンティティ情報 (userIdentity) には、アイデンティティタイプ (type)、アイデンティティ名 (userName)、アイデンティティ ID (principalId)、Alibaba Cloud アカウント ID (accountId) などのパラメータが含まれます。パラメータの詳細については、「管理イベント構造」をご参照ください。

  • アイデンティティタイプを取得します。

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

  • アイデンティティ名を取得します。

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

  • アイデンティティ ID を取得します。

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

  • Alibaba Cloud アカウント ID を取得します。

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

イベント発生回数のカウント

イベント発生回数をカウントし、指定したしきい値を超えた場合にアラートをトリガーします。

  • ECS インスタンスの再起動回数が過剰な場合にアラートを発報します。たとえば、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 から任意の null 以外の値を返します。構文は arbitrary(x) です。詳細については、「arbitrary 関数」をご参照ください。次の例では、この関数を使用します。

  • 例 1:ApsaraDB 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 で管理できます。詳細については、「アラート監視ルールの管理」をご参照ください。