启动时的合规性:预先评估的 Web 应用程序
大多数公司都需要证明其应用符合常见的安全国际标准,例如 ISO 27001、AICPA SOC-2 或 PCI-DSS。为了简化在 OCI 上部署时获得该认证的过程;我们创建了一个符合所有这些标准的参考架构,并事先由 Schellman & Co- 作为一个重要的认证公司进行了评估。
除了 PCI 以外,如果负载依赖于与用于处理客户机信息的系统的安全性、可用性或处理完整性相关的控制的有效性,或者这些信息的机密性或隐私;则您需要以符合 ISO 27001 和 SOC-2 的方式保护系统并设计数据安全策略。您可以使用 Oracle 的 ISO 27001 和 SOC-2 合规云基础设施服务来启动 Web 应用;根据此参考架构中的建议,您可以针对云中使用的应用和负载来维护和管理 ISO 27001 和 SOC 合规性。
Schellman & Company, LLC 对部署该参考架构进行准备情况评估:一家独立认证的公共会计公司、一家全球许可的 PCI 合格安全评估公司和 ISO 认证机构。
PCI 合规性
其 PCI 就绪报告将验证配置的此体系结构是否符合 PCI-DSS、SOC-2 和 ISO 27001 的要求。GitHub 中还提供了概述其他建议步骤的角色和职责矩阵。
ISO 27001 合规性
它们的 ISO 就绪情况报告验证所配置的这一架构是否符合 ISO 27001 附件 A 中规定的控制要求,并确定履行每项控制活动的某些方面的用户实体(客户)责任,以符合 ISO 27001 附件 A。
SOC 2 合规性
他们的 SOC 2 就绪报告验证,按照 2017 TSP 第 100 部分“安全、可用性、处理完整性、保密性和隐私的信任服务标准”(AICPA、信任服务标准)(“可适用的信任服务标准”)中规定的安全、可用性和保密性的标准,部署此体系结构是否符合实现用户实体(客户)的服务承诺和系统要求的设计适合性,以及标识用户实体(客户)负责实施每个控制活动的某些方面,以实现与 AICPA SOC 2 信托服务标准的一致性。
您必须为 PCI、ISO 27001 和 SOC 合规性评估和配置环境,然后完成生产系统的认证审计。
体系结构
此参考体系结构说明了组织如何通过使用 PCI、ISO 27001 和 SOC 兼容的 Chef 兼容 CookBook 和 Terraform 模块设置符合 PCI、ISO 27001 和 SOC 标准的 Web 应用程序,从而增强 OCI 上数据的安全性。
下图说明了此引用体系结构。
插图 launch_pci_webapp_on_oci.png 的说明
此体系结构包含一个负载平衡器和 NAT 网关,用于提供对 Internet 的安全访问。负载平衡器、带有 Apache Tomcat 的应用程序层以及带有 Oracle Autonomous Transaction Processing 的数据库层位于不同的子网中。可以通过堡垒主机访问这些子网。Internet 与堡垒主机之间的通信是通过 Internet 网关进行的。客户可以通过 OCI Web 应用程序防火墙访问专用子网中的实例并通过 Internet 网关访问负载平衡器。使用网络地址转换 (NAT) 网关,连接到 VCN 中专用子网的应用程序和 Wazuh 实例可以访问公共 Internet。通过 NAT 网关的连接可以从 VCN 中的资源启动,而不能从公共 Internet 启动。
体系结构包含以下组成部分:
- 区域
Oracle Cloud Infrastructure 区域是包含一个或多个数据中心(称为可用性域)的本地化地理区域。区域独立于其他区域,其距离很广(跨越国家或甚至大陆)。
- 可用性域
可用性域是区域内的独立独立数据中心。每个可用性域中的物理资源与其他可用性域中的资源隔离,这些资源提供了容错功能。可用性域不共享基础设施,例如电源、冷却或内部可用性域网络。因此,一个可用性域的故障不可能影响该区域中的其他可用性域。
- 故障域
故障域是可用性域中的一组硬件和基础结构。每个可用性域都有三个具有独立电源和硬件的故障域。在多个故障域之间分配资源时,应用程序可以容忍故障域中的物理服务器故障、系统维护和电源故障。
- 虚拟云网络 (VCN) 和子网
VCN 是在 Oracle Cloud Infrastructure 区域中设置的可定制的软件定义网络。与传统的数据中心网络一样,VCN 为您提供了对网络环境的完全控制。VCN 可以有多个非重叠 CIDR 块,您可以在创建 VCN 后更改这些块。可以将 VCN 细分为子网,子网可限定为区域或可用性域。每个子网包含一系列与 VCN 中的其他子网不重叠的地址。您可以在创建后更改子网的大小。子网可以是公共的或专用的。
- 安全列表
对于每个子网,可以创建安全规则来指定必须允许进出子网的流量源、目标和类型。
- 堡垒主机
堡垒主机是一个计算实例,用作云外部拓扑的安全受控入口点。堡垒主机通常预配在非军事区 (DMZ) 中。它使您可以将敏感资源放置在无法直接从云外部访问的专用网络中,从而保护这些资源。拓扑有一个已知的单个入口点,您可以定期监视和审计。因此,可以避免公开拓扑的更敏感的组件,而不损害对它们的访问。
- Tomcat 服务器
Apache Tomcat ®是开源 Java 应用程序服务器。它实现 Java Servlet、JavaServer Pages、Java 表达式语言和 Java WebSocket 技术。此层中存在 Web 应用程序。
- 自治事务处理
Oracle Autonomous Transaction Processing 是一种自主驱动、自我保护和自我修复的数据库服务,针对事务处理负载进行了优化。您无需配置或管理任何硬件,或安装任何软件。Oracle Cloud Infrastructure 处理创建数据库以及备份、打补丁、升级和优化数据库。
- Wazuh 服务器Wazuh 是一个免费的开放源和企业就绪的安全监视解决方案,用于提供威胁检测、完整性监视、意外事件响应和合规性。
- 基于主机的入侵检测
Wazuh 代理在主机级别运行,将异常和基于签名的技术组合在一起以检测入侵或软件滥用。它还可用于监视用户活动、评估系统配置和检测漏洞。
- 综合 SIEM 解决方案
Wazuh 用于收集、分析和关联数据,并提供威胁检测、相容性管理和意外事件响应功能。可以在本地部署,也可以在混合和云环境中部署。
- 基于主机的入侵检测
- 对象存储
通过对象存储,可以快速访问任何内容类型的大量结构化和非结构化数据,包括数据库备份、分析数据以及丰富的内容,例如图像和视频。将标准存储用于快速、立即和频繁访问的“热”存储。将归档存储用于长期保留且很少或很少访问的“冷”存储。
- Vault
使用 Oracle Cloud Infrastructure Vault 可以集中管理用于保护数据的加密密钥以及用于保护对云中资源的访问的密钥身份证明。
- Web 应用程序防火墙
Oracle Cloud Infrastructure Web Application Firewall (WAF) 是一个基于云的付款卡行业 (payment card industry, PCI) 兼容的全球安全服务,可保护应用程序免遭恶意和不必要的互联网通信。WAF 可以保护任何面向互联网的端点,从而在客户的应用程序中提供一致的规则实施。
- DNS
使用 Oracle Cloud Infrastructure 域名系统 (DNS) 服务可以创建和管理 DNS 区域。您可以创建区域、将记录添加到区域以及允许 Oracle Cloud Infrastructure 的边缘网络处理域的 DNS 查询。
- SSL 证书
SSL 证书是使用“让我们加密”创建的,并部署到 Web 应用程序防火墙。
建议
- VCN
创建 VCN 时,根据计划附加到 VCN 中子网的资源数确定所需的 CIDR 块数和每个块的大小。使用标准专用 IP 地址空间内的 CIDR 块。
选择不与您打算设置专用连接的任何其他网络(在 Oracle Cloud Infrastructure、内部部署数据中心或其他云提供商中)重叠的 CIDR 块。
创建 VCN 后,可以更改、添加和删除其 CIDR 块。
设计子网时,请考虑流量和安全要求。将特定层或角色中的所有资源附加到可用作安全边界的同一子网。
- 网络连接
要使管理员能够管理环境,您可以使用站点到站点的 IPSec VPN 连接或专用 FastConnect 电路将云拓扑连接到现有内部部署基础结构。
如果需要将云拓扑与内部部署基础结构隔离,则可以部署堡垒主机,以确保对专用子网中的资源的管理访问权限。
考虑事项
部署此引用体系结构时请考虑以下几点。
- 性能
此引用体系结构最初部署运行 Apache Tomcat 的单个虚拟机。根据您的应用程序的要求,应修改自动缩放规则以根据适当的负载度量旋转其他主机。
- 安全性
使用策略限制谁可以访问贵公司拥有的 Oracle Cloud Infrastructure 资源以及如何访问这些资源。对于对象存储,默认情况下加密处于启用状态,无法关闭。
除了堡垒主机(如果您的体系结构中有一个)和负载平衡器之外,所有组件都应放置在专用子网中。
- 可管理性
Terraform 脚本部署预配置的租户。可以将其用作模板,将此基础结构管理为您自己的代码资料档案库中的代码。
- 可用性
此引用体系结构可利用政府云领域内区域中不可用的服务和配置。
部署
此引用体系结构的 Terraform 代码在 GitHub 上可用。您可以使用 Terraform CLI 将代码从 GitHub 下载到计算机,自定义代码并部署体系结构。
- 转至 GitHub。
- 将资料档案库克隆或下载到本地计算机。
- 按照
README文档中的说明操作。