跳转至

云与安全

主要内容

Linux 服务器管理不只是 SSH;Kubernetes 管容器编排;云平台提供计算、存储、网络、数据库;IaC 把基础设施代码化;DevSecOps 把安全检查前置到 CI/CD。

参考文档

Linux 服务器管理.md、Introduction to Kubernetes.md、云基础设施.md、基础设施即代码IaC.md、DevSecOps 操作.md、可观测性.md

知识地图

  • 概念:先理解这个模块为什么存在。
  • 工具:再看它通过哪些工具落地。
  • 场景:最后判断什么时候该用,什么时候不该用。

核心整理

Linux 服务器管理不只是 SSH;Kubernetes 管容器编排;云平台提供计算、存储、网络、数据库;IaC 把基础设施代码化;DevSecOps 把安全检查前置到 CI/CD。

我在整理这部分时的重点是把工具放回工程场景,而不是孤立记名词。一个工具出现,通常是为了解决某种复杂度:协作复杂度、上下文复杂度、运行环境复杂度、系统规模复杂度或信息获取复杂度。

学习笔记

  1. 先读 Why,确认它解决的问题。
  2. 再读 What,建立概念边界。
  3. 再读 How,补命令、API、配置和实践。
  4. 最后用一个小 demo 验证。

实践清单

  • 用自己的话解释本模块核心概念。
  • 找一个最小 demo 跑通。
  • 记录一个踩坑点。
  • 把相关命令或配置写成可复用片段。
  • 回看飞书原文,补齐遗漏的术语。

飞书思考题

会用 SSH 为什么不等于会管理服务器?

SSH 只是连接方式,管理还包括权限、安全、服务、日志、监控、备份、更新、容量和故障恢复。

为什么关闭密码登录能提高安全性?

公网服务器会被持续暴力破解。密钥登录比密码更难猜测,关闭密码登录能降低弱口令、撞库和自动化扫描风险。

为什么安全检查不能只靠一种扫描方式?

依赖扫描看不到业务鉴权问题,SAST 不一定覆盖运行时配置,容器扫描看不到业务逻辑。不同检查覆盖不同层。

Linux 服务器管理展开

SSH 只是入口。真正的服务器管理包括用户权限、服务运行、日志、监控、备份、安全更新、防火墙和事故恢复。

常见命令方向:

ssh user@host
systemctl status nginx
journalctl -u nginx
ps aux
df -h
free -h

Tmux

Tmux 把会话和连接分离。SSH 断开后,tmux 里的进程还在。适合长时间任务、日志观察和多窗口排查。

Kubernetes

Kubernetes 管理容器集群。核心概念:

  • Pod:最小调度单元。
  • Deployment:声明副本和更新策略。
  • Service:服务发现和负载均衡。
  • ConfigMap/Secret:配置和敏感信息。
  • Ingress:外部流量入口。

K8s 的本质是声明期望状态,然后控制器不断把实际状态调到期望状态。

云平台

云平台提供计算、存储、数据库、网络、安全和监控。AWS 是大而全的云服务;Vercel 更聚焦前端和 Next.js 部署。

IaC

手点控制台的问题是不可复现。IaC 用代码描述基础设施,适合版本管理和审查。Terraform 的 Provider 能管理不同平台资源。

DevSecOps 展开

安全左移不是多跑一个扫描,而是把安全变成开发流程的一部分。

  • SAST:看源代码。
  • DAST:跑起来扫描。
  • SCA:依赖漏洞。
  • Container scan:镜像漏洞。
  • Secret scan:密钥泄露。
  • IaC scan:配置风险。

CI 里最危险的是权限过大和 secret 泄露。fork PR、第三方 Action、日志输出都要谨慎。

可观测性

日志告诉我发生了什么,指标告诉我系统是否健康,链路追踪告诉我一次请求经过了哪里。没有可观测性,上线后只能靠猜。

知识卡片

最小权限

无论是服务器用户、GitHub token 还是云平台 key,都应该只给完成任务所需的最小权限。

Secret Rotation

密钥泄露后不能只删代码,还要吊销并重新生成。已经进入 Git 历史的 secret 默认视为泄露。

Health Check

健康检查不是简单 ping 存活,而是确认服务能否处理关键请求或依赖是否正常。