# 加固 BYOC 部署

本页适用于阿里云和亚马逊云科技（AWS 中国）上的 EMQX Cloud BYOC 部署。确认部署状态为**运行中**、EMQX Dashboard 和 MQTT 客户端均可连接后，收紧访问并清理临时凭据。修改云平台规则前，以当前部署的连接信息、负载均衡器监听器和健康检查配置为准。

## 保护 EMQX Dashboard

1. 使用 `https://<部署域名>:18084` 登录 EMQX Dashboard，立即修改初始管理员密码。
2. 为管理员启用 [TOTP 多因素认证](https://docs.emqx.com/en/emqx/latest/multi-factor-authn/multi-factor-authentication.html)。为日常管理人员创建独立账号并分配所需角色；将应急账号凭据保存在经批准的密码管理器中。
3. 按应用需要配置 MQTT 客户端认证和授权，限制客户端可访问的主题及集成凭据的权限。

## 收紧网络访问

将管理流量与客户端流量分开设置；仅允许可信公网 IP、企业 VPN 或受控跳板网络访问 Dashboard。修改以下默认端口前，先核对当前部署的监听器和安全规则：

| TCP 端口 | 用途 | 建议 |
| --- | --- | --- |
| `18084` | EMQX Dashboard | 仅允许管理网络访问。 |
| `1883`、`8083` | 明文 MQTT、WebSocket | 无明确业务需求时关闭公网访问。 |
| `8883`、`8084` | MQTT over TLS、WebSocket over TLS | 仅保留客户端使用的协议；可行时限制来源。 |
| `8443` | REST API 和部署管理所需访问 | 按当前部署要求保留端口及映射。 |

不要擅自关闭或更改 `8443`。保留 Agent、集群内部通信及负载均衡器健康检查；不要将内部端口向公网广泛开放。

### 阿里云

检查 SLB 监听器、后端服务器和 ECS [安全组规则](https://help.aliyun.com/zh/acsg/best-practices-of-the-security-group)。核对规则优先级和实际生效的允许范围，移除 Dashboard 与未使用客户端端口的宽泛公网放行规则。保留负载均衡器实际配置的健康检查和转发通信；如使用 CLB 和主机防火墙，按[健康检查要求](https://help.aliyun.com/zh/slb/classic-load-balancer/user-guide/health-check-overview)放行来源。调整后确认后端服务器健康。

### 亚马逊云科技（AWS 中国）

检查网络负载均衡器监听器、目标组，以及负载均衡器（如已关联安全组）和 EMQX 节点的[安全组规则](https://docs.amazonaws.cn/vpc/latest/userguide/security-group-rules.html)。同一资源关联的安全组规则会合并生效，添加更严格的规则不会覆盖旧的宽泛允许规则。移除旧规则，并保留目标组实际配置的目标端口和健康检查端口；调整后确认所有目标健康。

## 回收临时部署凭据

先确认部署凭据未被运行中的实例、集成或自动化使用。保留运行时身份和共享凭据。后续启动、停止或删除部署时，使用[当前操作指引](./stop_delete_deployment.md#byoc-部署)为该部署生成的命令；操作完成后及时回收临时凭据。

### 阿里云

禁用仅用于创建部署的 [RAM 用户 AccessKey](https://help.aliyun.com/zh/ram/user-guide/accesskey-pair-management/)，验证 Dashboard、MQTT 和 EMQX Cloud 监控正常后，在 RAM 中删除密钥及本地副本。仅在确认无其他用途或授权依赖时删除该 RAM 用户及专用策略。不要使用主账号 AccessKey；仅删除本地密钥文件不能撤销云端密钥。

### 亚马逊云科技（AWS 中国）

停用仅用于创建部署的 IAM 访问密钥，验证服务后在 IAM 中删除密钥及本地副本。仅在确认无其他用途或绑定时删除专用 IAM 用户与策略；不要删除运行时角色、实例配置文件或共享身份，也不要使用根用户访问密钥。

## 清理临时启动环境

如果使用临时 Ubuntu 云服务器执行部署，清理前先通过该服务器自身的名称或标签确认其身份。确认部署运行正常并安全保存必要的恢复资料后，仅释放该临时服务器以及已确认专属于它的资源；不要仅按资源类型批量删除。资源归属或依赖关系不明确时，保留资源直至核实。安全保存必要的恢复资料后，删除启动环境中残留的访问密钥、TLS 私钥、部署包、Terraform 状态，以及可能包含凭据的日志和 Shell 历史记录。

保留为 BYOC 部署创建的全部资源，包括 EMQX 节点、`emqxbyoc-...-agent-...` 实例、密钥对、磁盘、快照、网络接口、镜像、网络、负载均衡器、IP 地址和 DNS 记录，同时保留共享资源。

## 维护证书和审计记录

指定证书续期负责人并设置到期提醒。通过[更新证书](./byoc_ssl.md#更新证书)流程上传与部署域名匹配的证书、私钥和完整证书链，更新后验证 MQTT TLS 连接。

- **阿里云：** 创建[操作审计跟踪](https://help.aliyun.com/zh/actiontrail/user-guide/trail-overview)，按安全要求保存账号操作记录。
- **亚马逊云科技（AWS 中国）：** 配置持续记录管理事件的 [CloudTrail 跟踪](https://docs.amazonaws.cn/awscloudtrail/latest/userguide/best-practices-security.html)，并按账号安全基线启用 [GuardDuty](https://docs.amazonaws.cn/aws/latest/userguide/guardduty.html)。

按安全策略审查云平台身份、网络和部署资源的变更记录。

## 验证加固结果

- 部署状态为**运行中**，EMQX 节点和负载均衡器后端健康。
- Dashboard 仅能从授权来源访问，管理员密码已修改且已启用 MFA。
- 只有需要的 MQTT 客户端端口可访问，认证和授权正常。
- `8443`、Agent 通信和健康检查仍正常。
- 临时凭据与启动环境残留已清理，运行时身份未受影响。
- 证书续期、到期提醒和审计记录已落实。

网络规则调整后，分别从允许和不允许的来源测试 Dashboard，再检查 MQTT 客户端连接与 EMQX Cloud 监控。
