dev-kfarmer/grc-cloud-control-crosswalk

GitHub: dev-kfarmer/grc-cloud-control-crosswalk

一个云安全合规交叉映射实验,通过单次证据采集将一个AWS S3加密控制同时映射到SOC 2、ISO 27001和NIST 800-53三个合规框架进行评估。

Stars: 0 | Forks: 0

# 云控制交叉映射 将一个云安全控制映射到多个合规框架,只需单一证据,而无需分别检查每个框架。本实验针对 AWS S3 静态加密进行演示,并根据 SOC 2 CC6.1、ISO 27001 A.8.24 和 NIST 800-53 SC-28(1) 进行了评估。 **可视化概览:** https://dev-kfarmer.github.io/grc-cloud-control-crosswalk/visual-overview.html —— 在一个页面上展示 pipeline、通过/失败矩阵以及例外情况登记表。 ## 为什么各个框架会存在分歧 这三个框架设定的标准并不相同: - SOC 2 和 ISO 接受任何形式的服务器端加密。 - NIST SC-28(1) 仅在存储桶使用带有客户管理密钥的 SSE-KMS 时才算通过。AWS 托管密钥不计入其中。 因此,同一个存储桶可能会通过两个框架,却在第三个框架中失败。足够仔细地阅读控制要求,从而明确这条界限划在哪里,正是本项目旨在展示的技能。 ## 包含哪些内容 | 路径 | 用途 | |---|---| | `control-spec.md` | 控制定义:所需证据、各框架的通过/失败标准、例外规则。在任何代码编写之前完成。 | | `iam/readonly-evidence-policy.json` | 收集器使用的五个只读权限。无写入权限。 | | `terraform/` | 搭建一个一次性的测试环境:五个存储桶(每种结果一个)、一个客户管理的 KMS 密钥以及上述 IAM policy。 | | `evidence_collector.py` | 读取每个存储桶,并根据一次提取的证据根据所有三个框架对其进行评估。 | | `test_evidence_collector.py` | 包含模拟 AWS 调用的单元测试。无需真实的 AWS 账号。 | 特意使用了两个 AWS 身份。`grc-lab-admin` 通过 Terraform 构建测试环境。`grc-lab-readonly` 运行收集器。审计基础设施的身份不应同时具备修改它的权限。 ## 运行方式 ``` # 创建测试 buckets(只需一次,需要 admin profile) cd terraform terraform init terraform apply -var="aws_profile=grc-lab-admin" # 运行 collector(read-only profile) cd .. pip install -r requirements.txt python evidence_collector.py # 运行测试(不需要 AWS) python -m unittest test_evidence_collector.py -v ``` 收集器会生成三个文件:`evidence-output.json`(完整记录),`evidence-output.csv`(审计员会阅读的摘要),以及 `exceptions.csv`(仅包含被豁免的存储桶及其记录在案的原因)。 运行示例: ``` grc-evidence-lab-sse-kms-cmk-... Encryption: encrypted (aws:kms, key: CUSTOMER) SOC 2 CC6.1: PASS ISO 27001 A.8.24: PASS NIST 800-53 SC-28(1): PASS ``` ## 遇到的一些问题 自 2023 年 1 月起,AWS 已默认对所有新存储桶应用了 SSE-S3 加密,并且您无法将其关闭。我创建的一个完全没有加密配置的存储桶,依然被报告为已加密。 这意味着 SOC 2 和 ISO 的“无加密”失败场景实际上已不可能在当前的 AWS 账号中发生。这些控制要求是在默认设置改变之前编写的。代码仍然处理了这种情况,但目前测试它的唯一方法是使用模拟响应,这正是其中一个单元测试所做的工作。这也使得 NIST 对客户管理密钥的要求,成为了目前唯一需要经过刻意操作才能达到的标准。 ## 尚未完成 - 仅支持 AWS。Azure Storage 加密将作为后续版本的等效实现。 - 专注于将一个控制要求从头到尾完整落地,而不是对多个要求浅尝辄止。 - `grc-lab-readonly` 使用的是长期有效的 access key。生产环境中应改用基于角色的短期凭证。
标签:AWS, DPI, ECS, GRC, Python, Terraform, 合规自动化, 后端开发, 无后门, 逆向工具