Stay organized with collections
Save and categorize content based on your preferences.
Last reviewed 2025-03-12 UTC
The PCI on Google Kubernetes Engine blueprint contains a set of
Terraform
configurations and scripts that demonstrate how to bootstrap a PCI environment
in Google Cloud. The core of this blueprint is the
Online Boutique
application, where users can browse items, add them to the cart, and purchase
them.
This blueprint was developed for Payment Card Industry Data Security Standard
(PCI DSS)
version 3.2.1. The blueprint lets you deploy workloads on
GKE that align with the PCI DSS
in a repeatable, supported, and secure way.
A
Folder
resource. Folder resources provide a grouping mechanism
and isolation boundaries between projects.
Project
resources. You deploy the following Google Cloud projects:
Network: The host project for the Shared VPC.
Management: A project that will hold the logging and monitoring
infrastructure, such as Cloud Logging.
In-scope: A project that contains the in-scope resources. In
this solution, the project consists of a GKE cluster
that's designed to run the in-scope applications. In the example,
this includes the Frontend, Payment, and Checkout services.
Out-of-scope: A project that contains the out-of-scope resources.
In the solution, that's a GKE cluster that's
designed to run the rest of the services.
Application and projects
The following diagram illustrates the CDE boundary on Google Cloud and
which projects are in the scope of your PCI assessment of the Microservices
Demo application. As you build your environment, you use an illustration
like this to communicate Google Cloud about resources into and out of
your PCI boundary.
The path labeled 1 shows log data from Kubernetes clusters going to
Cloud Logging.
Network layout
This diagram illustrates the network and subnet details within each
project. It documents the data flows between projects and into and
out of the CDE boundary.
Encrypted traffic
This diagram illustrates the encrypted traffic going into and out of
the PCI boundary:
TLS-encrypted (HTTPS) traffic from outside the VPC goes to the
in-scope public load balancer.
TLS-encrypted traffic between in-scope Kubernetes cluster nodes to
the out-of-scope cluster goes to internal load balancers.
Traffic from the internal load balancers to the out-of-scope cluster
is encrypted with mTLS using Istio.
Communication within each cluster is encrypted with mTLS using Istio.
Compliance mapping
The blueprint described in this document addresses a range of PCI DSS
compliance requirements. The table in this section highlights some of those
requirements.
The items in the following table don't address all requirements; compliance with
some requirements is met by the Google Cloud infrastructure as part of the
shared responsibility between you and Google. Compliance with other requirements
needs to be implemented by you. For a detailed explanation of the shared
responsibility model, see
Exploring container security: the shared responsibility model in GKE
on the Google Cloud blog.
The numbers in parentheses refer to sections of the
Payment Card Industry (PCI) Data Security Standard document. You can download
the document from the PCI Security Standards Council website's
document library.
Requirement
Section
Description
Implement segmentation and boundary protection
1.3.2, 1.3.4
This blueprint helps you implement a logical segmentation by using
Google Cloud projects; the segmentation lets you create a
boundary for your PCI assessment. This blueprint runs
Istio on Google Kubernetes Engine
as an add-on that lets you create a service mesh around the
GKE cluster that includes all of the components you need. The
blueprint also creates a security perimeter using
VPC
around all of the Google Cloud projects that are in scope for PCI.
Configure least-privilege access to Google Cloud resources
7.1, 7.2
This blueprint helps you to implement role-based access control to
manage who has access to Google Cloud resources. The blueprint also
implements GKE-specific access controls like
role-based access control (RBAC)
and
namespaces
to restrict access to cluster resources.
Establish Organization-level policies
With this blueprint, you establish policies that apply to your
Google Cloud
Organization
resource, such as the following:
The GKE clusters in this blueprint are hardened as
described in the
GKE hardening guide.
This list is just a subset of the security controls implemented in this
blueprint that can meet PCI DSS requirements. You can find a full list of those
requirements that are addressed in the
PCI DSS Requirements
(PDF) document on GitHub.
Deployable assets
The
PCI and GKE Blueprint
repository on GitHub contains a set of Terraform configurations and scripts that
show how to bootstrap a PCI environment in Google Cloud. The PCI on
GKE project also showcases Google Cloud services, tools,
and projects that are useful to start your own Google Cloud PCI
environment.
Frequently asked questions
How do I use this blueprint?
The PCI on GKE blueprint provides you with prescriptive
information and instructions for creating or migrating workloads on
GKE that align with PCI compliance requirements.
The blueprint is made up of the following elements:
We recommend that you read through the implementation guide and review
the reference architectures before deploying the PCI environment using
Terraform. We've provided a demo ecommerce application that you can deploy
to test the PCI blueprint environment.
Is this the only way to run PCI-compliant workloads on Google Cloud?
No. PCI DSS is a set of security standards and there are many ways to
interpret and implement the controls to satisfy the standards. This
blueprint is designed as a set of best practices and recommendations to
support your own PCI DSS compliance.
Does this blueprint include best practices for PCI compliance for
Google Distributed Cloud?
While some of the guidance in this blueprint is applicable to GKE Enterprise,
the focus is on Google Kubernetes Engine (GKE) running on Google Cloud.
Do you have a list of PCI requirements that this blueprint can help satisfy?
This blueprint addresses a range of PCI DSS compliance requirements. You
can find a full list of those requirements in the
PCI DSS Requirements document (PDF)
on GitHub. This list addresses only the PCI compliance requirements
that are supported by the Google Cloud infrastructure as part of the
shared responsibility between you and Google. Note that the implementation
of any PCI compliance controls is the sole responsibility of the customer
and you should conduct your own evaluation of your organization's PCI
compliance. For more information about the shared responsibility model, see
Exploring container security: the shared responsibility model in GKE
on the Google Cloud blog.
What services are supported by the guidance in this blueprint?
For a full list of supported services, see the top of the
README
file in the PCI on GKE repository on GitHub.
Do you accept contributions to the PCI on GKE repository on
GitHub?
Yes. You can submit a
pull request or fork the repository.
Resources
PCI DSS compliance on Google Cloud.
This guide helps you address concerns unique to Google Kubernetes Engine (GKE)
applications when you are implementing customer responsibilities for PCI
DSS requirements.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-03-12 UTC."],[[["\u003cp\u003eThis PCI on Google Kubernetes Engine (GKE) blueprint provides Terraform configurations and scripts for creating a Payment Card Industry (PCI) compliant environment in Google Cloud, utilizing the Online Boutique application as its core.\u003c/p\u003e\n"],["\u003cp\u003eThe blueprint supports PCI DSS version 3.2.1 compliance by offering a framework for deploying workloads on GKE in a repeatable, secure, and supported manner, and helps implement a cardholder data environment (CDE) with specific Google Cloud projects for Network, Management, In-scope, and Out-of-scope resources.\u003c/p\u003e\n"],["\u003cp\u003eKey aspects of the blueprint's architecture include logical segmentation through Google Cloud projects, role-based access control, organization-level policies, Shared VPC for network segregation, and cluster security hardening as detailed in the GKE hardening guide.\u003c/p\u003e\n"],["\u003cp\u003eThe solution uses encrypted communication both internally and externally, including TLS-encrypted traffic, and relies on Istio for mTLS encryption within clusters.\u003c/p\u003e\n"],["\u003cp\u003eThe blueprint addresses a variety of PCI DSS requirements, offering guidance and implementation examples, but emphasizes that achieving full PCI compliance is a shared responsibility between the customer and Google Cloud, and requires thorough evaluation and approval from a Qualified Security Assessor (QSA).\u003c/p\u003e\n"]]],[],null,["# Security blueprint: PCI on GKE\n\nThe PCI on Google Kubernetes Engine blueprint contains a set of\n[Terraform](https://www.terraform.io/)\nconfigurations and scripts that demonstrate how to bootstrap a PCI environment\nin Google Cloud. The core of this blueprint is the\n[Online Boutique](https://github.com/GoogleCloudPlatform/microservices-demo)\napplication, where users can browse items, add them to the cart, and purchase\nthem.\n\nThis blueprint was developed for [Payment Card Industry Data Security Standard\n(PCI DSS)](https://www.pcisecuritystandards.org/pci_security/maintaining_payment_security)\nversion 3.2.1. The blueprint lets you deploy workloads on\nGKE that align with the PCI DSS\nin a repeatable, supported, and secure way.\n\n- [**Architecture**](#architectural_diagrams)\n- [**Compliance mapping**](#compliance_mapping)\n- [**Deployable assets**](#deployable_assets)\n- [**Frequently asked questions**](#frequently_asked_questions)\n- [**Resources**](#resources)\n\nArchitecture\n------------\n\n### Project overview\n\nIn this blueprint, you bootstrap a cardholder data environment (CDE)\nin Google Cloud that contains the following resource hierarchy:\n\n- An [Organizational](/resource-manager/docs/cloud-platform-resource-hierarchy#organizations) resource.\n- A [Folder](/resource-manager/docs/cloud-platform-resource-hierarchy#folders) resource. Folder resources provide a grouping mechanism and isolation boundaries between projects.\n- [Project](/resource-manager/docs/cloud-platform-resource-hierarchy#projects)\n resources. You deploy the following Google Cloud projects:\n\n - Network: The host project for the Shared VPC.\n - Management: A project that will hold the logging and monitoring infrastructure, such as Cloud Logging.\n - In-scope: A project that contains the in-scope resources. In this solution, the project consists of a GKE cluster that's designed to run the in-scope applications. In the example, this includes the Frontend, Payment, and Checkout services.\n - Out-of-scope: A project that contains the out-of-scope resources. In the solution, that's a GKE cluster that's designed to run the rest of the services.\n\n### Application and projects\n\nThe following diagram illustrates the CDE boundary on Google Cloud and\nwhich projects are in the scope of your PCI assessment of the Microservices\nDemo application. As you build your environment, you use an illustration\nlike this to communicate Google Cloud about resources into and out of\nyour PCI boundary.\n\nThe path labeled `1` shows log data from Kubernetes clusters going to\nCloud Logging.\n\n### Network layout\n\nThis diagram illustrates the network and subnet details within each\nproject. It documents the data flows between projects and into and\nout of the CDE boundary.\n\n### Encrypted traffic\n\nThis diagram illustrates the encrypted traffic going into and out of\nthe PCI boundary:\n\n1. TLS-encrypted (HTTPS) traffic from outside the VPC goes to the in-scope public load balancer.\n2. TLS-encrypted traffic between in-scope Kubernetes cluster nodes to the out-of-scope cluster goes to internal load balancers.\n3. Traffic from the internal load balancers to the out-of-scope cluster is encrypted with mTLS using Istio.\n4. Communication within each cluster is encrypted with mTLS using Istio.\n\nCompliance mapping\n------------------\n\nThe blueprint described in this document addresses a range of PCI DSS\ncompliance requirements. The table in this section highlights some of those\nrequirements.\n| **Note:** The [PCI on GKE Blueprint Review for PCI Compliance](/static/architecture/google-cloud-pci-gke-review.pdf) whitepaper (PDF) provides an independent, third-party assessment of the blueprint performed by [Coalfire](https://www.coalfire.com/), Google's PCI-DSS auditor. It also provides guidance on elements that you should address when you adopt the blueprint.\n\nThe items in the following table don't address all requirements; compliance with\nsome requirements is met by the Google Cloud infrastructure as part of the\nshared responsibility between you and Google. Compliance with other requirements\nneeds to be implemented by you. For a detailed explanation of the shared\nresponsibility model, see\n[Exploring container security: the shared responsibility model in GKE](https://cloud.google.com/blog/products/containers-kubernetes/exploring-container-security-the-shared-responsibility-model-in-gke-container-security-shared-responsibility-model-gke)\non the Google Cloud blog.\n| **Note:** The compliance mapping describes how controls implemented in this blueprint help you comply with a PCI requirement; however, the blueprint does not guarantee PCI compliance for the requirements specified later in this document. It's important to note that the description of the implementation details in this blueprint must be reviewed, evaluated, assessed, and approved by you and your Qualified Security Assessor (QSA), and layered with other security features that address all of the in-scope systems and applications for a holistic solution to meet the PCI requirements.\n\nThe numbers in parentheses refer to sections of the\nPayment Card Industry (PCI) Data Security Standard document. You can download\nthe document from the PCI Security Standards Council website's\n[document library](https://www.pcisecuritystandards.org/document_library?category=pcidss&document=pci_dss).\n\nThis list is just a subset of the security controls implemented in this\nblueprint that can meet PCI DSS requirements. You can find a full list of those\nrequirements that are addressed in the\n[PCI DSS Requirements](https://github.com/GoogleCloudPlatform/pci-gke-blueprint/blob/master/docs/assets/pci-mapping.pdf)\n(PDF) document on GitHub.\n\nDeployable assets\n-----------------\n\nThe\n[PCI and GKE Blueprint](https://github.com/GoogleCloudPlatform/pci-gke-blueprint)\nrepository on GitHub contains a set of Terraform configurations and scripts that\nshow how to bootstrap a PCI environment in Google Cloud. The PCI on\nGKE project also showcases Google Cloud services, tools,\nand projects that are useful to start your own Google Cloud PCI\nenvironment.\n\nFrequently asked questions\n--------------------------\n\n### How do I use this blueprint?\n\n\nThe PCI on GKE blueprint provides you with prescriptive\ninformation and instructions for creating or migrating workloads on\nGKE that align with PCI compliance requirements.\n\n\nThe blueprint is made up of the following elements:\n\n- [An implementation guide](https://github.com/GoogleCloudPlatform/pci-gke-blueprint)\n- [Reference architectures](https://github.com/GoogleCloudPlatform/pci-gke-blueprint/blob/master/docs/diagrams.md)\n- [Terraform](http://terraform.io) scripts that implement infrastructure as code (IaC)\n- [A demo application](https://github.com/GoogleCloudPlatform/pci-gke-blueprint/blob/master/docs/deploy-application.md)\n- [PCI compliance mappings](https://github.com/GoogleCloudPlatform/pci-gke-blueprint/blob/master/docs/assets/pci-mapping.pdf)\n\n\nWe recommend that you read through the implementation guide and review\nthe reference architectures before deploying the PCI environment using\nTerraform. We've provided a demo ecommerce application that you can deploy\nto test the PCI blueprint environment.\n\n### Is this the only way to run PCI-compliant workloads on Google Cloud?\n\n\nNo. PCI DSS is a set of security standards and there are many ways to\ninterpret and implement the controls to satisfy the standards. This\nblueprint is designed as a set of best practices and recommendations to\nsupport your own PCI DSS compliance.\n\n### Does this blueprint include best practices for PCI compliance for\nGoogle Distributed Cloud?\n\n\nWhile some of the guidance in this blueprint is applicable to GKE Enterprise,\nthe focus is on Google Kubernetes Engine (GKE) running on Google Cloud.\n\n### Do you have a list of PCI requirements that this blueprint can help satisfy?\n\n\nThis blueprint addresses a range of PCI DSS compliance requirements. You\ncan find a full list of those requirements in the\n[PCI DSS Requirements](https://github.com/GoogleCloudPlatform/pci-gke-blueprint/blob/master/docs/assets/pci-mapping.pdf) document (PDF)\non GitHub. This list addresses only the PCI compliance requirements\nthat are supported by the Google Cloud infrastructure as part of the\nshared responsibility between you and Google. Note that the implementation\nof any PCI compliance controls is the sole responsibility of the customer\nand you should conduct your own evaluation of your organization's PCI\ncompliance. For more information about the shared responsibility model, see\n[Exploring container security: the shared responsibility model in GKE](https://cloud.google.com/blog/products/containers-kubernetes/exploring-container-security-the-shared-responsibility-model-in-gke-container-security-shared-responsibility-model-gke)\non the Google Cloud blog.\n\n### What services are supported by the guidance in this blueprint?\n\n\nFor a full list of supported services, see the top of the\n[README](https://github.com/GoogleCloudPlatform/pci-gke-blueprint)\nfile in the PCI on GKE repository on GitHub.\n\n### Do you accept contributions to the PCI on GKE repository on\nGitHub?\n\n\nYes. You can submit a\n[pull request](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests) or fork the repository.\n\nResources\n---------\n\n- [PCI DSS compliance on Google Cloud](/solutions/pci-dss-and-gke-guide). This guide helps you address concerns unique to Google Kubernetes Engine (GKE) applications when you are implementing customer responsibilities for PCI DSS requirements."]]