etcd 暴露的严重性
etcd 是分布式键值存储,在容器编排体系里保存集群的全部状态,其中包含各类密钥对象与配置。它的客户端接口本身只提供键值读写,没有额外的业务层校验,因此一旦未加认证地暴露,读取键值就等于拿到集群的敏感数据。检查以最小只读动作为原则:确认端口可达性与是否强制认证、是否强制加密传输。
基本信息
| 客户端端口 | 2379,提供键值读写与状态接口 |
|---|---|
| 对等端口 | 2380,节点间通信,不应对外暴露 |
| 判定信号 | 无凭据即可获取版本或状态信息 |
| 加固方向 | 仅集群内部可达,强制认证与传输加密 |
| 边界 | 读操作也严格限定在授权的最小范围内 |
典型使用场景
- 容器平台评估:确认控制面组件的暴露范围
- 密钥面风险沟通:向客户说明键值库与密钥存储的关系
- 基线核查:对照编排平台安全基线逐项核对
- 变更前评估:控制面网络策略调整前核对现有暴露面
- 复测:确认网络收敛与认证启用后不再可未授权访问
只读检查示例
只读检查示例
# 仅确认服务可达性,能返回版本即说明未强制认证
curl -s --max-time 3 http://10.0.30.6:2379/version
# 记录端口与响应,不执行任何键值读取或写入
# 对等端口同样确认暴露范围
# 不导出键值内容,避免接触密钥与凭据端口与判定
| 端口 | 用途 | 暴露判定 |
|---|---|---|
| 2379 | 客户端键值读写 | 非集群网段可达即视为暴露 |
| 2380 | 节点间通信 | 对外可达属高危配置 |
| 版本接口 | 状态查询 | 无认证可读说明未强制认证 |
| 健康检查 | 存活探测 | 可用于确认服务类型 |
etcd 数据含密钥与凭据:即使是读操作,也必须严格限制在授权验证的最小范围内,绝不以读取键值作为证据。
在容器编排环境中,etcd 往往只能通过控制面节点访问:评估时先确认网络路径,避免把可达路径的缺失误判为配置加固。