SORACOM Developers

Getting Started

SORACOM Beam を使用して安全にデータを送信する

SORACOM Beam は IoT デバイスにかかる暗号化等の高負荷処理や接続先の設定を、クラウドにオフロードできるサービスです。このサービスの特徴は3つあります。

Beam概要

サービスの詳細は 「SORACOM Beamサービス概要ページ」 を参照ください。より詳細な技術仕様は「SORACOM Beam機能詳細」をご覧ください。

ここでは、以下の流れに沿ってソラコムが用意している Sandbox サーバを使って Beam の設定方法と動作の確認をします。TCPエントリポイント、HTTPエントリポイントの利用例をご紹介します。

注意
Beam のエントリポイントには、Air SIM 以外から接続できません。動作確認の際には Air SIM で通信を行っていることを確認してください。

Air SIM グループの作成と設定

SORACOM Beam の設定はグループ単位で行います。そのため、Beamを使うためには Air SIM をグループに登録する必要があります。今回は、SORACOM Beam の動作確認をするための専用のグループを作成してそこに Air SIM を登録してみましょう。

まず Air SIM 管理画面を開いて、SORACOM Beam による通信を行いたい Air SIM にチェックマークを付けます。続いて、[操作] ボタンから [所属グループ変更] を選択します。

グループの変更

Air SIM の所属グループを選択するためのダイアログが表示されますので、[新しい所属グループ] ドロップダウンから [新しいグループを作成…] を選択します。

新しいグループ

以下のようなグループ作成ダイアログが表示されます。グループの名称を入力して [グループ作成] ボタンをクリックします。 今回は “hello beam” というグループ名で作成してみましょう。

グループ作成

[グループ作成] ボタンを押すと元の [SIM の所属グループ変更] ダイアログに戻ります。 [新しい所属グループ] ドロップボックスが、今作成した hello beam グループになっていることを確認し [グループ変更] ボタンを押します。

グループ変更

TCP / SSL: TCPエントリポイントの設定例

Beam を使った通信では、デバイスから Beam のエントリポイントまでは閉域網での接続であるため平文でも安全に通信を行うことができます。さらに、 Beam から外部サーバへの通信は SSL で暗号化して送信できるため、暗号化処理による負荷をかけずに安全に通信を行えます。

このステップでは、TCPエントリポイントの動作確認をするための echo サーバー (tcps://beamtest.soracom.io:1234) を使って、TCP で送信されたデータを TCP over TSL で転送する操作を試してみましょう。

tcp/SSL概要

先ほど作成した hello beam グループに対し、SORACOM Beam の設定を行います。設定を行うためには、グループ管理画面を開き、hello beam グループを選択してグループ詳細画面を開きます。

グループ詳細

[SORACOM Beam 設定] グループの中にある [ + ▼ ] ボタンをクリックします。するとドロップダウン形式でメニューが表示されますので、対象となるエントリポイントを選択してください。 今回の例では TCP → TCP/TCPS エントリポイントを利用します。

tcp_entryポイント2

ダイアログが表示されますので、以下のように必要事項を設定して最後に [保存] ボタンを押してください。

項目
設定名 echo over ssl
転送先-プロトコル TCP (SSL)
転送先-ホスト名 beamtest.soracom.io
転送先-ポート名 1234
オプション- IMSI ヘッダ ON

tcp_entryポイント

TCP Entry Point の各設定値の意味は以下の通りです。

項目 意味 必須
設定名 この TCP entry point 設定につける名前です。
わかりやすい名前をつけてください。
Yes
エントリポイント・プロトコル SIM からこのエントリポイントに接続するためのプロトコルを選択してください。 Yes
エントリポイント・ホスト名 SIM からこのエントリポイントに接続するための ホスト名です。
現時点では beam.soracom.io のみ対応しています。
Yes
エントリポイント・ポート番号 SIM からこのエントリポイントに接続するためのポート番号です。
現時点では 8023 のみ対応しています。
Yes
転送先・プロトコル SORACOM から転送先に接続するためのプロトコルを選択してください。
TCP もしくは TCP ( SSL ) が選択可能です。
Yes
転送先・ホスト名 SORACOM から接続する転送先のホスト名です。 Yes
転送先・ポート番号 SORACOM から接続する転送先のポート番号です。 Yes
オプション・ IMSI ヘッダ SORACOM から転送先へのコネクション成立時に、"imsi = IMSI 番号“ が送信されます。
オプション- IMEI ヘッダ SORACOM から転送先へのコネクション成立時に、"imei = IMEI 番号” が送信されます。
オプション-署名ヘッダ付与 事前共有鍵と通信ヘッダーに入っている IMSI、IMEI およびタイムスタンプを元に、SHA256 でダイジェストした値を生成します。
オプション-事前共有鍵 署名ヘッダの付与に使用する事前共有鍵を指定します。あらかじめユーザコンソールの「セキュリティ」画面より登録しておいてください。

デバイスからの確認

Beamの設定を行った Air SIM で接続されているデバイスから、上記で設定したエントリポイントに対して telnet で接続してみましょう。今回は暗号化処理と合わせて、IMSI ヘッダを付与するように設定しましたので、IMSI の情報が表示されるはずです。

Raspberry Pi などから telnet で接続し、出力を確認しましょう。echo サーバー (tcps://beamtest.soracom.io:1234)は、送信された文字列をオウム返し(エコーバック)するように設定されています。キーボードから何らかの文字列を入力し、エコーバックがあることを確認できれば設定完了です。

pi@raspberrypi:~$ telnet beam.soracom.io 8023
Trying 169.128.169.128...
Connected to beam.soracom.io.
Escape character is '^]'.
Hello Soracom Beam Client IMSI:4XXXXXXXXXXXXXX ! (←Beam によって Air SIM の IMSI が付与されている)
hi        (←キーボードから入力)
hi        (←echoサーバからのエコーバック)

HTTP / HTTPS: HTTPエントリポイントの設定例

HTTP エントリポイントも、テスト用のサーバ ( https://beamtest.soracom.io ) を使って動作確認してみましょう。このテスト用サーバでは、Beam を使ってアクセスした際に、IMSIやHTTPヘッダなどの Beam で付与された情報を確認することができます。

HTTPエントリポイントのイメージ

まず、グループ設定ページで左下の + をクリックし、HTTP エントリポイントを追加します。 [SORACOM Beam 設定] グループの中にある [ + ▼ ] ボタンをクリックし、表示されたメニューの中から HTTP エントリポイントを選択します。

HTTPエントリポイントの追加

設定ダイアログが表示されたら、以下のように必要事項を設定して最後に [保存] ボタンを押します。カスタムヘッダについては、次のセクションで解説しますので、ここでは空欄にしておきます。

項目
設定名 http over ssl
エントリポイント-パス /
転送先-プロトコル HTTPS
転送先-ホスト名 beamtest.soracom.io
転送先-パス /
オプション- IMSI ヘッダ ON
カスタムヘッダ なし(空欄)

HTTPエントリポイントの設定

設定を保存後、Beamの設定を行った Air SIM で接続されているデバイスから http://beam.soracom.io:8888 にアクセスすると、 Air SIM の IMSI が表示されます。以下は Raspberry Pi からアクセスした時の出力例です。

pi@raspberrypi:~$ curl http://beam.soracom.io:8888
Hello SORACOM Beam Client xxxxxxxxxxxxxxx !

Beam の設定を変更し IMSI ヘッダを無効にすると、IMSIは表示されず “Hello Unkonwn Client…” というメッセージが表示されます。

カスタムヘッダの設定

Beam の HTTP エントリポイントでは、データ転送時にカスタムヘッダを追加・削除・置換することができます。

SORACOM Beam 設定一覧で、先ほど追加した「http over ssl」の行の一番右にある[…] ボタンをクリックして設定ダイアログを開き、以下のように必要事項を設定して最後に [保存] ボタンを押してください。カスタムヘッダを追加するには、「ヘッダ操作」左下の [+] ボタンを押してください。

カスタムヘッダ

Beamの設定を行った Air SIM で接続されているデバイスから http://beam.soracom.io:8888 にアクセスすると、以下のように表示されます。Air SIM の IMSI と合わせて、カスタムヘッダも表示されていることが確認できます。以下は Raspberry Pi からアクセスした時の出力例です。

pi@raspberrypi:~$ curl http://beam.soracom.io:8888
Hello SORACOM Beam Client 4XXXXXXXXXXXXXX !

== HTTP Headers ==
HTTP_X_SORACOM_BEAM=SUCCESS
HTTP_X_SORACOM_IMSI=4XXXXXXXXXXXXXX

エラーログの確認

Beam では、直近2週間で発生したエラーログを保管しており、ユーザコンソールやAPIから確認することができます。うまく通信できないときなどのデバッグに利用できます。

確認できるエラーログの内容は以下のとおりです。

注意
ログは直近2週間分のみ参照可能です。それより古いログは閲覧できませんので、ご注意ください。

ユーザコンソールでは、ドロップダウンメニューの「ログ」からアクセスできます。

logs

Beam 設定の無効化

Beam の利用にはリクエスト単位で料金がかかります。Beam を使わない場合には、設定を無効化するか、グループから登録解除してください。

Getting Started

SORACOM Air for セルラー

SORACOM Air for LoRaWAN

SORACOM Air for Sigfox

SORACOM Beam

SORACOM Canal/Direct/Door

SORACOM Endorse

SORACOM Funnel

SORACOM Gate

SORACOM Harvest

SORACOM Inventory

SORACOM Junction

サービス機能詳細

Developer Tools

pagetop