2021年7月に発表された「AWS IoT Core が VPC エンドポイントのサポート」の意味を考えるために書いています。
AWS公式の発表記事は以下です。
AWS IoT Core が VPC エンドポイントのサポートを開始
#1.VPCエンドポイント とはなんのことか?
AWS上のVPC内のサービスと、VPC外のサービスをプライベート接続で通信できるようにするための仮想デバイスです。
・PrivateLink と呼ばれるサービスを使って、各サービスを接続させることが出来ます
・PrivateLink の実体はVPC内のENI(Elastic Network Interface) になります
・PrivateLink自体がIPアドレスを持ってVPCの中にエンドポイントが出来ます
公式ドキュメントからの引用ですが、以下のような制約があります。
・VPCエンドポイントは、現在IoTデータエンドポイントのみサポートされています。
・MQTTのキープアライブ期間は230秒に制限されています。この期間を超えるキープアライブは自動的に230秒に短縮されます
・各VPCエンドポイントは、合計100,000台の同時接続デバイスをサポートします。それ以上の接続数が必要な場合は、「IoT CoreでVPCエンドポイントを拡張する」を参照してください。
・VPCエンドポイントは、IPv4トラフィックのみをサポートします。
・VPCエンドポイントは、カスタムドメインを除き、ATS証明書のみを提供します。
・VPCエンドポイントのポリシーは、現時点ではサポートされていません。
#2.IoTデバイスの脆弱性と要因
・外部からサイバー攻撃を受けることで、IoT機器そのものの制御が効かなくなり、物理的な事故などを引き起こす。
・AIカメラやスマートスピカーなどの機器が乗っ取られることにより、情報を盗まれる。
・踏み台攻撃に利用され、知らぬ間にサイバー攻撃に加担させられる。
この種類の脆弱性の根本的な要因は
・デバイス自体がパブリックなIPを持ち外部からアクセス可能になっている
・アクセスがID/パスワードだけで可能で、かつ、それがデフォルト設定になっている
・ファームウェアが更新されず、セキュリティ的な脆弱性を持ったまま放置されている
ことが挙げられます。
現在、世界中のサイバー攻撃の4割が上記の脆弱性を持つIoTデバイスに対して、例えば
23番ポート(telnet)への通信を探るものになっています。
#3.根本的な対策
上記のようなことに対する根本的な対策は
・ファームウェアの更新
・不要なポートを閉じる
とかももちろんありますが、より根本的な対策をこうじようとすれば、当然
・証明書等による通信相手のデバイス認証(ID/パスワードに依存しない)
・そもそも閉域網だけでネットワークを構成して、外部に公開しない
が一番望ましいわけです。
クラウドのIoTサービスは証明書による相互認証サービスは普通に提供されていますので、ここでは、閉域網だけでネットワークを構成する点について考えているわけです。
#4.SORACOM等の通信ベンダーによる閉域網の実現
SORACOMなどのIoT通信ベンダーには、以下のような閉域通信のサービスがあります。
###1)キャリア網(閉域)+クラウド環境への直結サービスは以前からありました
AWS PrivateLinkとSORACOM CanalでAWSのマネージドサービスに閉域アクセスする(SORACOM公式ブログ)
https://blog.soracom.com/ja-jp/2019/09/05/isolated-access-to-aws/
###2)更にそれをWi-Fiや有線回線にも拡張した“SORACOM Arc”
Wi-Fiや有線回線からもソラコムを。セキュアリンクサービス “SORACOM Arc” の提供を開始します(SORACOM公式ブログ)
https://blog.soracom.com/ja-jp/2021/06/23/launch-soracom-arc/
特に、“SORACOM Arc”は、今まで、SIM経由でないと利用できなかったSORACOMのプラットフォームを、WireGuardというVPNソリューションを利用することで伝送路の安全性を確保しつつ、SORACOMのプラットフォームに接続することを可能にしたものです。
「バーチャルSIM」という仕組みを提供していますが、それはあくまでもSORACOMのサービスを管理するためのものです。ただ、オンデマンドリモートアクセスサービス SORACOM Napter と組み合わせることにより、Arcを利用するデバイスに対し必要な時だけインターネット経由でアクセスできるのは大きいですね。
#5.SORACOMを使用しない解決方法
ただどうしてもデバイス単位で課金されてしまうため、予算上使えないケースもあるかと思います。AWS IoT Core が VPC エンドポイントをサポートしたことで、それよりは安い予算で閉域網通信ができるようになりました。
以下に試した人の記事を紹介しておきます。
また、関連しそうなネタを貼っておきます。
AWS IoT Coreをオンプレミス環境と使う際のアーキテクチャ例
それと、最近のアップデートなのですが、発表が地味で偶然見つけたネタですが、IoTデバイス管理に重要そうなので、こちらも貼っておきます。
新機能 AWS Systems Manager を使用して AWS IoT Greengrass エッジデバイスを安全に管理する
https://aws.amazon.com/jp/blogs/news/new-securely-manage-your-aws-iot-greengrass-edge-devices-using-aws-systems-manager/