禁用 Swagger API 资源浏览器
本指南介绍如何在 Harbor Portal 中禁用 Swagger 规范的暴露,以满足高安全性环境的需求。
当安全扫描工具或合规基线将 Swagger/OpenAPI 暴露视为风险时,通常需要进行此操作。
禁用后,/swagger.json 和 /swagger.yaml 路径将返回 404,但这不会移除 Harbor UI 中的 API Explorer 菜单入口。
目录
前提条件概览配置步骤步骤 1:更新 Harbor Helm 值步骤 2:应用配置步骤 3:验证生效范围总结常见问题此设置会禁用 Harbor API 吗?禁用 Swagger 后,为什么 API Explorer 菜单仍然可见?此设置在 ingress 模式下有效吗?前提条件
- 由 Harbor CE Operator 管理的运行中 Harbor 实例
- 具备更新目标命名空间中 Harbor 自定义资源的权限
- 可访问 Harbor 域名以便变更后验证
概览
Harbor 实例中的关键配置
- Helm 值:
spec.helmValues.portal.swagger.enabled
流程概览
配置步骤
步骤 1:更新 Harbor Helm 值
更新 Harbor 实例配置:
步骤 2:应用配置
在集群中应用 Harbor 自定义资源更新。
应用后,等待 Harbor Portal 组件完成滚动更新。
步骤 3:验证生效范围
检查 Swagger 规范端点:
预期结果:两个请求均返回 404 Not Found。
总结
通过设置 spec.helmValues.portal.swagger.enabled=false,您可以阻止 Harbor Portal 暴露 Swagger 规范,同时保持 Harbor API 服务可用于正常集成。
常见问题
此设置会禁用 Harbor API 吗?
不会。该设置仅影响 Portal 中 Swagger 规范的暴露(/swagger.json 和 /swagger.yaml)。
Harbor 的业务 API(如 /api/v2.0/**)仍然可用。
禁用 Swagger 后,为什么 API Explorer 菜单仍然可见?
该设置不会移除 UI 菜单入口或路由。
它仅使 Swagger 规范端点返回 404,因此资源浏览器页面无法加载 API 规范。
此设置在 ingress 模式下有效吗?
有效。该设置应用于 Portal 组件,无论暴露方式是 ingress、nodePort、clusterIP、loadBalancer 还是 route,均生效。