ども、ソリューションアーキテクトのtakiponeこと大瀧です。
今回は SaaS の提供者向けに「モバイル通信を利用した閉域 SaaS 構築の方法」 をご紹介します。
モバイル通信 + SORACOM で「SaaS を閉域ネットワークで提供する方法」
ウェブブラウザとインターネット接続さえあればメール、表計算、チャット、Web 会議といったソフトウェアを “サービス” として利用できる SaaS(Software as a Service) は、もはや私たちの生活に欠かせない仕組みですね。利用はもちろんですが、 AWS(Amazon Web Services) をはじめとしたクラウドコンピューティングの後押しよって SaaS の構築や提供も容易となり、業界や業務に特化した SaaS も数多く存在します。
もちろん、IoT 分野も例外では無く、機器データの収集・可視化や機械学習による分析などが SaaS で提供されており、例えば SORACOM のパートナープログラムである SPS(SORACOM Partner Space) からも、数多くの IoT 向けソリューションが SaaS として提供 されています。
SaaS へのアクセスは、お客様からはインターネット経由で利用してもらうのが一般的となりますが、製造業や金融業といったセキュリティ要件が高いお客様からはインターネットと隔絶されたネットワーク、いわゆる「閉域ネットワーク」の中での SaaS 提供が要件となる場合があります。
パソコン等であれば VPN による利用が提案できますが、 IoT 向け SaaS の場合はマイコンといった VPN の導入が難しいハードウェアも対象とする必要があることから、技術面や費用面から SaaS の利用を断念せざるを得ないケースもあるようです。
そこで、本ブログでは、SORACOM の 3G/LTE といったモバイル通信(セルラー回線)を用いて、提供中の SaaS サービスに閉域ネットワーク機能を追加する手法をご紹介します。
後付けの戦略
まずは SaaS を閉域ネットワークで提供するための要件を、以下2つの観点から整理しましょう。
- SaaS 側システムの対応
- 顧客側ネットワークの対応
SaaS 側システムの対応
閉域ネットワークを要望されるお客様の関心事は「どれだけインターネットから隔離できている(閉じている)か」という点にあります。これを SaaS 事業者側の視点にしてみると「ネットワークが隔離」されているのか「データ保存先も隔離」となり、これらに応じて提供する仕組みや費用も変わります。
- a. 一部構成 : 閉域ネットワーク向けにロードバランサなど構成の一部を追加し、残りの構成は既存構成と共用で運用
- b. フル構成 : 閉域ネットワーク向けインフラ/サーバー構成を一式構築・運用
データ保存先も隔離される「フル構成」は、もちろんセキュアではありますが、SaaS を一式用意する手間やその後の運用といた費用面で妥当性があるかを、お客様と共に検証する必要があります。そのため、まずはネットワークを隔離する「一部構成」を検討するのがおすすめです。
例えば AWS 環境であれば、ELB(Elastic Load Balancing)などクラウドのマネージドサービスを活用することで一部構成の追加分の構築・運用コストを最小限にできます。
また、SaaS の共用可能部分は現状の構成上の制約、運用の制約など様々です。閉域ネットワークの利用規模の見込みと運用コストがペイするかなど、総合的に判断しましょう。
顧客側ネットワークの対応
顧客側ネットワークの対応は、例えば以下が挙げられます。
- 顧客が所持している情報系・設備系で利用している既存の閉域ネットワークにSaaSサービスのエンドポイント(サービスへの接続点のこと)を追加
- IoTデバイスとSaaSサービスとの接続用に独立した閉域ネットワークを新たに構築
こちらは閉域ネットワークの設計やセキュリティに深く関わってくる(=既存閉域ネットワークの管理者との調整が必要になる)ため、特段の理由が無ければ SaaS へアクセスする独立ネットワークを構築する 2 がオススメです。
従来は VPN 機器を用意したり、契約から開通までの手続きの手間がかかることもあり、独立した閉域ネットワークの構築は敷居が高かったのですが、SORACOM のセルラー閉域サービスはそんな閉域ネットワークの接続をスピーディーかつセキュアに実現します。
SORACOMの閉域ネットワーク接続サービス
SORACOMはIoT向けの通信を提供するプラットフォームサービスで、今回の閉域ネットワーク構成に対応する通信はスマートフォンに広く普及している3G/LTE回線を利用するSORACOM Air for セルラーです。
SORACOM Air for セルラーの閉域ネットワーク対応の仕組みはこうです。通信キャリアが管理するセルラー(3G/LTE回線)通信網とユーザーが構築・運用するプライベートネットワークを VPG(Virtual Private Gateway) と呼ばれる顧客専用のゲートウェイによってインターネットを経由せずに接続します。
セルラー通信自体に暗号化の仕組みが含まれており、またその通信網はキャリアが管理するインターネットとは隔離された閉域網と捉えることができます。プライベートネットワークへの接続方法として以下があります。
- AWSのプライベート接続機能(VPCピアリング接続、Transit Gateway接続) : SORACOM Canal
- インターネットVPN(IPsec) : SORACOM Door
- 専用線: SORACOM Direct
SaaS サービスのエンドポイントを置くプライベートネットワークがAWS上(Amazon VPC)であればCanal、Azure Virtual NetworkなどAWS以外のクラウドやオンプレミスのネットワークセグメントであればDoorないしDirectが検討できます。
いずれの接続方法もエンドポイントに接続するデバイス側には3G/LTE通信のためのUSBドングルやLTEルーターといった機器とSORACOM IoT SIMを用意し、SORACOMの構成自体はオンラインで進めていただくことができます。
構成によって利用料金は変わりますが、閉域ネットワーク接続サービスは月額4万円弱(SORACOM CanalのVPCピアリング接続の場合)から、SORACOM IoT SIMはPlan-Dの場合初期費用852円で基本料金月額300円ほど、データ通信料金が従量制(いずれも税・送料別)と、スモールスタートに適した料金体系になっています。
SaaSサービス側は、プライベートネットワーク上にSaaSサービスのエンドポイントとなる構成を用意します。前述のELBであれば、AWSのプライベートネットワークの仕組みであるVPCに紐付けて利用します。Amazon API Gatewayなど他のマネージドサービスの場合は、そのサービスがVPC内にリソースを持つかVPCエンドポイントという機能に対応するかを確認しましょう。
VPCエンドポイントを利用する場合には、以下のブログも参考になるでしょう。
- AWS PrivateLinkとSORACOM CanalでAWSのマネージドサービスに閉域アクセスする – SORACOM エンジニアブログ
- 【Ask SA!】現場のデバイスからAmazon S3のVPC エンドポイントへ閉域アクセスする方法 – SORACOM エンジニアブログ
エンドポイントの整合性
閉域ネットワーク向けに用意するエンドポイントのホスト名はどうするのが良いでしょうか。IPアドレス自体は既存のインターネット向けのグローバルIPアドレスとは異なる、閉域ネットワーク用のプライベートIPアドレスを利用することになります。そのプライベートIPアドレスに紐づく独自のホスト名を利用するのが第一案になるでしょう。
しかしながら、デバイスのファームウェアにエンドポイントのホスト名がハードコードされていて既存のインターネット向けと同じホスト名で閉域ネットワークのエンドポイントにアクセスさせたいこともあるでしょう。
DNSやTLS証明書を工夫することでエンドポイントの整合性を保った閉域ネットワーク経由のアクセスを実現します。
スプリットDNS
インターネットからのDNS問い合わせと閉域ネットワーク経由のDNS問い合わせで、同じホスト名でもグローバルIPアドレスとプライベートIPアドレスのそれぞれ異なるレコードを返すように構成します。これはスプリットDNSと呼ばれるもので、企業内ネットワークで広く用いられる手法です。
今回の構成では、既存のSaaSサービスへのアクセスはインターネットからの問い合わせにグローバルIPアドレスが返るのは既存のDNS構成があると思いますので、閉域ネットワーク接続を利用するデバイスからのDNSの問い合わせにプライベートIPアドレスを返すDNS構成を追加して対応できます。
SORACOM AirのカスタムDNSでデバイスのDNSサーバーを任意のIPアドレスに設定できます。閉域ネットワーク向けのDNS構成を用意し、カスタムDNSで参照するのが良いでしょう。各クラウドサービスごとの内部向けDNS構成のドキュメントが参考になります。
- プライベートホストゾーンを使用する場合の考慮事項 – Amazon Route 53
- What is Azure Private DNS? | Microsoft Docs
- DNS のベスト プラクティス | Cloud DNS のドキュメント | Google Cloud
例えばAWSの場合は、VPC内にDNSサーバーを実行するEC2インスタンスないしRoute 53 Resolverを配置し利用します。Azureの場合は以下のブログが構成例として参考になるかもしれません。
- 新タイプの VPG で Azure Virtual Machine とプライベートネットワークを構成する – SORACOM エンジニアブログ
- 新タイプの VPG で Azure Storage とプライベートネットワークを構成する – SORACOM エンジニアブログ
TLS サーバー証明書
HTTPSをはじめとするTLSを利用するアプリケーションプロトコルでは、TLSによってエンドポイントの正当性を検証するサーバー認証処理があり、既存SaaSと同等のTLS証明書を閉域向けエンドポイントに構成する必要があります。証明書ベンダーから購入した証明書であれば利用範囲に注意しつつ、TLSの終端部分に証明書を設置します。クラウドサービスであればサーバー証明書を管理するマネージドサービス(AWSではACM)を利用することで、TLS証明書をロードバランサなどへの配置や維持を省力化できます。
また、閉域ネットワークでは通信の盗聴や改ざんのリスクが低減されるため、暗号化なしの通信を許容するエンドポイントを用意するという選択肢もあります。
デバイスの識別方法の確認
SaaSサービスの運用において、デバイスからの接続状況を把握することはとても重要です。ログやステータスとなる情報にデバイスの識別情報がどのように入るのかを確認しましょう。
デバイスごとに認証キーを持たせる構成でログやステータスに認証キーや認証IDに関する情報が含まれていれば、インターネット経由と閉域ネットワーク経由のどちらでも識別は容易でしょう。一方でロードバランサやアプリケーションサーバーなどのログに接続元のIPアドレスを記録している場合、それがデバイス自身のIPアドレスなのかルーターやゲートウェイなど経路途中のコンポーネントのIPアドレスなのかは把握しておく方がよいでしょう。特に複数の顧客からそれぞれ閉域ネットワーク接続を引き込むような場合、どの顧客の接続なのかを識別することは障害時の影響判断やトラブルシューティングのために重宝します。
SORACOMの閉域接続では、VPGを通過する通信はNAT(Network Address Translation)処理によって接続元IPアドレスがVPGのIPアドレス(100.64.0.0/10
)になり、複数のデバイスから同一のプライベートIPアドレスで接続されるように見えます。
SORACOMのクラウド連携サービス
閉域ネットワークに近い構成として、SORACOMのクラウド連携サービスを組み合わせることもできます。
- SORACOM Beam : データの転送、プロトコル変換
- SORACOM Funnel : クラウドリソースアダプタ
- SORACOM Funk : クラウドファンクションアダプタ
いずれのサービスも、デバイスからSORACOMのエンドポイント(Unified Endpointと呼びます)に送られるデータをSaaSサービスのエンドポイントやクラウドサービスに通信プロトコルやデータ形式を変換して連携します。
Unified Endpointがインターネットに出ないSORACOMの網内にあることから、デバイス-Unified Endpoint間を安全なネットワークとみなして活用することができます。TLSなしの通信であればUnified EndpointのDNS名 uni.soracom.io
にSaaSサービスのDNSの別名レコード(CNAME)を設定しても良いでしょう。SORACOM BeamはTCP-TCPS(TCP over TLS)の変換ができるので、TCPをSORACOM-SaaS間で安全に通信するTLS暗号化処理をBeamにオフロードする構成も可能です。
また、SaaSサービスのデータ形式に合わせる処理が必要であれば、データの前処理を行うSORACOM Orbitを組み合わせることもできます。
まとめ
SORACOMのセルラー回線とその周辺サービスを用いて既に構成済みのSaaSサービスに後付けで閉域ネットワーク対応させる手法をご紹介しました。セルラー閉域ネットワークというと導入までに時間がかかる大がかりな仕組みに聞こえるかもしれませんが、本記事を参考に既存SaaSサービスへの追加やSORACOMの閉域接続サービスによるスピーディーな導入を検討いただけると幸いです。
お知らせ: AWSでSaaSサービスを構築するときのネットワークを解説する無料Webinarが開催
2020年7月29日(水)14:00~15:30にAWS主催のオンラインセミナーが開催されます。
マルチ/シングルテナントとそのネットワーク構成について参考になるところが多いと思うので、AWSを利用している方はぜひこちらもチェックしましょう!