次の方法で共有


IoT ソリューションをセキュリティで保護する

IoT ソリューションを使用すると、IoT デバイスと資産を大規模に接続、監視、制御できます。 クラウドに接続されたソリューションでは、デバイスと資産がクラウドに直接接続されます。 エッジに接続されたソリューションでは、デバイスと資産がエッジ ランタイム環境に接続されます。 IoT ソリューションを脅威から保護するには、物理資産とデバイス、エッジ インフラストラクチャ、クラウド サービスをセキュリティで保護する必要があります。 また、エッジでもクラウドでも、IoT ソリューションを流れるデータをセキュリティで保護する必要があります。

この記事では、IoT ソリューションを最適にセキュリティで保護する方法に関するガイダンスを提供します。 各セクションには、追加の詳細とガイダンスを提供するコンテンツへのリンクが含まれています。

次の図は、一般的な エッジ接続 IoT ソリューションのコンポーネントの概要を示しています。 この記事では、エッジに接続された IoT ソリューションのセキュリティについて説明します。

セキュリティを強調する IoT エッジ接続ソリューションアーキテクチャの概要を示す図。

エッジに接続された IoT ソリューションでは、セキュリティを次の 4 つの領域に分割できます。

  • 資産のセキュリティ: オンプレミスにデプロイされている間に IoT 資産をセキュリティで保護します。

  • 接続のセキュリティ: 資産、エッジ、クラウド サービス間で転送中のすべてのデータが機密であり、改ざんを防ぎます。

  • エッジ セキュリティ: データの移動時にデータをセキュリティで保護し、エッジに格納します。

  • クラウド セキュリティ: データの移動時にデータをセキュリティで保護し、クラウドに格納します。

Microsoft Defender for IoT および Microsoft Defender for Containers

Microsoft Defender for IoTは、IoT および運用テクノロジ (OT) デバイス、脆弱性、脅威を特定するために特別に構築された統合セキュリティ ソリューションです。 Microsoft Defender for Containers は、マルチクラウド環境とオンプレミス環境全体で、コンテナー化された資産 (Kubernetes クラスター、Kubernetes ノード、Kubernetes ワークロード、コンテナー レジストリ、コンテナー イメージなど) とそのアプリケーションのセキュリティを向上、監視、および維持するためのクラウドネイティブ ソリューションです。

Defender for IoT と Defender for Containers の両方で、この記事に含まれる推奨事項の一部を自動的に監視できます。 IoT の Defender と Containers の Defender は、エッジ接続ソリューションを保護するための防御の最前線であるべきです。 詳細については、以下をご覧ください。

資産のセキュリティ

このセクションでは、産業機器、センサー、IoT ソリューションの一部であるその他のデバイスなど、資産をセキュリティで保護する方法について説明します。 資産のセキュリティは、生成および送信するデータの整合性と機密性を確保するために重要です。

  • Azure Key Vaultとシークレット ストア拡張機能の使用: Azure Key Vault を使用して、キー、パスワード、証明書、シークレットなどの資産の機密情報を格納および管理します。 Azure IoT Operationsは、クラウド上のマネージド コンテナー ソリューションとしてAzure Key Vaultを使用し、Kubernetes 用の Azure Key Vault シークレット ストア拡張機能 を使用してクラウドからシークレットを同期し、それらを Kubernetes シークレットとしてエッジに格納します。 詳細については、Azure IoT OperationsデプロイのManage シークレットを参照してください。

  • セキュリティで保護された証明書管理を設定する: 資産とエッジ ランタイム環境の間のセキュリティで保護された通信を確保するには、証明書の管理が重要です。 Azure IoT Operationsには、証明書の発行、更新、取り消しなど、証明書を管理するためのツールが用意されています。 詳細については、「Azure IoT Operations 内部通信のための証明書管理」を参照してください。

  • 改ざん防止ハードウェアの選択: デバイス カバーの開口部やデバイスの一部の取り外しなど、物理的な改ざんを検出する組み込みのメカニズムを備えた資産ハードウェアを選択します。 これらの改ざんシグナルは、クラウドにアップロードされたデータ ストリームの一部にすることができ、オペレーターはこれらのイベントにアラートを送信します。

  • 資産ファームウェアのセキュリティで保護された更新プログラムを有効にする: 資産のオンエア更新を有効にするサービスを使用します。 更新プログラムのセキュリティで保護されたパスとファームウェア バージョンの暗号化保証を使用して資産を構築し、更新中および更新後に資産をセキュリティで保護します。

  • 資産ハードウェアを安全に展開する: 資産ハードウェアの展開は、特にパブリックスペースや教師なしロケールなどの安全でない場所で、可能な限り改ざんを防止します。 USB ポートを安全にカバーする必要がない場合など、物理的な攻撃フットプリントを最小限に抑えるために必要な機能のみを有効にします。

  • デバイス製造元のセキュリティと展開のベスト プラクティスに従います。デバイスの製造元がセキュリティと展開のガイダンスを提供する場合は、この記事の一般的なガイダンスと共に、そのガイダンスに従ってください。

接続のセキュリティ

このセクションでは、資産、エッジ ランタイム環境、クラウド サービス間の接続をセキュリティで保護する方法について説明します。 接続のセキュリティは、送信されるデータの整合性と機密性を確保するために重要です。

  • トランスポート層セキュリティ (TLS) を使用して資産からの接続をセキュリティで保護します: Azure IoT Operations内のすべての通信は TLS を使用して暗号化されます。 エッジに接続されたソリューションの意図しない攻撃者への露出を最小限に抑える既定のセキュリティで保護されたエクスペリエンスを提供するために、Azure IoT Operationsは TLS サーバー証明書用の既定のルート CA と発行者と共にデプロイされます。 運用環境へのデプロイの場合、独自の CA 発行者とエンタープライズ PKI ソリューションを使用することをお勧めします。

  • 運用環境用に独自の CA を使用する: 運用展開の場合は、既定の自己署名ルート CA を独自の CA 発行者に置き換え、エンタープライズ PKI と統合して信頼とコンプライアンスを確保します。 詳細については、「Azure IoT Operations 内部通信のための証明書管理」を参照してください。

  • エンタープライズ ファイアウォールまたはプロキシを使用して送信トラフィックを管理する: エンタープライズ ファイアウォールまたはプロキシを使用する場合は、許可リストに Azure IoT Operations エンドポイントを追加します。

  • メッセージ ブローカーの内部トラフィックを暗号化する: エッジ インフラストラクチャ内の内部通信のセキュリティを確保することは、データの整合性と機密性を維持するために重要です。 MQTT ブローカーのフロントエンドポッドとバックエンド ポッドの間で転送中の内部トラフィックとデータを暗号化するように MQTT ブローカーを構成する必要があります。 詳細については、「 ブローカーの内部トラフィックと内部証明書の暗号化を構成する」を参照してください。

  • MQTT ブローカーのリスナーの自動証明書管理を使用して TLS を構成する: Azure IoT Operationsは、MQTT ブローカーのリスナーに対して自動証明書管理を提供します。 この機能により、証明書を手動で管理する管理オーバーヘッドが軽減され、タイムリーな更新が保証され、セキュリティ ポリシーへのコンプライアンスの維持に役立ちます。 詳細については、 BrokerListener を使用した MQTT ブローカー通信のセキュリティ保護に関するページを参照してください。

  • OPC UA サーバーへのセキュリティで保護された接続を設定する: OPC UA サーバーに接続するときは、セッションを安全に確立するために信頼する OPC UA サーバーを決定する必要があります。 詳細については、「OPC UA 用コネクタの OPC UA 証明書インフラストラクチャを構成する」を参照してください。

  • ネットワークの分離とセグメント化: ネットワークのセグメント化とファイアウォールを使用して、IoT Operations クラスターとエッジ デバイスを他のネットワーク リソースから分離します。 エンタープライズ ファイアウォールまたはプロキシを使用している場合は、必要なエンドポイントを許可リストに追加します。 詳細については、「 運用展開のガイドライン - ネットワーク」を参照してください。

エッジ セキュリティ

このセクションでは、エッジ プラットフォームで実行されるソフトウェアであるエッジ ランタイム環境をセキュリティで保護する方法について説明します。 このソフトウェアは、資産データを処理し、資産とクラウド サービス間の通信を管理します。 エッジ ランタイム環境のセキュリティは、処理および送信されるデータの整合性と機密性を確保するために重要です。

  • エッジランタイム環境を最新の状態に保つ: クラスターとAzure IoT Operationsのデプロイメントを最新のパッチとマイナーリリースで更新し、利用可能なすべてのセキュリティとバグ修正を取得します。 運用環境のデプロイでは、Azure Arc新しい更新プログラムがクラスターに適用されるタイミングを完全に制御します。 代わりに、必要に応じてエージェントを手動でアップグレードします。

  • コンテナー イメージと Helm イメージの整合性を検証する: クラスターにイメージをデプロイする前に、イメージがMicrosoftによって署名されていることを確認します。 詳細については、「 イメージ署名の検証」を参照してください。

  • MQTT ブローカーでの認証には、常に X.509 証明書または Kubernetes サービス アカウント トークンを使用します。MQTT ブローカーは、クライアントに対して複数の認証方法をサポートします。 リスナー ポートごとに、BrokerAuthentication リソースに関する固有の認証設定を構成できます。 詳細については、「 MQTT ブローカー認証の構成」を参照してください。

  • MQTT ブローカーのトピック資産に必要な最小限の特権を提供する: 承認ポリシーは、クライアントがブローカーに対して実行できるアクション (トピックの接続、発行、サブスクライブなど) を決定します。 BrokerAuthorization リソースで 1 つまたは複数の認可ポリシーを使うように MQTT ブローカーを構成します。 詳細については、 MQTT ブローカー承認の構成に関するページを参照してください。

クラウド セキュリティ

このセクションでは、資産データを処理して格納するサービスであるクラウド サービスをセキュリティで保護する方法について説明します。 クラウド サービスのセキュリティは、データの整合性と機密性を確保するために不可欠です。

  • クラウド接続にユーザー割り当てマネージド ID を使用する: 常にマネージド ID 認証を使用します。 可能な場合は、データ フロー エンドポイントでユーザー割り当てマネージド ID を使用し、柔軟性と監査可能性を確保します。 詳細については、 Azure IoT Operationsを参照してください。

  • 監視リソースをデプロイし、ログを設定します: 監視によって、Azure IoT Operations構成のすべてのレイヤーを可視化できます。 これは、問題の実際の動作に関する分析情報を提供し、サイト信頼性エンジニアリングの有効性を高めます。 Azure IoT Operationsは、Azureでホストされているカスタムキュレーションされた Grafana ダッシュボードを通じて監視を提供します。 これらのダッシュボードは、Prometheus と Container Insights 用Azure Monitorマネージド サービスを利用します。 Azure IoT Operationsをデプロイする前に、クラスターに可観測性リソースをデプロイします。

  • AZURE RBAC を使用した資産と資産エンドポイントへの安全なアクセス: Azure IoT Operationsの資産と資産エンドポイントは、Kubernetes クラスターと Azure ポータルの両方に表示されます。 Azure RBAC を使用して、これらのリソースへのアクセスをセキュリティで保護します。 Azure RBAC は、Azure リソースへのアクセスを管理できる承認システムです。 Azure RBAC を使用して、特定のスコープでユーザー、グループ、およびアプリケーションにアクセス許可を付与します。 詳細については、「 資産と資産エンドポイントへのアクセスをセキュリティで保護する」を参照してください。