capetron/cloud-security-assessment-checklist

GitHub: capetron/cloud-security-assessment-checklist

一份覆盖 AWS、Azure、GCP 的云安全评估检查清单,帮助组织识别并修复常见配置错误与合规缺口。

Stars: 0 | Forks: 0

# 云安全评估检查清单 一份涵盖 AWS、Azure 和 GCP 的全面云安全审查清单,涵盖身份与访问管理(IAM)、网络安全、加密、日志记录和合规控制。使用本指南来评估并加固您的云基础设施。 ## 目录 - [为什么云安全评估很重要](#why-cloud-security-assessments-matter) - [评估方法论](#assessment-methodology) - [身份和访问管理(IAM)](#identity-and-access-management-iam) - [网络安全](#network-security) - [数据加密](#data-encryption) - [日志记录和监控](#logging-and-monitoring) - [计算安全](#compute-security) - [存储安全](#storage-security) - [数据库安全](#database-security) - [容器与 Kubernetes 安全](#container-and-kubernetes-security) - [合规控制](#compliance-controls) - [成本与资源治理](#cost-and-resource-governance) - [多云对比矩阵](#multi-cloud-comparison-matrix) - [评估报告模板](#assessment-report-template) - [关于 Petronella 技术集团](#about-petronella-technology-group) ## 为什么云安全评估很重要 云配置错误是云数据泄露的主要原因。研究一致表明,超过 60% 的云安全事件源于配置错误,而非复杂的攻击。在安全评估中,发现大多数云环境中存在公开暴露的存储桶、权限过宽的 IAM 角色以及未加密的数据库。 定期的云安全评估可以在攻击者发现之前识别这些问题。本检查清单提供了一套结构化的方法,用于评估三大主要供应商的云安全态势。 ## 评估方法论 ### 评估阶段 | 阶段 | 持续时间 | 活动 | |-------|----------|------------| | 1. 范围界定 | 1-2 天 | 定义云账户、区域和范围内的服务 | | 2. 发现 | 2-3 天 | 盘点所有资源并识别所有者 | | 3. 评估 | 3-5 天 | 根据检查清单评估控制措施 | | 4. 分析 | 2-3 天 | 按风险优先级排序发现结果 | | 5. 报告 | 1-2 天 | 记录发现结果并提供修复步骤 | ### 推荐工具 | 工具 | 类型 | 覆盖范围 | |------|------|--------| | [Prowler](https://github.com/prowler-cloud/prowler) | 开源 | AWS、Azure、GCP | | [ScoutSuite](https://github.com/nccgroup/ScoutSuite) | 开源 | AWS、Azure、GCP | | [Steampipe](https://steampipe.io/) | 开源 | AWS、Azure、GCP、多云 | | AWS Security Hub | 原生 | AWS | | Microsoft Defender for Cloud | 原生 | Azure | | Google Security Command Center | 原生 | GCP | | [Checkov](https://www.checkov.io/) | 开源 | IaC 扫描(Terraform、CloudFormation) | | [tfsec](https://aquasecurity.github.io/tfsec/) | 开源 | Terraform 安全扫描 | ## 身份和访问管理(IAM) ### 跨云 IAM 控制 - [ ] **对所有用户强制执行 MFA** —— 尤其是特权账户 - [ ] **消除根/所有者账户的使用** —— 仅用于初始设置,然后锁定 - [ ] **实施最小权限原则** —— 生产环境中禁止使用通配符权限(*) - [ ] **每季度审查 IAM 策略** —— 移除未使用的角色和权限 - [ ] **启用即时访问** —— 带审批的临时权限提升 - [ ] **轮换访问密钥和服务账户密钥** —— 最长不超过 90 天 - [ ] **删除未使用的凭证** —— 识别并移除 90 天以上未使用的密钥 - [ ] **使用临时凭证** —— 优先使用角色/假设身份,而非长期密钥 ### AWS IAM 检查清单 - [ ] 为集中访问启用 AWS IAM Identity Center(SSO) - [ ] 为根账户启用 MFA 并使用硬件令牌 - [ ] 使用 IAM Access Analyzer 识别外部访问 - [ ] 启用 AWS Organizations 并配置服务控制策略(SCP) - [ ] 审查并精简包含 `*` 操作或资源的 IAM 策略 - [ ] 对 EC2 实例使用 IAM 角色(而非访问密钥) - [ ] 启用凭证报告并每月审查 ``` # AWS: 检查未启用 MFA 的用户 aws iam generate-credential-report aws iam get-credential-report --query 'Content' --output text | base64 -d | \ awk -F, '$4 == "true" && $8 == "false" {print $1, "- MFA not enabled"}' ``` ### Azure IAM 检查清单 - [ ] 启用 Azure AD 条件访问并结合 MFA - [ ] 为即时访问实现特权身份管理(PIM) - [ ] 默认禁用对目录的访客用户访问 - [ ] 每周审查 Azure AD 登录和审计日志 - [ ] 对 Azure 资源使用托管标识(消除存储的凭证) - [ ] 为所有特权角色配置访问审查 ### GCP IAM 检查清单 - [ ] 强制执行组织策略约束以管理 IAM - [ ] 使用工作负载身份联合替代服务账户密钥 - [ ] 启用 IAM Recommender 以识别过度授权的角色 - [ ] 实施 VPC 服务控制以防止数据外泄 - [ ] 审查服务账户密钥使用情况并删除未使用的密钥 - [ ] 启用 Cloud Identity 审计日志 ## 网络安全 ### 跨云网络控制 - [ ] **默认拒绝** —— 所有安全组/NSG/防火墙规则默认拒绝 - [ ] **禁止管理端口对 0.0.0.0/0 开放** —— SSH(22)、RDP(3389)不得对互联网开放 - [ ] **启用流量日志** —— 捕获所有 VPC/VNet 流量以进行分析 - [ ] **实施网络分段** —— 分离生产、暂存和开发环境 - [ ] **使用私有端点** —— 通过私有端点访问云服务,避免经过公共互联网 - [ ] **启用 DDoS 保护** —— 对公共资源使用原生 DDoS 服务 - [ ] **实施 WAF** —— 对所有公共 HTTP 端点部署 Web 应用防火墙 ### AWS 网络检查清单 - [ ] 审查所有安全组,移除对 0.0.0.0/0 的过度授权规则 - [ ] 在所有 VPC 上启用 VPC 流量日志 - [ ] 使用 AWS PrivateLink 进行服务间通信 - [ ] 启用 AWS Shield(标准版免费;关键工作负载使用高级版) - [ ] 在 ALB、CloudFront 和 API Gateway 上部署 AWS WAF - [ ] 实施 Transit Gateway 以实现多 VPC 网络互联 - [ ] 审查并清理未使用的弹性 IP 和 ENI - [ ] 启用 GuardDuty 进行网络威胁检测 ``` # AWS: 查找入站规则为 0.0.0.0/0 的安全组 aws ec2 describe-security-groups --query \ 'SecurityGroups[?IpPermissions[?IpRanges[?CidrIp==`0.0.0.0/0`]]].[GroupId,GroupName]' \ --output table ``` ### Azure 网络检查清单 - [ ] 审查所有网络安全组(NSG)中的允许规则 - [ ] 启用 NSG 流量日志与流量分析 - [ ] 使用 Azure Private Link 访问 PaaS 服务 - [ ] 在公共 IP 上启用 Azure DDoS Protection Standard - [ ] 部署 Azure Front Door 或 Application Gateway 并启用 WAF - [ ] 实施 Azure Firewall 或第三方 NVA 处理东西向流量 - [ ] 对存储和数据库使用服务端点或私有端点 ### GCP 网络检查清单 - [ ] 审查所有防火墙规则,禁止 0.0.0.0/0 源范围 - [ ] 在所有子网上启用 VPC 流量日志 - [ ] 使用私有 Google 访问实现 GCP 服务连接 - [ ] 启用 Cloud Armor 进行 DDoS 和 WAF 保护 - [ ] 实施 VPC 服务控制边界 - [ ] 使用共享 VPC 进行多项目网络互联 - [ ] 启用数据包镜像以进行网络取证 ## 数据加密 ### 跨云加密控制 - [ ] **对所有数据启用静态加密** —— 在所有存储服务上启用默认加密 - [ ] **对所有传输中的数据加密** —— 所有连接使用 TLS 1.2 或更高版本 - [ ] **正确管理加密密钥** —— 使用云 KMS,并每年轮换密钥 - [ ] **对敏感数据使用客户托管密钥(CMK)** —— 而非仅使用提供商托管的密钥 - [ ] **加密备份数据** —— 备份数据必须使用独立密钥加密 - [ ] **在所有端点上启用 TLS** —— 包括内部和外部端点 ### AWS 加密检查清单 - [ ] 在所有 S3 存储桶上启用默认加密(SSE-S3 或 SSE-KMS) [ ] 默认情况下启用 EBS 加密 - [ ] 为所有数据库实例启用 RDS 加密 - [ ] 对敏感工作负载使用带有客户托管密钥的 AWS KMS - [ ] 启用所有 KMS 密钥的自动轮换 - [ ] 强制在 S3 存储桶策略和 CloudFront 上仅使用 HTTPS - [ ] 对 SQS、SNS、Kinesis 和 DynamoDB 启用加密 ### Azure 加密检查清单 - [ ] 启用 Azure 存储服务加密(默认启用) - [ ] 启用 Azure 磁盘加密或使用客户托管密钥的服务器端加密 - [ ] 在所有 SQL 数据库上启用透明数据加密(TDE) - [ ] 使用 Azure Key Vault 进行密钥管理,并支持 HSM - [ ] 在 Key Vault 中启用密钥轮换策略 - [ ] 强制所有存储账户使用 HTTPS(禁用 HTTP) - [ ] 对 Cosmos DB、Service Bus 和 Event Hubs 启用加密 ### GCP 加密检查清单 - [ ] 验证 Cloud Storage 上的默认加密已激活(默认启用) - [ ] 对敏感数据使用客户托管加密密钥(CMEK) - [ ] 启用 Cloud SQL 实例的加密 - [ ] 使用 Cloud KMS 进行密钥管理并启用轮换 - [ ] 对处理敏感数据的工作负载启用机密计算 - [ ] 强制所有 Cloud Run、App Engine 和负载均衡器端点使用 HTTPS ## 日志记录和监控 ### 跨云日志控制 - [ ] **启用集中式日志记录** —— 所有云服务将日志发送到集中位置 - [ ] **启用审计日志** —— 跟踪所有管理操作和数据访问活动 - [ ] **设置日志保留期至少为 1 年** —— 合规性通常要求保留 1-7 年 - [ ] **保护日志完整性** —— 使用不可变存储和独立账户/项目 - [ ] **对关键事件设置告警** —— 根账户使用、IAM 变更、安全组变更 - [ ] **启用威胁检测** —— 原生或第三方威胁情报 ### AWS 日志检查清单 - [ ] 在所有区域启用 CloudTrail 并开启日志文件验证 - [ ] 将 CloudTrail 日志存储在独立账户的专用 S3 存储桶中 - [ ] 在敏感存储桶上启用 S3 访问日志 - [ ] 集中启用 VPC 流量日志 - [ ] 在所有区域启用 GuardDuty - [ ] 启用 AWS Config 并配置符合性包 - [ ] 配置 CloudWatch 告警,检测未经授权的 API 调用、根登录和 IAM 变更 - [ ] 启用 AWS Security Hub 以集中显示发现结果 ### Azure 日志检查清单 - [ ] 启用 Azure 活动日志导出到 Log Analytics - [ ] 在所有资源上启用诊断日志记录 - [ ] 在所有订阅上启用 Microsoft Defender for Cloud - [ ] 配置 Azure Sentinel(SIEM)进行威胁检测 - [ ] 启用 Azure AD 审计和登录日志 - [ ] 设置 Action Groups 以接收关键告警 - [ ] 启用 Azure Policy 进行合规性监控 ### GCP 日志检查清单 - [ ] 启用云审计日志(管理活动和数据访问) - [ ] 将日志导出到 BigQuery 或 Cloud Storage 以进行长期保留 - [ ] 启用安全命令中心(Standard 或 Premium) - [ ] 配置基于日志的告警,检测关键事件 - [ ] 启用 VPC 流量日志和防火墙规则日志 - [ ] 使用 Chronicle SIEM 进行高级威胁检测 ## 计算安全 - [ ] **保持实例及时更新补丁** —— 在关键 CVE 发布后 30 天内完成自动化补丁 - [ ] **使用加固镜像** —— CIS 基准镜像,最小化安装 - [ ] **禁用实例上的公共 IP** —— 使用堡垒主机或 SSM/IAP 进行访问 - [ ] **启用端点保护** —— 在所有实例上部署 EDR 代理 - [ ] **使用实例元数据保护** —— AWS 的 IMDSv2,GCP 的元数据隐藏 - [ ] **启用完整性监控** —— 检测对操作系统和应用程序的未授权更改 - [ ] **实施自动扩展安全** —— 新实例使用已批准的 AMI 或镜像 ## 存储安全 - [ ] **禁止公开访问存储桶/对象** —— 在账户级别阻止公共访问 - [ ] **启用版本控制** —— 防止意外或恶意删除 - [ ] **启用访问日志记录** —— 记录谁访问了哪些数据 - [ ] **实施生命周期策略** —— 自动删除或归档旧数据 - [ ] **使用存储桶策略/IAM** —— 仅向特定主体授予访问权限,而非所有人 - [ ] **对合规数据启用对象锁定** —— WORM(一次写入多次读取)保护 ``` # AWS: 查找公开的 S3 存储桶 aws s3api list-buckets --query 'Buckets[].Name' --output text | tr '\t' '\n' | \ while read bucket; do acl=$(aws s3api get-bucket-acl --bucket "$bucket" 2>/dev/null) if echo "$acl" | grep -q 'AllUsers\|AuthenticatedUsers'; then echo "PUBLIC: $bucket" fi done ``` ## 数据库安全 - [ ] **禁止公开访问数据库端点** —— 数据库仅位于私有子网中 - [ ] **启用静态和传输中数据加密** —— 连接使用 TLS,存储使用 KMS - [ ] **使用 IAM 身份验证** —— 在支持的情况下使用身份验证以消除数据库密码 - [ ] **启用审计日志** —— 记录所有查询和管理操作 - [ ] **实施自动化备份** —— 包含经过测试的恢复流程 - [ ] **限制安全组/防火墙访问** —— 仅允许应用服务器连接 - [ ] **启用删除保护** —— 防止意外删除数据库 ## 容器与 Kubernetes 安全 - [ ] **扫描容器镜像** —— 在 CI/CD 和注册表中进行漏洞扫描 - [ ] **使用最小基础镜像** —— Distroless 或 Alpine 以减少攻击面 - [ ] **不以 root 身份运行容器** —— 在 Dockerfile 中使用非 root 用户 - [ ] **启用网络策略** —— 限制 Pod 间通信 - [ ] **使用 Pod 安全标准** —— 强制执行受限或基线配置文件 - [ ] **轮换密钥** —— 使用外部密钥管理器,而非仅依赖 Kubernetes Secrets - [ ] **启用审计日志** —— Kubernetes API 服务器审计日志 - [ ] **实施 RBAC** —— 对所有服务账户实施最小权限 - [ ] **保持集群更新** —— 在 30 天内应用安全补丁 ## 合规控制 ### 框架映射 | 控制领域 | CIS 基准 | SOC 2 | NIST 800-53 | HIPAA | |-------------|---------------|-------|-------------|-------| | IAM | 1.x | CC6 | AC, IA | 164.312(d) | | 网络 | 2.x, 3.x | CC6 | SC | 164.312(e) | | 加密 | 2.x | CC6 | SC-28, SC-13 | 164.312(a)(2)(iv) | | 日志记录 | 2.x, 3.x | CC7 | AU | 164.312(b) | | 计算 | 4.x | CC6 | CM, SI | 164.312(a)(1) | ### 合规自动化 | 提供商 | 服务 | 用途 | |----------|---------|---------| | AWS | Security Hub + Config | 自动化合规检查 | | Azure | Defender for Cloud + Policy | 监管合规仪表板 | | GCP | Security Command Center | 合规性监控 | | 多云 | Prowler, Steampipe | 跨云合规扫描 | ## 成本与资源治理 - [ ] **启用计费告警** —— 在 50%、80% 和 100% 预算时触发告警 - [ ] **为所有资源打标签** —— 所有者、环境、项目、成本中心 - [ ] **每月审查未使用资源** —— 未挂载卷、空闲实例、旧快照 - [ ] **对稳定工作负载使用预留容量** —— 可节省 30-60% 成本 - [ ] **实施资源配额** —— 防止意外资源蔓延 - [ ] **启用成本异常检测** —— 对支出激增发出告警(可能表明遭到入侵) ## 多云对比矩阵 | 控制项 | AWS | Azure | GCP | |---------|-----|-------|-----| | MFA 强制 | IAM、Identity Center | 条件访问 | Cloud Identity | | 威胁检测 | GuardDuty | Defender for Cloud | SCC | | SIEM | Security Lake | Sentinel | Chronicle | | 密钥管理 | KMS | Key Vault | CloudMS | | WAF | AWS WAF | Azure WAF | Cloud Armor | | DDoS 保护 | Shield | DDoS Protection | Cloud Armor | | 合规扫描 | Config + Security Hub | Policy + Defender | SCC | | 网络监控 | VPC Flow Logs | NSG Flow Logs | VPC Flow Logs | | 密钥管理 | Secrets Manager | Key Vault | Secret Manager | | 基础设施即代码 | CloudFormation | ARM/Bicep | Deployment Manager | ## 评估报告模板 ### 执行摘要 - 发现总数:[数量] - 严重:[数量] | 高:[数量] | 中:[数量] | 低:[数量] - 整体风险等级:[严重/高/中/低] ### 发现格式 ``` Finding ID: CLOUD-001 Title: S3 Buckets with Public Access Enabled Severity: Critical Provider: AWS Service: S3 Affected Resources: [bucket names] Description: [what was found] Risk: [business impact] Remediation: [step-by-step fix] Evidence: [screenshot/CLI output] CIS Benchmark: 2.1.1 ``` ## 附加资源 - [AWS、Azure 和 GCP 的 CIS 基准](https://www.cisecurity.org/benchmark) - [AWS Well-Architected 安全支柱](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/) - [Azure 安全基准](https://learn.microsoft.com/en-us/security/benchmark/azure/) - [Google Cloud 安全最佳实践](https://cloud.google.com/security/best-practices) - [NIST SP 800-144:云计算指南](https://csrc.nist.gov/publications/detail/sp/800-144/final) ## 许可证 本项目采用 MIT 许可证。详见 [LICENSE](LICENSE)。 ## 关于 Petronella 技术集团 本检查清单由 [Petronella 技术集团, Inc.](https://www.petronellatech.com/) 维护 —— 一家专注于云安全评估、合规性(CMMC、HIPAA、SOC 2、NIST)和面向美国企业的托管 IT 服务的网络安全与 IT 服务公司。 - 官网:[https://www.petronellatech.com](https://www.petronellatech.com/) - 预约咨询:[https://book.petronella.ai](https://book.petronella.ai/) - 电话:[(919) 348-4912](tel:9193484912) - LinkedIn:[Petronella 技术集团](https://www.linkedin.com/company/petronella-computer-consultants-inc-)
标签:AWS, Azure, Chrome Headless, DPI, GCP, GitHub Advanced Security, IAM, Kubernetes安全, SEO云安全评估, Web截图, 云安全最佳实践, 云安全框架, 云安全测评, 云安全评估, 云安全配置, 公开曝光存储桶, 加密配置, 合规控制, 存储安全, 安全加固, 安全基线, 安全审查, 安全态势评估, 安全检查表, 容器安全, 成本治理, 教学环境, 数据加密, 未加密数据库, 网络安全, 网络防护, 计算安全, 资源治理, 身份与访问管理, 过度授权IAM角色, 隐私保护