

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

# トンネルを開き、ブラウザベースの SSH を使用してリモートデバイスにアクセスします。
<a name="tunneling-tutorial-quick-setup"></a>

トンネルを作成するには、クイックセットアップ方式または手動セットアップ方式を使用できます。このチュートリアルでは、クイックセットアップ方式を使用してトンネルを開き、ブラウザベースの SSH を使用してリモートデバイスに接続する方法を説明しています。手動セットアップ方式を使用してトンネルを開く方法を示す例については、「[手動セットアップを使用してトンネルを開き、リモートデバイスに接続する](tunneling-tutorial-manual-setup.md)」を参照してください。

クイックセットアップ方式を使用すると、編集可能なデフォルト構成で新しいトンネルを作成できます。ウェブベースのローカルプロキシが設定され、アクセストークンは MQTT を使用してリモート送信先デバイスに自動的に配信されます。トンネルを作成したら、コンソール内のコマンドラインインターフェイスを使用してリモートデバイスとのやり取りを開始できます。

クイックセットアップ方式では、リモートデバイスにアクセスする送信先サービスとして SSH を使用する必要があります。さまざまなセットアップ方式の詳細については、「[トンネルのセットアップ方式](secure-tunneling-tutorial-open-tunnel.md#tunneling-tutorial-setup-methods)」を参照してください。

## クイックセットアップ方式の前提条件
<a name="tunneling-tutorial-quick-prerequisites"></a>
+ リモートデバイスが背後にあるファイアウォールは、ポート 443 でアウトバウンドトラフィックを許可する必要があります。作成されたトンネルは、このポートを使用してリモートデバイスに接続します。
+ デバイスゲートウェイに接続し、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="open-tunnel-quick"></a>

セキュアトンネルは AWS マネジメントコンソール、、 AWS IoT API リファレンス、または を使用して開くことができます AWS CLI。送信先名はオプションで設定できますが、このチュートリアルでは不要です。送信先を設定すると、MQTT を使用して、セキュアトンネリングによってアクセストークンをリモートデバイスに自動的に配信します。詳細については、「[AWS IoT コンソールでのトンネル作成方法](secure-tunneling-tutorial-open-tunnel.md#tunneling-tutorial-flows)」を参照してください。

**コンソールを使用してトンネルを開くには**

1. [AWS IoT コンソールのトンネルハブ](https://console.aws.amazon.com/iot/home#/tunnels) に移動し、**[Create tunnel]** (トンネルの作成) を選択します。  
![\[AWS IoT トンネルを作成、閉じる、または削除するためのオプションを含むトンネルの空のリストを示すコンソール。\]](http://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/images/tunnels-page.png)

1. このチュートリアルでは、トンネルの作成方式として **[Quick setup]** (クイックセットアップ) を選択し、**[Next]** (次へ) を選択します。
**注記**  
作成したモノの詳細ページからセキュアトンネルを作成する場合、新しいトンネルを作成するか、既存のトンネルを使用するかを選択できます。詳細については、「[リモートデバイス用のトンネルを開き、ブラウザベースの SSH を使用する](tunneling-tutorial-existing-tunnel.md)」を参照してください。  
![\[SSH または手動セットアップを使用する Quick Setup のオプションを含むセットアップ方法セクション。Quick Setup がプロキシとアクセストークンを自動的に設定する方法について説明します。\]](http://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/images/tunnels-choose-quick.PNG)

1. トンネル設定の詳細を確認して確定します。トンネルを作成するには、**[Confirm and create]** (確認と作成) を選択します。これらの詳細を編集する場合は、**[Previous]** (前へ) を選択して前のページに戻り、確認してトンネルを作成します。
**注記**  
クイックセットアップを使用する場合は、サービス名は編集できません。**[Service]** (サービス) として、**[SSH]** を使用する必要があります。

1. トンネルを作成するには、**[Done]** (完了) を選択します。

   このチュートリアルでは、送信元または送信先のアクセストークンをダウンロードする必要はありません。これらのトークンは、トンネルに接続するためだけに使用できます。トンネルが切断された場合は、トンネルに再接続するために新しいトークンを生成してリモートデバイスに送信できます。詳細については、「[トンネルのアクセストークンを再送信する](tunneling-tutorial-manual-setup.md#resend-access-tokens)」を参照してください。  
![\[必要に応じてトークンのローテーションと再送信の手順とともに、安全なトンネル接続を作成するための送信元アクセストークンと送信先アクセストークンを示すダイアログ。\]](http://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/images/tunnel-success.png)

**API を使用してトンネルを開くには**  
新しいトンネルを開くには、[OpenTunnel](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-secure-tunneling_OpenTunnel.html) API オペレーションを使用できます。

**注記**  
クイックセットアップ方式を使用してトンネルを作成できるのは、 AWS IoT コンソールからのみです。 AWS IoT API リファレンス API または を使用すると AWS CLI、手動セットアップ方式が使用されます。作成した既存のトンネルを開いてから、クイックセットアップ方式を使用するようにトンネルの設定方式を変更できます。詳細については、「[既存のトンネルを開き、ブラウザベースの SSH を使用する](tunneling-tutorial-existing-tunnel.md#tunneling-tutorial-existing-convert-tunnel)」を参照してください。

API オペレーションを実行する方法の例を次に示します。オプションで、モノの名前と送信先サービスを指定する場合は、`DestinationConfig` パラメータを使用します。このパラメータの使用方法を示す例については、「[リモートデバイス用の新しいトンネルを開く](tunneling-tutorial-existing-tunnel.md#tunneling-tutorial-existing-open-tunnel)」を参照してください。

```
aws iotsecuretunneling open-tunnel
```

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

```
{
    "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-quick-browser"></a>

クイックセットアップ方式でトンネルを作成し、送信先デバイスがトンネルに接続されると、ブラウザベースの SSH を使用してリモートデバイスにアクセスできます。ブラウザベースの SSH を使用すると、コンソール内のコンテキスト内のコマンドラインインターフェイスにコマンドを入力することで、リモートデバイスと直接通信できます。この機能により、コンソール外でターミナルを開いたり、ローカルプロキシを設定したりする必要がないため、リモートデバイスとのやり取りがしやすくなります。

**ブラウザベースの SSH を使用するには**

1. [AWS IoT コンソールのトンネルハブ](https://console.aws.amazon.com/iot/home#/tunnels) に移動して、作成したトンネルを選択し、その詳細を表示します。

1. **[Secure Shell (SSH)]** (セキュアシェル (SSH)) セクションを展開し、**[Connect]** (接続) を選択します。

1. ユーザー名とパスワードを入力して SSH 接続を認証するか、デバイスのプライベートキーを使用してより安全な認証を行うかを選択します。プライベートキーを使用して認証する場合は、PEM 形式 (256 および 512) の RSA キーのみが SSH AWS IoT Secure Tunneling コンソールで動作することに注意してください。
   + ユーザー名とパスワードを使用して接続するには、**[Use password]** (パスワードを使用する) を選択します。その後、ユーザー名とパスワードを入力して、ブラウザ内 CLI の使用を開始できます。
   + 送信先デバイスのプライベートキーを使用して接続するには、**[Use private key]** (プライベートキーを使用する) を選択します。ユーザー名を指定してデバイスのプライベートキーファイルをアップロードし、**[Connect]** (接続) を選択してブラウザ内 CLI の使用を開始します。  
![\[ブラウザ CLI 経由でプライベートキーに接続するフォームダイアログボックス。ユーザー名フィールドと、事前に選択したプライベートキーファイルを選択または使用するオプションが表示されます。\]](http://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/images/tunnel-browser-private-key.png)

ローカルプロキシが既に設定されているため、SSH 接続への認証が完了すると、コマンドの入力やブラウザ CLI によるデバイスとのやり取りをすぐに開始できます。

![\[JavaScript アプリケーションの状態と設定を管理する React フックを示すコードスニペット。\]](http://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/images/tunnel-browser-cli.PNG)


トンネルの継続時間が経過してもブラウザ CLI が開いたままになっていると、タイムアウトになり、コマンドラインインターフェイスが切断される可能性があります。トンネルを複製して別のセッションを開始し、コンソール自体でリモートデバイスとやり取りすることができます。

## ブラウザベースの SSH を使用する場合のトラブルシューティング
<a name="tunneling-tutorial-browser-troubleshoot"></a>

ブラウザベースの SSH を使用する際に発生する可能性のある問題のトラブルシューティング方法を次に示します。
+ 

**コマンドラインインターフェイスの代わりにエラーが表示される**  
送信先のデバイスが切断されたため、エラーが表示されている可能性があります。**[Generate new access tokens]** (新しいアクセストークンの生成) を選択して新しいアクセストークンを生成し、MQTT を使用してそのトークンをリモートデバイスに送信できます。この新しいトークンを使用して、トンネルに再接続できます。トンネルに再接続すると、履歴がクリアされ、コマンドラインセッションが更新されます。
+ 

**プライベートキーを使用して認証すると、トンネルが切断されたというエラーが表示される**  
プライベートキーが送信先デバイスで許可されなかったことが原因で、エラーが表示されている可能性があります。このエラーをトラブルシューティングするには、認証用にアップロードしたプライベートキーファイルを確認してください。それでもエラーが表示される場合は、デバイスのログを確認してください。リモートデバイスに新しいアクセストークンを送信して、トンネルに再接続してみることもできます。
+ 

**セッション使用中にトンネルが閉じた**  
トンネルが指定した継続時間を超えて開いたままになっていたために閉じられた場合、コマンドラインセッションが切断される可能性があります。トンネルが閉じた場合、再び開くことはできません。再接続するには、デバイスに対して別のトンネルを開く必要があります。

  トンネルを複製することで、閉じたトンネルと同じ構成の新しいトンネルを作成できます。 AWS IoT コンソールから閉じたトンネルを複製できます。トンネルを複製するには、閉じているトンネルを選択して詳細を表示し、**[Duplicate tunnel]** (トンネルの複製) を選択します。使用するトンネルの継続時間を指定し、新しいトンネルを作成します。

## クリーンアップ
<a name="tunnel-cleanup-quick"></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
    ```