Using clear-text protocols exposes data in transit to eavesdropping and man-in-the-middle attacks.
An attacker who can observe network traffic — for example through a compromised network device, a position on the same network segment, or a cloud
environment breach — can read, modify, or inject data sent over ftp, telnet, http, or unencrypted SMTP without
detection. This is true even on internal or isolated networks, where insider threats or lateral movement after an initial compromise can expose
unencrypted traffic. This rule raises an issue when a clear-text protocol scheme is used or when encryption is explicitly disabled for a network
connection.
An attacker who can intercept network traffic can read all data transmitted over clear-text connections, including credentials, session tokens, API keys, or personal data.
Because clear-text protocols provide no integrity protection, an attacker in a man-in-the-middle position can silently modify data in transit — redirecting users to malicious endpoints, injecting malicious content into responses, or altering commands sent to remote services.
The following code uses a clear-text protocol or disables encryption for a network connection, leaving transmitted data exposed to interception.
AWSTemplateFormatVersion: 2010-09-09
Resources:
KinesisStream: # Noncompliant
Type: AWS::Kinesis::Stream
Properties:
ShardCount: 1
# No StreamEncryption
AWSTemplateFormatVersion: 2010-09-09
Resources:
KinesisStream:
Type: AWS::Kinesis::Stream
Properties:
ShardCount: 1
StreamEncryption:
EncryptionType: KMS
The following code uses a clear-text protocol or disables encryption for a network connection, leaving transmitted data exposed to interception.
AWSTemplateFormatVersion: 2010-09-09
Resources:
Example:
Type: AWS::ElastiCache::ReplicationGroup
Properties:
ReplicationGroupId: "example"
TransitEncryptionEnabled: false # Noncompliant
AWSTemplateFormatVersion: 2010-09-09
Resources:
Example:
Type: AWS::ElastiCache::ReplicationGroup
Properties:
ReplicationGroupId: "example"
TransitEncryptionEnabled: true
The following code uses a clear-text protocol or disables encryption for a network connection, leaving transmitted data exposed to interception.
AWSTemplateFormatVersion: 2010-09-09
Resources:
EcsTask:
Type: AWS::ECS::TaskDefinition
Properties:
Family: "service"
Volumes:
-
Name: "storage"
EFSVolumeConfiguration:
FilesystemId: !Ref FS
TransitEncryption: "DISABLED" # Noncompliant
AWSTemplateFormatVersion: 2010-09-09
Resources:
EcsTask:
Type: AWS::ECS::TaskDefinition
Properties:
Family: "service"
Volumes:
-
Name: "storage"
EFSVolumeConfiguration:
FilesystemId: !Ref FS
TransitEncryption: "ENABLED"
The following code uses a clear-text protocol or disables encryption for a network connection, leaving transmitted data exposed to interception.
AWSTemplateFormatVersion: 2010-09-09
Resources:
HTTPlistener:
Type: "AWS::ElasticLoadBalancingV2::Listener"
Properties:
DefaultActions:
- Type: "redirect"
RedirectConfig:
Protocol: "HTTP" # Noncompliant
Protocol: "HTTP" # Noncompliant
AWSTemplateFormatVersion: 2010-09-09
Resources:
HTTPlistener:
Type: "AWS::ElasticLoadBalancingV2::Listener"
Properties:
DefaultActions:
- Type: "redirect"
RedirectConfig:
Protocol: "HTTPS"
Protocol: "HTTPS"
The following code uses a clear-text protocol or disables encryption for a network connection, leaving transmitted data exposed to interception.
AWSTemplateFormatVersion: 2010-09-09
Resources:
Example:
Type: AWS::OpenSearchService::Domain
Properties:
DomainName: example
DomainEndpointOptions:
EnforceHTTPS: false # Noncompliant
NodeToNodeEncryptionOptions:
Enabled: false # Noncompliant
AWSTemplateFormatVersion: 2010-09-09
Resources:
Example:
Type: AWS::OpenSearchService::Domain
Properties:
DomainName: example
DomainEndpointOptions:
EnforceHTTPS: true
NodeToNodeEncryptionOptions:
Enabled: true
The following code uses a clear-text protocol or disables encryption for a network connection, leaving transmitted data exposed to interception.
AWSTemplateFormatVersion: 2010-09-09
Resources:
MSKCluster:
Type: 'AWS::MSK::Cluster'
Properties:
ClusterName: MSKCluster
EncryptionInfo:
EncryptionInTransit:
ClientBroker: TLS_PLAINTEXT # Noncompliant
InCluster: false # Noncompliant
AWSTemplateFormatVersion: 2010-09-09
Resources:
MSKCluster:
Type: 'AWS::MSK::Cluster'
Properties:
ClusterName: MSKCluster
EncryptionInfo:
EncryptionInTransit:
ClientBroker: TLS
InCluster: true
Amazon MSK encrypts data in transit by default, allowing you to omit the EncryptionInTransit configuration entirely.