

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

# リモートデバイス用のトンネルを開き、ブラウザベースの SSH を使用する
<a name="tunneling-tutorial-existing-tunnel"></a>

 AWS IoT コンソールから、トンネル**ハブまたは作成した IoT モノの詳細ページからトンネル**を作成できます。 IoT **トンネル**ハブからトンネルを作成する場合、クイックセットアップと手動セットアップのどちらを使用してトンネルを作成するかを指定できます。チュートリアルの例については、「[トンネルを開き、リモートデバイスへの SSH セッションを開始します](secure-tunneling-tutorial-open-tunnel.md)」を参照してください。

 AWS IoT コンソールのモノの詳細ページからトンネルを作成する場合、このチュートリアルに示すように、新しいトンネルを作成するか、そのモノの既存のトンネルを開くかを指定することもできます。既存のトンネルを選択すると、このデバイス用に作成した最新のオープントンネルにアクセスできます。その後、ターミナル内のコマンドラインインターフェイスを使用して、デバイスに SSH で接続できます。

## 前提条件
<a name="tunneling-tutorial-existing-prerequisites"></a>
+ リモートデバイスが背後にあるファイアウォールは、ポート 443 でアウトバウンドトラフィックを許可する必要があります。作成されたトンネルは、このポートを使用してリモートデバイスに接続します。
+  AWS IoT レジストリに IoT モノ ( など`RemoteDevice1`) を作成しました。これは、クラウドでのリモートデバイスの表示に対応しています。詳細については、「[AWS IoT レジストリにデバイスを登録する](https://docs.aws.amazon.com/iot/latest/developerguide/register-device.html)」を参照してください。
+ デバイスゲートウェイに接続し、MQTT トピックサブスクリプションで設定されているリモートデバイスで実行されている IoT AWS IoT デバイスエージェント (「」を参照[IoT エージェントスニペット](configure-remote-device.md#agent-snippet)) がある。詳細については、[「デバイスを AWS IoT デバイスゲートウェイに接続する](https://docs.aws.amazon.com/iot/latest/developerguide/sdk-tutorials.html)」を参照してください。
+ リモートデバイスで SSH デーモンが実行されている必要があります。

## リモートデバイス用の新しいトンネルを開く
<a name="tunneling-tutorial-existing-open-tunnel"></a>

例えば、リモートデバイス `RemoteDevice1` へのトンネルを開くとします。まず、 AWS IoT レジストリに `RemoteDevice1` という名前で IoT のモノを作成します。その後、、 AWS IoT API リファレンス API AWS マネジメントコンソール、または を使用してトンネルを作成できます AWS CLI。

トンネル作成時に送信先を設定すると、セキュアトンネリングサービスにより MQTT および予約済み MQTT トピック (`$aws/things/RemoteDeviceA/tunnels/notify`) を介して、送信先クライアントアクセストークンがリモートデバイスに配信されます。詳細については、「[AWS IoT コンソールでのトンネル作成方法](secure-tunneling-tutorial-open-tunnel.md#tunneling-tutorial-flows)」を参照してください。

**コンソールからリモートデバイス用のトンネルを作成するには**

1. `RemoteDevice1` というモノを選択して詳細を表示し、**[Create secure tunnel]** (セキュアトンネルの作成) を選択します。  
![\[Amazon リソースネーム (ARN) を表示した「RemoteDevice1」という名前のデバイスの詳細。\]](http://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/images/tunnel-create-thing.PNG)

1. 新しいトンネルを作成するか、既存のトンネルを開くかを選択します。新しいトンネルを作成するには、**[Create new tunnel]** (新しいトンネルの作成) を選択します。次に、トンネルを作成するために、クイックセットアップ方式または手動セットアップ方式のどちらを使用するか選択できます。詳細については、「[手動セットアップを使用してトンネルを開き、リモートデバイスに接続する](tunneling-tutorial-manual-setup.md)」および「[トンネルを開き、ブラウザベースの SSH を使用してリモートデバイスにアクセスします。](tunneling-tutorial-quick-setup.md)」を参照してください。

**API を使用してリモートデバイス用のトンネルを作成するには**  
新しいトンネルを開くには、[OpenTunnel](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-secure-tunneling_OpenTunnel.html) API オペレーションを使用できます。次のコードは、このコマンドの実行例を示しています。

```
aws iotsecuretunneling open-tunnel \ 
    --region us-east-1 \ 
    --endpoint https://api.us-east-1.tunneling.iot.amazonaws.com
    --cli-input-json file://input.json
```

次では、`input.json` ファイルの内容を示しています。`destinationConfig` パラメータを使用して、送信先デバイスの名前 (例えば `RemoteDevice1`) と、送信先デバイスへのアクセスに使用するサービス (例えば `SSH`) を指定できます。オプションで、トンネルの説明やタグなどの追加パラメータを指定することもできます。

**input.json の内容**

```
{
   "description": "Tunnel to remote device1",
   "destinationConfig": { 
      "services": [ "SSH" ],
      "thingName": "RemoteDevice1"
   }
}
```

このコマンドを実行すると、新しいトンネルの作成と、送信元と送信先のアクセストークンが提供されます。

```
{
    "tunnelId": "01234567-89ab-0123-4c56-789a01234bcd",
    "tunnelArn": "arn:aws:iot:us-east-1:123456789012:tunnel/01234567-89ab-0123-4c56-789a01234bcd",
    "sourceAccessToken": "<SOURCE_ACCESS_TOKEN>",
    "destinationAccessToken": "<DESTINATION_ACCESS_TOKEN>"
}
```

## 既存のトンネルを開き、ブラウザベースの SSH を使用する
<a name="tunneling-tutorial-existing-convert-tunnel"></a>

たとえば、手動セットアップ方式または AWS IoT API リファレンス API を使用して`RemoteDevice1`、リモートデバイス のトンネルを作成したとします。次に、デバイスの既存のトンネルを開き、**[Quick setup]** (クイックセットアップ) を選択すると、ブラウザベースの SSH 機能を使用できます。既存のトンネル設定は編集できないため、手動セットアップ方式は使用できません。

ブラウザベースの SSH 機能を使用するには、ソースアクセストークンのダウンロードや、ローカルプロキシの設定は必要ありません。ウェブベースのローカルプロキシが自動的に設定されるので、リモートデバイスとのやり取りを開始できます。

**クイックセットアップ方式とブラウザベースの SSH を使用するには**

1. 作成した `RemoteDevice1` というモノの詳細ページに移動し、**[Create secure tunnel]** (セキュアトンネルの作成) を選択します。

1. **[Use existing tunnel]** (既存のトンネルを使用する) を選択して、リモートデバイス用に作成した最新のオープントンネルを開きます。トンネル設定は編集できないため、トンネルの手動セットアップ方式を使用することはできません。クイックセットアップ方式を使用するには、**[Quick setup]** (クイックセットアップ) を選択します。

1. トンネル設定の詳細を確認して確定し、トンネルを作成します。トンネルの設定は編集できません。

   トンネルを作成すると、セキュアトンネリングでは [rotateTunnelAccessToken](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-secure-tunneling_RotateTunnelAccessToken.html) API オペレーションを使用して元のアクセストークンを取り消し、新しいアクセストークンを生成します。リモートデバイスが MQTT を使用している場合、これらのトークンは、リモートデバイスがサブスクライブしている MQTT トピックに自動的に配信されます。これらのトークンを送信元デバイスに手動でダウンロードすることもできます。

トンネルを作成したら、ブラウザベースの SSH を使用して、コンテキスト内のコマンドラインインターフェイスを使用してコンソールから直接リモートデバイスとやり取りできます。このコマンドラインインターフェイスを使用するには、作成したモノのトンネルを選択し、詳細ページで **[Command-Line Interface]** (コマンドラインインターフェイス) セクションを展開します。ローカルプロキシは既に設定されているので、コマンドを入力して、リモートデバイス `RemoteDevice1` へのアクセスや、やり取りをすぐに開始できます。

クイックセットアップ方式とブラウザベースの SSH の使用方法の詳細については、「[トンネルを開き、ブラウザベースの SSH を使用してリモートデバイスにアクセスします。](tunneling-tutorial-quick-setup.md)」を参照してください。

## クリーンアップ
<a name="tunnel-cleanup-existing"></a>
+ 

**トンネルを閉じる**  
トンネルの使用が終わったら、トンネルを閉じることをお勧めします。トンネルを指定した継続期間を超えて開いたままにしていると、閉じた状態になることもあります。トンネルが閉じた場合、再び開くことはできません。閉じたトンネルを開いて **[Duplicate tunnel]** (トンネルの複製) を選択すれば、トンネルを複製できます。使用するトンネルの継続時間を指定し、新しいトンネルを作成します。
  +  AWS IoT コンソールから個々のトンネルまたは複数のトンネルを閉じるには、[トンネルハブ](https://console.aws.amazon.com/iot/home#/tunnels)に移動し、閉じるトンネルを選択して、**[Close tunnel]** (トンネルを閉じる) を選択します。
  +  AWS IoT API リファレンス API を使用して個々のトンネルまたは複数のトンネルを閉じるには、[CloseTunnel](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-secure-tunneling_CloseTunnel.html) API オペレーションを使用します。

    ```
    aws iotsecuretunneling close-tunnel \ 
        --tunnel-id "01234567-89ab-0123-4c56-789a01234bcd"
    ```
+ 

**トンネルの削除**  
からトンネルを完全に削除できます AWS アカウント。
**警告**  
削除の操作は永続的で、元には戻せません。
  +  AWS IoT コンソールから個々のトンネルまたは複数のトンネルを削除するには、[トンネルハブ](https://console.aws.amazon.com/iot/home#/tunnels)に移動し、削除するトンネルを選択して、**[Delete tunnel]** (トンネルを削除する) を選択します。
  +  AWS IoT API リファレンス API を使用して個々のトンネルまたは複数のトンネルを削除するには、[CloseTunnel](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-secure-tunneling_CloseTunnel.html) API オペレーションを使用します。API を使用する場合は、`delete` フラグを `true` に設定します。

    ```
    aws iotsecuretunneling close-tunnel \ 
        --tunnel-id "01234567-89ab-0123-4c56-789a01234bcd"
        --delete true
    ```