설명
Cloud SQL이 암호화되지 않은 직접 연결도 허용하면 클라이언트가 평문으로 자격 증명이나 데이터를 보낼 수 있습니다. ssl_mode로 암호화 연결을 요구하세요. Cloud SQL Auth Proxy와 Connectors는 자체 연결을 자동으로 암호화합니다.
잠재적 영향
암호화되지 않은 연결에서는 네트워크 구간의 도청이나 변조로 데이터가 노출되거나 변경될 수 있습니다.
해결 방법
SQL Server에는 ENCRYPTED_ONLY를 사용하세요. MySQL과 PostgreSQL은 ENCRYPTED_ONLY 또는 유효한 클라이언트 인증서를 요구하는 TRUSTED_CLIENT_CERTIFICATE_REQUIRED를 사용할 수 있습니다. 클라이언트 설정을 먼저 준비하고 변경 후 기존 평문 연결도 종료하세요.
예시
다음 PostgreSQL 예시는 암호화와 유효한 클라이언트 인증서를 함께 요구합니다. 클라이언트 인증서와 생략된 네트워크 설정은 별도로 준비해야 합니다.
변경 전
hcl
resource "google_sql_database_instance" "sql_instance" {
name = "private-instance"
region = "us-central1"
database_version = "POSTGRES_15"
settings {
tier = "db-f1-micro"
ip_configuration {
ipv4_enabled = false
private_network = google_compute_network.private_network.id
ssl_mode = "ALLOW_UNENCRYPTED_AND_ENCRYPTED"
}
}
}
변경 후
hcl
resource "google_sql_database_instance" "sql_instance" {
name = "private-instance"
region = "us-central1"
database_version = "POSTGRES_15"
settings {
tier = "db-f1-micro"
ip_configuration {
ipv4_enabled = false
private_network = google_compute_network.private_network.id
ssl_mode = "TRUSTED_CLIENT_CERTIFICATE_REQUIRED"
}
}
}