PCI 数据安全标准合规性

Last reviewed 2023-11-27 UTC

本指南可帮助您了解如何在 Google Cloud 上为您的企业实现支付卡行业数据安全标准 (PCI DSS)。本指南超出了 PCI SSC 云计算指南 (PDF) 的主题,提供了该标准的相关背景信息,介绍了您在云端合规性方面的角色,然后为您提供了如何使用 PCI DSS 设计、部署和配置付款处理应用的指南。本教程还详细阐述了监控、记录和验证应用的方法。

本文档参考了 PCI DSS 4.0 要求(如适用)。

PCI 安全标准委员会建立的 PCI 数据安全标准是针对处理支付卡(信用卡和借记卡)信息的企业的信息安全标准。此 PCI 安全标准委员会由各大支付卡公司组成。接受 Visa、MasterCard、Discover、American Express、JCB 或 UnionPay 的企业都应遵守 PCI DSS,否则可能会遭到罚款或处罚。

PCI DSS 针对从亲自收集付款信息的商家到全部外包付款处理工作的商家等多个商家类型提供了不同的数据安全标准类别。本指南将论述 SAQ ASAQ A-EPSAQ D 商家类型。

目标

  • 审核付款处理应用架构。
  • 设置付款处理环境。
  • 部署和配置应用服务器。
  • 设置日志记录和监控。
  • 验证付款处理环境。

定义

本指南会使用许多独特的词组。下面是其中几个最常见的词组。如需了解详情,请参阅 PCI DSS 术语库

CDE持卡人数据环境的首字母缩写。该首字母缩写词是指应用中持有或传输支付账号或持卡人个人身份信息等持卡人数据的部分。

补偿性控制:如果实体因合法的技术或记录的业务限制而无法明确满足要求,则可以考虑的替代解决方案。实体在实施这些其他控制时,必须充分降低与要求相关的风险。有关使用补偿性控制措施的指导,请参阅 PCI DSS 要求和安全评估程序中的“补偿性控制”附录 B 和 C。

PAN主账号的首字母缩写词,也称为账号。它是可确定发卡机构和持卡人账号的唯一支付卡卡号。

QSA合格安全评估机构的首字母缩写词。QSA 经过 PCI 安全标准委员会 (SSC) 认证后才有资格进行 PCI DSS 现场评估。 合格安全评估机构 (QSA) 的资格要求详细介绍了 QSA 公司和员工方面的要求。

SAQ自我评估问卷的首字母缩写词,是用于记录实体 PCI DSS 评估的自我评估结果的报告工具。 这仅适用于符合自我评估条件的实体。

范围:PCI DSS 评估中包含的系统、程序和人员。

令牌化:将主账号 (PAN) 替换成名为令牌的代理值的过程。然后,在安全查询中存储 PAN。 去令牌化是指按照令牌查找 PAN 的逆向过程。令牌可能是哈希或分配值

背景

PCI DSS 提供了一系列旨在增强持卡人安全性的要求。这些要求分为十二个带有编号的主要部分和许多子部分。本文档引用这些部分编号来添加背景信息,但本节参考文件并未全面列出所有适用要求。

您的 PCI DSS 合规性要求取决于您公司处理支付卡交易(类型)的方式和您公司每年执行的交易数量(级别)。

随着交易数量增加,您的 PCI DSS 商家级别会提高,PCI DSS 合规性指南也会变得更加严格。在最高的商家级别 1 级中,PCI DSS 需要进行审查。级别因卡的品牌而异。American Express 将 1 级定义为每年 250 万笔交易,而 Visa、Mastercard 和 Discover 为每年 600 万笔交易。每个品牌都有超出本文档范围的额外级别要求,因此请确保审查您的付款处理环境以支持您的商家级别。

由于 Google Cloud 是 1 级 PCI DSS 4.0 合规服务提供商,因此无论您公司的商家为何级别,它都可以支持您的 PCI DSS 合规性需求。致力于确保合规性部分列出了 Google 将为您提供哪些方面的帮助。

另一个基本变量是您的 SAQ 类型。SAQ 概述了如果您符合自我评估要求而必须遵守的 PCI DSS 标准。您的 SAQ 类型取决于您的应用架构和您处理支付卡数据的具体方式。云中的大多数商家都在以下类型中:

SAQ 类型 说明
A 已将支付卡处理工作完全外包给第三方网站的商家。客户离开您的域名(包括通过 <iframe> Web 表单),完成付款,然后返回到您的应用。

换句话说,您的公司不会以任何方式接触客户的卡数据。
A-EP 将付款处理工作外包给第三方提供商,但可以在流程中随时访问客户卡数据的商家。可以访问卡数据的商家包括商家控制的页面元素,包括第三方付款页面中嵌入的 JavaScript 或 CSS。

换句话说,您的付款处理应用会将卡数据转发给客户端的处理方,或处理方呈现您托管的任何内容。
D 接受在线付款且未满足 SAQ A 或 SAQ A-EP 资格的商家。此类型包括从自己的服务器调用付款处理方 API 的所有商家(无论是否令牌化)。

换句话说,如果您不是 SAQ A 或 SAQ A-EP,那么您就是 SAQ D。

SAQ D 对商家和服务提供商有所区别。本文档不讨论服务提供商,所有提到 SAQ D 的地方都是指 PCI DSS 中定义的商家。
SAQ 要求的维恩图。SAQ A-EP 是 SAQ A 的一个超集,SAQ D 是 SAQ A-EP 的一个超集。
图 1. SAQ 要求的维恩图。SAQ A-EP 是 SAQ A 的一个超集,SAQ D 是 SAQ A-EP 的一个超集。

致力于确保合规性

Google 使用各种各样的技术和流程保护存储在 Google 服务器上的信息。Google 独立验证适用于 Google 管理的 Google Cloud 技术和基础架构的 PCI DSS 要求。您可以从合规报告管理器下载 Google PCI DSS 合规性报告。虽然 Google 让商家可以极大地控制其在 Google 基础架构上运行的计算实例,但 Google 无法控制商家在 Google Cloud 上部署的操作系统、软件包或应用的安全性。除了架构所需的其他自定义外,您还有责任遵守对您所部署的操作系统软件包和应用的 PCI DSS 要求。

Google Cloud 遵循为 1 级服务提供商制定的 PCI DSS 要求以及所有适用的服务提供商要求。Google Cloud 共担责任表概述了 PCI DSS 的履行合规义务。当您试图达到 PCI DSS 合规性,执行自己的 PCI DSS 审查时,责任矩阵可以作为有用的参考。

产品指南

本部分包含 PCI DSS 环境架构中常用 Google Cloud 服务的指南。

App Engine

使用 App Engine 入站流量防火墙规则出站流量控制

Cloud Run

使用 Cloud Run 入站流量设置VPC Service ControlsVPC 连接器上的出站流量控制。 如果需要,请配置静态出站 IP 地址

Cloud Functions

使用 Cloud Functions 入站和出站网络设置

Cloud Logging

记录与 Cloud Logging 的交互。

Cloud Monitoring

使用 Cloud Monitoring 监控互动。

Google Kubernetes Engine

如需了解如何将 Google Kubernetes Engine 用于 PCI DSS 环境,请参阅在 GKE 上确保遵从 PCI DSS 标准

Cloud Storage

要求 3.5 规定,无论在何处存储,主账号 (PAN) 都安全无虞。 虽然 Google 会自动进行静态加密,但它不会自动执行规则另外要求的单向哈希、截断或令牌化。

示例架构

本节说明了实现遵守 SAQ A、SAQ A-EP 和 SAQ D 的环境的方法。

架构概览

SAQ A

SAQ A 是最基本的付款处理架构。付款由第三方处理,商家应用或页面不会访问任何卡数据。

概括来讲,付款处理流程如下:

  1. 客户做出选择,然后结账。

  2. 结算应用将客户重定向到第三方付款处理方。

  3. 客户将其支付卡信息输入到第三方处理方拥有和维护的支付表单中。

  4. 第三方付款处理方检查支付卡信息,然后向该卡收取费用或拒绝该卡。

  5. 处理完交易后,第三方付款处理方会将客户连同交易详情一起发回给商家应用。

  6. 商家应用会给付款处理方发送验证请求以确认交易。

  7. 付款处理方作出回应,验证交易详情。

客户浏览器、商家网站、付款处理方以及支付网关之间的处理信息。
SAQ A 第三方付款处理环境的架构。

SAQ A-EP

SAQ A-EP 付款处理架构以在 Compute Engine 虚拟机实例上运行的付款处理应用为中心。这些实例位于安全的专用网络中,使用安全通道与网络外部的服务通信。

概括来讲,付款处理流程如下:

  1. 客户将其支付卡信息输入到您公司拥有和维护的支付表单中。

  2. 当客户提交信息时,表单信息会被安全地传递给第三方付款处理方。

  3. 第三方付款处理方检查支付卡信息,然后向该卡收取费用或拒绝该卡。

  4. 付款处理方会给您的付款应用返回响应,然后付款应用会将一则信息传递给您的核心应用。

Cloud LoggingCloud Monitoring 会记录和监控所有的这些交互操作。

SAQ A-EP 付款处理环境的架构
SAQ A-EP 付款处理环境的架构。

SAQ D

SAQ D 付款处理架构以在 Compute Engine 虚拟机实例上运行的付款处理应用为中心。这些实例位于安全的专用网络中,使用安全通道与网络外部的服务通信。

概括来讲,付款处理流程如下:

  1. 客户将其支付卡信息输入到您公司拥有和维护的支付表单中。

  2. 当客户提交信息时,您的付款应用会收到表单信息。

  3. 您的付款应用会验证付款信息,并通过后端 API 安全地将其传递给第三方付款处理方。

  4. 第三方付款处理方检查支付卡信息,然后向该卡收取费用或拒绝该卡。

  5. 付款处理方会给您的付款应用返回响应,然后付款应用会将一则信息传递给您的核心应用。

LoggingMonitoring 会记录和监控所有的这些交互操作。

SAQ D 付款处理环境的架构
SAQ D 付款处理环境的架构。

付款处理面向客户的流程

SAQ A

本节将从使用您应用的客户角度介绍第三方付款处理流程。

面向客户的 SAQ A 第三方付款处理流程
面向客户的 SAQ A 第三方付款处理流程。

当您的客户访问您的付款表单时,该应用会显示付款处理方托管的 <iframe>。由于存在跨域资源共享限制,因此您的应用无法访问或监控 <iframe> 的内容。当客户提交支付卡信息时,付款处理方会接受或拒绝该卡,然后引导客户回到您的应用。接着,您的应用会检查来自付款处理方的交易响应,并采取相应的行动。您的应用不能访问或处理任何支付卡信息。

SAQ A-EP

本节介绍的内部付款处理流程和上文所述的完全一样,但却是从使用您应用的客户角度出发的。

面向客户的 SAQ A-EP 第三方付款处理流程
面向客户的 SAQ A-EP 第三方付款处理流程。

当您的客户访问您的付款表单网址时,网站会显示您的付款应用托管的表单。当客户提交支付卡信息时,表单会直接转到付款处理方。处理方接受或拒绝该卡,然后引导客户发回到您的应用。接着,您的应用会检查来自付款处理方的交易响应,并采取相应的行动。客户可能不会看到第三方付款处理方,但您的应用不能访问服务器端的任何支付卡信息。

SAQ D

本节将从使用您应用的客户角度介绍内部付款处理流程。

面向客户的 SAQ D 第三方付款处理流程
面向客户的 SAQ D 第三方付款处理流程。

当您的客户访问您的付款表单网址时,会通过 HTTPS 负载平衡器安全地将他们路由到表单。当客户提交支付卡信息时,您的付款处理应用会安全地将信息发送给第三方付款处理方。第三方付款处理方接受或拒绝该卡,然后向您的付款处理应用返回响应。

付款处理内部流程

SAQ A 和 A-EP

本节将从运行您应用的服务器角度介绍付款处理流程。

SAQ A 和 SAQ A-EP 内部流程
SAQ A 和 SAQ A-EP 内部流程。

您的付款处理应用接收并解析第三方付款处理方返回的响应,然后将部分或全部的响应数据发送给核心应用。此时,您的付款处理应用不再需要涉入该交易。核心应用会处理通知客户的任务。

SAQ D

本节将从运行您应用的服务器角度介绍内部付款处理流程。

SAQ D 内部流程
SAQ D 内部流程。

您的付款处理应用会验证客户提交的支付卡信息,然后通过后端 API 将其发送到付款处理方。处理方会尝试扣款,并返回交易详情。您的应用会接收处理该响应,然后将部分或全部的响应数据发送给核心应用。此时,您的付款处理应用不再需要涉入该交易。核心应用会处理通知客户和交付产品的任务。

监视和记录数据流

监控和日志记录流程的设计如下:

监控和日志记录流程
监控和日志记录流程。

设置付款处理环境

本节介绍了如何设置您的付款处理环境。设置包括以下操作:

  • 创建新的 Google Cloud 账号,将您的付款处理环境与生产环境相隔离。
  • 限制对环境的访问权限。
  • 设置您的虚拟资源。
  • 设计您设置应用服务器时要使用的基础 Linux 映像。
  • 实现安全的软件包管理解决方案。

设置新账号

如需简化访问限制和合规性审核,请创建一个完全与标准生产环境和任何开发和质量检查环境(要求 6.5.3)隔离的生产级质量付款处理环境。为确保隔离,请创建和使用一个独立于核心生产环境账号的 Google Cloud 账号。拥有身份和访问权限管理 (IAM) 配置的用户可通过使用单独的项目进行范围内的工作来实现同等效力的隔离。

限制对环境的访问权限

只允许部署支付系统代码或管理支付系统计算机的个人访问付款处理环境(第 7.2 节和要求 8.2.1)。这被称为最小权限原则。使用 IAM 角色限制访问。最佳做法包括尽可能使用角色、仅授予执行预期工作所需的权限,以及仅将所有者角色授予有合理原因需要对您的服务有全部根目录访问权限的主账号。如需了解详情,请参阅 IAM 安全指南

对任何托管式服务的自动访问,应取决于服务账号。 服务账号通过为您提供一种管理应用身份验证和授权的方式,简化应用管理生命周期。 这些账号为您提供一种灵活却安全的方法,来将具有共同标识且带有类似应用和功能的虚拟机实例分成一组。您可以通过 IAM 角色和 VPC 防火墙规则在服务账号级层强制执行安全和访问权限控制。

您应用于文件夹的 IAM 规则由该文件夹中包含的所有项目继承。默认权限为拒绝所有(要求 7.2.3),您应用的每个规则仅添加权限。

要求 8.3.6 为用户密码提供了一些基本规则。美国国家标准与技术研究院 (NIST) 在 NIST SP800-63B 的第 5.1.1 节中为安全密码定义了一组更加安全的规则。Google 建议尽可能遵守 NIST 数字身份准则。

PCI DSS SAQ D 第 12.7 节要求可访问您范围中环境的个人先通过背景调查,遵守当地法律,然后才能获得访问环境的权限。要降低违规风险,无论您属于哪种合规类型,请考虑对每个人进行这些犯罪背景调查和证明人调查。

保护您的网络

要保护进出您的付款处理应用网络的入站和出站流量,您需要创建以下各项:

  • Cloud 新一代防火墙政策或 Compute Engine 防火墙规则
  • Cloud VPN 隧道
  • 外部应用负载均衡器

为了创建您的 VPC,我们还推荐使用 Cloud NAT 作为额外的网络安全层。有许多强大的选项可用于保护 Compute Engine 和 GKE 实例的网络。

创建防火墙规则

使用 Cloud 新一代防火墙政策或 VPC 防火墙规则限制每个 Compute Engine 实例的入站流量(要求 1.3 和 1.4)。仅允许来自以下三个来源的入站流量:

  • 公共 HTTPS,便于客户访问您的付款页面。
  • 您的应用网络,便于您的付款处理应用接收第三方付款处理方的响应。
  • 您的内部办公网络,便于您访问实例进行审核和管理。

使用单个实例的防火墙规则限制出站流量。您可以使用 iptables 或者使用 VPC 防火墙规则和网络标记在本地实现这些规则。 仅允许出站流量从您的付款表单传送至第三方付款处理方。 此连接仅限 HTTPS。如需测试您的工作,请参阅本文档后面的有关防火墙规则日志记录的部分。

Cloud DNS 提供专用 DNS 地区,因此您可以安全地在 CDE 中命名主机,而不会将敏感的网络拓扑数据泄露给公众。

流量限制如下:

来源 目标 端口 方向和原因
公共负载平衡器 第三方付款表单 tcp:443 入站
公开访问付款处理应用
第三方付款表单 第三方付款处理方 tcp:443 出站
将 AUTH 请求转发到付款服务提供商
第三方付款处理方 您的付款处理应用 tcp:5480 入站
接受来自付款系统的 AUTH 请求(不包含任何持卡人数据)
您公司的办公网络 vpn 网关 tcp:8000 入站
访问付款处理环境,以访问日志和开发机器

此外,以下流量出现在您的付款处理应用内部网络中是安全的:

来源 目标 端口 原因
卡表单 PCI 代理 tcp:5480 交换加密卡数据以获取付款方式令牌
所有主机 Google NTP 服务器 udp:123 时间同步
VPN 网关 所有主机 tcp:22 Secure Shell (SSH) 连接

建立安全的 VPN 隧道

您可以使用 Cloud VPN 在本地环境和付款处理环境之间建立一个安全的 VPN 隧道(第 2.2.7 节和第 4.2 节)。

创建外部应用负载均衡器

通过创建外部应用负载均衡器(第 2.2.7 节和第 4.2 节),您可以帮助确保传入的客户流量的安全。如需创建外部应用负载均衡器,您需要以下各项:

  • 用于付款处理表单的网站的子网域,例如 payments.your-domain-name.com
  • 已为子域注册有效的签名 SSL 证书。

通过在您的网络注册商域名配置界面查看 DNS 设置,确保您的域名是有效的。

创建基础 Linux 映像

PCI DSS 中包含的要求介绍了如何设置合规付款处理架构中的计算机。您可以通过多种方式实现这些要求,但最简单的方法如下:

  1. 创建必须在符合付款处理应用要求的各台服务器上安装的软件和库的列表。为避免给系统带来不必要的风险(要求 2.2.4),该列表应仅包含您在运行应用时必不可少的软件和库。候选项可能包括 Google Cloud CLI、特定语言的运行时环境和库,或者一台网络服务器。

  2. 创建使用 Compute Engine 预配置操作系统映像之一的 Compute Engine 实例。

  3. 安装前面列出的库和软件。

  4. 安装和配置 ntp 以确保系统时钟同步。使用网络时间协议管理服务器时钟,确保日志中时间戳的完整性(第 10.6 节)。

  5. 确保映像遵循创建安全 Compute Engine 映像的最佳做法(第 2.2 节所有部分)。

  6. 配置基础映像后,从您的映像创建自定义 Compute Engine 磁盘映像。在您创建虚拟机实例时,此映像允许您使用基础 Linux 映像。

使用安全的软件包管理

软件包管理是安全强化托管环境的一个关键组件。根据第 2.2 节所述,您必须实现行业认可的安全强化标准。除非您使用 Google 的容器优化型操作系统,否则您可能需要安装软件包管理器(如 RPM、Yum 或 Apt)。您的应用可能使用其专属的特定编程语言软件包管理器(如 NPM、PyPi 或 Composer),并在首次运行时下载依赖项。

如果您的应用可以从互联网上获取更新,您必须将更新源视为潜在的安全风险。目前,公开托管软件包中恶意包含的供应方或上游攻击正在变得越来越常见。 因此,不难想象安装包含恶意代码的 SSH 更新会有怎样的后果。

您可以为软件包创建一个安全收件人列表,并验证软件包是否与该列表匹配,以此降低供应方攻击的风险。为使用的各个软件包保留一份经过测试和批准的版本号列表。记录版本号以及其哈希或签名。确保软件包管理器在安装或更新应用之前,验证哈希或签名。

大多数软件包管理系统都允许进行私有托管。如果可能,请启动您的专属私有软件包管理服务器,并且仅托管经过测试和批准的软件。锁定软件包管理器,使其不能联系其他服务器以进行更新。

理想情况下,您的应用构建过程会提取和验证所有软件包,然后创建包含容器所需一切的自定义磁盘映像的修订版本。这样,您的服务器启动和扩大规模时,安装程序就不会延迟,并且启动时出现随机错误的可能性也会降低。 您还可以启动应用映像,重新访问以前生产环境中使用的任何版本的应用,这可能对诊断和取证非常有用。

部署和配置

接下来,以您的基础映像为基础,设置实例的部署和配置。

部署您的环境

要满足 PCI DSS 要求,请确保您每次都部署正确的应用,安全地部署应用,以及在部署期间不安装任何其他软件包。如需简化部署过程,请考虑使用 Terraform 为您的应用创建自动部署。借助 Terraform,您可以在代码中描述整个付款处理环境,包括其防火墙规则、网关、负载均衡器和实例。

在自动部署中,不论要部署的软件是来自第三方还是属于您自己的,您都必须验证其完整性。安装软件包时,您可以对各个软件包运行自动哈希来验证您的软件。验证哈希后,您可以使用自动测试框架运行安全性和其他方面的测试,以及验证测试是否已通过。

最后,部署 Compute Engine 实例时,请设计一个恢复计划,以防实例发生故障。如果可接受的停机时段足够长,手动恢复计划可能就足够了;如果不够长,您必须设计一个自动恢复计划。如需指导,请参阅灾难恢复规划指南设计可靠系统以及构建可扩缩的弹性 Web 应用

配置您的环境

实例部署后,请确保正确配置实例。根据需要,在每个实例基础映像上安装额外软件和库。为避免因手动配置造成的复杂性、开销和总体风险,请使用自动配置管理工具,如 SkaffoldChefPuppetAnsibleSalt

实现不可变的审核日志记录

Logging 会自动为跨多种产品的各种活动生成审核日志。从长远来看,您可以使用 Cloud Storage 存储桶锁安全地存储不可变的日志(第 10.3 节)。 通过存储桶锁,您可以设置政策让所有对象在您指定的一段时间内(从几秒到几年)都不可变且不能删除。

实现虚拟私有云流日志

VPC 流日志服务旨在记录虚拟机实例发送或收到的网络流。您可以将这些日志用于网络监控、取证和实时安全分析(第 10.2 节)。

安装 Logging 代理

您在专属服务器上设置 iptables 后,各台服务器都会将每项活动记录到服务器的块存储。如需详细了解免费配额和数据传输价格,请查看 Logging 价格页面。如需保留这些日志并根据可疑活动生成提醒,请通过在每台服务器上安装 Logging 代理,将日志和提醒流式传输到日志记录和监控(要求 10.3)。

集成入侵检测系统

如需帮助确保第 11.5 节中所述的付款处理环境的安全性,请使用入侵检测系统 (IDS),以便了解不法分子试图攻击系统的时间。在付款处理环境中设置 IDS 的方式有两种,包括在每个入口点设置 IDS 或在每台服务器上安装 IDS。

要降低环境架构的复杂性和简化遵守 11.5 规定的程序,请在每台服务器上安装一个 IDS。您在研究并选择了要使用的 IDS 软件后,请将 IDS 安装设置为每台服务器的启动安装脚本的一部分。

Cloud Intrusion Detection System (Cloud IDS) 是一种入侵检测服务,可针对网络中的入侵、恶意软件、间谍软件以及“命令和控制”攻击提供威胁检测。Cloud IDS 让您可以全面了解网络流量(包括南北流量和东西向流量),支持监控虚拟机到虚拟机的通信以检测横向移动。您还可以使用 Cloud IDS 来简化要求 11.5 的合规性。

IDS 日志属于 PCI DSS 合规的范围,必须发送给日志记录和监控进行报告、提醒和审核。

实现 Security Command Center

Security Command Center 可帮助安全团队收集数据、识别并应对威胁,让企业免遭损害或损失。它还提供针对应用和数据风险的深度洞见,便于您迅速缓解对云资源的威胁和评估整体运行状况。Security Command Center 可让您从一个集中式信息中心查看并监控您的云资产库、扫描存储系统中是否存在敏感数据、检测常见网络漏洞,并审核对您的关键资源的访问权限。它还可以帮助您遵守多项要求,包括第 5 节和第 6.4 节的要求。

实现应用部署自动化

构建配置管理工具,安全地检索和启动最新版本的应用。只要您的应用位于安全的地点,就可以从任何地点(如 Cloud Storage)进行检索。

上文提到的许多配置管理工具都支持持续集成和部署 (CI/CD) 工作流,还可用于执行自动扫描(第 11.3 节)和确保代码审核(要求 6.2.3)。

获取配置管理器日志

设置配置管理器时,请确保其记录所有安装详细信息。完成配置过程后,请确保其将日志传递给日志记录和监控。

日志记录和监控

要确保第 10 节下的 PCI DSS 合规性,请确保监控和记录您在付款处理环境中采取的每一个步骤。必须记录每个实例上的每一项服务器活动,而且必须能在日后检查每个用户操作。

启用 Access Transparency

通过 Access Transparency,Logging 现在可在 Google Cloud 管理员访问您的内容时提供近乎实时的日志。借助 Cloud Audit Logs,您可以查看贵组织管理员的操作。但是,此审计跟踪通常不包括您的云服务商的支持团队或工程团队执行的操作。例如,在提供 Access Approval 日志记录之前,如果您使用 Google 支持开启了需要数据访问权限的工单,它将不会反映在 Cloud Audit Logs 中。Access Approval 功能弥补了这一缺陷,可以近乎实时地捕获支持或工程人员有针对性的人工访问日志。

借助 Access Approval,您可以在访问之前明确批准对 Google Cloud 上数据或配置的访问。Access Approval 还可以让您深入了解 Google 支持和工程团队的访问。

启用防火墙规则日志记录

Firewall Rules Logging 使您可在单个规则级层启用日志记录。 它可以记录您自己创建的任何规则的 VPC 内的 TCP 和 UDP 连接。 这些对于审核网络访问或提供未经批准的网络使用方式的早期警告非常有用。

使用 VPC Service Controls

VPC Service Controls 让您可以定义围绕 Google Cloud 资源(如 Cloud Storage 存储桶、Bigtable 实例和 BigQuery 数据集)的安全边界,以便将数据限制在某个 VPC 网络的范围内并帮助降低数据渗漏风险(要求 1.3.1 和 1.3.2)。借助 VPC Service Controls,您可以在充分利用 Google Cloud 的全代管式存储和数据处理功能的同时,保证敏感数据的私密性。

设置 VPC 流日志

VPC 流日志会记录虚拟机实例发送和接收的网络流量流。这些日志在 PCI DSS 下非常有用,可用于监控、审核、取证和实时安全分析。每个 VPC 网络子网都可以独立启用或停用流日志。您可以仅在范围内的 CDE 中启用流日志,以尽量减少日志数据量。 通过流日志再加上出站防火墙规则,您能够以可审核和难以规避的方式将出站流量限制到授权端点(要求 1.2.1 和 1.3.4)。

下图显示了 VPC 流日志如何记录虚拟机实例发送和接收的网络流量。

已启用 VPC 流日志的持卡人数据环境
图 2. 已启用 VPC 流日志的 CDE。

如果您需要比流日志更加详细的数据(如单个 HTTP 请求日志记录),您可以在应用或代理出站请求中实现控制。您可通过配置自己的逆转代理服务器,将访问日志转发给 Logging 来实现这一点。有关如何在 Compute Engine 上设置 Squid 代理服务器的说明,请参阅设置网络代理。 如需避免出现瓶颈,请设置至少两台冗余代理服务器。

记录内部访问数据

除记录外部威胁之外,还请监控和记录对您的付款处理环境具有管理员访问权限的个人的活动(第 10.2 节)。为了实现这一点,您可以记录 shell 命令。目前,有些开源工具可以审核 shell 命令,并将其发送到日志记录。适合这项任务的热门工具包括 OSSECTripwire

设置监控提醒

如果您的付款处理环境出现问题,请配置监控以发送提醒(第 10.6 节)。确保您的提醒涵盖环境、审核和内部应用事件。您的提醒策略要基于您的付款处理应用各个组件的潜在风险或攻击途径。例如,如果您的 IDS 检测到任何入侵尝试,则不论入侵尝试是否成功,都会触发 Monitoring 提醒。您还可以使用 Firewall Rules Logging 来触发提醒,对违反特定网络政策的尝试作出响应。

将日志流式传输到 BigQuery

Logging 将日志流式传输给 Cloud Storage 和 BigQuery
图 3. Logging 将日志流式传输给 Cloud Storage 和 BigQuery。

(可选)您可以将 Logging 日志路由到 BigQuery 以供日后分析;如需了解详情,请参阅路由和存储概览:接收器。由于 BigQuery 针对大型数据集查询进行了优化,因此是大规模日志分析的理想工具。Logging 甚至还可以将日志直接记录到 BigQuery,供需要进行近乎实时分析的日志使用(要求 10.4.1)。

使用 Sensitive Data Protection 来清理数据

有很多原因需要使用您的范围内应用所包含的一部分本身不在范围内的数据,如用于分析或开发目的。但仅在使用 Sensitive Data Protection 清理 PCI 数据之后,才可授予应用访问这些数据的权限(要求 6.5.1)。

应用安全性

为了帮助保护应用,您首先需要评估管理员接口。您还可能要使用 Cloud Key Management Service。

评估管理员接口

大多数电子商务应用都有专属非控制台管理员接口,如客户服务结算门户。此类工具必须具有强大的访问权限控制机制,必须具有使用多重身份验证的单个访问权限(第 8.4 节),还必须使用审核日志进行检测(第 10.2 节)。

您创建的任何日志都应回答以下问题:哪些人做了哪些事情?他们在什么地方做的事情?他们什么时候做的事情?根据第 2.2.7 节所述,对此类工具的所有访问都必须使用高强度的传输加密。在任何管理工具中显示敏感信息之前,请使用 Sensitive Data Protection 来过滤敏感信息。

使用 Cloud Key Management Service (Cloud KMS)

借助 Cloud KMS 服务,您可以管理加密密钥。它可以生成、使用、轮替和销毁 AES-256、RSA 2048、RSA 3072、RSA 4096、EC P256 和 EC P384 加密密钥。Cloud KMS 让您可移除代码或配置文件中的明文密码,这简化了遵守第 2.2.2 节、第 3.6 节、第 3.7 节和第 8.2 节的要求。

验证您的环境

实现您的环境后,但在任何生产流量通过该环境之前,您必须验证该环境:

  • 如果您是 1 级商家,则您的环境必须经过合格安全评估机构 (QSA) 的验证。 QSA 是指经过 PCI 安全标准委员会批准可验证 PCI 环境并盖章批准通过的公司或个人。
  • 如果您是 2 级或更低级别的商家,您可以填写自我评估问卷来验证自己的环境。

后续步骤