[GCP] AWS RDS to GCP Cloud SQL 과 SSL 설정
PACK-UP ver 2.0을 진행하면서 AWS RDS 쓰던거를 GCP Cloud SQL으로 전환했다.
GCP 쪽에 크레딧 받은게 좀 있기도 하고.. GCP를 쓰면 Google OAuth2 관련 설정도 함께 관리할 수 있으니까..
웹 콘솔에서는 잘 뜨는데. DBeaver나 DataGrip같은 DB Tool로 Cloud SQL에 붙으려니까 접속이 안됨;

터미널에서는 잘 붙는데 DBeaver로 붙으려니까 죽어도 안붙네 하;;
일단 저 MySQL 도 문제임. 비번 틀리게 쳐도 저 using password:YES 이거 뜨고, 제대로 쳐도 using password:YES 뜨고..
비번이 틀렸으면 비번이 틀렸다고 안내해주면 안되나?
비번이 틀려도, SSL이 안 맞아도, 인증이 깨져도 다 Access Denied (using password:YES) 로 뱉으니까 참 답답한 상황.
생각해보니 케이스별로 출력을 다르게 해주면 단계적으로 해킹에 사용할 수도 있을 것 같네..
계정 존재 여부 확인 - 인증 방식 확인 - 서버 설정 확인 이런식으로..
일단 저런 출력을 내가 바꿀수는 없으니까 주어진 정보를 최대한 활용해야 한다.
일단 터미널 CLI에서는 잘 붙으니까 DB나 계정문제는 아니다.
비번도 똑같이 쳤으니까 비번 문제도 아니고.
드라이버 버전이나 SSL 문제로 좁혀짐.
https://docs.cloud.google.com/sql/docs/mysql/recommender-require-ssl?hl=ko

GCP 공식문서를 읽어보면 전송 계층 보안 없이는 인증 단계 자체를 거부한다고 함. (Zero Trust)
반면 이전까지 잘 쓰고 있던 RDS는 레거시 호환성을 위해 SSL/TLS 를 적용하지 않아도 연결을 허용한다.
그래서 RDS를 쓸 때는 DBeaver같은 툴로 별다른 설정 없이 접속할 수 있었지만, Cloud SQL에서는 SSL 설정을 안해주면 접속 자체를 거부해버린다.
MySQL 8.0 부터는 caching_sha2_password 를 인증 플러그인으로 사용하는데, 이 플러그인은 캐시가 비워졌을 때 비밀번호 원문을 서버로 전송해야 한다.
여기가 문제임. 원문을 전송할 때 보안 채널이 꼭 필요하다.
RSA 방식으로 공개키를 클라이언트에게 제공해야 하는데, DBeaver같은 JDBC 기반 도구에서 SSL 설정을 안하면 공개키를 줄 수가 없어서 연결에 실패하게 되는 것..
맥북의 터미널은 SSL 공개키 교환을 자동으로 다 해주니까 따로 설정해주지 않아도 접속이 잘 됐던것,,
반면 DBeaver의 JDBC 드라이버는 보안때문에 SSL 자동 활성화도 안하고 공개키 자동 요청도 안한다. 그러니 직접 설정해 줘야 함.

DBeaver에서 연결하려면 SSL 설정을 해 줘야 함.

Require SSL에 체크해주고, Verify Server Certificate는 해제해주자.
저렇게 설정하면 웬만하면 될텐데
그래도 안 되면 Driver Properties에 들어가서 allowPublicKeyRetrieval=true 도 설정해 줘야 함.
사실 SSH 터널링 하면 저런 설정 없이도 접속할 수 있긴 함..
DBeaver가 GCP 내부 네트워크에 있는 호스트에 SSH 연결을 설정하고, SSH 터널 안에서 접속을 진행함.
DBeaver는 로컬호스트로 접근하는 것 같지만 사실 SSH 터널을 사용한다는 것..
그러니 SSH 터널링 쓰고 RSA 공개키 수신을 허용해주면 쉽게 연결할 수 있음.
'💡 솔루션' 카테고리의 다른 글
| [SQL Server] 고비용 쿼리 튜닝 (0) | 2025.11.29 |
|---|---|
| [Elasticsearch] 인덱스 재구성 및 최적화 (0) | 2025.11.13 |
| localhost 브라우저에서 쿠키 제대로 받기 (0) | 2025.06.25 |
| [SQL Server] 암호화 된 View 다루기 (1) | 2025.01.03 |
| [MySQL] WITH RECURSIVE 계층 쿼리 (0) | 2024.12.13 |
댓글
이 글 공유하기
다른 글
-
[SQL Server] 고비용 쿼리 튜닝
[SQL Server] 고비용 쿼리 튜닝
2025.11.29 -
[Elasticsearch] 인덱스 재구성 및 최적화
[Elasticsearch] 인덱스 재구성 및 최적화
2025.11.13 -
localhost 브라우저에서 쿠키 제대로 받기
localhost 브라우저에서 쿠키 제대로 받기
2025.06.25 -
[SQL Server] 암호화 된 View 다루기
[SQL Server] 암호화 된 View 다루기
2025.01.03