Sync Your Cloud
Sync Your Cloud

๐ŸชWe value your privacy

We use cookies to enhance your browsing experience, analyse site traffic, and personalise content. Choose your preferences below.

Essential CookiesRequired

Required for the website to function properly. These cannot be disabled.

Functional CookiesOptional

Enable personalised features like remembering your preferences and settings.

Home/Insights/PCI DSS Security Controls Matrix on AWS
PCI DSS 4.0.1 ยท QSA Guide

PCI DSS Security Controls Matrix on AWS: What QSAs Actually Use as Evidence

A security controls matrix that lists control names satisfies nobody. A QSA needs to know which AWS service produces the evidence, what the evidence looks like, and โ€” critically โ€” where the shared responsibility model ends and the entity's obligation begins. This is that matrix, built for use in AWS-hosted payment environment assessments under PCI DSS 4.0.1.

16 min read PCI DSS 4.0.1 Written for QSAs

Why Standard Controls Matrices Fail QSA Review

Most security controls matrices produced by AWS-hosted entities list control names from a compliance framework โ€” "firewall in place," "access logs enabled," "encryption at rest" โ€” without specifying the AWS artefact that demonstrates the control. This creates three problems in a QSA assessment:

  • No evidence trail. A control statement with no corresponding AWS resource ARN, Config rule name, or CloudTrail event cannot be tested. The QSA cannot confirm compliance without re-performing discovery from scratch.
  • Shared responsibility gaps are invisible. AWS manages physical security, hypervisor patching, and managed service infrastructure. But entities frequently claim AWS-managed controls as their own without documenting what the entity is responsible for in the shared model.
  • 4.0.1 specificity is missing. Requirements added or materially changed in 4.0.1 โ€” Req 6.4.3, 11.6.1, 12.3.2, 12.3.3 โ€” are absent from matrices produced before March 2025.

The matrix below maps each requirement domain to the specific AWS service that provides evidence, the Config rule or API call a QSA will verify, and the gap the entity must close independently of AWS.

How to use this matrix: For each requirement, the "AWS evidence" column identifies what exists in the AWS account. The "entity obligation" column identifies what the entity must produce that AWS does not generate automatically. A finding arises when the entity obligation column is empty in the client's documentation.

The Controls Matrix: Requirement by Requirement

Requirements 1 & 2 โ€” Network Controls and Secure Configuration

Sub-reqControlAWS evidence sourceEntity obligationCommon gap
1.2.1Network controls between CDE and other networksVPC Flow Logs, Security Group rules (describe-security-groups)Document which security group rules permit which flows and whyRules documented without business justification โ€” fails Req 1.2.1(b)
1.2.4Accurate network diagramAWS Config resource inventory, VPC topologyEntity-maintained diagram updated within 30 days of changeDiagram dated before most recent architecture change
1.3.2No direct public internet access to CDESecurity Hub: EC2.2 (no public IP on instances), ALB access logsWAF association documented and rule set reviewedWAF present but rule set not mapped to specific threat vectors
1.4.2Controls between trusted and untrusted networksSecurity group rules, NACL configurationDocumented review confirming rules follow least-access principleRules reviewed but no evidence review was performed by named individual
2.2.1System components use vendor-supported softwareAWS Systems Manager Patch Compliance, Inspector findingsPatch SLA policy signed by information security ownerPatch policy exists but not signed or lacks SLA commitment
2.2.7All non-console admin access encryptedCloudTrail: ConsoleLogin events, SSM Session Manager logsPolicy prohibiting unencrypted administrative accessSSH/RDP used for management alongside SSM โ€” dual-path not reconciled

Requirement 3 โ€” Protect Stored Account Data

Sub-reqControlAWS evidence sourceEntity obligationCommon gap
3.3.1SAD not retained post-authorisationNo AWS service detects SAD in application data โ€” this is entirely entity obligationCode review or DAST scan confirming no SAD in write paths; log scrubbing evidenceAssumed compliant with no technical evidence โ€” most frequent Req 3 finding
3.4.1PAN rendered unreadable in storageRDS encryption (Config: RDS.3), S3 SSE (Config: S3.4), DynamoDB encryption at restKMS key policy confirming entity controls key rotation; truncation at application layerAWS-managed KMS keys used โ€” entity does not control key policy or rotation
3.5.1Cryptographic key management proceduresKMS key rotation config (describe-key-rotation-status), CloudTrail: GenerateDataKey eventsDocumented key lifecycle (generation, distribution, retirement, destruction)Key management procedure exists but does not address compromise response
3.7.1Key rotation at least annuallyKMS automatic rotation enabled (verify via Config rule: KMS.4)Confirmation of rotation for all CMKs including those not auto-rotatedRotation enabled for some CMKs but not all โ€” asymmetric keys often missed

Requirements 6 & 11 โ€” Secure Development and Security Testing

Sub-reqControlAWS evidence sourceEntity obligationCommon gap
6.3.2Inventory of bespoke and custom softwareCodePipeline history, ECR image manifest, Lambda version historyMaintained software inventory with version, owner, and last-reviewed dateVersion history exists in AWS but no maintained inventory document
6.4.3 โ˜…Payment page scripts inventoried and integrity-protectedCloudFront access logs (script delivery), WAF logsScript inventory with authorisation, integrity hash (SRI), and monitoring evidenceNew in 4.0.1 โ€” most entities have no script inventory at all
6.4.4Test data removed before productionCodePipeline environment gates, separate account for test workloadsEvidence that production deployments do not carry test data or test credentialsShared accounts between test and prod โ€” test credentials found in prod Secrets Manager
11.3.1Internal penetration test annuallyNo AWS service performs pen testing โ€” AWS authorises but does not conductPen test report from qualified tester, scoped to CDE, within 12 monthsPen test scoped to network only โ€” application layer not tested
11.5.1Intrusion detection in CDEGuardDuty (threat detection), VPC Flow Logs anomaly alertingDocumented alert response procedure; evidence GuardDuty findings are reviewedGuardDuty enabled but findings not reviewed โ€” no response procedure documented
11.6.1 โ˜…Change/tamper detection for payment pagesCloudFront logs (header changes), WAF (request anomalies)CSP violation reporting to monitored endpoint; monitoring procedureNew in 4.0.1 โ€” CSP absent or reporting endpoint not monitored

โ˜… New or materially changed in PCI DSS 4.0.1

Requirements 7, 8 & 9 โ€” Access Control

Sub-reqControlAWS evidence sourceEntity obligationCommon gap
7.2.2Access limited to least privilegeIAM Access Analyzer findings, IAM credential reportRole-based access model documentation; access review recordsWildcard IAM actions on in-scope resources โ€” iam:* or s3:* in production roles
8.2.1All users have unique IDsIAM credential report (no shared users)Evidence no shared IAM users exist; service access via roles onlyShared IAM users found in older accounts โ€” often inherited from early setup
8.3.6MFA for all non-consumer access to CDEIAM: GetAccountSummary (MFA devices), CloudTrail: ConsoleLogin MFA statusMFA enforcement policy; evidence MFA cannot be bypassedMFA configured but not enforced by SCP or permission boundary
8.3.9Passwords/passphrases changed every 90 days (if used)IAM password policy (GetAccountPasswordPolicy)Confirmation of password policy enforcement and exception processPassword policy set to 90 days but max age not enforced for IAM users with API keys
8.6.1Interactive login for system/application accounts restrictedCloudTrail: AssumeRole events for service rolesEvidence service accounts cannot be used for interactive loginLambda execution roles also assigned to IAM users for debugging โ€” not decommissioned

Requirement 10 โ€” Logging and Monitoring

Sub-reqControlAWS evidence sourceEntity obligationCommon gap
10.2.1Log all individual access to CHDCloudTrail data events on in-scope S3/DynamoDB; application logsApplication-layer logging of CHD access by user/session IDCloudTrail management events enabled but data events on CHD stores not enabled
10.2.7Log all initialisation, halt, or pause of audit logsCloudTrail: StopLogging events; CloudWatch alarm on StopLoggingAlert confirmed as active and tested in last 12 monthsCloudTrail log integrity validation disabled โ€” log tampering undetected
10.3.2Audit log files protected from destructionS3 Object Lock on CloudTrail bucket; MFA delete enabledConfirmation bucket policy prevents log deletion by any principalS3 bucket allows log deletion by account root โ€” Object Lock not enabled
10.4.1Logs reviewed at least dailyCloudWatch alarms, SIEM alerts, GuardDuty findingsDocumented daily review process with evidence of reviews performedAutomated alerts exist but no evidence of human review or alert response
10.7.1Log retention: 12 months, 3 immediately availableS3 lifecycle policy on CloudTrail bucketLifecycle policy confirmed โ€” Glacier transition not before 90 daysLogs archived to Glacier at 30 days โ€” immediate access unavailable for 3-month window

The Shared Responsibility Gap: What AWS Does Not Cover

The AWS shared responsibility model is documented by AWS primarily from an infrastructure perspective. For PCI DSS, the boundaries are more nuanced. The following controls are not covered by any AWS service and are entirely the entity's obligation โ€” they appear frequently in assessments because entities assume AWS handles them:

Application-layer SAD detection
No AWS service scans application code or database contents for retained SAD (CVV, full track data). Static code analysis tools and database scanning must be procured and run by the entity.
Information security policy
AWS does not produce, maintain, or review the entity's information security policy (Req 12.1). This document must be authored, reviewed annually, and distributed by the entity.
Security awareness training
Req 12.6 requires annual security awareness training for all personnel. AWS provides no training records. The entity must maintain training completion evidence.
TPSP agreements and monitoring
Req 12.8 requires written agreements with TPSPs and annual confirmation of their PCI DSS status. AWS provides no TPSP management tooling โ€” the entity must maintain a TPSP register.
Physical media controls
Req 9 covers physical access controls and media handling. For AWS-hosted environments this primarily applies to offices and employee endpoints โ€” AWS covers data centre physical security only.
Incident response testing
Req 12.10.2 requires the incident response plan to be tested annually. No AWS service generates evidence of incident response exercises โ€” tabletop or simulation records must be produced by the entity.

AWS Config Rules That Map to PCI DSS Controls

AWS Security Hub's PCI DSS standard runs a subset of these Config rules automatically. The following rules are the most useful for QSA evidence collection โ€” verify they are active in all in-scope accounts and regions:

Config rulePCI DSS requirementWhat it checksLimitation
restricted-ssh1.2.1No security groups with unrestricted SSH (port 22) ingressDoes not check application ports or protocol-specific rules
rds-instance-public-access-check1.3.2RDS instances not publicly accessibleDoes not check network path from public subnet to RDS via EC2
kms-cmk-not-scheduled-for-deletion3.5.1No KMS CMKs scheduled for deletionDoes not verify key policy restricts access to authorised principals only
cloudtrail-enabled10.2.xCloudTrail enabled in accountDoes not verify data events are enabled or log integrity validation is active
cloudtrail-s3-dataevents-enabled10.2.1S3 data events loggedDoes not verify the specific S3 buckets storing CHD are covered
guardduty-enabled-centralized11.5.1GuardDuty enabled and centralisedDoes not verify findings are reviewed or that alerts trigger response procedures
mfa-enabled-for-iam-console-access8.3.6MFA enabled for IAM console usersDoes not verify MFA is enforced via SCP โ€” only checks if configured
s3-bucket-server-side-encryption-enabled3.4.1S3 buckets use SSEDoes not distinguish between AWS-managed and customer-managed keys

Assessment note: AWS Security Hub findings are a starting point, not a controls assessment. Security Hub does not test procedural controls, application-layer controls, or the quality of entity-produced documentation. A passing Security Hub posture score does not indicate PCI DSS compliance โ€” it indicates that a subset of AWS-native configuration checks passed.

Interactive assessment

Apply this in your assessment

This assessment maps directly to the controls in this article. Use it to generate gap evidence, cardholder data flow diagrams, or scoping documentation for a PCI DSS assessment โ€” free with a Sync Your Cloud account.

Security Controls Matrix Generator
Generate a PCI DSS 4.0.1 security controls matrix mapped to AWS services, Config rules, and CloudTrail evidence โ€” with entity obligation columns and a gap register ready for QSA review.