关键信息基础设施(关基)场景下的镜像仓库异地多活方案
解读
关基场景对镜像仓库的核心诉求是“数据零丢失、服务秒级接管、合规可追溯”。异地多活不是简单把 Harbor 复制到两地,而是要同时满足:国家密码法要求的国密 TLS 与证书体系、等保 2.0 四级访问控制与审计、关基条例 7×24 小时应急演练、以及工信部 2020 年 15 号文对容器镜像签名与 SBOM 的强制上报。面试官想听到的是:你如何在“双活+灾备”架构里,把镜像数据、元数据、访问策略、审计日志、漏洞扫描结果、签名证书全部同步,并且在单区域毁灭时仍能保证RPO=0、RTO<30s,同时不踩监管红线。
知识点
- 关基合规基线:等保 2.0 四级、国密 SM2/SM3/SM4、关基条例第 21 条“同步规划、同步建设、同步使用”三同步原则。
- 镜像仓库数据模型:Blob(层文件)、Manifest(镜像索引)、Artifact(签名、SBOM)、Project RBAC、CVE 扫描报告、审计日志六类数据。
- 复制拓扑:主主双写(Active-Active) vs 主备(Active-Passive);双向同步冲突(同镜像名不同 digest)的解决策略。
- 存储层:
- S3 协议对象存储(如华为云 OBS、移动云 EOS)跨 Region 桶复制开启多活版本控制,保证 Blob 级 RPO=0;
- 元数据用 MySQL Group Replication 或 TiDB 做三园区强一致部署,GTID 一致性校验防脑裂。
- 网络与安全:
- 国密双证体系(SM2 签名证书 + SM4 流量加密),Harbor 前端挂 Tengine-GmSSL 卸载;
- 双向 mTLS 基于国密,客户端使用 SM2 芯片 USBKey(如飞天诚信 ePass3003GM)。
- 准入与签名:
- Cosign+国密插件 实现镜像 SM2 签名,签名数据作为 Artifact 存入仓库;
- OPA Gatekeeper 在 K8s 准入时验签、验 SBOM、验 CVE 白名单,拒绝未签名或 Critical 漏洞镜像。
- 监控与演练:
- Prometheus + 国密版 Grafana 监控 blob_store_latency、registry_http_requests_total、mysql_group_replication_lag;
- ** Chaos Mesh 模拟 Zone 级断电**,验证 30 秒内 VIP 漂移到异地并保持登录会话不中断。
答案
“关基场景下,我采用‘国密双活 Harbor + 强一致元数据 + 对象存储跨域多活’的三层方案。
- 数据层:Blob 走 华为云 OBS 多活桶复制,开启 SM4 服务端加密与 版本控制,任何一层文件在 A 城市删除,B 城市仍保留版本;Manifest、RBAC、审计日志写入 TiDB 三园区集群,Raft 协议保证强一致,跨城延迟 <30ms 时提交成功。
- 服务层:两地各部署 Harbor v2.9 国密版,配置 主主复制,使用 SM2 证书做双向 mTLS;冲突解决策略采用 digest 优先 + 时间戳覆盖保护,同镜像名不同 digest 时,人工复核工单自动落库等保审计系统。
- 流量层:F5+DNS Pod 级负载,Anycast IP + BGP 宣告,健康探测失败 3 次即触发 VIP 漂移;客户端通过 国密 USBKey 完成 SM2 签名登录,会话 Token 在 Redis 跨区双写,漂移后无需重新登录。
- 合规层:镜像构建阶段即调用 国密 Cosign 插件生成 SM2 签名与 SBOM,Harbor 复制策略把签名作为 Artifact 同步;审计日志通过 rsyslog-tls 国密加密实时传至关基统一审计平台,保存 180 天不可篡改。
- 演练指标:去年 10 月工信部关基演练中,拔掉 A 城市光纤,RPO=0、RTO=28 秒,镜像拉取成功率 100%,等保审计无告警,获得管局通报表扬。
拓展思考
- 如果监管要求“数据不出省”,而对象存储跨 Region 复制会出省,如何改造?——可引入省内部署的 MinIO 集群 + 省网专线级联,采用 MinIO Site Replication 并关闭跨 Region 流量,通过省级密码机提供国密卸载。
- 当镜像数量达到 50 TB、1 亿层文件时,OBS 清单+生命周期会产生大量 LIST 费用,如何降本?——启用 Harbor 的 OCI Index 预合并,把高频小层合并为单 Blob,减少对象数量 70%;同时设置 OBS 深度归档策略,90 天未拉取层自动沉降。
- **未来需要接入 eBPF 透明加密 与 Confidential Container,如何在双活架构里保证内存级国密密钥同步?——可探索使用 SGX+国密 Enclave,把密钥密封在 Enclave 中,通过 RA-TLS 国密通道完成异地 Quote 验证,实现“密钥可用不可见”的双活加密运行时。”