Back to Checks
Glue connection has SSL enabled
glue_database_connections_ssl_enabled
Service: glueSeverity: high
OfficialBuilt-inVerified
Categories:encryption
Resource Type:Other
AWS Glue connections require TLS/SSL for JDBC when the JDBC_ENFORCE_SSL property is set to true.
This evaluates connection definitions to confirm SSL is enforced for traffic to external data stores.
Risk
Absent TLS enforcement, JDBC traffic-including credentials, queries, and results-can be intercepted or modified in transit.
This enables:
- Confidentiality loss via sniffing/MITM
- Integrity tampering of queries/results
- Credential theft leading to broader database access
Run this check with Prowler
Run in Prowler CloudRun
prowler aws --checks glue_database_connections_ssl_enabledRecommendation
Enforce TLS on all Glue connections (set JDBC_ENFORCE_SSL=true) and require encryption on target databases.
Apply defense in depth: validate certificates, restrict network exposure, prefer private connectivity, and use least-privilege credentials with rotation.
Remediation
CLI
aws glue update-connection --name <example_resource_name> --connection-input '{"Name":"<example_resource_name>","ConnectionType":"JDBC","ConnectionProperties":{"JDBC_CONNECTION_URL":"<example_jdbc_url>","JDBC_ENFORCE_SSL":"true"}}'Terraform
# Terraform: Enable SSL on a Glue JDBC connection
resource "aws_glue_connection" "<example_resource_name>" {
name = "<example_resource_name>"
connection_type = "JDBC"
connection_properties = {
JDBC_CONNECTION_URL = "<example_jdbc_url>"
JDBC_ENFORCE_SSL = "true" # Critical: forces SSL for the JDBC connection
}
}NativeIaC
# CloudFormation: Enable SSL on a Glue JDBC connection
Resources:
<example_resource_name>:
Type: AWS::Glue::Connection
Properties:
ConnectionInput:
ConnectionType: JDBC
ConnectionProperties:
JDBC_CONNECTION_URL: "<example_jdbc_url>"
JDBC_ENFORCE_SSL: "true" # Critical: forces SSL for the JDBC connectionOther
1Open the AWS Console and go to AWS Glue > Data Catalog > Connections
2Select the connection and click Edit
3In Connection properties (Advanced properties), add key JDBC_ENFORCE_SSL with value true (or check Require SSL)
4Click Save
Check Code
from prowler.lib.check.models import Check, Check_Report_AWS
from prowler.providers.aws.services.glue.glue_client import glue_client
class glue_database_connections_ssl_enabled(Check):
def execute(self):
findings = []
for conn in glue_client.connections:
report = Check_Report_AWS(metadata=self.metadata(), resource=conn)
report.status = "FAIL"
report.status_extended = (
f"Glue connection {conn.name} has SSL connection disabled."
)
if conn.properties.get("JDBC_ENFORCE_SSL") == "true":
report.status = "PASS"
report.status_extended = (
f"Glue connection {conn.name} has SSL connection enabled."
)
findings.append(report)
return findings