用途
Cloud Security 是一个面向云基础设施安全实践的技能框架,适用于 AWS、GCP 和 Azure 三大云平台。它面向的是负责一个云环境整体安全态势的工程师,而不仅仅是维护某个单一服务。当用户需要设计或审计 IAM 角色、策略或权限边界,管理云环境中的密钥、API key 或凭据,配置 VPC 安全组、NACL 或网络访问控制,为云资源配置静态或传输加密,搭建审计日志(CloudTrail、Cloud Audit Logs、Azure Monitor),设计零信任或服务网格网络,准备 SOC 2、HIPAA 或 PCI-DSS 合规,或加固云账户、项目或订阅配置时,可触发该技能。
该技能不适用于应用层安全(如 SQL 注入、XSS、认证流程),此类问题应改用 backend-engineering 技能的安全参考;也不适用于没有云组件的本地或裸金属基础设施。激活该技能后,首次回复需以 🧢 emoji 开头。
核心原则
- 最小权限 IAM:每个身份(人、服务、CI/CD 流水线)只获得完成其特定任务所需的最低权限。自动化中绝不使用 root 或 owner 级凭据。权限作用域限定到具体资源 ARN 或路径,而非
*。每季度审查并裁剪权限。 - 静态与传输加密:所有静态数据使用云厂商托管的 KMS 密钥(受监管工作负载使用客户托管密钥)。所有传输数据使用 TLS 1.2+,无例外。内部服务流量同样不豁免。证书轮换自动化。
- 绝不在代码中存储密钥:凭据、API key、令牌不得出现在源代码、Dockerfile、CI 配置或烘焙进镜像的环境变量中。密钥存放在密钥管理器中,在运行时获取。每条 CI 流水线运行密钥扫描。pre-commit 钩子阻断高熵字符串。
- 纵深防御:没有单一控制能构成完整安全态势。需叠加网络控制(VPC、安全组、NACL)、身份控制(IAM)、数据控制(加密、DLP)和检测控制(审计日志、SIEM),使某一层的失效不会导致系统被攻陷。
- 全面审计:每一个特权操作、每一次 IAM 变更、每一次密钥访问、每一次配置漂移都必须记录到不可变的集中存储。日志只有在存在异常告警和处置流程时才有价值。
核心概念
责任共担模型:云厂商负责云的基础设施(物理硬件、hypervisor、托管服务内部),你负责云中的一切——身份、数据、网络配置、操作系统补丁、应用代码和合规态势。对这一边界的误解是多数云安全事件的根因。
IAM 层次:身份、策略、角色:身份是发出请求的人或事物(用户、服务账户、Lambda 函数、EC2 实例、CI/CD 流水线);策略是授予或拒绝特定资源上特定操作的文档,附加到身份或角色上;角色是服务或人临时承担的身份,签发短期凭据。优先使用角色而非长期访问密钥。评估顺序为:显式拒绝 > 服务控制策略(SCP/组织策略)> 基于身份的策略 > 基于资源的策略,链条中任一显式拒绝即阻断访问。
网络分段:在多个层级隔离工作负载——账户/项目级(按环境分离 AWS 账户或 GCP 项目)、VPC 级、子网级(公有子网仅放负载均衡器,私有子网放计算,隔离子网放无法访问互联网的数据库)、安全组级。
加密信封模式:KMS 使用两层加密模型,云 KMS 中的客户主密钥(CMK)加密短期数据加密密钥(DEK),DEK 加密实际数据,加密后的 DEK 与数据一同存储。CMK 从不离开 KMS。解密时调用 KMS 解密 DEK,在内存中使用后丢弃。该模式限制了密钥泄露的影响范围,并支持无需重新加密全部数据的密钥轮换。
主要能力与常见任务
- 最小权限 IAM 设计:从操作出发而非从服务出发,先问“这个身份需要发起哪些确切的 API 调用”,再限定到具体资源。提供 AWS IAM 策略示例(限定到特定 S3 桶与 Secrets Manager 密钥)和 GCP IAM 命令示例(Cloud Run 服务的工作负载身份、带条件的存储访问)。强调绝不使用 roles/owner、roles/editor 或 AdministratorAccess,使用 AWS 权限边界限制最大有效权限。
- 密钥管理:提供 HashiCorp Vault 动态数据库凭据配置示例(短期凭据、TTL 设置)和 AWS Secrets Manager 运行时获取示例(Python boto3,启动时获取、内存缓存、绝不记录日志)。建议为 RDS 凭据启用自动轮换,轮换窗口不超过 30 天,并用基于资源的策略限制哪些角色可调用 GetSecretValue。
- VPC 网络安全:给出三层子网布局(公有子网仅 ALB,私有子网放应用,数据子网放数据库且无 NAT),安全组规则表(状态化,按 SG 来源限制端口)和 NACL 规则(无状态,双向显式规则)。安全组是主要控制,NACL 是次级影响范围限制器。绝不将 22(SSH)或 3389(RDP)暴露到 0.0.0.0/0。
- 加密实现:提供 S3 桶策略示例,强制拒绝非 TLS 请求和非 KMS 加密的 PutObject。RDS 需在创建时启用加密(之后无法添加,除非快照恢复),受监管工作负载使用客户托管 KMS 密钥。
- 审计日志:提供 AWS CloudTrail 组织级不可变配置的 Terraform 示例(多区域、日志文件校验、组织级、包含 S3 数据事件)和 GCP 组织级 Cloud Audit Logs 配置。列出关键告警项:root 账户登录、IAM 策略变更、安全组修改、CloudTrail 被禁用、特权账户 MFA 被禁用。
- 零信任网络:以 Istio 服务网格为例,提供 PeerAuthentication(STRICT mTLS)和 AuthorizationPolicy(限制服务间可调用的方法与路径)的 YAML 示例。每个服务拥有自己的 SPIFFE 身份,即使攻击者攻陷内部网络也无法伪造服务身份。
- 合规准备:以 SOC 2 为例,按信任服务准则(TSC)组织检查清单,涵盖访问控制(CC6)、变更管理(CC8)、监控告警(CC7)、加密(CC6.7)和可用性(A1)等控制项。Type II 审计需证明控制在一个周期(通常 6-12 个月)内持续运行。
反模式
技能列出若干危险做法及替代方案:通配符 IAM 策略(应限定精确操作和资源 ARN)、服务账户长期访问密钥(应使用 IAM 角色和实例配置文件,必要时每 90 天轮换)、所有资源放在公有子网的扁平 VPC(应使用三层子网,数据库绝不放公有子网)、密钥硬编码进容器镜像的环境变量(应在运行时从密钥管理器获取)、所有环境共用一个云账户或项目(应按环境分离账户/项目并用 SCP 强制边界)、为节省成本禁用 CloudTrail 或审计日志(应将日志压缩归档到廉价存储)。
限制与注意事项
技能特别提示两个常见陷阱:一是服务控制策略(SCP)会静默阻断操作——组织级 SCP 中的拒绝会覆盖成员账户中的 IAM Allow,当 IAM 权限看似正确却仍返回 AccessDenied 时,应检查组织和 OU 级 SCP 链;二是多区域 CloudTrail 的日志缺口——即使配置为多区域,除非显式设置 include_global_service_events 为 true,否则不会捕获全局服务(IAM、STS、CloudFront)的事件。关于该技能的安装方式、收费模式、平台支持细节等,资料中暂未提供。