Sign in
Menu
Start free trial
Annex B: PCI DSS

PCI DSS controls built into your Terraform modules. Enforced before apply.

Cardholder data protection starts at the infrastructure layer: encryption, access controls, logging and key management on AWS resources. The modules enforce these controls before apply and list the PCI DSS v4.0 requirement ID each one maps to, where the catalog names one.

Modules enforce 109 of 168 PCI DSS controls in the catalog. Of the 128 that cite a PCI DSS clause, they enforce 76. The controls they do not enforce stay with your team, with your SAQ or QSA assessment, penetration testing and network segmentation.

No credit card or AWS account needed to start. By Anton Babenko, maintainer of terraform-aws-modules, more than 2 billion provisions.

Annex B: PCI DSS

Framework
PCI DSS v4.0
For
Your team, on Terraform
B.1

Scope for PCI DSS

If your application stores, processes or transmits card numbers, PCI DSS applies. Even if you use Stripe, your AWS infrastructure may be in scope.

B.1.1

Covers

  • Infrastructure controls on AWS resources that map to PCI DSS v4.0 requirement IDs, by requirement in B.3.
  • terraform-aws-modules through the PCI DSS framework host or your org endpoint, and resources written by hand outside modules once your team switches to the compliance.tf provider.
B.1.2

Stays with your team

  • Your PCI DSS scope. Where cardholder data flows decides it; compliance.tf does not change it.
  • SAQ completion and submission.
  • QSA engagement and on-site assessments.
  • Penetration testing and vulnerability scanning.
  • Security awareness training.
  • Physical security of cardholder data environments.
  • Application-level security controls.
  • Network segmentation and firewall rules.
  • Resources outside compliance.tf module coverage, and every control B.4 lists as Mapped: 52 with a PCI DSS clause and 7 without one.
B.2

The source line

Point a module at the PCI DSS framework host. Same inputs and outputs, no state migration. Terraform 1.0 or later.

-  source  = "terraform-aws-modules/s3-bucket/aws"
+  source  = "pcidss.compliance.tf/terraform-aws-modules/s3-bucket/aws"
   version = "~> 5.0"

With an org endpoint, the source names your org host instead, and PCI DSScomes from your org's configuration.

B.3

Enforced and mapped, by requirement

Of the 128 PCI DSS controls in the documented catalog that cite a clause, modules enforce 76. A control appears once under each requirement it maps to.

Req. 829 of 55
Req. 1032 of 50
Req. 324 of 39
A120 of 36
Req. 116 of 25
Req. 514 of 23
A37 of 13
Req. 76 of 9
Req. 25 of 9
Req. 44 of 8
Req. 67 of 7
Req. 114 of 7
Req. 123 of 5

The catalog maps 40 more controls to PCI DSS without naming a clause, 33 of them enforced. They are listed apart at the end of B.4 and left out of these counts.

Every row is a control your QSA can look up.

Filter the register, or search by control name or clause, for example 3.5.1.

128 of 128 shown

Each control links to its public docs page.

Enforced
Modules set this control before anything is deployed.
Mapped
Documented on its docs page, not set by modules. Your team owns it.
B.4

Control register

ControlStatusPCI DSS clauses
ACM RSA certificates should use a key length of at least 2,048 bitsEnforced3.7.1
AppSync GraphQL APIs should have field-level logging enabledEnforced5.3.4, 10.2.1, 10.2.1.1, 10.2.1.2, 10.2.1.3, 10.2.1.4, 10.2.1.5, 10.2.1.6, 10.2.1.7, 10.2.2, 10.3.1, 10.6.3, A1.2.3
CloudFront distributions access logs should be enabledEnforced5.3.4, 10.2.1, 10.2.1.1, 10.2.1.2, 10.2.1.3, 10.2.1.4, 10.2.1.5, 10.2.1.6, 10.2.1.7, 10.2.2, 10.3.1, 10.6.3, A1.2.3
CloudFront distributions should have AWS WAF enabledEnforced1.2.8, 1.3.1, 1.3.2, 1.4.2, 1.5.1, 6.4.1, 6.4.2, A1.1.2
CloudWatch alarms should have an action configuredEnforced10.2.1.1, 10.4.1, 10.4.1.1, 10.4.2, 10.4.3, 10.6.3, 10.7.1, 10.7.2, 11.5.2, 11.6.1, 12.10.5, A3.3.1, A3.5.1
CloudWatch log groups should have retention period of at least 365 daysEnforced3.2.1, 3.3.1.1, 3.3.1.3, 3.3.2, 3.3.3, 5.3.4, 10.5.1
DynamoDB tables should have AWS KMS encryption enabledEnforced3.5.1, 8.3.2
DynamoDB tables should have encryption enabledEnforced3.5.1, 8.3.2
DynamoDB tables should have point-in-time recovery enabledEnforced3.2.1, 3.3.1.1, 3.3.1.3, 3.3.2, 3.3.3, 10.3.3, 10.5.1
Attached EBS volumes should have encryption enabledEnforced3.5.1, 8.3.2
EC2 instances should have detailed monitoring enabledEnforced10.2.1.1, 10.4.1, 10.4.1.1, 10.4.2, 10.6.3, 10.7.1, 10.7.2, A3.3.1, A3.5.1
EC2 instances should have IAM profile attachedEnforced7.2.1, 7.2.2, 7.2.5, 7.3.1, 7.3.2, 7.3.3, 8.2.7, 8.2.8, 8.3.4
EC2 instances should be in a VPCEnforced1.4.4
EC2 instances should not use key pairs in running stateEnforced8.3.11
EC2 instances should not have a public IP addressEnforced11.5.2
EC2 instances should use IMDSv2Enforced8.2.8
EC2 launch templates should not assign public IPs to network interfacesEnforced1.4.5
ECR repositories should have image scan on push enabledEnforced11.3.1, 11.3.1.3
ECS task definitions should not share the host's process namespaceEnforced1.4.5
EFS file systems should have encryption at rest enabledEnforced3.5.1, 8.3.2
EKS clusters should have control plane audit logging enabledEnforced5.3.4, 10.2.1, 10.2.1.1, 10.2.1.2, 10.2.1.3, 10.2.1.4, 10.2.1.5, 10.2.1.6, 10.2.1.7, 10.2.2, 10.3.1, 10.6.3, A1.2.3
EKS clusters endpoint public access should be restrictedEnforced1.2.8, 1.3.1, 1.3.2, 1.4.2, 1.5.1, A1.1.2
EKS clusters should be configured to have kubernetes secrets encrypted using KMSEnforced3.5.1, 8.3.2
ElastiCache for Redis replication groups should be encrypted at restEnforced3.5.1, 8.3.2
ElastiCache for Redis replication groups should be encrypted in transitEnforced2.2.7, 4.2.1, 4.2.1.1, 8.3.2
ELB application and classic load balancer logging should be enabledEnforced5.3.4, 6.2.4, 10.2.1, 10.2.1.1, 10.2.1.2, 10.2.1.3, 10.2.1.4, 10.2.1.5, 10.2.1.6, 10.2.1.7, 10.2.2, 10.3.1, 10.6.3, A1.2.3
ELB classic load balancers should be configured with defensive or strictest desync mitigation modeEnforced5.3.4, 10.2.1, 10.2.1.1, 10.2.1.2, 10.2.1.3, 10.2.1.4, 10.2.1.5, 10.2.1.6, 10.2.1.7, 10.2.2, 10.3.1, 10.6.3, A1.2.3
EMR cluster Kerberos should be enabledEnforced8.3.2
FSx for Lustre file systems should be configured to copy tags to backupsEnforced10.3.3
API Gateway V2 stages should have access logging configuredEnforced5.3.4, 10.2.1, 10.2.1.1, 10.2.1.2, 10.2.1.3, 10.2.1.4, 10.2.1.5, 10.2.1.6, 10.2.1.7, 10.2.2, 10.3.1, 10.6.3, A1.2.3
KMS CMK rotation should be enabledEnforced3.7.4, 3.7.5
Lambda functions should be in a VPCEnforced1.2.8, 1.3.1, 1.3.2, 1.4.2, 1.5.1, A1.1.2
Lambda functions should use latest runtimesEnforced6.3.3, 12.3.4
Log groups should have encryption at rest enabledEnforced3.5.1, 8.3.2, 10.3.2, 10.3.3, 10.3.4, A1.2.3
MSK clusters should require TLS for client-broker connectionsEnforced2.2.7, 4.2.1, 4.2.1.1, 8.3.2
Network Firewall policies should have default stateless action set to drop or forward for fragmented packetsEnforced1.2.8, 1.3.1, 1.3.2, 1.4.2, 1.4.3, 1.5.1, A1.1.2
Network Firewall policies should have default stateless action set to drop or forward for full packetsEnforced1.2.6, 1.4.3
OpenSearch domains should have audit logging enabledEnforced5.3.4, 10.5.1
OpenSearch domains should have encryption at rest enabledEnforced3.5.1, 8.3.2
OpenSearch domains should have fine-grained access control enabledEnforced7.2.1, 7.2.2, 7.2.5, 7.2.6, 7.3.1, 7.3.2, 7.3.3, 8.2.7, 8.2.8, 8.3.4, 10.6.3
OpenSearch domains should have logging to CloudWatch Logs enabledEnforced5.3.4, 10.5.1
OpenSearch domains node-to-node encryption should be enabledEnforced1.2.5, 2.2.5, 2.2.7, 4.2.1, 4.2.1.1, 8.3.2
Aurora MySQL DB clusters should have audit logging enabledEnforced10.6.3
RDS DB clusters should be encrypted at restEnforced3.5.1, 8.3.2
RDS DB clusters should have IAM authentication configuredEnforced7.2.1, 7.2.2, 7.2.5, 7.3.1, 7.3.2, 7.3.3, 8.2.7, 8.2.8, 8.3.4
RDS DB instance automatic minor version upgrade should be enabledEnforced6.3.3
RDS DB instance backup should be enabledEnforced10.3.3
RDS DB instances should be integrated with CloudWatch logsEnforced5.3.4, 10.2.1, 10.2.1.1, 10.2.1.2, 10.2.1.3, 10.2.1.4, 10.2.1.5, 10.2.1.6, 10.2.1.7, 10.2.2, 10.3.1, 10.6.3, A1.2.3
RDS DB instance encryption at rest should be enabledEnforced3.5.1, 8.3.2
RDS DB instances should have iam authentication enabledEnforced7.2.1, 7.2.2, 7.2.5, 7.3.1, 7.3.2, 7.3.3, 8.2.7, 8.2.8, 8.3.4
Redshift clusters should have audit logging enabledEnforced5.3.4, 10.2.1, 10.2.1.1, 10.2.1.2, 10.2.1.3, 10.2.1.4, 10.2.1.5, 10.2.1.6, 10.2.1.7, 10.2.2, 10.3.1, 10.6.3, A1.2.3
Redshift clusters should have automatic upgrades to major versions enabledEnforced6.3.3
Redshift cluster encryption in transit should be enabledEnforced1.2.5, 2.2.5, 2.2.7, 4.2.1, 4.2.1.1, 8.3.2
Redshift clusters should have enhanced VPC routing enabledEnforced1.3.1, 1.3.2, 1.4.1, 1.4.2, 1.4.4
Redshift clusters should have KMS encryption enabledEnforced3.5.1, 8.3.2
Redshift clusters should have required maintenance settingsEnforced6.3.3
Redshift clusters should have Multi-AZ deployments enabledEnforced3.5.1, 5.3.4, 6.3.3, 8.3.2, 10.2.1, 10.2.1.1, 10.2.1.2, 10.2.1.3, 10.2.1.4, 10.2.1.5, 10.2.1.6, 10.2.1.7, 10.2.2, 10.3.1, 10.6.3, A1.2.3
S3 buckets should not use ACLs for user access controlEnforced7.2.1, 7.2.2, 7.2.5, 7.3.1, 7.3.2, 7.3.3, 8.2.7, 8.2.8, 8.3.4
S3 buckets should have default encryption enabledEnforced3.5.1, 8.3.2
S3 buckets should have event notifications enabledEnforced11.5.2, 11.6.1, 12.10.5, A3.3.1, A3.5.1
S3 buckets should have lifecycle policies configuredEnforced3.2.1, 3.3.1.1, 3.3.1.3, 3.3.2, 3.3.3, 10.5.1
S3 buckets should have logging enabledEnforced5.3.4, 10.2.1, 10.2.1.1, 10.2.1.2, 10.2.1.3, 10.2.1.4, 10.2.1.5, 10.2.1.6, 10.2.1.7, 10.2.2, 10.3.1, 10.6.3, A1.2.3
S3 buckets should have MFA delete enabledEnforced3.5.1.3, 8.4.1, 8.4.2, 8.4.3, 10.3.2, A1.1.2, A3.4.1
S3 buckets should not be accessible to all authenticated usersEnforced1.2.8, 1.3.1, 1.3.2, 1.4.2, 1.5.1, 3.5.1.3, 10.3.2, 10.3.3, 10.3.4, A1.1.2, A1.2.3, A3.4.1
S3 buckets should have object lock enabledEnforced10.3.4, 10.5.1
S3 buckets should restrict cross-account permissionsEnforced7.2.1, 7.2.2, 7.2.5, 7.2.6, 7.3.1, 7.3.2, 7.3.3, 8.2.7, 8.2.8, 8.3.4, 10.6.3
S3 buckets should prohibit public read accessEnforced1.2.8, 1.3.1, 1.3.2, 1.4.2, 1.5.1, 3.5.1.3, 10.3.2, 10.3.3, 10.3.4, A1.1.2, A1.2.3, A3.4.1
S3 buckets should prohibit public write accessEnforced1.2.8, 1.3.1, 1.3.2, 1.4.2, 1.5.1, 3.5.1.3, 10.3.2, 10.3.3, 10.3.4, A1.1.2, A1.2.3, A3.4.1
S3 buckets with versioning enabled should have lifecycle policies configuredEnforced3.2.1, 10.5.1
S3 buckets should have versioning enabledEnforced10.3.4
S3 public access should be blocked at bucket levelEnforced10.3.4
Secrets Manager secrets should be encrypted using CMKEnforced8.3.2
Step Functions state machines should have logging enabledEnforced5.3.4, 10.2.1, 10.2.1.1, 10.2.1.2, 10.2.1.3, 10.2.1.4, 10.2.1.5, 10.2.1.6, 10.2.1.7, 10.2.2, 10.3.1, 10.6.3, A1.2.3
SNS topics should be encrypted at restEnforced2.2.1, 3.5.1, 8.3.2
VPC Security groups should only allow unrestricted incoming traffic for authorized portsEnforced1.3.1, 1.3.2
VPC security groups should restrict ingress from 0.0.0.0/0 or ::/0 to cassandra ports 7199 or 9160 or 8888Enforced1.3.1
API Gateway routes should require an authorization typeMapped1.5.1
API Gateway REST API stages should have a client certificate configuredMapped11.5.2
API Gateway REST API stages should have AWS X-Ray tracing enabledMapped5.3.4, 10.2.1, 10.2.1.1, 10.2.1.2, 10.2.1.3, 10.2.1.4, 10.2.1.5, 10.2.1.6, 10.2.1.7, 10.2.2, 10.3.1, 10.4.1, 10.4.1.1, 10.4.2, 10.6.3, 10.7.1, 10.7.2, A1.2.3, A3.3.1, A3.5.1
API Gateway stages should have logging enabledMapped5.3.4, 10.2.1, 10.2.1.1, 10.2.1.2, 10.2.1.3, 10.2.1.4, 10.2.1.5, 10.2.1.6, 10.2.1.7, 10.2.2, 10.3.1, 10.6.3, A1.2.3
Athena workgroups should be encrypted at restMapped3.5.1, 8.3.2
Backup plan rules should retain recovery points for at least 35 daysMapped10.5.1
CloudFormation stacks should have notifications enabledMapped12.10.5
CloudTrail trails should be integrated with CloudWatch logsMapped5.3.4, 10.2.1, 10.2.1.1, 10.2.1.2, 10.2.1.3, 10.2.1.4, 10.2.1.5, 10.2.1.6, 10.2.1.7, 10.2.2, 10.3.1, 10.4.1.1, 10.6.3, 11.5.2, 11.6.1, 12.10.5, A1.2.3, A3.3.1, A3.5.1
CloudTrail trails should have logs encrypted using a customer managed KMS keyMapped3.5.1, 8.3.2, 10.3.2, 10.3.3, 10.3.4, A1.2.3
CloudTrail trails should have log file validation enabledMapped10.3.2, 10.3.3, 10.3.4, A1.2.3
CodeBuild projects should have artifact encryption enabledMapped8.3.2
CodeBuild projects should not have privileged mode enabledMapped7.2.3
CodeBuild projects should have logging enabledMapped5.3.4, 10.2.1, 10.2.1.1, 10.2.1.2, 10.2.1.3, 10.2.1.4, 10.2.1.5, 10.2.1.6, 10.2.1.7, 10.2.2, 10.3.1, 10.6.3, A1.2.3
CodeBuild projects should have S3 logs encryptedMapped3.5.1, 8.3.2
DynamoDB Accelerator (DAX) clusters should be encrypted at restMapped3.5.1, 8.3.2
DynamoDB Accelerator clusters should be encrypted in transitMapped2.2.7, 4.2.1, 4.2.1.1, 8.3.2
DMS endpoints for Redis OSS should have TLS enabledMapped2.2.7, 4.2.1, 4.2.1.1, 8.3.2
DMS endpoints should use SSLMapped2.2.7, 4.2.1, 4.2.1.1, 8.3.2
DocumentDB clusters should have an adequate backup retention periodMapped3.2.1, 3.3.1.1, 3.3.1.3, 3.3.2, 3.3.3, 10.5.1
DocumentDB clusters should have encryption at rest enabledMapped3.5.1, 8.3.2
DocumentDB instance logging should be enabledMapped5.3.4, 10.2.1, 10.2.1.1, 10.2.1.2, 10.2.1.3, 10.2.1.4, 10.2.1.5, 10.2.1.6, 10.2.1.7, 10.2.2, 10.3.1, 10.6.3, A1.2.3
EBS snapshots should be encryptedMapped3.5.1, 8.3.2
EC2 Client VPN endpoints should have client connection logging enabledMapped1.2.8, 1.3.1, 1.3.2, 1.4.2, 1.5.1, 5.3.4, 10.2.1, 10.2.1.1, 10.2.1.2, 10.2.1.3, 10.2.1.4, 10.2.1.5, 10.2.1.6, 10.2.1.7, 10.2.2, 10.3.1, 10.6.3, A1.1.2, A1.2.3
EC2 transit gateways should have auto accept shared attachments disabledMapped1.2.8, 1.3.1, 1.3.2, 1.4.2, 1.5.1, A1.1.2
EFS access points should enforce a root directoryMapped3.5.1.3, 10.3.2, A1.1.2, A3.4.1
EFS access points should enforce a user identityMapped3.5.1.3, 10.3.2, A1.1.2, A3.4.1
ElastiCache clusters should not use the default subnet groupMapped1.4.4
Elasticsearch domains should have audit logging enabledMapped5.3.4, 10.5.1
ES domain encryption at rest should be enabledMapped3.5.1, 8.3.2
ES domains should be in a VPCMapped1.5.1
Elasticsearch domain node-to-node encryption should be enabledMapped1.2.5, 2.2.5, 2.2.7, 4.2.1, 4.2.1.1, 8.3.2
IAM password policies should have minimum length set to 14 or greaterMapped8.3.6, 8.3.7
IAM password policies should require at least one lowercase letterMapped8.3.6, 8.3.7
IAM password policies should require at least one numberMapped8.3.6, 8.3.7
IAM password policies should require at least one symbolMapped8.3.6, 8.3.7
IAM password policies should require at least one uppercase letterMapped8.3.6, 8.3.7
IAM password policies should prevent password reuseMapped8.3.6, 8.3.7
IAM password policies should have strong configurations with minimum length of 8 or greaterMapped8.3.6, 8.3.7
IAM password policies should have strong configurationsMapped8.3.6, 11.5.2
IAM password policies should expire passwords within 90 days or lessMapped8.3.6, 8.3.7, 8.6.3
Kinesis streams should have server side encryption enabledMapped3.5.1, 8.3.2
MQ brokers should have audit log streaming to CloudWatch enabledMapped5.3.4, 10.2.1, 10.2.1.1, 10.2.1.2, 10.2.1.3, 10.2.1.4, 10.2.1.5, 10.2.1.6, 10.2.1.7, 10.2.2, 10.3.1, 10.6.3, A1.2.3
Neptune DB clusters should publish audit logs to CloudWatch LogsMapped5.3.4, 10.2.1, 10.2.1.1, 10.2.1.2, 10.2.1.3, 10.2.1.4, 10.2.1.5, 10.2.1.6, 10.2.1.7, 10.2.2, 10.3.1, 10.6.3, A1.2.3
Neptune DB clusters should have automated backups enabledMapped10.3.3
Neptune DB clusters should be encrypted at restMapped3.5.1, 8.3.2
Neptune DB clusters should have IAM database authentication enabledMapped7.2.1, 7.2.2, 7.2.5, 7.3.1, 7.3.2, 7.3.3, 8.2.7, 8.2.8, 8.3.4
S3 access points should have block public access settings enabledMapped1.2.8, 1.3.1, 1.3.2, 1.4.2, 1.5.1, 3.5.1.3, 10.3.2, A1.1.2, A3.4.1
SageMaker endpoint configuration encryption should be enabledMapped8.3.2
SageMaker notebook instances should not have direct internet accessMapped1.2.8, 1.3.1, 1.3.2, 1.4.2, 1.4.4, 1.5.1, 3.5.1.3, 10.3.2, A1.1.2, A3.4.1
SageMaker notebook instance encryption should be enabledMapped3.5.1, 8.3.2
SageMaker notebook instances should be in a VPCMapped1.2.8, 1.3.1, 1.3.2, 1.4.1, 1.4.2, 1.4.4, 1.5.1, A1.1.2
SageMaker notebook instances root access should be disabledMapped7.2.1, 7.2.2, 7.2.3

Enforced or mapped without a named PCI DSS clause

The catalog lists these 40 controls under PCI DSS but names no PCI DSS clause for them, so the register and the counts in B.3 leave them out. Each still links to its docs page.

ControlStatus
CloudFront distributions should require encryption in transitEnforced
CloudFront distributions should use SNI to serve HTTPS requestsEnforced
CloudFront distributions should use custom SSL/TLS certificatesEnforced
DMS replication instances should not be publicly accessibleEnforced
ECS clusters should have container insights enabledEnforced
ECS fargate services should run on the latest fargate platform versionEnforced
EFS file systems should be encrypted with CMKEnforced
EKS clusters endpoint should restrict public accessEnforced
ElastiCache Redis clusters should have automatic backups enabled with a retention period of 15 days or greaterEnforced
ElastiCache for Redis replication groups should be encrypted with CMKEnforced
ELB application and network load balancer listeners should use ACM certificatesEnforced
ELB application and network load balancer listeners should use secure protocolsEnforced
FSx for OpenZFS file systems should be configured to copy tags to backups and volumesEnforced
OpenSearch domains should use HTTPSEnforced
OpenSearch domains should be in a VPCEnforced
Aurora PostgreSQL DB clusters should publish logs to CloudWatch LogsEnforced
RDS DB clusters should have automatic minor version upgrade enabledEnforced
RDS DB clusters should be encrypted with CMKEnforced
RDS DB instances backup retention period should be greater than or equal to 7Enforced
RDS DB instances should have logging enabledEnforced
RDS for MariaDB DB instances should publish logs to CloudWatch LogsEnforced
RDS DB instances should not use public subnetEnforced
RDS for PostgreSQL DB instances should publish logs to CloudWatch LogsEnforced
RDS DB instances should prohibit public accessEnforced
RDS for SQL Server DB instances should publish logs to CloudWatch LogsEnforced
Redshift clusters should have automatic snapshots enabledEnforced
Redshift clusters should have audit logging and encryption enabledEnforced
Redshift clusters should prohibit public accessEnforced
S3 buckets should have cross-region replication enabledEnforced
S3 buckets should have default encryption enabled using KMSEnforced
S3 buckets should have policies that prohibit public accessEnforced
S3 public access should be blocked at account levelEnforced
WAFv2 rules should have CloudWatch metrics enabledEnforced
API Gateway stages should have cache encryption at rest enabledMapped
CloudTrail trails should have at least one enabled trail present in a regionMapped
Elasticsearch domain should send logs to CloudWatchMapped
Kinesis streams should be encrypted with CMKMapped
Redshift Serverless workgroups should have enhanced VPC routing enabledMapped
S3 buckets should have object logging enabledMapped
S3 Multi-Region Access Points should have block public access settings enabledMapped

Clause IDs for the QSA. Your stack stays as it is.

Compliance.tf works alongside your scanners, plan policy, CSPM and GRC tool. It sets the controls in the modules and lists the clause each one is there for.

B.5

Evidence

B.5.1

What compliance.tf gives your QSA

  • The PCI DSS clause IDs behind each enforced setting, with stable control IDs and public docs pages.
  • The config snapshot bound to each environment, and the per-action audit log of promotions between environments.
B.5.2

What comes from your AWS account and GRC tool

Evidence of what actually runs comes from your own account, for example AWS Config and your CSPM. Your GRC tool keeps tracking policies and audit workflows.

B.6

Plans for PCI DSS

PCI DSS is in the 30-day trial and in Full Access, $1,000 a year on AWS Marketplace. Schedule of fees.

B.7

Questions about PCI DSS

B.7.1

Is this PCI DSS v3.2.1 or v4.0?

Compliance.tf supports PCI DSS v4.0, mandatory for assessments since 31 March 2024. Controls are mapped to v4.0 requirement IDs. If you need v3.2.1 mappings for transition purposes, contact us.

B.7.2

Can I adopt this gradually, or is it all-or-nothing?

Fully incremental. Start with one module in one environment. Your existing modules continue working untouched. If you use Terragrunt or Terramate to orchestrate your runs, nothing changes - you're only swapping the module source line. There is no global policy agent to deploy, no wrapper binary, no sidecar. Each module source line is independent.

B.7.3

What if we want to switch back?

Each module keeps the inputs and outputs of its terraform-aws-modules counterpart and needs no state migration, so switching back is the same source line change in reverse.