我来自阴暗面,合规性,并且希望获得有关DevOps以及如何在这些流程上实施SOX控件的更多知识。我希望建立一个良好的知识库,以便能够推荐能够为审计师提供良好保证的控制,同时最大程度地减少对实际操作的影响。另外,当我与内部DevOps团队见面时,我可以在这方面发表有见地的讲话。
https://www.oreilly.com/learning/compliance-as-code
https://www.oreilly.com/webops-perf/free/devopssec.csp?intcmp=il-webops -free-product-na_new_site_compliance_as_code_text_cta
https://www.contino.io/insights/why-devsecops-is-an-auditors-最好的朋友
https://start.jcolemorrison.com/

您是否对构建DevOps工作流程的控制框架的资源有其他建议?还是一般的DevOps?

#1 楼

您正在寻找的是容器的合规性和安全性。有些公司可以为您提供开箱即用的服务,即使我不主张这样做,您也可以看到他们提供的产品并将其用作模板。

https://www.twistlock.com/platform/container-compliance/
https://www.aquasec.com/use-cases/container-auditing-compliance/

作为HIPAA安全官和DevOps经理,我一直在审查这些流程。从您的角度来看,对DevOps的思考方式可能是快速交付,过早失败和经常失败的自动化和文化。目的是不破坏安全性和合规性。从技术上讲,这看起来像在上线之前,之中和之后在管道中添加自动合规性检查。随着自动化的建立,您可以用手动过程代替自动化。您可以检查诸如DevSecOps之类的主题,这是确保合规性的同一概念,并且可能更接近于您需要做的事情。

这是一个AWS图表,可以帮助https://aws.amazon。 com / blogs / devops / implementing-devsecops-using-aws-codepipeline /

#2 楼

在您发布的链接中已经引用了此内容,因此我将添加一些细节。可以将一致性测试视为一种QA或集成测试,就像您的应用程序可能具有的其他测试一样。为了使其有用,合规性测试应以某种有意义的方式使构建失败,并指导开发人员和负责操作应用程序的人员(希望是同一团队的成员)违反了什么准则以及如何恢复合规性。

这也意味着合规团队需要能够编写测试,以对应用程序的部署状态进行断言,最好是在部署之前。如果在部署后完成了合规性,则您将需要回滚或应用修补程序。它使合规团队可以根据最佳实践文档编写配置文件。可以将其保存在一个独立的存储库中,如果需要的话可以从架子上取下来并应用于任意工作负载,或者与应用程序包含在同一存储库中。前一种情况允许对整个组织的应用程序套件进行全球合规性测试,而后一种情况则有助于促进开发人员与安全团队之间的更好协作。当然,它们之间有多种选择。

厨师的培训网站提供了一个如何编写合规性描述的好例子。几个因素,包括应用程序的熟练程度,作用以及当然的操作责任。我发现,最好由第二只眼睛写概要文件,而不是写部署代码的人。这是为了保持审核过程的独立性和公正性。

至于应在CI / CD管道中插入一致性测试的位置,这通常是一个讨论问题,并取决于您的交付和部署模型。其他人提到了向左移动的好处,这在DevSecOps世界中也很有意义。

但是关键是测试实际的生产状态。人们通常会为此使用暂存环境,如果离生产环境越近越好,这将是一个好主意。但是现实情况是,遵从性的某些方面会影响应用程序或环境的某些方面,因此将遵从性测试注入CI / CD部署的各个阶段通常更有意义,类似于以下图3.1:



不同的工具会在不同的阶段发挥作用,随着您沿着交付渠道的发展,合规范围变得越来越复杂。部署后,您也不能绝对确定状态是否与代码库中的内容不同(人们可以登录并执行操作)。在某个时候,您应该断言应用程序的整体合规性,并将其作为监视系统的一部分包含在其中。实施持续改进要容易一些,可以立即给开发人员和操作员带来麻烦,从而更快地交付质量代码。它还可以让您在审核员敲门时向他们提供具体信息。

#3 楼

您阅读过NIST 800 190吗?该文档由负责容器安全的公司twistlock的首席技术官John morello共同撰写。这可能会对您有所帮助。