使用此检查清单验证你的 BitzOrcas 部署满足生产安全要求。
密钥管理
- JWT 密钥 ≥ 32 字符,存储在密钥管理器中(非
appsettings.json) - HMAC 客户端凭据在密钥管理器中,未提交到 git
- API 密钥安全存储;运行时仅有 SHA-256 哈希
- 连接字符串在密钥管理器中(Azure Key Vault / AWS Secrets Manager 等)
- RabbitMQ 凭据在密钥管理器中
-
dotnet user-secrets仅用于本地开发
TLS 和传输
- 全部 HTTPS——生产环境无 HTTP 端点
- 最低 TLS 1.2+(首选 TLS 1.3)
- 启用 HSTS,长 max-age
- 配置证书自动续期
CORS 配置
- CORS 来源限制为已知前端域名
-
AllowCredentials: true仅在需要时 - 不使用通配符(
*)来源配合凭据
认证
- JWT issuer 和 audience 已配置(非默认值)
- ClockSkew 设为
TimeSpan.Zero - 从生产配置中移除开发测试夹具
- 令牌生命周期适合你的安全模型
限流
- 为生产流量配置限流策略
- 多实例部署计划使用 Redis 后端
- 敏感端点(登录、密码重置)使用
sensitivePolicy
可观测性
- OTLP 端点配置到你的 collector
- 服务名称和部署环境已设置
- 审计日志保留策略已配置
- 健康检查端点可被编排器访问
数据库
- SQL Server 不暴露到公共互联网
- 加密连接(TLS)
- API 和 JobHost 使用独立凭据
- 配置定期备份计划
消息代理
- RabbitMQ 不暴露到公共互联网
- 管理界面已加固或禁用
- 连接加密(TLS)
- 死信交换已配置
基础设施
- 容器镜像来自可信注册表
- 非根容器用户
- 尽可能只读文件系统
- 配置资源限制(CPU、内存)
配置检查清单
{ "Jwt": { "Secret": "≥32-chars-from-vault", "Issuer": "your-production-issuer", "Audience": "your-production-audience" }, "Hmac": { "Clients": { "from-vault": "..." } }, "OTEL_EXPORTER_OTLP_ENDPOINT": "https://your-collector:4317", "OTEL_SERVICE_NAME": "bitzorcas-api", "OTEL_DEPLOYMENT_ENVIRONMENT": "production"}