All checks
Medium RDS · regional

RDS for PostgreSQL DB instances should be encrypted in transit

Checks that RDS for PostgreSQL DB instances set rds.force_ssl to 1 in their DB parameter group. With it on, the database rejects any connection that does not use SSL/TLS, so credentials and query data do not cross the network in clear text.

service
RDS
severity
Medium
scope
evaluated in every region

How to fix it

  • Interrupts service: If the instance is on a default parameter group, which cannot be edited, attach a custom group holding this value; it applies only after a reboot, though this check passes before then.
  • Can break clients: Once it applies, PostgreSQL rejects any connection without SSL/TLS, so move every application, job and agent onto SSL/TLS first.

In the console

RDS → Parameter groups → the group attached to the DB instance

rds.force_ssl
1

With the AWS CLI

aws rds modify-db-parameter-group --db-parameter-group-name <parameter-group-name> --parameters ParameterName=rds.force_ssl,ParameterValue=1,ApplyMethod=immediate --region <region>

With Terraform

resource "aws_db_parameter_group" "this" {
  name   = var.parameter_group_name
  family = var.family

  parameter {
    name  = "rds.force_ssl"
    value = "1"
  }
}

See which of your accounts this check is failing on.

Book a live scan