

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# EMQX で AWS IoT SiteWise Edge の認可ルールを設定する
<a name="authorization-rules-emqx-broker"></a>

EMQX は、ユーザー名、IP アドレス、クライアント ID などの識別子に基づく認可ルールの追加をサポートしています。これは、さまざまなオペレーションやトピックに接続する外部アプリケーションの数を制限する場合に便利です。

**Topics**
+ [Linux で組み込みデータベースを使用して認可を設定する](add-auth-rules-database-emqx-broker-linux.md)
+ [Windows で組み込みデータベースを使用して認可を設定する](add-auth-rules-database-emqx-broker-windows.md)
+ [EMQX デプロイ設定を認可用に更新する](update-emqx-broker-authorization.md)
+ [ユーザーの EMQX ダッシュボードを使用して認可ルールを追加する](add-rules-emqx-broker.md)

# Linux で組み込みデータベースを使用して認可を設定する
<a name="add-auth-rules-database-emqx-broker-linux"></a>

認可ルールを設定する場合、デプロイ設定に応じて 2 つの設定選択肢があります。
+ **Docker** – なしで標準Dockerインストールを実行している場合はLitmus Edge、**Docker ブリッジゲートウェイ**設定を使用します。これは通常、 AWS IoT SiteWise コンポーネントのみをデプロイしている場合に当てはまります。
+ **Litmus Edge** – ゲートウェイに Litmus Edgeをインストールしている場合は、**Litmus Edgeネットワークサブネット**設定を使用します。

**注記**  
最初にDockerブリッジゲートウェイを設定し、後で をインストールする場合はLitmus Edge、Litmus Edgeネットワークサブネットオプションを使用して認可ルールを再設定して、すべてのコンポーネント間の適切な通信を確保します。

**基本的な認可ルールを追加するには**

1. EMQX ブローカーがデプロイされ、実行されていることを確認します。

1. ゲートウェイホストでシェルセッションを開始します。

------
#### [ Docker without Litmus Edge ]

   を使用しない標準Dockerインストールの場合はLitmus Edge、以下を実行します。

   ```
   /greengrass/v2/bin/swe-emqx-cli acl init
   ```

------
#### [ Litmus Edge network subnet ]

   を使用している場合はLitmus Edge、Litmus Edge ネットワークサブネット IP を決定します。

   ```
   docker network inspect LitmusNetwork | grep IPAM -A9
   ```

   出力のサブネット値を書き留めて、次のコマンドを実行します。を前のステップのサブネット値`litmus_subnet_ip`に置き換えます。

   ```
   /greengrass/v2/bin/swe-emqx-cli acl init litmus_subnet_ip
   ```

------

   このツールは、提供された IP アドレスからブローカーへの接続を許可する認可ルールを自動的に作成して適用します。これにより、すべてのトピックへのアクセスが許可されます。これには、IoT SiteWise OPC UA コレクターと IoT SiteWise パブリッシャーが含まれます。

1. [EMQX デプロイ設定を認可用に更新する](update-emqx-broker-authorization.md) に進みます。

# Windows で組み込みデータベースを使用して認可を設定する
<a name="add-auth-rules-database-emqx-broker-windows"></a>

このセクションでは、Windows デプロイ用の組み込みデータベースを使用した認可ルールの設定について説明します。

**基本的な認可ルールを追加するには**

1. EMQX ブローカーがデプロイされ、実行されていることを確認します。

1.  AWS IoT SiteWise EMQX CLI ツールを実行します。

   ```
   C:\greengrass\v2\bin\swe-emqx-cli.ps1 acl init
   ```

   このツールは、localhost (127.0.0.1) からブローカーへの接続を許可する ACL ルールを自動的に作成して適用します。これにより、すべてのトピックへのアクセスが許可されます。これには、IoT SiteWise OPC UA コレクターと IoT SiteWise パブリッシャーが含まれます。

1. [EMQX デプロイ設定を認可用に更新する](update-emqx-broker-authorization.md) に進みます。

# EMQX デプロイ設定を認可用に更新する
<a name="update-emqx-broker-authorization"></a>

**EMQX デプロイ設定を認可用に更新するには**

1. <a name="sitewise-open-console"></a>[AWS IoT SiteWise コンソール](https://console.aws.amazon.com/iotsitewise/)に移動します。

1. 左側のナビゲーションで、 **Edge セクションの Edge ゲートウェイ**を選択します。 ****

1. 設定するゲートウェイを選択します。

1. **Edge ゲートウェイ設定**セクションで、**Greengrass コアデバイス**値をコピーします。後で使用するために保存します。

1. [AWS IoT コンソール](https://console.aws.amazon.com/iot/) を開きます。

1. 左側のナビゲーションの**「管理**」セクションで、**Greengrass デバイス**を選択し、次に**デプロイを選択します**。

1. 前に保存したコアデバイス値を見つけ、そのリンクを選択してデプロイを開きます。

1. Actions ****ドロップダウンボタンを選択し、**Revise** を選択します。

1. 表示されるメッセージを読み、**デプロイの修正**を選択します。**ターゲットの指定**ページが表示されます。

1. **コンポーネントの設定**ステップに到達するまで**次へ**を選択します。

1. ラジオボタン [`aws.greengrass.clientdevices.mqtt.EMQX`] を選択します。

1. **コンポーネントの設定**ボタンを選択します。コンポーネントの設定ページが表示されます。

1. **設定の更新**で、**コンポーネントバージョン: 2.\$1.\$1 のデフォルト設定にリセット**を選択します。

1. OS に基づいてマー**ジするには、次のコンテンツを 設定** セクションに貼り付けます。

------
#### [ Linux ]

   ```
   {
       "emqxConfig": {
           "authorization": {
               "no_match": "deny",
               "sources": [
                   {
                       "type": "built_in_database"
                   },
                   {
                       "type": "file",
                       "path": "data/authz/acl.conf"
                   }
               ]
           },
           "listeners": {
               "tcp": {
                   "default": {
                       "enabled": true,
                       "enable_authn": false
                   }
               },
               "ssl": {
                   "default": {
                       "enabled": true,
                       "enable_authn": true,
                       "ssl_options": {
                           "verify": "verify_none",
                           "fail_if_no_peer_cert": false
                       }
                   }
               }
           },
           "authentication": {
               "enable": true,
               "backend": "built_in_database",
               "mechanism": "password_based",
               "password_hash_algorithm": {
                   "iterations": 210000,
                   "mac_fun": "sha512",
                   "name": "pbkdf2"
               },
               "user_id_type": "username"
           },
           "dashboard": {
               "listeners": {
                   "http": {
                       "bind": 18083
                   }
               }
           }
       },
       "authMode": "bypass",
       "dockerOptions": "-p 8883:8883 -p 127.0.0.1:1883:1883 -p 127.0.0.1:18083:18083 -v emqx-data:/opt/emqx/data -e EMQX_NODE__NAME=emqx@local",
       "requiresPrivilege": "true"
   }
   ```

------
#### [ Windows ]

   ```
   {
       "emqxConfig": {
           "authorization": {
               "no_match": "deny",
               "sources": [
                   {
                       "type": "built_in_database"
                   },
                   {
                       "type": "file",
                       "path": "C:\\greengrass\\v2\\work\\aws.greengrass.clientdevices.mqtt.EMQX\\v2\\data\\authz\\acl.conf"
                   }
               ]
           },
           "listeners": {
               "tcp": {
                   "default": {
                       "enabled": true,
                       "enable_authn": false
                   }
               },
               "ssl": {
                   "default": {
                       "enabled": true,
                       "enable_authn": true,
                       "ssl_options": {
                           "verify": "verify_none",
                           "fail_if_no_peer_cert": false
                       }
                   }
               }
           },
           "authentication": {
               "enable": true,
               "backend": "built_in_database",
               "mechanism": "password_based",
               "password_hash_algorithm": {
                   "iterations": 210000,
                   "mac_fun": "sha512",
                   "name": "pbkdf2"
               },
               "user_id_type": "username"
           },
           "dashboard": {
               "listeners": {
                   "http": {
                       "bind": 18083
                   }
               }
           }
       },
       "authMode": "bypass",
       "requiresPrivilege": "true"
   }
   ```

------

1. **[確認]** を選択します。

1. **レビュー**ステップに達するまで**次へ**を選択します。

1. **[デプロイ]** をクリックします。

**注記**  
この時点では、ACL ファイルを編集して認可ルールを更新することはできません。または、デプロイが成功[ユーザーの EMQX ダッシュボードを使用して認可ルールを追加する](add-rules-emqx-broker.md)したら、 に進むこともできます。

# ユーザーの EMQX ダッシュボードを使用して認可ルールを追加する
<a name="add-rules-emqx-broker"></a>

EMQX ダッシュボードまたは EMQX AWS IoT SiteWise CLI ツールを使用して、認可ルールを追加または更新できます。 AWS IoT SiteWise EMQX CLI ツールは、EMQX の組み込みデータベースを使用して認可を管理します。

**注記**  
認可ルールの追加は、MQTT トピックパターンとアクセスコントロールの理解を必要とする高度な設定ステップです。EMQX の組み込みデータベースを使用して認可ルールを作成する方法の詳細については、EMQX ドキュメントの[「組み込みデータベースを使用する](https://docs.emqx.com/en/emqx/latest/access-control/authz/mnesia.html)」を参照してください。 **

**注記**  
提供されている EMQX 関連の手順は、参考用です。EMQX のドキュメントと機能は時間の経過とともに変更される可能性があり、そのドキュメントは維持されないため、最新の情報については [EMQX の公式ドキュメント](https://docs.emqx.com/en/emqx/latest/)を参照することをお勧めします。

------
#### [ EMQX dashboard ]

この手順では、EMQX ダッシュボードに認可ルールを追加する方法を示します。

EMQX ダッシュボードには、ゲートウェイホスト内からのみアクセスできます。ゲートウェイホストの外部から接続しようとすると、ダッシュボードにアクセスできなくなります。

**EMQX ダッシュボードを使用して認可ルールを追加するには**

1. ゲートウェイホスト内にいることを確認します。

1. ブラウザウィンドウを開き、 にアクセスします[http://localhost:18083/](http://localhost:18083/)。

1. EMQX ダッシュボードにログインします。この手順では、デフォルトのログイン認証情報が任意のものに変更されていることを前提としています。初期設定の詳細については、「」を参照してください[ユーザー名とパスワード認証を有効にする](configure-emqx-broker.md#emqx-broker-username-password-auth)。

1. シールドアイコンを選択し、ドロップダウンメニューから**認可**を選択します。

1. **組み込みデータベース**行の**アクセス許可**ボタンを選択します。

1. 組み込みデータベース認可セクションで、ビジネスニーズに合わせてユーザー認可ルールを追加または更新します。ルールの作成に関する詳細なガイダンスについては、EMQX ドキュメント[の「組み込みデータベースの使用](https://docs.emqx.com/en/emqx/latest/access-control/authz/mnesia.html)」セクションを参照してください。 **

------
#### [ AWS IoT SiteWise CLI tool using Linux ]

**Linux の EMQX AWS IoT SiteWise CLI ツールを使用して認可ルールを管理するには:**
+ 次の形式を使用して、ユーザーの認可ルールを追加します。

  ```
  /greengrass/v2/bin/swe-emqx-cli auth add your-username your-action your-permission your-topic [your-action-permission-topic]
  ```

**Example ユーザーの承認ルールを追加する**  
この例では、 という名前のユーザーのルールを追加する方法を示します`system1`。  

```
/greengrass/v2/bin/swe-emqx-cli auth add system1 \
    publish allow "sensors/#" \
    subscribe allow "control/#" \
    all deny "#"
```

**Example : ユーザーの認可ルールを表示する**  
ユーザーの承認ルールを表示するには`system1`、次のコマンドを実行します。  

```
/greengrass/v2/bin/swe-emqx-cli auth list system1
```

**Example : 既存の承認ルールをすべて表示する**  
現在使用しているすべての認可ルールを表示するには、次のコマンドを実行します。  

```
/greengrass/v2/bin/swe-emqx-cli auth list
```

**Example : ユーザーのすべての承認ルールを削除する**  
特定のユーザーに適用されるすべての認可ルールを削除するには、次のコマンドを実行します。  

```
/greengrass/v2/bin/swe-emqx-cli auth delete system1
```
削除を確認するプロンプトが表示されます。

------
#### [ AWS IoT SiteWise CLI tool using Windows ]

**で EMQX AWS IoT SiteWise CLI ツールを使用して認可ルールを管理するにはWindows PowerShell:**
+ 次の形式を使用して、ユーザーの認可ルールを追加します。

  ```
  C:\greengrass\v2\bin\swe-emqx-cli.ps1 auth add your-username your-action your-permission your-topic [your-action-permission-topic]
  ```

**Example : ユーザーの承認ルールを追加する**  
この例では、 という名前のユーザーのルールを追加する方法を示します`system1`。  

```
C:\greengrass\v2\bin\swe-emqx-cli.ps1 auth add system1 `
    publish allow "sensors/#" `
    subscribe allow "control/#" `
    all deny "#"
```

**Example : ユーザーの認可ルールを表示する**  
ユーザーの承認ルールを表示するには`system1`、次のコマンドを実行します。  

```
C:\greengrass\v2\bin\swe-emqx-cli.ps1 auth list system1
```

**Example : 既存の承認ルールをすべて表示する**  
現在使用しているすべての認可ルールを表示するには、次のコマンドを実行します。  

```
C:\greengrass\v2\bin\swe-emqx-cli.ps1 auth list
```

**Example : ユーザーのすべての承認ルールを削除する**  
特定のユーザーに適用されるすべての認可ルールを削除するには、次のコマンドを実行します。  

```
C:\greengrass\v2\bin\swe-emqx-cli.ps1 auth delete system1
```
削除を確認するプロンプトが表示されます。

------