[AWS IoT Core] Greengrass V2 のセキュアトンネルコンポーネントを使用して Raspberry Pi にブラウザで SSH してみました
1 はじめに
CX 事業本部のデリバリー部の平内(SIN)です。
AWS IoT Core の セキュアトンネリングでは、ファイアウォールの背後で動作するデバイスに、SSH 接続することが可能ですが、こちら、サービス開始時に比べると、利用費も下がったことから、リーズナブルに利用可能になったと思います。
AWS IoT Device Management が Secure Tunneling の 80% の値下げを発表
https://aws.amazon.com/jp/iot-device-management/pricing/?nc1=h_ls
Greengrass V2 では、各種機能の追加が、コンポーネント単位で行えますが、パブリックなコンポーネントとして用意されている「セキュアトンネルコンポーネント」を使用すると、「セキュアトンネリング」で超簡単に SSH 接続できてしまいます。
今回は、RaspberryPi に Greengrass V2 をセットアップし、セキュアトンネルコンポーネントを使用して、ブラウザから軽易に SSH する動作を確認してみました。
2 Raspberry Pi
RaspberryPi のイメージ作成は、最近は、アプリから行えるようになっていまが、今回は、2022-09-22 リリースの Desktop 版を使用しました。
イメージ作成前に、いくつかに設定が可能になっていますが、SSH を有効にし、ID とパスワードで接続できるようにしました。
OS 等のバージョンは、以下のとおりとなりました。
$ cat /proc/cpuinfo | grep Revision Revision : d03114 $ lsb_release -a No LSB modules are available. Distributor ID: Raspbian Description: Raspbian GNU/Linux 11 (bullseye) Release: 11 Codename: bullseye $ uname -a Linux raspberrypi 5.15.61-v7l+ #1579 SMP Fri Aug 26 11:13:03 BST 2022 armv7l GNU/Linux
3 Greengrass V2
RaspberryPI に Greengrass V2 をセットアップした手順は、以下のとおりです。
なお、使用したイメージには、Java ランタイムが含まれていなかったため、別途インストールしています。
$ sudo apt install default-jdk $ java -version openjdk version "11.0.16" 2022-07-19 OpenJDK Runtime Environment (build 11.0.16+8-post-Debian-1deb11u1) OpenJDK 64-Bit Server VM (build 11.0.16+8-post-Debian-1deb11u1, mixed mode)
インストールが完了すると、greengrass-cliのバージョンが確認できます。
$ /greengrass/v2/bin/greengrass-cli -V Greengrass CLI Version: 2.9.1
また、AWS コンソールで、コアデバイスとして表示されるようになります。
4 aws.greengrass.SecureTunneling
続いて、セキュアトンネリングコンポーネントをデプロイします。
AWS IoT のコンソールから、Greengrass デバイス - コンポーネント - パブリックコンポーネントとたどり、aws.greengrass.SecureTunnelingを選択します。
パラメータ等は、全てデフォルトのままでデプロイしました。
依存関係で、aws.greengrass.Nucleusが必要となるため、存在しない場合、一緒に追加されます。
ここまでで、Greengrass 側の準備は完了です。
5 トンネル
新規のトンネルは、管理 - モノ を選択し、右上の「安全なトンネルを作成する」から作成します。
「トンネル作成方法を選択」では、新しいトンネルを作成 - クイックセットアップ (SSH) をチェックします。
「確認して作成」ボタンを押すとトンネル作成は完了です。
ここで、RaspberryPi イメージ作成時に設定した、ユーザー名とパスワードで接続します。
ブラウザ上のコンソールで SSH 接続での操作が可能になります。
6 最後に
今回は、RaspberryPi に Greengrass V2 をセットアップし、セキュアトンネルコンポーネントで、ブラウザから SSH 接続してみました。
Greengrass V2 のコンポーネントを使用すると、あっという間に SSH 接続環境が構成できてしまいます。
セキュアトンネリングでは、「ローカルプロキシ」を使用した接続も可能ですが、こちらは、別途インストール等が必要で、やや、準備コストが高いかもしれません。
7 参考リンク
AWS IoT セキュアトンネリングを使用してリモートデバイスに接続する
AWS IoT セキュアトンネリングを使ってローカルの Raspberry Pi にリモートから接続してみた
ファイアウォールを超えてデバイスに接続! AWS IoT セキュアトンネリングを試してみた
[AWS IoT Greengrass V2] RaspberryPI にインストールしてみました