データ整合性と機密性を維持するには、インフラストラクチャ内の内部通信のセキュリティを確保することが重要です。 内部トラフィックとデータを暗号化するように MQTT ブローカーを構成できます。 暗号化証明書は、資格情報マネージャーを使用して自動的に管理されます。
内部トラフィックを暗号化する
重要
この設定では、Broker リソースを変更する必要があります。 この設定は、Azure CLI または Azure portal を使用して、初期デプロイ時にのみ構成されます。 "ブローカー" 構成の変更が必要な場合は、新しいデプロイが必要です。 詳細については、「既定のブローカーのカスタマイズ」を参照してください。
内部トラフィックの暗号化機能は、MQTT ブローカー フロントエンドとバックエンド ポッド間の転送で、内部トラフィックを暗号化するために使用されます。 Azure IoT Operations をデプロイすると、既定で有効になります。
暗号化を無効にするには、ブローカー リソースの advanced.encryptInternalTraffic
設定を変更します。 この手順は、--broker-config-file
コマンドを使用した IoT Operations のデプロイ中に az iot ops create
フラグを使用する場合にのみ実行できます。
注意事項
暗号化を無効にすると、MQTT ブローカーのパフォーマンスが向上します。 中間者攻撃などのセキュリティ上の脅威から保護するために、この設定を有効にしておくことを強くお勧めします。 テスト目的で制御された非運用環境でのみ暗号化を無効にします。
{
"advanced": {
"encryptInternalTraffic": "Disabled"
}
}
その後、次のコマンドのように、az iot ops create
フラグを指定して --broker-config-file
コマンドを使用して IoT Operations をデプロイします。 (簡潔にするために、その他のパラメーターは省略されています。)
az iot ops create ... --broker-config-file <FILE>.json
内部証明書
暗号化が有効になっている場合、MQTT ブローカーは cert-manager を使用して、内部トラフィックの暗号化に使用される証明書を生成および管理します。 Cert-manager は、有効期限が切れると証明書を自動的に更新します。 証明書の有効期間、更新時期、秘密キーのアルゴリズムなどの設定は、Broker リソースで構成できます。 現在、証明書設定の変更は、--broker-config-file
コマンドを使用して IoT Operations をデプロイするときに、az iot ops create
フラグを使用する場合のみサポートされています。
たとえば、証明書 duration
を 240 時間、renewBefore
時間を 45 分、privateKey
algorithm
を RSA 2048 に設定するには、JSON 形式で Broker 構成ファイルを準備します。
{
"advanced": {
"encryptInternalTraffic": "Enabled",
"internalCerts": {
"duration": "240h",
"renewBefore": "45m",
"privateKey": {
"algorithm": "Rsa2048",
"rotationPolicy": "Always"
}
}
}
}
次に、az iot ops create
を使用して --broker-config-file <FILE>.json
コマンドで IoT Operations をデプロイします。
詳細については、「高度な MQTT ブローカー構成の Azure CLI サポート」と「ブローカーの例」を参照してください。