Cloud SQL 연결 암호화 설정 점검

데이터베이스 연결에서 암호화를 요구하고 클라이언트가 서버 인증서를 검증하는지 확인하세요.

설명

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를 사용해야 합니다.

참조