CloudSQL (mysql) 인증서 구성
서버 인증서
- 자동 생성, 만료일 10년
- 서버 인증서 순환
- 인증서 만료에 관한 알림(3개월전에 메일)을 받았거나 순환을 시작한 경우 진행
- 순서
- 서버 인증서 순환
- 클라이언트에 서버 인증서 교체
클라이언트 인증서: 인스턴스당 10개로 제한
참고
CloudSQL Instance SSL/TLS 적용
gcloud sql instances patch INSTANCE_NAME \
--require-ssl
서버 인증서 만들기
인증서 정보 가져오기
gcloud beta sql ssl server-ca-certs list \
--instance=INSTANCE_NAME
서버 인증서 만들기
gcloud beta sql ssl server-ca-certs create \
--instance=INSTANCE_NAME
PEM 다운로드
gcloud beta sql ssl server-ca-certs list \
--format="value(cert)" \
--instance=INSTANCE_NAME > \
FILE_PATH/FILE_NAME.pem
클라이언트 인증서 없이 접속
클라이언트 인증서 만들기
- IAM Role: Cloud SQL Admin
- 만료일 10년
- 알림 발송 없음
client-key.pem
gcloud sql ssl client-certs create CERT_NAME client-key.pem \
--instance=INSTANCE_NAME
client-cert.pem
gcloud sql ssl client-certs describe CERT_NAME \
--instance=INSTANCE_NAME \
--format="value(cert)" > client-cert.pem
server-ca.pem
server-ca.pem으로 저장된 서버 인증서
client-cert.pem으로 저장된 클라이언트 공개 키 인증서
client-key.pem으로 저장된 클라이언트 비공개 키
client로 Cloudsql ssl/tls 접속
mysql \
--ssl-ca=server-ca.pem \
--ssl-cert=client-cert.pem \
--ssl-key=client-key.pem \
--host=INSTANCE_IP --ssl-mode=verify_ca --user=root --password