설명
Cloud SQL이 암호화되지 않은 연결을 허용하면 전송 중인 자격 증명과 업무 데이터가 노출될 수 있습니다. 사설 네트워크에서도 연결 암호화와 서버 인증서 검증을 유지해야 합니다.
현재 sslMode는 기존 requireSsl보다 우선하므로 requireSsl의 생략만으로 평문 연결을 허용한다고 단정할 수 없습니다. 사용 중인 엔진의 실제 TLS 모드와 클라이언트 설정을 함께 확인하세요.
잠재적 영향
- 보호되지 않은 연결에서 민감한 데이터가 가로채질 수 있습니다.
- 서버 인증서를 올바르게 검증하지 않으면 중간자 공격 위험이 커질 수 있습니다.
해결 방법
- 지원되는 관리 도구에서 해당 엔진에 맞는 암호화 전용 모드를 설정하세요. 클라이언트 인증서도 요구할 경우 필요한 인증서를 먼저 준비하세요.
- 애플리케이션의 TLS 및 서버 검증을 시험하세요. Cloud SQL Auth Proxy를 사용한다면 애플리케이션과 프록시 사이의 별도 연결 구간도 보호하세요.
- 실제 연결이 암호화되는지 확인하고 데이터베이스 권한과 네트워크 접근도 제한하세요.
예시
Deployment Manager 지원은 종료되었습니다. 아래는 MySQL 또는 PostgreSQL의 기존 연결 설정 발췌입니다. 엔진·리전 등 전체 구성은 별도로 필요합니다. 이 엔진들에서 requireSsl: true는 신뢰할 수 있는 클라이언트 인증서도 요구하므로 클라이언트를 먼저 준비하세요.
변경 전
yaml
resources:
- name: sql-instance
type: sqladmin.v1beta4.instance
properties:
settings:
tier: db-custom-1-3840
별도의 연결 암호화 요구를 명시하지 않습니다. 실제 적용된 sslMode와 클라이언트의 연결 상태를 확인해야 합니다.
변경 후
yaml
resources:
- name: sql-instance
type: sqladmin.v1beta4.instance
properties:
settings:
tier: db-custom-1-3840
ipConfiguration:
requireSsl: true
기존 requireSsl 옵션을 활성화합니다. MySQL·PostgreSQL에서 함께 sslMode를 지정한다면 호환되는 TRUSTED_CLIENT_CERTIFICATE_REQUIRED를 사용해야 합니다.