セキュリティとスケーラビリティは、Azure IoT Operations をデプロイするための優先事項です。 この記事では、運用環境用に Azure IoT Operations を設定するときに考慮する必要があるガイドラインについて説明します。
適切な構成を検討する前に、Azure IoT Operations を単一ノード クラスターとマルチノード クラスターのどちらにデプロイするかを決定します。 この記事のガイドラインの多くは、クラスターの種類に関係なく適用されますが、違いがある場合は特に呼び出されます。
プラットフォーム
現在、Ubuntu 24.04 上の K3s は、Azure IoT Operations を運用環境にデプロイするための唯一の一般提供プラットフォームです。
クラスターのセットアップ
ハードウェアのセットアップが目的のシナリオに十分であり、セキュリティで保護された環境を使用して始める必要があることを確認します。
システム構成
システム要件を満たす Arc 対応 K3s クラスターを作成します。
- Azure IoT Operations でサポートされている環境を使用します。
- ドキュメントに従ってクラスターを構成します。
- クラスターの断続的な接続が予想される場合は、クラスターが オフラインの間にクラスター キャッシュ データとメッセージに十分なディスク領域を割り当てられるようにします。
- 可能であれば、プライマリ運用クラスターにデプロイする前に、新しい変更をテストするためのステージング領域として、2 つ目のクラスターを用意します。
- Azure Arc の自動アップグレードをオフに して、クラスターに新しい更新プログラムが適用されるタイミングを完全に制御します。 代わりに、必要に応じてエージェントを手動でアップグレードします。
- マルチノード クラスターの場合: Edge ボリュームを使用してクラスターを構成し、デプロイ中にフォールト トレランスを有効にする準備をします。
セキュリティ
デプロイ前にクラスターのセットアップがセキュリティで保護されていることを確認するには、次の対策を検討します。
- イメージを検証し、それらが Microsoft によって署名されていることを確認します。
- TLS 暗号化を実行するときは、自分の組織の独自の発行者を導入し、エンタープライズ PKI と統合します。
- オンプレミス認証にシークレットを使用します。
- クラウド接続にユーザー割り当てマネージド ID を使用します。
- クラスターと Azure IoT Operations のデプロイを最新の修正プログラムとマイナー リリースを使用して最新の状態に保ち、使用可能なすべてのセキュリティとバグ修正を取得できるようにします。
ネットワーク
エンタープライズ ファイアウォールまたはプロキシを使用する場合は、Azure IoT Operations エンドポイントを許可リストに追加します。
可観測性
運用環境のデプロイでは、Azure IoT Operations をデプロイする前に、監視リソースをクラスターにデプロイします。 Azure Monitor で Prometheus アラートを設定することもお勧めします。
デプロイ
運用環境に対応したデプロイの場合は、Azure IoT Operations のデプロイ中に次の構成を含めます。
MQTT ブローカー
Azure portal デプロイ ウィザードでは、ブローカー リソースは [構成] タブで設定されます。
メモリ プロファイルと、接続とメッセージを処理するためのニーズに基づいて、カーディナリティ設定を構成します。 たとえば、次の設定では、単一ノードまたはマルチノードのクラスターをサポートできます。
設定 単一ノード 複数ノード frontendReplicas 1 5 フロントエンドワーカー 4 8 backendRedundancyFactor 2 2 バックエンドワーカー 1 4 backendPartitions(バックエンドパーティション) 1 5 メモリ プロファイル 低 高 内部トラフィックを暗号化します。
RAM オーバーフローを防止する最大サイズでディスクベース メッセージ バッファーを設定します。
スキーマ レジストリとストレージ
Azure portal デプロイ ウィザードでは、スキーマ レジストリとその必要なストレージ アカウントは [依存関係の管理] タブで設定されます。
- ストレージ アカウントの階層型名前空間が有効になっている必要があります。
- スキーマ レジストリのマネージド ID には、ストレージ アカウントの共同作成者アクセス許可が必要です。
- ストレージ アカウントは、パブリック ネットワーク アクセスが有効になっている場合にのみサポートされます。
運用環境のデプロイでは、信頼された Azure サービスからのトラフィックのみを許可するように、ストレージ アカウントのパブリック ネットワーク アクセスのスコープを設定します。 例えば次が挙げられます。
- Azure portal で、スキーマ レジストリが使用するストレージ アカウントに移動します。
- ナビゲーション メニューから [ セキュリティとネットワーク > ネットワーク ] を選択します。
- パブリック ネットワーク アクセス設定で、 選択した仮想ネットワークと IP アドレスから [有効] を選択します。
- [ネットワーク] ページの [ 例外 ] セクションで、[ 信頼された Microsoft サービスにこのリソースへのアクセスを許可する ] オプションが選択されていることを確認します。
- [保存] をクリックして変更を適用します。
詳細については、「 Azure Storage ファイアウォールと仮想ネットワークの構成」 > 信頼できる Azure サービスへのアクセスを許可する方法に関するページを参照してください。
フォールト トレランス
マルチノード クラスター: フォールト トレランスは、Azure portal デプロイ ウィザードの [依存関係の管理] タブで有効にできます。 これはマルチノード クラスターでのみサポートされ、運用環境デプロイに推奨されます。
セキュリティで保護された設定
デプロイ中に、テスト設定またはセキュリティで保護された設定を使用するオプションが用意されています。 運用環境デプロイの場合は、セキュリティで保護された設定を選択します。 運用環境の既存のテスト設定のデプロイをアップグレードする場合は、「セキュリティで保護された設定を有効にする」の手順に従ってください。
デプロイ後
Azure IoT Operations をデプロイした後、運用環境シナリオに対して次の構成を行います。
MQTT ブローカー
デプロイ後、BrokerListener リソースを編集できます。
- リスナーの自動の証明書管理で TLS を構成します。
BrokerAuthentication リソースを編集することもできます。
- 認証のために、X.509 証明書または Kubernetes サービス アカウント トークンを使用します。
- 認証なしは使用しないでください。
新しいリソースを作成するときに、その認可を管理します。
- BrokerAuthorization リソースを作成し、トピック資産に必要な最小限の権限を提供します。
OPC UA ブローカー
運用環境で資産に接続するには、OPC UA 認証を構成します。
- 認証なしは使用しないでください。OPC UA サーバーへの接続は、認証なしではサポートされていません。
- OPC UA サーバーへのセキュリティで保護された接続を設定します。 運用環境 PKI を使用し、アプリケーション証明書と信頼リストを構成します。
データ フロー
運用環境でデータ フローを使用するときは、次の手順を実行します。
- サービス アカウント トークン (SAT) 認証を、MQTT ブローカー (既定) と一緒に使用します。
- 常にマネージド ID 認証を使用します。 可能な場合は、データ フロー エンドポイントでユーザー割り当てマネージド ID を使用し、柔軟性と監査可能性を確保します。
- スループットを向上させ、高可用性を実現するために、データ フロー プロファイルをスケーリングします。
- 複数のデータ フローをデータ フロー プロファイルにグループ化し、それに応じて各プロファイルのスケーリングをカスタマイズします。