# ACL拒否の多発アラート

ACL拒否の多発アラートは、短期間に多くのクライアントのトピックアクセス試行がACLチェックによって拒否されたことを示します。以下の両方の条件が満たされた場合にアラートが発生します。

- 過去30分間に少なくとも**1,800回の認可試行**があった。
- 過去30分間の認可試行のうち、**50%以上が失敗**した。

この状況は通常、異常なクライアントアクセス動作を示しており、正当なメッセージのパブリッシュやサブスクライブに支障をきたす可能性があります。主な原因としては、誤ったACLルール、権限のないトピックへのアクセス、悪意のあるアクセス試行、外部認可サービスの不調などが挙げられます。

## 権限のないトピックへのクライアントアクセス

### 症状

一部のクライアントがパブリッシュまたはサブスクライブ時に繰り返しACL拒否を受け、その失敗が特定のトピック群に集中している。

### 主な原因

- ACLルールが正当なクライアントが必要とするトピックを許可していない。
- ACLポリシー変更後にクライアント設定が更新されていない。

### 対処方法

- ACLルールが正当なクライアントによる必要なトピックのパブリッシュおよびサブスクライブを許可しているか確認する。
- ACLポリシー変更は全クライアントに適用する前に、テストまたは段階的に展開する。

## 権限のないクライアントによるアクセス試行

### 症状

短期間に多くの認可リクエストが失敗し、そのリクエストが見慣れないクライアントや送信元から発生している。

ACL拒否ログには、見慣れない送信元IPアドレスに集中したリクエストや、多数の不明なクライアントIDがランダムなトピックにアクセスしようとしている様子が記録されることがある。

### 主な原因

- 悪意のあるクライアントがEMQXデプロイメントにアクセスを試みている。
- 必要な権限を持たないクライアントが繰り返しパブリッシュやサブスクライブを試みている。

### 対処方法

- デプロイメントログを確認し、拒否された各リクエストのクライアントID、送信元IPアドレス、ユーザー名を特定する。
- 疑わしいクライアントIDやIPアドレスをブロックリストに追加する。
- ユーザー名・パスワード認証、JWT、相互TLSなど、セキュリティ要件に応じて認証を強化する。

## 外部認可サービスの障害

### 症状

HTTP API、データベース、LDAPに基づく外部ACL認可サービスでレイテンシや障害が発生すると、正当な認可リクエストが失敗する場合がある。

ACL失敗の増加が外部サービスのレイテンシやエラー率の上昇と同時に発生している場合、そのサービスが原因である可能性が高い。

### 主な原因

- 外部ACL認可サービスが利用不可または異常なレスポンスを返している。
- 外部サービスが過負荷状態で、リクエストがタイムアウトまたは失敗している。

### 対処方法

- 外部認可サービスの状態とログを確認し、エラーを特定する。
- EMQXで適切なタイムアウトおよびリトライポリシーを設定し、一時的なサービス不安定の影響を軽減する。
- 外部サービスのコネクションプールサイズを増やし、同時接続数とスループットを向上させる。

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

1. EMQX Cloudコンソールにログインし、デプロイメントを開いて**デプロイメントログ**を確認します。ACL関連のログから影響を受けているクライアントやトピックを特定します。

2. **アラート**を開き、ACL拒否アラートの発生期間と範囲を確認します。

3. MQTTXなどのクライアントを使用し、影響を受けているクライアントとしてパブリッシュおよびサブスクライブを試み、失敗を再現します。

4. 外部ACL認可サービスを使用している場合は、そのログとヘルス状態を確認し、レイテンシや障害の有無を調べます。

## 影響

- このアラートはデプロイメントの停止や課金の変更を伴いません。
- 繰り返し発生する場合は、クライアントアクセスのロジックやACLポリシーに問題がある可能性が高く、正常なメッセージのパブリッシュや配信を妨げる恐れがあります。
- 速やかにACL設定やクライアントアクセスのロジックを調査し、修正してください。
