配置代理内部流量加密和内部证书

确保基础结构内部通信的安全性对于维护数据完整性和保密性非常重要。 可以将 MQTT 代理配置为加密内部流量和数据。 使用凭据管理器自动管理加密证书。

加密内部流量

重要

此设置要求修改 Broker 资源。 它仅在初始部署时使用 Azure CLI 或 Azure 门户进行配置。 如果需要 Broker 配置更改,则需要新的部署。 若要了解详细信息,请参阅自定义默认代理

“加密内部流量”功能用于加密 MQTT 代理前端和后端 pod 之间传输中的内部流量。 部署 Azure IoT 操作时,此功能默认启用。

若要禁用加密,请在“代理资源”中修改 advanced.encryptInternalTraffic 设置。 只能在使用 --broker-config-file 命令部署 IoT 操作期间使用 az iot ops create 标志来执行此步骤。

注意

禁用加密可以提高 MQTT 代理性能。 为了防范中间人攻击等安全威胁,强烈建议保持启用此设置。 仅在受控的非生产性环境中进行测试时禁用加密。

{
  "advanced": {
    "encryptInternalTraffic": "Disabled"
  }
}

然后,使用带有 az iot ops create 标志的 --broker-config-file 命令部署 IoT 操作,如下命令所示。 (为简洁起见,省略了其他参数。)

az iot ops create ... --broker-config-file <FILE>.json

内部证书

启用加密时,MQTT 代理使用证书管理器来生成和管理用于加密内部流量的证书。 证书管理器会在证书到期时自动续订证书。 可以在 Broker 资源中配置证书设置,如持续时间、续订时间和私钥算法。 目前,使用 --broker-config-file 命令部署 IoT 操作时,仅支持使用 az iot ops create 标志更改证书设置。

例如,要将证书 duration 设置为 240 小时,renewBefore 时间设置为 45 分钟,privateKeyalgorithm 设置为 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 操作。

要了解更多信息,请参阅用于高级 MQTT 代理配置的 Azure CLI 支持代理示例