RDS for SQL Server DB instances should be encrypted in transit
Checks that RDS for SQL Server DB instances set rds.force_ssl to 1 in their DB parameter group, which makes SQL Server encrypt every connection. Without it, a client that does not ask for encryption sends its queries and results unencrypted.
- service
- RDS
- severity
- Medium
- scope
- evaluated in every region
How to fix it
- Interrupts service: rds.force_ssl is static here: nothing changes until the instance reboots, though this check passes as soon as the group holds 1, and an instance on a default group needs a custom group first.
- Can break clients: Clients need no change to be encrypted, though AWS notes that SSMS 19.3, 20.0 and 20.2 need Trust Server Certificate enabled and the RDS certificate imported.
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=pending-reboot --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"
apply_method = "pending-reboot"
}
}
See which of your accounts this check is failing on.
Book a live scan