# ルール例外

ルール例外を設定すると、Aikido は選択したルールに一致するアクティビティを無視します。例外は、コンテナ内で正当に新しいバイナリを実行するデプロイメントツールのような、既知の誤検知を抑制するために使用します。

{% hint style="warning" %}
ルール例外はワークスペース全体に適用されます。クラスタや VM のスコープはないため、namespace や pod 名などの条件は、同じ値を持つすべてのクラスタと VM で一致するアクティビティを抑制します。見たいアクティビティを隠してしまわないよう、具体的な条件を使用してください。
{% endhint %}

## 前提条件

* ルール例外の追加、編集、削除を行うための管理者ロール。

## ルール例外を表示

次へ移動します： **Runtime Sensors** → **ルール例外** 各例外の名前、条件、および適用されるルール数を表示します。行上のメニューをクリックすると、例外を編集または削除できます。

## ルール例外を追加

{% stepper %}
{% step %}

### フォームを開く

次へ移動します： **Runtime Sensors** → **ルール例外** に移動し、 **ルール例外を追加**。また、検知を開いてクリックすることもできます **アクション** → **ルール例外を追加**。その後 Aikido が検知から名前と条件を自動入力します。必要に応じて変更できます。
{% endstep %}

{% step %}

### 例外に名前を付ける

例外が存在する理由が分かる名前を入力してください。
{% endstep %}

{% step %}

### 条件を定義する

フィールド、演算子、値を選択し、クリックします **条件を追加** さらに追加します。

1 つの例外内のすべての条件が一致しないと、その例外は適用されません。複数の条件のうちいずれかに一致させるには、条件ごとに別々の例外を作成してください。
{% endstep %}

{% step %}

### ルールを選択する

次の場所で **適用するルール**、検索して 1 つ以上のルールを選択します。例外は選択した各ルールに適用されます。
{% endstep %}

{% step %}

### 例外を保存

クリックします **Save**.
{% endstep %}
{% endstepper %}

## フィールド

フィールド名は、以下の名前と一致します **フィールド** 検知のイベント一覧にあるため、そこから値をコピーできます。

| フィールド                        | 一致                 |
| ---------------------------- | ------------------ |
| `proc.name`                  | プロセス名              |
| `user.name`                  | ユーザー名              |
| `k8s.ns.name`                | Kubernetes ネームスペース |
| `k8s.pod.name`               | Kubernetes Pod 名   |
| `container.image.repository` | コンテナイメージ           |
| `fd.name`                    | ファイル名              |
| `fd.directory`               | ファイルディレクトリ         |

## 演算子

| 演算子          | フィールドが次の条件に一致する場合に一致                               |
| ------------ | -------------------------------------------------- |
| `=`          | 値と等しい。                                             |
| `!=`         | 値と等しくない。                                           |
| `startswith` | 値で始まる。                                             |
| `contains`   | 値を含む。                                              |
| `glob`       | ワイルドカードを使ったパターンに一致します。例: `web-*`.                  |
| `で`          | カンマ区切りのリスト内の任意の値と等しい。例: `kube-system, monitoring`. |

## 制限

* 値は最大 250 文字です。
* 値にはかっこや改行を含めることはできません。
* 例外には、名前、少なくとも 1 つの完全な条件、および少なくとも 1 つのルールが必要です。

{% hint style="info" %}
Pod 名は末尾に生成されたサフィックスが付くことがよくあります。検知から例外を作成すると、Aikido は `glob` 次のようなパターンを使用します: `web-*` それらの Pod に対して使用するため、再起動後も例外は一致し続けます。
{% endhint %}

## トラブルシューティング

### ルール例外は検知を抑制しません

例外に、そのルールが一覧に含まれていることを確認してください **適用するルール**また、すべての条件が検知と一致していることを確認してください。条件は組み合わされるため、1 つでも一致しない条件があれば例外は適用されません。検知を開き、namespace、Pod、プロセス、ファイルの値を条件と比較してください。

## 関連

{% content-ref url="./" %}
[ランタイムセンサーの概要](https://help.aikido.dev/docs/docs-ja/runtime-sensors/runtime-sensors-overview)
{% endcontent-ref %}

{% content-ref url="detection-rules.md" %}
[検知ルール](https://help.aikido.dev/docs/docs-ja/runtime-sensors/runtime-sensors-overview/detection-rules)
{% endcontent-ref %}
