PCI DSS 和发布部署自动化
PCI DSS and release deployment automation
PCI DSS 规则之一是:
"The PCI DSS applies to all system components included in or connected to the cardholder data environment"
您将如何处理 SCM/release 自动化服务器?必须有一个从开发网段中的某个服务器打开的端口,使其成为生产网络设置中的某个服务器的方式。
开发人员生成代码,然后构建经理生成发布工件。发布工件必须进入生产环境。发布工件如何从开发到生产——它们如何从“不在范围内”的开发框到“在范围内”的生产框?
这个问题可能没有很好的答案;据我所知,您不可能拥有不会导致 'in scope' 回退到开发系统的真正自动化的持续部署解决方案。所以你必须有一个涉及部署的手动步骤,但你可以使该步骤尽可能小。
在我最近处理的零售系统(约 80 个位置的约 100 个收银机)中,我们选择了一个恰好有一些额外网络带宽的收银机,并将其指定为 'island' 系统。我们能够将更新作为单个文件(zip 或其他文件)并将其放到该系统上,它会安装在那里,然后传播到所有位置的所有其他寄存器。因此,我们已将 window 手动工作减少到单个寄存器上的单个文件。
通过该桥的最安全和最简单的方法是 SneakerNet——每次有软件更新时将拇指驱动器上的文件带到那个系统——但可以使用远程桌面方法将文件复制到该系统并保持在范围内,只要该过程不是自动化的并且您在完全不相关的网络上。
我对此进行了大量研究,最终我们将 SCM 服务器拆分为 dvscm 和 pdscm。
dvscm:
- 所有开发者都向此服务器提交代码
- 构建生成过程在此处存储发布工件
- 开发自动化测试从这里获取部署工件
pdscm:
- 此服务器从 dvscm 同步部署项目。现有部署工件不会更新,这是一种仅添加类型的同步。
- QA 和 PROD 环境从那里获取部署工件,通过具有自定义限制的 SSH 使用基于 PSK 的连接 shell
这样在 DEV 和 QA/PROD 之间有一定程度的分离。 pdscm 已锁定 - 开发人员无法访问它,默认情况下所有防火墙规则都是拒绝的。
从 pdscm 唯一传出的连接是到 dvscm 的端口 22,用于同步。
到 pdscm 的唯一传入连接在端口 22 上,连接到只有权限读取部署工件的用户,使用自定义限制 shell.
PCI DSS 规则之一是:
"The PCI DSS applies to all system components included in or connected to the cardholder data environment"
您将如何处理 SCM/release 自动化服务器?必须有一个从开发网段中的某个服务器打开的端口,使其成为生产网络设置中的某个服务器的方式。
开发人员生成代码,然后构建经理生成发布工件。发布工件必须进入生产环境。发布工件如何从开发到生产——它们如何从“不在范围内”的开发框到“在范围内”的生产框?
这个问题可能没有很好的答案;据我所知,您不可能拥有不会导致 'in scope' 回退到开发系统的真正自动化的持续部署解决方案。所以你必须有一个涉及部署的手动步骤,但你可以使该步骤尽可能小。
在我最近处理的零售系统(约 80 个位置的约 100 个收银机)中,我们选择了一个恰好有一些额外网络带宽的收银机,并将其指定为 'island' 系统。我们能够将更新作为单个文件(zip 或其他文件)并将其放到该系统上,它会安装在那里,然后传播到所有位置的所有其他寄存器。因此,我们已将 window 手动工作减少到单个寄存器上的单个文件。
通过该桥的最安全和最简单的方法是 SneakerNet——每次有软件更新时将拇指驱动器上的文件带到那个系统——但可以使用远程桌面方法将文件复制到该系统并保持在范围内,只要该过程不是自动化的并且您在完全不相关的网络上。
我对此进行了大量研究,最终我们将 SCM 服务器拆分为 dvscm 和 pdscm。
dvscm:
- 所有开发者都向此服务器提交代码
- 构建生成过程在此处存储发布工件
- 开发自动化测试从这里获取部署工件
pdscm:
- 此服务器从 dvscm 同步部署项目。现有部署工件不会更新,这是一种仅添加类型的同步。
- QA 和 PROD 环境从那里获取部署工件,通过具有自定义限制的 SSH 使用基于 PSK 的连接 shell
这样在 DEV 和 QA/PROD 之间有一定程度的分离。 pdscm 已锁定 - 开发人员无法访问它,默认情况下所有防火墙规则都是拒绝的。
从 pdscm 唯一传出的连接是到 dvscm 的端口 22,用于同步。 到 pdscm 的唯一传入连接在端口 22 上,连接到只有权限读取部署工件的用户,使用自定义限制 shell.