# システム

EMQXダッシュボードの**システム**メニューでは、ユーザーおよびロール管理、監査ログ、APIキー、ライセンス、SSO、データのバックアップとリストア、ホットアップグレード、一般設定などのシステム管理オプションにアクセスできます。

## ユーザー

**ユーザー**ページでは、[CLI](../cli.md)で生成されたユーザーを含む、すべてのアクティブなダッシュボードユーザーの概要を確認できます。

新しいユーザーを追加するには、ページ右上の**+ 作成**ボタンをクリックしてください。ポップアップダイアログが表示され、必要なユーザー情報の入力を求められます。入力後、**作成**ボタンをクリックしてユーザーアカウントを生成します。ユーザー管理のための編集、パスワード更新、削除などの操作は、アクション列から簡単にアクセスできます。

> セキュリティ上の理由から、EMQX 5.0.0以降、ダッシュボードユーザーはREST API認証には使用できません。

<img src="./assets/ee-users.png" alt="画像" style="zoom:67%;" />

### ロールベースアクセス制御

EMQX 5.3以降、ダッシュボードはEMQX Enterpriseユーザー向けにロールベースアクセス制御（RBAC）機能を導入しています。

RBACは、組織内のユーザーの役割に基づいて権限を割り当てることができる機能です。この機能により、認可管理が簡素化され、アクセス制限によるセキュリティ強化や組織のコンプライアンス向上が実現され、ダッシュボードの重要なアクセス制御メカニズムとなっています。

現在、ユーザーに設定できる事前定義ロールは以下の2つです。ユーザー作成時に**ロール**ドロップダウンから選択できます。

+ **Administrator（管理者）**

    管理者はクライアント管理、システム設定、APIキー、ユーザー管理など、すべてのEMQX機能およびリソースの管理権限を持ちます。

+ **Viewer（閲覧者）**

    閲覧者はすべてのEMQXデータおよび設定にアクセスでき、REST APIのすべての`GET`リクエストに相当します。ただし、データの作成、変更、削除権限はありません。

### ログインユーザースコープ

ダッシュボードのログインユーザーには、ロール内でアクセス可能なAPIの範囲をさらに制限するためにスコープを割り当てることができます。[10のAPIキー用スコープ](../api.md#built-in-api-key-scopes)に加え、ダッシュボードユーザーにはブラウザセッションにのみ適用される4つの追加スコープがあります。

| スコープ | 必要なロール | 用途 |
| --- | --- | --- |
| `user_management` | Administrator | ダッシュボードユーザーの管理（作成／更新／削除）。 |
| `sso_management` | Administrator | SSOバックエンドおよびSSOユーザーレコードの管理。 |
| `api_key_management` | Administrator | APIキーの管理。 |
| `mfa_management` | 任意 | 自身のMFA管理。管理者は他ユーザーのMFAも管理可能。 |

これらのうち3つのスコープ（`user_management`、`sso_management`、`api_key_management`）は管理者ロールが必要であり、閲覧者には割り当てできません。例外は`mfa_management`で、閲覧者も保有可能ですが、自身のMFA管理のみ許可され、他ユーザーのMFA設定にはアクセスできません。これは閲覧者アカウントが追加権限なしに自分の認証器を再登録または回復できるようにするために有用です。

ダッシュボードでグローバルユーザーを作成すると、**Namespace**オプションはオフ、**Permission Mode**はデフォルトで**Role Default Scopes**に設定されています。以下のモードから選択できます。

- **Role Default Scopes**：選択したロールのデフォルトスコープを使用。ロールデフォルトの変更は自動的に反映されます。
- **Privilege Scopes**：`system`、`user_management`、`api_key_management`、`sso_management`から選択。管理者相当の権限を提供します。
- **Custom Restricted Permissions**：管理者相当グループ外のロールが保有可能なスコープ（`connections`、`publish`、`data_integration`、`monitoring`、`mfa_management`など）から選択。空の場合はスコープ保護されたAPIにアクセスできません。

<img src="./assets/user_scopes.png" alt="グローバルダッシュボードユーザーの作成と権限モードの選択" style="zoom:67%;" />

ネームスペースユーザーは別のスコープ割り当てフローを使用し、利用可能なスコープはロールとネームスペースによって制限されます。設定手順は[ネームスペースロールのユーザー作成](#create-a-user-with-a-namespaced-role)を参照してください。

| ユーザー種別 | デフォルト権限 |
| --- | --- |
| グローバル管理者 | 14スコープすべて：10のAPIキー用スコープと4つのログイン専用スコープ。 |
| グローバル閲覧者 | 10のAPIキー用スコープ。`mfa_management`は明示的に割り当てた場合のみ付与。 |
| ネームスペース管理者 | Connections、Monitoring、Data Integration、Access Control、System、Cluster、License、User Management、API Key Management。 |
| ネームスペース閲覧者 | グローバル閲覧者と同じ10のAPIキー用スコープ。`mfa_management`は明示的に割り当てた場合のみ付与。 |

::: warning 管理者相当スコープは単独で割り当てる必要があります

以下の管理者相当スコープはダッシュボードの**Privilege Scopes**にまとめられ、検証メッセージでは`privilege scopes`と呼ばれます。

- `system`は設定管理（`/configs*`、`/data/*`など）をカバーし、保持者は任意の設定サブツリーを更新したり、ユーザーおよびAPIキー記録を含むバックアップアーカイブを復元できます。
- `user_management`は他のダッシュボードユーザーの作成・変更（任意のスコープ設定を含む）を許可します。
- `api_key_management`は任意のスコープ設定を含むAPIキーの作成・変更を許可します。
- `sso_management`はSSOバックエンドのローテーションや再設定を可能にし、管理者認証方法を変更できます。

これらのスコープは管理者相当の権限を付与し、これらのうち1つとグループ外のスコープを組み合わせても実効権限は減りません。

EMQX 6.0.4以降、グローバルダッシュボードユーザーの明示的なスコープリストは、上記管理者相当スコープとグループ外スコープを混在できません。作成・更新リクエストはHTTP 400で拒否され、スコープ変更は適用されません。必要な権限に応じて、管理者相当スコープのみかグループ外スコープのみを割り当ててください。`mfa_management`は管理者相当グループ外です。

EMQX 6.0.4以前に作成された混在スコープユーザーは引き続き動作し、管理者相当スコープは有効です。ダッシュボードで編集すると互換性警告が表示され、保存前に**Privilege Scopes**、**Custom Restricted Permissions**、**Role Default Scopes**のいずれかを選択する必要があります。明示的スコープリストは管理者相当スコープのみかグループ外スコープのみでなければなりません。ロールデフォルトやスコープなしは制限対象外です。

この排他ルールはネームスペースダッシュボード管理者には適用されません。彼らは許可されたスコープ組み合わせを使用でき、かつネームスペース内の操作とリソースにのみアクセス可能です。

:::

#### ロール変更とスコープ互換性

ダッシュボードでユーザーのロールやネームスペースを変更すると、フォームはそのロールやネームスペースでサポートされないスコープを削除し、警告を表示します。REST API利用時はEMQXがスコープの互換性をチェックし、互換性がないリクエストはHTTP 400で拒否されます。エラー解消には、新ロールに適合する`scopes`リストを同時に含めてください。

例えば、管理者から閲覧者に降格する際、ユーザーが`user_management`、`sso_management`、`api_key_management`を保持していると拒否されます。閲覧者に対応するスコープのみを含む`scopes`リストを指定して変更を完了してください。(`mfa_management`は管理者専用でなく拒否されません。)

### デフォルト管理者保護

`dashboard.default_username`アカウント（`dashboard.default_password`で設定されたパスワードで作成）はブレイクグラスアカウントです。システムが他の管理者の誤設定やアクセス喪失時に常に復旧可能であるよう、以下の保護が適用されます。

- ダッシュボードやREST APIから**削除できません**。削除ボタンは無効化されています。
- ロールは`administrator`から**変更できません**。
- スコープセットはカスタマイズできず、常にフル管理者権限を使用します。
- 説明とパスワードは通常通り編集可能です。

他の管理者は影響を受けず、システムに管理者が1人以上いる限り削除可能です。

### セルフサービスの範囲

すべてのダッシュボードユーザーは、スコープに関係なく以下の2つのセルフサービス操作を行えます。

- 自身のパスワード変更
- 自身のTOTP／MFAの登録または再登録。管理者がMFAを必須にしていない限り、MFAの無効化も可能です。その場合、無効化には`mfa_management`スコープが必要です。

その他のプロフィール更新（説明、ロール、管理者割り当てスコープ）は、操作ユーザーに適切なスコープが必要であり、対象が自身であっても例外はありません。

### ネームスペースロール

EMQX 6.0以降、ダッシュボードはネームスペースロールをサポートしています。この機能はロールベースアクセス制御を拡張し、マルチテナンシーを実現します。各ユーザーは特定のネームスペース内でのみ操作を制限できます。

::: warning 信頼されたデプロイメントのみ

ネームスペース管理者アクセスは、組織内のチームや事業部門を分離し、誤ったクロスチーム設定変更のリスクを軽減するための信頼された内部デプロイメント向けです。この機能は強力な分離保証を提供せず、パブリックまたは信頼できないマルチテナント環境のセキュリティ境界には適しません。

委任管理者にネームスペーススコープリソースの管理を許可する場合は、**管理** -> **クラスター設定** -> **[ルールエンジンセキュリティ](./cluster_settings.md#rule-engine-security)**でSSRF保護を有効にしてください。EMQX 6.0.4以降、このポリシーはコネクター設定のテスト、作成、更新時にHTTPおよびMQTTコネクターのターゲットを検証します。その他のコネクタータイプやランタイム接続は対象外です。完全なアウトバウンドネットワーク境界を強制するには、`iptables`や`nftables`などのホストレベルのイグレス制御を追加してください。[ルールエンジンポリシーとファイアウォールルールによるSSRF緩和](../cluster/security.md#mitigate-ssrf-with-rule-engine-policy-and-firewall-rules)を参照。

:::

::: tip

ネームスペースの詳細は[ネームスペース](../multi-tenancy/namespace-overview.md)をご覧ください。

:::

#### ネームスペースロールのユーザー作成

ダッシュボードで新規ユーザーを作成する際、**Namespace**オプションはデフォルトでオフです。有効にしてネームスペースを選択すると、ネームスペースロールのユーザーを作成できます。

::: tip 前提条件

1. ダッシュボードで管理対象ネームスペース（例：`namespace_01`）を作成してください。手順は[ネームスペースの作成](../multi-tenancy/create-namespace.md)を参照。
2. EMQXライセンスおよびクラスターがEMQX 6.0以降で稼働していることを確認してください。

:::

1. **システム** -> **ユーザー**に移動し、**+ 作成**をクリックします。
2. ユーザーを設定します：
   - **ユーザー名**：ユーザーの一意識別子。
   - **メモ**：任意の説明。
   - **パスワード**：ログインパスワード。
   - **ロール**：**Administrator**または**Viewer**を選択。
   - **Namespace**：デフォルトはオフ。オンにして既存のネームスペース（例：`namespace_01`）を選択。
   - **Use Role Default Scopes**：**Namespace**をオンにすると表示される項目で、デフォルトで有効。選択したネームスペースロールのデフォルトスコープを使用するか、明示的にスコープを割り当てるかを指定します。
   - **Scopes**：**Use Role Default Scopes**をオフにした場合に表示。選択したロールがネームスペース内で保有可能なスコープから選択。空の場合はスコープなし。

   <img src="./assets/create-namespaced-user.png" alt="ネームスペースユーザーの作成と明示的スコープ割り当て" style="zoom:67%;" />

3. **作成**をクリックして完了します。

CLIやAPIでユーザーを作成する場合、ロールは以下の形式で明示的に指定する必要があります。

```
ns:<NAMESPACE>::<ROLE>
```

例：

- `ns:namespace_01::administrator`
- `ns:namespace_01::viewer`

EMQX 6.3.0以降、ネームスペースロールのネームスペースは`multi_tenancy.deny_namespaces`に含まれていてはなりません。拒否された名前を使用するロールはEMQXにより拒否されます。設定詳細は[拒否されたネームスペース名](../multi-tenancy/namespace-global-settings.md#denied-namespace-names)を参照してください。

#### ネームスペースユーザーの動作

- **スコープ付きリソース**：ネームスペースユーザーは割り当てられたネームスペース内のリソース（コネクター、アクション、ソース、ルール、その他ネームスペース対応モジュール）の閲覧・管理のみ可能です。
- **クラスター全体設定**：まだネームスペース対応していない設定はネームスペースユーザーに対して読み取り専用です。変更可能なのはグローバル管理者のみです。
- **メッセージコンテンツ関連エンドポイントの制限**：MQTTメッセージの生コンテンツにアクセス・操作するREST APIエンドポイントはネームスペースユーザーには利用不可で、`403 Forbidden`を返します。これらはグローバル管理者のみアクセス可能です。
  - Mqueueメッセージ：`GET /clients/:clientid/mqueue_messages`
  - Inflightメッセージ：`GET /clients/:clientid/inflight_messages`
  - Retainedメッセージ：`GET /mqtt/retainer/messages`、`GET /mqtt/retainer/message/:topic`、`DELETE /mqtt/retainer/message/:topic`、`DELETE /mqtt/retainer/messages`
  - Delayedメッセージ：`GET /mqtt/delayed/messages`、`GET /mqtt/delayed/messages/:node/:msgid`、`DELETE /mqtt/delayed/messages/:node/:msgid`、`DELETE /mqtt/delayed/messages/:topic`
- **トレースのスコープ制限**：トレースエンドポイントにアクセスすると、ネームスペースユーザーは自身のネームスペースに属するトレースのみ閲覧可能です。異なるネームスペースのトレース停止、ダウンロード、ログストリーム、削除操作（`PUT /trace/:name/stop`、`GET /trace/:name/download`、`GET /trace/:name/log`、`GET /trace/:name/log_detail`、`DELETE /trace/:name`）は`404 Not Found`を返し、存在を漏らしません。バルク削除エンドポイント（`DELETE /trace`）は`403 Forbidden`を返し、全トレースのクリアはグローバル管理者のみ可能です。
- **APIキー管理**：ネームスペース管理者は自身のネームスペース内のAPIキーの作成、一覧表示、読み取り、更新、削除が可能です。グローバルAPIキーや他ネームスペースのキーは作成不可で、非表示となります。詳細は[ネームスペース管理者としてのAPIキー管理](../api.md#manage-api-keys-as-a-namespaced-administrator)を参照してください。
- **デフォルトランディングページ**：ネームスペースユーザーは通常通りダッシュボードにログインし、**概要**ページから開始します。すべてのメニュー項目は表示されますが、リソースデータは自動的にネームスペースでフィルタリングされます。
- **ライセンス管理**：ネームスペースユーザーはライセンス通知を表示しません。ライセンス管理はシステム管理者の責任です。

#### ネームスペース内のロール意味

- **Administrator（管理者）**：割り当てられたネームスペース内のリソースに対して作成、更新、削除、読み取りの完全な操作権限。
- **Viewer（閲覧者）**：割り当てられたネームスペース内の読み取り専用アクセス（`GET`リクエスト相当）。

## 監査ログ

**監査ログ**ページでは、EMQXクラスター内の重要な運用変更をリアルタイムで監視するための監査ログ設定を管理者が行えます。

監査ログ機能の詳細は[監査ログ](./audit-log.md)を参照してください。

## APIキー

**APIキー**ページでは、[HTTP API](../api.md)へのアクセス用APIキーの作成および管理が可能です。APIキーの作成・管理方法やロール・スコープの割り当てについては[APIキーの作成](../api.md#create-api-keys)をご覧ください。

## ライセンス

左側の**システム**メニューから**ライセンス**をクリックすると、ライセンスページにアクセスできます。このページでは、現在のライセンスの基本情報（接続クォータ使用状況、EMQXバージョン、顧客情報、発行情報）を確認できます。

**ライセンス更新**をクリックしてライセンスキーをアップロードします。**ライセンス設定**セクションでは、ライセンス接続クォータ使用量の高水準および低水準の閾値を設定可能です。ライセンスの詳細は[EMQX Enterpriseライセンスの利用](../../get-started/deploy/license.md)を参照してください。

## SSO

**SSO**ページでは、管理者がユーザーログイン管理のためのSSO機能を設定できます。SSO機能の詳細は[シングルサインオン（SSO）](./sso.md)をご覧ください。

## バックアップとリストア

**バックアップ＆リストア**ページでは、運用データおよび設定ファイルのバックアップ設定が可能です。グローバル管理者は**グローバル**と特定のネームスペースを切り替えて、そのスコープ内のバックアップファイルを管理できます。ネームスペース選択時は、バックアップファイルのアップロード、ダウンロード、削除、リストアが可能ですが、バックアップの作成はできません。詳細は[バックアップとリストア](../backup-restore.md)を参照してください。

## 設定

設定にアクセスするには、ダッシュボード右上の歯車アイコンをクリックします。

**設定**メニューでは、ダッシュボードの言語とテーマをカスタマイズできます。

- **言語**：表示言語を選択します。
- **テーマ**：ライトテーマ、ダークテーマ、またはOSのテーマに自動同期を選択可能です。同期を有効にすると、テーマはOS設定に従い、手動選択は無効になります。

さらに、設定メニューには**ルール**ページの[AI SQLジェネレーター](../../develop/data-integration/rule-get-started.md#sql-generator)機能の有効化・無効化トグルがあります。

<img src="./assets/settings_ee.png" alt="設定画面" style="zoom:67%;" />
