1. Docs
  2. Reference
  3. Pre-built Policy Packs
  4. PCI DSS
  5. AWS

PCI DSS v4.0.1 - AWS

    This page lists all 160 policies in the PCI DSS v4.0.1 pack for AWS.

    Policy NameDescriptionFramework ReferenceFramework Specification
    environment-separation-taggingEnsures that resources are tagged to distinguish between production and non-production environmentsA1.1.2A1.1.2: Controls are implemented such that each customer only has permission to access its own cardholder data and CDE
    athena-workgroup-enforce-configurationChecks that Athena Workgroups enforce their configuration to their clients.1.2.81.2.8: Configuration files for NSCs are secured from unauthorized access and are kept consistent with active network configurations
    database-strict-network-accessEnsures RDS instances have strict network access controls1.3.11.3.1: Inbound traffic to the CDE is restricted as follows: To only traffic that is necessary, All other traffic is specifically denied
    security-group-ssh-rdp-ingress-restrictedEnsures security groups do not allow SSH/RDP ingress from the internet1.3.11.3.1: Inbound traffic to the CDE is restricted as follows: To only traffic that is necessary, All other traffic is specifically denied
    security-group-default-denyEnsures security groups follow strict firewall rules with default deny1.3.1; 1.3.1; 1.3.2; 1.4.21.3.1: Inbound traffic to the CDE is restricted as follows: To only traffic that is necessary, All other traffic is specifically denied; 1.3.1: Inbound traffic to the CDE is restricted as follows: To only traffic that is necessary, All other traffic is specifically denied; 1.3.2: Outbound traffic from the CDE is restricted; 1.4.2: Inbound traffic from untrusted networks to trusted networks is restricted
    redshift-enhanced-vpc-routing-enabledEnsures Redshift clusters have enhanced VPC routing enabled for network isolation.1.3.1; 1.3.21.3.1: Inbound traffic to the CDE is restricted as follows: To only traffic that is necessary, All other traffic is specifically denied; 1.3.2: Outbound traffic from the CDE is restricted
    ec2-vpc-placement-requiredEC2 instances must be placed in VPC for network isolation1.3.1; 1.4.11.3.1: Inbound traffic to the CDE is restricted as follows: To only traffic that is necessary, All other traffic is specifically denied; 1.4.1: NSCs are implemented between trusted and untrusted networks *
    lambda-vpc-placement-requiredLambda functions must be deployed in VPC for network isolation and security1.3.1; 1.4.11.3.1: Inbound traffic to the CDE is restricted as follows: To only traffic that is necessary, All other traffic is specifically denied; 1.4.1: NSCs are implemented between trusted and untrusted networks *
    rds-private-subnet-validationValidates that RDS DB subnet groups contain only private subnets1.3.1; 1.4.11.3.1: Inbound traffic to the CDE is restricted as follows: To only traffic that is necessary, All other traffic is specifically denied; 1.4.1: NSCs are implemented between trusted and untrusted networks *
    elasticsearch-vpc-requiredElasticsearch domains must be deployed in VPC for network isolation1.3.1; 1.4.11.3.1: Inbound traffic to the CDE is restricted as follows: To only traffic that is necessary, All other traffic is specifically denied; 1.4.1: NSCs are implemented between trusted and untrusted networks *
    ec2-instance-disallow-public-ipChecks that EC2 instances do not have a public IP address.1.3.1; 1.4.21.3.1: Inbound traffic to the CDE is restricted as follows: To only traffic that is necessary, All other traffic is specifically denied; 1.4.2: Inbound traffic from untrusted networks to trusted networks is restricted
    ec2-launch-configuration-disallow-public-ipChecks that EC2 Launch Configurations do not have a public IP address.1.3.1; 1.4.21.3.1: Inbound traffic to the CDE is restricted as follows: To only traffic that is necessary, All other traffic is specifically denied; 1.4.2: Inbound traffic from untrusted networks to trusted networks is restricted
    ec2-launch-template-disallow-public-ipChecks that EC2 Launch Templates do not have public IP addresses.1.3.1; 1.4.21.3.1: Inbound traffic to the CDE is restricted as follows: To only traffic that is necessary, All other traffic is specifically denied; 1.4.2: Inbound traffic from untrusted networks to trusted networks is restricted
    emr-no-public-ipEMR clusters must not be deployed in public subnets that auto-assign public IP addresses1.3.1; 1.4.21.3.1: Inbound traffic to the CDE is restricted as follows: To only traffic that is necessary, All other traffic is specifically denied; 1.4.2: Inbound traffic from untrusted networks to trusted networks is restricted
    sagemaker-notebook-internet-access-disabledEnsures SageMaker notebook instances have direct internet access disabled.1.3.1; 1.4.21.3.1: Inbound traffic to the CDE is restricted as follows: To only traffic that is necessary, All other traffic is specifically denied; 1.4.2: Inbound traffic from untrusted networks to trusted networks is restricted
    vpc-route-table-internet-gateway-restrictedEnsures VPC route tables restrict public access to internet gateways appropriately.1.3.1; 1.4.21.3.1: Inbound traffic to the CDE is restricted as follows: To only traffic that is necessary, All other traffic is specifically denied; 1.4.2: Inbound traffic from untrusted networks to trusted networks is restricted
    vpc-subnet-auto-assign-public-ip-disabledEnsures VPC subnets have auto-assign public IP disabled to prevent unintended internet exposure.1.3.1; 1.4.21.3.1: Inbound traffic to the CDE is restricted as follows: To only traffic that is necessary, All other traffic is specifically denied; 1.4.2: Inbound traffic from untrusted networks to trusted networks is restricted
    eks-cluster-disallow-api-endpoint-public-accessCheck that EKS Clusters API Endpoint are not publicly accessible.1.3.1; 1.4.21.3.1: Inbound traffic to the CDE is restricted as follows: To only traffic that is necessary, All other traffic is specifically denied; 1.4.2: Inbound traffic from untrusted networks to trusted networks is restricted
    ec2-security-group-disallow-inbound-http-trafficCheck that EC2 Security Groups do not allow inbound HTTP traffic.1.3.1; 4.2.11.3.1: Inbound traffic to the CDE is restricted as follows: To only traffic that is necessary, All other traffic is specifically denied; 4.2.1: Strong cryptography and security protocols are implemented as follows to safeguard PAN during transmission over open, public networks *
    vpc-endpoint-security-policyEnsures that VPC endpoints are associated with security policies that limit access to specified resources1.3.1; 7.3.11.3.1: Inbound traffic to the CDE is restricted as follows: To only traffic that is necessary, All other traffic is specifically denied; 7.3.1: An access control system(s) is in place that restricts access based on a user’s need to know and covers all system components
    database-strict-egressEnsures database security groups have strict egress controls1.3.21.3.2: Outbound traffic from the CDE is restricted
    security-group-egress-restrictionEnsures security groups restrict egress traffic with default deny principles1.3.21.3.2: Outbound traffic from the CDE is restricted
    security-group-ssh-rdp-egress-restrictedEnforces strict egress restrictions for SSH and RDP traffic in security groups1.3.21.3.2: Outbound traffic from the CDE is restricted
    rds-instance-disallow-public-accessChecks that RDS Instance public access is not enabled.1.4.1; 1.4.21.4.1: NSCs are implemented between trusted and untrusted networks *; 1.4.2: Inbound traffic from untrusted networks to trusted networks is restricted
    rds-cluster-instance-disallow-public-accessChecks that RDS Cluster Instances public access is not enabled.1.4.1; 1.4.21.4.1: NSCs are implemented between trusted and untrusted networks *; 1.4.2: Inbound traffic from untrusted networks to trusted networks is restricted
    neptune-clusterinstance-no-public-accessChecks that Neptune Cluster Instances public access is not enabled.1.4.1; 1.4.21.4.1: NSCs are implemented between trusted and untrusted networks *; 1.4.2: Inbound traffic from untrusted networks to trusted networks is restricted
    dms-no-public-accessEnsures DMS replication instances are not publicly accessible to maintain security.1.4.1; 1.4.21.4.1: NSCs are implemented between trusted and untrusted networks *; 1.4.2: Inbound traffic from untrusted networks to trusted networks is restricted
    redshift-public-access-prohibitedEnsures Redshift clusters prohibit public access to prevent unauthorized connections.1.4.1; 1.4.21.4.1: NSCs are implemented between trusted and untrusted networks *; 1.4.2: Inbound traffic from untrusted networks to trusted networks is restricted
    s3-bucket-disallow-public-readChecks that S3 Bucket ACLs don’t allow ‘public-read’ or ‘public-read-write’ or ‘authenticated-read’.1.4.2; 7.3.11.4.2: Inbound traffic from untrusted networks to trusted networks is restricted; 7.3.1: An access control system(s) is in place that restricts access based on a user’s need to know and covers all system components
    s3-bucket-public-access-block-requiredEnsures each S3 bucket has a public access block with all settings enabled1.4.2; 7.3.11.4.2: Inbound traffic from untrusted networks to trusted networks is restricted; 7.3.1: An access control system(s) is in place that restricts access based on a user’s need to know and covers all system components
    lambda-public-access-restrictedLambda functions must restrict public access through resource-based policies1.4.2; 7.3.11.4.2: Inbound traffic from untrusted networks to trusted networks is restricted; 7.3.1: An access control system(s) is in place that restricts access based on a user’s need to know and covers all system components
    anti-spoofing-measuresEnsures AWS Network Firewall policies are configured with anti-spoofing measures to detect and block forged source IP addresses1.4.31.4.3: Anti-spoofing measures are implemented to detect and block forged source IP addresses from entering the trusted network *
    internal-ip-disclosure-preventionEnsures internal IP addresses are not disclosed through public-facing edge services1.4.51.4.5: The disclosure of internal IP addresses and routing information is limited to only authorized parties *
    s3-bucket-ssl-enforcement-requiredS3 buckets must enforce SSL/TLS for all requests to ensure encryption in transit2.2.7; 4.2.12.2.7: All non-console administrative access is encrypted using strong cryptography *; 4.2.1: Strong cryptography and security protocols are implemented as follows to safeguard PAN during transmission over open, public networks *
    elasticsearch-node-to-node-encryption-enabledElasticsearch domains must have node-to-node encryption enabled2.2.7; 4.2.12.2.7: All non-console administrative access is encrypted using strong cryptography *; 4.2.1: Strong cryptography and security protocols are implemented as follows to safeguard PAN during transmission over open, public networks *
    redshift-ssl-requiredEnsures Redshift clusters have encryption in transit enabled through SSL parameter configuration.2.2.7; 4.2.12.2.7: All non-console administrative access is encrypted using strong cryptography *; 4.2.1: Strong cryptography and security protocols are implemented as follows to safeguard PAN during transmission over open, public networks *
    cloudfront-distribution-configure-secure-tls-to-originChecks that CloudFront distributions communicate with custom origins using TLS 1.2 encryption only.2.2.7; 4.2.12.2.7: All non-console administrative access is encrypted using strong cryptography *; 4.2.1: Strong cryptography and security protocols are implemented as follows to safeguard PAN during transmission over open, public networks *
    cloudfront-distribution-enable-tls-to-originChecks that CloudFront distributions communicate with custom origins using TLS encryption.2.2.7; 4.2.12.2.7: All non-console administrative access is encrypted using strong cryptography *; 4.2.1: Strong cryptography and security protocols are implemented as follows to safeguard PAN during transmission over open, public networks *
    api-gateway-ssl-certificate-requiredEnsures API Gateway REST API stages have client certificates configured for SSL/TLS authentication to protect data in transit.2.2.7; 4.2.12.2.7: All non-console administrative access is encrypted using strong cryptography *; 4.2.1: Strong cryptography and security protocols are implemented as follows to safeguard PAN during transmission over open, public networks *
    api-gateway-domain-name-configure-security-policyChecks that ApiGateway Domain Name Security Policy uses secure/modern TLS encryption.2.2.7; 4.2.12.2.7: All non-console administrative access is encrypted using strong cryptography *; 4.2.1: Strong cryptography and security protocols are implemented as follows to safeguard PAN during transmission over open, public networks *
    api-gateway-v2-domain-name-configure-domain-name-security-policyChecks that any ApiGatewayV2 Domain Name Security Policy uses secure/modern TLS encryption.2.2.7; 4.2.12.2.7: All non-console administrative access is encrypted using strong cryptography *; 4.2.1: Strong cryptography and security protocols are implemented as follows to safeguard PAN during transmission over open, public networks *
    s3-bucket-lifecycleEnsures each S3 bucket has lifecycle rules configured for retention/disposal3.2.13.2.1: Account data storage is kept to a minimum through implementation of data retention and disposal policies, procedures, and processes
    ebs-unused-volumes-prohibitedEBS volumes must be removed when unused3.2.13.2.1: Account data storage is kept to a minimum through implementation of data retention and disposal policies, procedures, and processes
    kinesis-stream-retentionEnsures Kinesis streams have retention periods configured3.2.13.2.1: Account data storage is kept to a minimum through implementation of data retention and disposal policies, procedures, and processes
    sqs-message-retentionEnsures SQS queues have message retention periods configured3.2.13.2.1: Account data storage is kept to a minimum through implementation of data retention and disposal policies, procedures, and processes
    no-hardcoded-secretsEnsures EC2 instances do not contain hardcoded secrets3.3.2; 8.3.23.3.2: SAD that is stored electronically prior to completion of authorization is encrypted using strong cryptography; 8.3.2: Strong cryptography is used to render all authentication factors unreadable during transmission and storage on all system components
    ec2-instance-disallow-unencrypted-block-deviceChecks that EC2 instances do not have unencrypted block devices.3.5.1; 3.6.13.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure
    ec2-instance-disallow-unencrypted-root-block-deviceChecks that EC2 instances does not have unencrypted root volumes.3.5.1; 3.6.13.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure
    ec2-launch-configuration-disallow-unencrypted-block-deviceChecks that EC2 Launch Configurations do not have unencrypted block devices.3.5.1; 3.6.13.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure
    ec2-launch-configuration-disallow-unencrypted-root-block-deviceChecks that EC2 launch configuration do not have unencrypted root block device.3.5.1; 3.6.13.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure
    ec2-launch-template-disallow-unencrypted-block-deviceChecks that EC2 Launch Templates do not have unencrypted block device.3.5.1; 3.6.13.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure
    lambda-environment-variables-encryptionEnsures that all Lambda functions have their environment variables encrypted using AWS KMS3.5.1; 3.6.13.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure
    sagemaker-endpoint-kms-encryption-enabledEnsures SageMaker endpoint configurations have encryption enabled using KMS keys.3.5.1; 3.6.13.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure
    sagemaker-notebook-kms-encryption-enabledEnsures SageMaker notebook instances have encryption enabled using KMS keys.3.5.1; 3.6.13.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure
    dynamodb-kms-encryption-enabledEnsures DynamoDB tables have encryption enabled using KMS keys.3.5.1; 3.6.13.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure
    rds-cluster-disallow-unencrypted-storageChecks that RDS Clusters storage is encrypted.3.5.1; 3.6.13.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure
    rds-instance-disallow-unencrypted-storageChecks that RDS instance storage is encrypted.3.5.1; 3.6.13.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure
    elasticsearch-encryption-enabledElasticsearch domains must have encryption at rest enabled3.5.1; 3.6.13.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure
    redshift-kms-encryption-enabledEnsures Redshift clusters have encryption enabled using KMS keys.3.5.1; 3.6.13.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure
    athena-database-disallow-unencrypted-databaseChecks that Athena Databases storage is encrypted.3.5.1; 3.6.13.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure
    athena-workgroup-disallow-unencrypted-workgroupChecks that Athena Workgroups are encrypted.3.5.1; 3.6.13.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure
    ebs-volume-disallow-unencrypted-volumeChecks that EBS volumes are encrypted.3.5.1; 3.6.13.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure
    ecr-repository-disallow-unencrypted-repositoryChecks that ECR Repositories are encrypted.3.5.1; 3.6.13.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure
    efs-file-system-disallow-unencrypted-file-systemChecks that EFS File Systems do not have an unencrypted file system.3.5.1; 3.6.13.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure
    eks-cluster-enable-cluster-encryption-configCheck that EKS Cluster Encryption Config is enabled.3.5.1; 3.6.13.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure
    cloudtrail-kms-encryption-enabledEnsures CloudTrail trails have encryption enabled using KMS keys.3.5.1; 3.6.13.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure
    cloudwatch-log-group-kms-encryption-enabledEnsures CloudWatch log groups have encryption enabled using KMS keys.3.5.1; 3.6.13.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure
    api-gateway-cache-encryption-enabledEnsures API Gateway method settings have cache data encryption enabled when caching is configured.3.5.1; 3.6.13.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure
    sns-kms-encryption-enabledEnsures SNS topics have encryption enabled using KMS keys.3.5.1; 3.6.13.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure
    sqs-encryptionEnsures SQS queues have server-side encryption enabled3.5.1; 3.6.13.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure
    s3-bucket-encryptionS3 buckets must have server-side encryption configured using BucketServerSideEncryptionConfiguration resource3.5.1; 3.6.1; 3.6.1.23.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure; 3.6.1.2: Secret and private keys used to protect stored account data
    appflow-connector-profile-configure-customer-managed-keyCheck that AppFlow ConnectorProfile uses a customer-managed KMS key.3.5.1; 3.6.1; 3.6.1.23.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure; 3.6.1.2: Secret and private keys used to protect stored account data
    appflow-flow-configure-customer-managed-keyCheck that AppFlow Flow uses a customer-managed KMS key.3.5.1; 3.6.1; 3.6.1.23.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure; 3.6.1.2: Secret and private keys used to protect stored account data
    athena-database-configure-customer-managed-keyChecks that Athena Databases storage uses a customer-managed-key.3.5.1; 3.6.1; 3.6.1.23.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure; 3.6.1.2: Secret and private keys used to protect stored account data
    athena-workgroup-configure-customer-managed-keyChecks that Athena Workgroups use a customer-managed-key.3.5.1; 3.6.1; 3.6.1.23.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure; 3.6.1.2: Secret and private keys used to protect stored account data
    ebs-volume-configure-customer-managed-keyCheck that encrypted EBS volumes use a customer-managed KMS key.3.5.1; 3.6.1; 3.6.1.23.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure; 3.6.1.2: Secret and private keys used to protect stored account data
    ec2-launch-template-configure-customer-managed-keyCheck that encrypted EBS volume uses a customer-managed KMS key.3.5.1; 3.6.1; 3.6.1.23.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure; 3.6.1.2: Secret and private keys used to protect stored account data
    ecr-repository-configure-customer-managed-keyChecks that ECR repositories use a customer-managed KMS key.3.5.1; 3.6.1; 3.6.1.23.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure; 3.6.1.2: Secret and private keys used to protect stored account data
    efs-file-system-configure-customer-managed-keyCheck that encrypted EFS File system uses a customer-managed KMS key.3.5.1; 3.6.1; 3.6.1.23.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure; 3.6.1.2: Secret and private keys used to protect stored account data
    rds-cluster-configure-customer-managed-keyChecks that RDS Clusters storage uses a customer-managed KMS key.3.5.1; 3.6.1; 3.6.1.23.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure; 3.6.1.2: Secret and private keys used to protect stored account data
    rds-instance-configure-customer-managed-keyChecks that RDS Instance storage uses a customer-managed KMS key.3.5.1; 3.6.1; 3.6.1.23.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure; 3.6.1.2: Secret and private keys used to protect stored account data
    secrets-manager-secret-configure-customer-managed-keyCheck that Secrets Manager Secrets use a customer-manager KMS key.3.5.1; 3.6.1; 3.6.1.23.5.1 PAN is rendered unreadable anywhere it is stored; 3.6.1: Procedures are defined and implemented to protect cryptographic keys used to protect stored account data against disclosure; 3.6.1.2: Secret and private keys used to protect stored account data
    kms-grant-access-controlValidates KMS grants for least privilege access control3.6.1.3; 7.2.23.6.1.3: Access to cleartext cryptographic key components is restricted to the fewest number of custodians necessary; 7.2.2: Access is assigned to users, including privileged users
    kms-key-policy-access-controlValidates KMS key policies for least privilege and separation of duties3.6.1.3; 7.2.23.6.1.3: Access to cleartext cryptographic key components is restricted to the fewest number of custodians necessary; 7.2.2: Access is assigned to users, including privileged users
    kms-key-creationValidates KMS key creation with appropriate specifications and origins3.7.1; 3.7.23.7.1: Key-management policies and procedures are implemented to include generation of strong cryptographic keys used to protect stored account data; 3.7.2: Key-management policies and procedures are implemented to include secure distribution of cryptographic keys used to protect stored account data
    kms-key-rotation-enabledChecks that KMS Keys have key rotation enabled.3.7.43.7.4: Key management policies and procedures are implemented for cryptographic key changes for keys that have reached the end of their cryptoperiod, as defined by the associated application vendor or key owner
    secrets-manager-rotation-requiredEnsures Secrets Manager secrets have automatic rotation enabled with proper scheduling and frequency limits.3.7.43.7.4: Key management policies and procedures are implemented for cryptographic key changes for keys that have reached the end of their cryptoperiod, as defined by the associated application vendor or key owner
    kms-key-deletion-protectionValidates KMS key deletion windows and lifecycle management3.7.53.7.5: Key management policies procedures are implemented to include the retirement, replacement, or destruction of keys used to protect stored account data *
    elasticsearch-https-requiredElasticsearch domains must require HTTPS for client connections4.2.14.2.1: Strong cryptography and security protocols are implemented as follows to safeguard PAN during transmission over open, public networks *
    rds-instance-ssl-encryptionEnsures RDS instances have SSL/TLS encryption enabled through parameter group configuration4.2.14.2.1: Strong cryptography and security protocols are implemented as follows to safeguard PAN during transmission over open, public networks *
    rds-clusterinstance-ssl-encryptionEnsures RDS cluster instances have SSL/TLS encryption enabled through parameter group configuration4.2.14.2.1: Strong cryptography and security protocols are implemented as follows to safeguard PAN during transmission over open, public networks *
    cloudfront-distribution-configure-secure-tlsChecks that CloudFront distributions uses secure/modern TLS encryption.4.2.14.2.1: Strong cryptography and security protocols are implemented as follows to safeguard PAN during transmission over open, public networks *
    cloudfront-distribution-disallow-unencrypted-trafficChecks that CloudFront distributions only allow encypted ingress traffic.4.2.14.2.1: Strong cryptography and security protocols are implemented as follows to safeguard PAN during transmission over open, public networks *
    elb-load-balancer-disallow-unencrypted-trafficCheck that ELB Load Balancers do not allow unencrypted (HTTP) traffic.4.2.14.2.1: Strong cryptography and security protocols are implemented as follows to safeguard PAN during transmission over open, public networks *
    elasticbeanstalk-managed-updates-enabledElastic Beanstalk environments must have managed platform updates enabled6.3.36.3.3: All system components are protected from known vulnerabilities by installing applicable security patches/updates *
    lambda-runtime-restrictionsEnsures that AWS Lambda functions are created only with approved runtime versions6.3.36.3.3: All system components are protected from known vulnerabilities by installing applicable security patches/updates *
    rds-instance-managed-service-patchingEnsures RDS instances have automated minor version upgrades enabled6.3.36.3.3: All system components are protected from known vulnerabilities by installing applicable security patches/updates *
    rds-clusterinstance-managed-service-patchingEnsures RDS cluster instances have automated minor version upgrades enabled6.3.36.3.3: All system components are protected from known vulnerabilities by installing applicable security patches/updates *
    neptune-clusterinstance-managed-service-patchingEnsures Neptune cluster instances have automated minor version upgrades enabled6.3.36.3.3: All system components are protected from known vulnerabilities by installing applicable security patches/updates *
    docdb-clusterinstance-managed-service-patchingEnsures DocumentDB cluster instances have automated minor version upgrades enabled6.3.36.3.3: All system components are protected from known vulnerabilities by installing applicable security patches/updates *
    redshift-maintenance-requiredEnsures Redshift clusters have proper maintenance settings configured for automated updates.6.3.36.3.3: All system components are protected from known vulnerabilities by installing applicable security patches/updates *
    waf-association-validationValidates WAF Web ACL associations are properly configured6.4.26.4.2: For public-facing web applications, an automated technical solution is deployed that continually detects and prevents web-based attacks
    cloudfront-distribution-configure-wafChecks that any CloudFront distribution has a WAF ACL associated.6.4.26.4.2: For public-facing web applications, an automated technical solution is deployed that continually detects and prevents web-based attacks
    api-gateway-waf-enabledEnsures API Gateway stages have WAF Web ACL associations for protection against web attacks.6.4.26.4.2: For public-facing web applications, an automated technical solution is deployed that continually detects and prevents web-based attacks
    iam-user-group-membership-requiredIAM users must be members of groups for proper access management7.2.1; 7.2.27.2.1: An access control model is defined and includes granting access; 7.2.2: Access is assigned to users, including privileged users
    api-gateway-authorizationEnsures API Gateway methods use strong authorization instead of NONE7.2.1; 7.2.27.2.1: An access control model is defined and includes granting access; 7.2.2: Access is assigned to users, including privileged users
    s3-bucket-least-privilegePrevents overly permissive S3 bucket policies7.2.1; 7.2.2; 7.3.17.2.1: An access control model is defined and includes granting access; 7.2.2: Access is assigned to users, including privileged users; 7.3.1: An access control system(s) is in place that restricts access based on a user’s need to know and covers all system components
    pubsub-least-privilege-iamEnsures IAM policies follow least privilege principles for Pub/Sub services (SNS, SQS, Kinesis)7.2.1; 7.2.2; 7.3.17.2.1: An access control model is defined and includes granting access; 7.2.2: Access is assigned to users, including privileged users; 7.3.1: An access control system(s) is in place that restricts access based on a user’s need to know and covers all system components
    ecs-task-non-privileged-requiredECS task definitions must use non-privileged user for host mode7.2.27.2.2: Access is assigned to users, including privileged users
    iam-user-policy-least-privilegeEnsures IAM user policies follow least privilege principles7.2.2; 7.3.17.2.2: Access is assigned to users, including privileged users; 7.3.1: An access control system(s) is in place that restricts access based on a user’s need to know and covers all system components
    lambda-permission-configure-source-arnChecks that lambda function permissions have a source arn specified.7.2.2; 7.3.17.2.2: Access is assigned to users, including privileged users; 7.3.1: An access control system(s) is in place that restricts access based on a user’s need to know and covers all system components
    ec2-iam-profile-requiredEC2 instances must have IAM profile attached7.2.2; 8.2.17.2.2: Access is assigned to users, including privileged users; 8.2.1: All users are assigned a unique ID before access to system components or cardholder data is allowed *
    no-direct-user-access-keysPrevents creation of direct IAM user access keys for human users7.2.2; 8.2.17.2.2: Access is assigned to users, including privileged users; 8.2.1: All users are assigned a unique ID before access to system components or cardholder data is allowed *
    iam-user-policy-restrictionIAM user policies (inline policy attachments) should not be used7.2.3; 7.2.47.2.3: Required privileges are approved by authorized personnel *; 7.2.4: All user accounts and related access privileges, including third-party/vendor accounts, are reviewed *
    iam-user-policy-attachment-prohibitedIAM users must not have directly attached policies7.2.3; 7.2.47.2.3: Required privileges are approved by authorized personnel *; 7.2.4: All user accounts and related access privileges, including third-party/vendor accounts, are reviewed *
    rds-iam-authenticationEnsures RDS instances have IAM database authentication enabled8.2.18.2.1: All users are assigned a unique ID before access to system components or cardholder data is allowed *
    restrict-default-iam-user-creationEnsures that default IAM user accounts are not allowed to be created8.2.1; 8.2.28.2.1: All users are assigned a unique ID before access to system components or cardholder data is allowed *; 8.2.2: Group, shared, or generic IDs, or other shared authentication credentials are only used when necessary on an exception basis, and are managed
    iam-role-session-durationEnforces maximum session duration for IAM roles8.2.88.2.8: If a user session has been idle for more than 15 minutes, the user is required to re-authenticate to re-activate the terminal or session
    rds-secure-master-credentialsEnsures RDS instances use secure credential management instead of hardcoded passwords8.3.2; 8.3.2; 8.6.3; 8.6.38.3.2: Strong cryptography is used to render all authentication factors unreadable during transmission and storage on all system components; 8.3.2: Strong cryptography is used to render all authentication factors unreadable during transmission and storage on all system components; 8.6.3: 3 Passwords/passphrases for any application and system accounts are protected against misuse; 8.6.3: 3 Passwords/passphrases for any application and system accounts are protected against misuse
    iam-password-complexityIAM password policy must require character complexity (lowercase, uppercase, numbers, symbols)8.3.68.3.6: 6 If passwords/passphrases are used as authentication factors to meet Requirement 8.3.6, they meet the minimum level of complexity *
    iam-password-policy-minimum-lengthEnsure IAM password policy requires minimum length of 14 or greater.8.3.68.3.6: 6 If passwords/passphrases are used as authentication factors to meet Requirement 8.3.6, they meet the minimum level of complexity *
    iam-password-policy-prevent-reuseEnsure IAM password policy prevents password reuse.8.3.78.3.7: Individuals are not allowed to submit a new password/passphrase that is the same as any of the last four passwords/passphrases used *
    iam-password-expirationIAM password policy must expire passwords8.3.98.3.9 If passwords/passphrases are used as the only authentication factor for user access (i.e., in any single-factor authentication implementation) then either: • Passwords/passphrases are changed at least once every 90 days, OR • The security posture of accounts is dynamically analyzed, and real-time access to resources is automatically determined accordingly. *
    iam-role-assume-role-mfa-enforcementEnsures IAM roles require MFA when assumed by human users (not AWS services)8.4.2; 8.4.38.4.2 MFA is implemented for all non-console access into the CDE *; 8.4.3 MFA is implemented for all remote access originating from outside the entity’s network that could access or impact the CDE *
    iam-user-mfa-console-accessEnsures IAM users with console access have MFA devices8.4.2; 8.4.38.4.2 MFA is implemented for all non-console access into the CDE *; 8.4.3 MFA is implemented for all remote access originating from outside the entity’s network that could access or impact the CDE *
    ec2-monitoring-enabledEC2 instances must have detailed monitoring enabled10.2.110.2.1: Audit logs are enabled and active for all system components and cardholder data
    elasticbeanstalk-health-reporting-enabledElastic Beanstalk must have enhanced health reporting enabled10.2.110.2.1: Audit logs are enabled and active for all system components and cardholder data
    lambda-function-loggingEnsures that all AWS Lambda functions have logging enabled to track output data processing10.2.110.2.1: Audit logs are enabled and active for all system components and cardholder data
    rds-audit-loggingEnsures RDS instances have audit logging enabled10.2.110.2.1: Audit logs are enabled and active for all system components and cardholder data
    rds-instance-enhanced-monitoringRDS database instances must have enhanced monitoring enabled to provide detailed system-level metrics10.2.110.2.1: Audit logs are enabled and active for all system components and cardholder data
    rds-clusterinstance-enhanced-monitoringRDS cluster instances must have enhanced monitoring enabled to provide detailed system-level metrics10.2.110.2.1: Audit logs are enabled and active for all system components and cardholder data
    redshift-logging-enabledEnsures Redshift clusters have logging configurations enabled for audit and monitoring purposes.10.2.110.2.1: Audit logs are enabled and active for all system components and cardholder data
    wafv2-logging-enabledEnsures WAFv2 Web ACLs have logging configurations enabled for audit and monitoring purposes.10.2.110.2.1: Audit logs are enabled and active for all system components and cardholder data
    vpc-flow-logsEnsures VPC flow logs use approved destinations for centralized monitoring10.2.110.2.1: Audit logs are enabled and active for all system components and cardholder data
    vpc-subnet-flow-logsEnsures all VPCs and subnets have flow logs enabled10.2.110.2.1: Audit logs are enabled and active for all system components and cardholder data
    cloudfront-distribution-configure-access-loggingChecks that any CloudFront distributions have access logging configured.10.2.110.2.1: Audit logs are enabled and active for all system components and cardholder data
    elb-load-balancer-configure-access-loggingCheck that ELB Load Balancers uses access logging.10.2.110.2.1: Audit logs are enabled and active for all system components and cardholder data
    cloudtrail-multi-region-enabledEnsures CloudTrail trails are configured as multi-region trails for comprehensive audit coverage.10.2.110.2.1: Audit logs are enabled and active for all system components and cardholder data
    config-recorder-enabledEnsures AWS Config configuration recorders are enabled for tracking and auditing resource changes.10.2.110.2.1: Audit logs are enabled and active for all system components and cardholder data
    api-gateway-access-logging-enabledEnsures API Gateway stages have access logging enabled10.2.110.2.1: Audit logs are enabled and active for all system components and cardholder data
    api-gateway-v2-access-loggingEnsures API Gateway V2 stages have access logging enabled10.2.110.2.1: Audit logs are enabled and active for all system components and cardholder data
    audit-admin-actions-loggedEnsures CloudTrail captures all administrative actions10.2.1.2; 10.2.1.5; 10.2.1.6; 10.2.1.710.2.1.2: Audit logs capture all actions taken by any individual with administrative access *; 10.2.1.5: Audit logs capture creation and deletion of system-level objects *; 10.2.1.6: Audit logs capture initialization, stopping, or pausing of the audit logs *; 10.2.1.7: Audit logs capture creation and deletion of system level objects *
    audit-log-access-loggedEnsures CloudTrail has S3 data events logging enabled for all S3 buckets10.2.1.310.2.1.3: Audit logs capture all access to audit logs *
    cloudtrail-s3-data-events-enabledEnsures CloudTrail trails have S3 data events enabled for comprehensive object-level logging.10.2.1; 10.2.1.110.2.1: Audit logs are enabled and active for all system components and cardholder data; 10.2.1.1: Audit logs capture all individual user access to cardholder data *
    cloudtrail-enabledEnsures CloudTrail is enabled with at least one active trail for audit logging.10.2.1; 10.2.1.410.2.1: Audit logs are enabled and active for all system components and cardholder data; 10.2.1.4: Audit logs capture all invalid access attempts *
    s3-bucket-access-loggingEnsures each S3 bucket has access logging enabled10.2.1; 10.3.310.2.1: Audit logs are enabled and active for all system components and cardholder data; 10.3.3: Audit log files, including those for externalfacing technologies, are promptly backed up to a secure, central, internal log server(s) or other media that is difficult to modify
    elasticsearch-cloudwatch-logging-enabledElasticsearch domains must send logs to CloudWatch for audit tracking10.2.1; 10.3.310.2.1: Audit logs are enabled and active for all system components and cardholder data; 10.3.3: Audit log files, including those for externalfacing technologies, are promptly backed up to a secure, central, internal log server(s) or other media that is difficult to modify
    cloudtrail-s3-bucket-public-access-deniedEnsures S3 buckets used for CloudTrail logging deny public access to protect audit information.10.3.210.3.2: Audit log files are protected to prevent modifications by individuals *
    cloudtrail-cloudwatch-logs-integrationEnsures CloudTrail trails have CloudWatch Logs integration enabled for real-time monitoring and analysis.10.3.310.3.3: Audit log files, including those for externalfacing technologies, are promptly backed up to a secure, central, internal log server(s) or other media that is difficult to modify
    cloudtrail-log-file-validation-enabledEnsures CloudTrail trails have log file validation enabled to protect audit log integrity.10.3.410.3.4: File integrity monitoring or change-detection mechanisms is used on audit logs to ensure that existing log data cannot be changed without generating alerts *
    security-hub-enabledEnsures AWS Security Hub is enabled for continuous monitoring and security assessment.10.4.1; 10.4.1.110.4.1: Potentially suspicious or anomalous activities are quickly identified to minimize impact *; 10.4.1.1: Automated mechanisms are used to perform audit log reviews *
    config-rule-auto-remediation-enabledEnsures AWS Config rules have automatic remediation configured for integrity violations.10.4.310.4.3: Exceptions and anomalies identified during the review process are addressed *
    cloudwatch-log-retentionEnsures CloudWatch log groups have appropriate retention periods for compliance.10.5.110.5.1: Retain audit log history for at least 12 months, with at least the most recent three months immediately available for analysis *
    config-snapshot-retentionEnsures AWS Config retention configuration meets minimum 7-year requirement for compliance auditing.10.5.110.5.1: Retain audit log history for at least 12 months, with at least the most recent three months immediately available for analysis *
    cloudwatch-alarms-actions-requiredEnsures CloudWatch alarms have actions enabled and configured for proper incident response.10.7.2; 12.10.510.7.2: Failures in critical security control systems are promptly identified and addressed *; 12.10.5: The security incident response plan includes monitoring and responding to alerts from security monitoring systems *
    ecs-task-definition-image-scanningEnsures ECS task definitions use images from repositories with vulnerability scanning11.3.111.3.1: Internal vulnerability scans are performed
    guardduty-malware-detection-enabledEnsures AWS GuardDuty is enabled with malware detection capabilities for threat protection.11.5.111.5.1: Intrusion-detection and/or intrusionprevention techniques are used to detect and/or prevent intrusions into the network *
    dynamodb-streams-enabledEnforces that all DynamoDB tables have Stream settings enabled to capture all changes11.5.211.5.2: A change-detection mechanism (for example, file integrity monitoring tools) is deployed
    ecr-repository-disallow-mutable-imageChecks that ECR Repositories have immutable images enabled.11.5.211.5.2: A change-detection mechanism (for example, file integrity monitoring tools) is deployed
    resource-taggingEnsures all AWS resources must include tags for proper change tracking11.5.211.5.2: A change-detection mechanism (for example, file integrity monitoring tools) is deployed
      Neo just got smarter about infrastructure policy automation