설명
구식 TLS 프로토콜을 허용하면 데이터베이스 연결의 보호 수준이 약해질 수 있습니다. 현재 Azure PostgreSQL Flexible Server는 TLS 1.2와 TLS 1.3을 지원하며 최소 버전의 기본값은 TLS 1.2입니다. 오래된 Single Server 설정을 그대로 사용하는 대신 현재 서비스의 TLS 설정을 확인해야 합니다.
잠재적 영향
- 구식 프로토콜을 허용하는 환경은 전송 보안 기준을 충족하지 못할 수 있습니다.
- 클라이언트 호환성을 확인하지 않고 최소 버전을 변경하면 필요한 연결이 실패할 수 있습니다.
해결 방법
Flexible Server에서 require_secure_transport를 on으로 유지하고 ssl_min_protocol_version에 지원되는 TLSv1.2 또는 TLSv1.3을 지정하세요. 클라이언트 호환성과 서버 인증서 검증을 확인하세요. 종료된 Single Server 구성은 지원되는 서비스로 이전하고 데이터 이전과 연결 전환을 별도로 계획하세요.
예시
변경 전은 종료된 Single Server에서 TLS 1.1을 허용하던 역사적 예제입니다. 현재 배포에 사용하지 마세요. 변경 후는 기존 Flexible Server의 두 TLS 매개변수만 설정하는 예제이며 서버 이전 절차는 아닙니다.
변경 전
hcl
resource "azurerm_postgresql_server" "example" {
name = "example-postgresql"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
sku_name = "GP_Gen5_4"
version = "11"
ssl_enforcement_enabled = true
ssl_minimal_tls_version_enforced = "TLS1_1"
}
변경 후
hcl
resource "azurerm_postgresql_flexible_server_configuration" "require_tls" {
name = "require_secure_transport"
server_id = azurerm_postgresql_flexible_server.example.id
value = "on"
}
resource "azurerm_postgresql_flexible_server_configuration" "example" {
name = "ssl_min_protocol_version"
server_id = azurerm_postgresql_flexible_server.example.id
value = "TLSv1.2"
}
변경 후에는 암호화된 연결을 요구하고 최소 TLS 버전을 1.2로 지정합니다. 이것이 현재 기본값보다 높은 버전을 설정한다는 의미는 아니며, 클라이언트에서 서버 인증서도 검증해야 합니다.