# システム

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

## ユーザー

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

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

> EMQX 5.0.0以降、ダッシュボードのユーザー名とパスワードはREST APIリクエストのBasic認証資格情報として直接使用できません。REST APIアクセスにダッシュボードユーザーの認証情報を使用する場合は、[ダッシュボードのログインフロー](../api.md#bearer-token-authentication)を通じてベアラートークンを取得してください。

<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も管理可能。 |

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

ダッシュボードでグローバルユーザーを作成すると、**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バックエンドのローテーションや再設定が可能で、管理者認証方法を変更できます。

これらのスコープはすべて管理者相当の権限を付与します。これらのスコープと管理者相当以外のスコープを組み合わせても、ユーザーの実効権限は減りません。

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`リストを同リクエストに含めてください。

例えば、AdministratorからViewerに降格する際、`user_management`、`sso_management`、`api_key_management`を保持していると拒否されます。これらはAdministratorロールが必要なためです。Viewer互換スコープのみを含む`scopes`リストを指定して変更を完了してください。`mfa_management`は管理者専用でなく拒否原因にはなりません。

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

`dashboard.default_username`アカウント（`dashboard.default_password`で設定されたパスワードで作成）はブレークグラスアカウントです。ほかの管理者が誤設定やアクセス不能になった場合でもシステムを復旧できるよう、デフォルトユーザーは誤ってロックアウトされないよう保護されています。

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

他の管理者は影響を受けず、システムに少なくとも1人の管理者がいれば削除可能です。

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

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

- 自身のパスワード変更
- 自身の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**を有効にすると、この項目が3択の**Permission Mode**に代わり、デフォルトで有効。選択したネームスペースロールのデフォルトスコープを使用する場合は有効のまま、明示的にスコープを割り当てる場合は無効にします。
   - **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%;" />
