みなさま、こんにちは。Application Engineer の佐藤です。
クラウド接続時の認証情報をSIMごとに割り当てることができる Multi credentials per group機能 に、デフォルト認証情報機能が追加されました。初回接続時の仮の認証情報としてIoTデバイス単体での自律的な初期設定や、出荷前などで認証情報が未発行の状態におけるIoTデバイスの動作確認に活用できる機能です。
ここで紹介するMulti credentials per group機能とデフォルト認証情報機能は、データ転送支援サービス「SORACOM Beam」と、クラウドファンクションサービス「SORACOM Funk」にて既にご利用いただけます。追加費用はございません。
またこのアップデートに伴い、これまでAPIで設定いただいていたMulti credentials per group機能がSORACOMユーザーコンソール上で設定いただけるようになったことで、より手軽にこれらの機能が使えるようになりました。
Multi credentials per group機能について
SORACOM Beam(以下、Beam)や、SORACOM Funk(以下、Funk)は、IoTデバイスとクラウドの間に挟み込んで利用するサービスで、プロトコルの違いや暗号化の有無を吸収をしたり、クラウド接続時の認証情報を付与します。BeamやFunkを活用することで、IoTデバイスに暗号化機能や認証情報が無くとも、SORACOMを通じてクラウドシステムへの接続やクラウド上の関数が実行できます。
クラウド接続に使用する認証情報は、セキュリティの観点からデバイス毎(=SIM毎)に割り当てるのが良いとされていますが、デバイス数の増加と共に手間も増えるため、IoTのビジネスにおいて課題の1つとなります。
Multi credentials per group機能は、デバイスごとに割り当てる認証情報の設定の手間を軽減します。BeamやFunkの設定時に、認証情報名へ #{imsi}
や #{imei}
といったプレースホルダー(文字列の置き換え)を指定することで、接続デバイスのIMSIやIMEIに動的に置き換わり、SORACOMに登録済みの認証情報を利用してクラウド接続します。
設定の手間とセキュリティを両立できることから、IoTのビジネス活用において是非とも検討いただきたい機能です。
Multi credentials per group機能の詳細については、過去のブログ 「SORACOM Beam の multi credentials per group 機能をリリースしました」やドキュメント 「Getting Started: multi credentials per group 機能を利用して AWS IoT に接続する」もご覧ください。
ユーザーコンソールから設定可能に
Multi credentials per group機能はSORACOMのAPIを通じて設定いただいていましたが、今回のアップデートでユーザーコンソール上からでも設定を行えるようになりました。この入力欄にはオートコンプリート機能もあり、多くの認証情報をお持ちの場合でも、設定したい認証情報を簡単に探すことができます。
デフォルト認証情報機能とは
デフォルト認証情報機能はMulti credentials per group機能の使用時において、設定した認証情報が見つからなかった時に代替される認証情報です。
具体的には、認証情報名のプレースホルダー部分を default
という文字列に置き換えて、SORACOMに登録済みの認証情報を再検索します。
(例 cert-#{imsi}
->cert-default
)
デフォルト認証情報で検索される認証情報がSORACOMに登録されていれば、IMSI や IMEI の情報をもとにした認証情報が未登録でも、デフォルト認証情報を利用してデバイスからクラウドへ接続できるようになります。
デフォルト認証情報機能は、認証情報名にプレースホルダが指定されていれば自動的に有効となります。
設定手順のご紹介
ここからは、Multi credentials per group 機能とデフォルト認証情報を使ったデータ送信についてご紹介します。
今回はSORACOM BeamとAWS IoT Core(以下、IoT Core)を利用して、MQTTによるデータを送信してみます。
まずは、IoT Coreと SIM グループの設定をします。設定方法は「SORACOM Beam を使用して AWS IoT と接続する」をご確認ください。
認証情報には cert-#{imsi}
と入力して保存します。
これで、SIM の情報を使って認証情報を取得するようになりました!
この時点では、認証情報をSORACOMプラットフォームに登録していません。そのため、IoT Coreへ接続するための認証情報が見つからないため、エラーとなるはずです。実際に接続がエラーとなることを確認してみます。
予想通り、接続エラーがでました。
本来であればSORACOMプラットフォームにcert-xxxx( x は SIM の IMSI になります)という名前の認証情報を登録するわけですが、今回はデフォルト認証情報機能の検証としてcert-defaultという名前で認証情報を登録します。
それでは、認証情報を登録しましょう。再び SIM グループの認証情報設定欄から、+ボタンを押して認証情報追加画面を開きます。
ここでは cert-default という認証情報で登録します。
最後に「登録」をクリックして、SORACOM Beamの設定画面に戻ります。
この時、Beamの設定画面の「認証情報」が cert-default
に更新されています。忘れずに cert-#{imsi}
と変更して設定を保存しましょう。
この状態でもう一度トライしてみましょう。
データ送信に成功しました。
SIM の IMSI に対応した認証情報は登録されていませんが、デフォルト認証情報(cert-default)が登録されていたため、そちらを利用して接続ができたため、データ送信に成功したわけです。これ以降も他のデバイス(SIM)を追加しても、同様に cert-default を利用してクラウドに接続されます。
一点ご留意いただきたいのは、認証情報は最終的にはデバイス毎に割り当たるような設計が望ましいということです。例えば認証情報が個々に割り当てられていれば、クラウド側で接続元デバイスを1つ1つ識別できるので、何かしらの問題が発生した時には、当該の認証情報のみ無効化するといった措置が可能ですが、1つの認証情報を複数のデバイスで共有し続けている場合は、すべてのデバイスに影響が及ぶためです。
デフォルト認証情報を登録しておけば、SIM の情報に対応した認証情報の登録を待たずに仮の認証情報としてデバイスの接続に利用できます。デバイス設置・接続作業との並行化やデバイスごとの認証情報の取得などにぜひ、ご活用ください!
― ソラコム Application Engineer 佐藤(rito)