Cloud SQL Auth Proxy

내 Cloud SQL 인스턴스에는 공개 IP가 없습니다.
배스천 VM 없이 이름으로 닿으세요.

AgentsRoom은 연결을 열 때 Cloud SQL Auth Proxy를 실행하고 데이터베이스 클라이언트를 그 위로 연결합니다. 인스턴스 연결 이름인 project:region:instance를 입력하거나, 내 gcloud 로그인으로 볼 수 있는 목록에서 고르면 됩니다.

프록시는 내 Application Default Credentials(애플리케이션 기본 사용자 인증 정보)로 인가되므로 AgentsRoom은 서비스 계정 키를 저장하지 않습니다. IAM 데이터베이스 인증을 쓰면 데이터베이스 비밀번호도 필요 없습니다. 그리고 AI 코딩 에이전트도 같은 인스턴스를 읽기 전용으로 질의할 수 있습니다.

Cloud SQL Auth Proxy
공개 IP 없음
AgentsRoom
127.0.0.1 : OS가 고른 포트
cloud-sql-proxy
--private-ip --auto-iam-authn
내 gcloud 로그인TLS 1.3, IAM
Cloud SQL 인스턴스
acme-prod:europe-west1:orders
비어 있는 루프백 포트 확보
루프백에만 바인딩, 로컬 네트워크에는 절대 아님키 저장 없음, 배스천 VM 없음

AgentsRoom이 앱 쪽에는 아무것도 저장하지 않고, Cloud SQL Auth Proxy를 통해 프라이빗 IP의 Cloud SQL 인스턴스에 닿는 방식.

프라이빗 IP만 있는 Cloud SQL 인스턴스는 옳은 구성이면서 동시에 번거로운 구성입니다. 데이터베이스는 VPC 안에 있고, 공개 IP는 꺼져 있으며, 닿을 수 있는 머신은 그 네트워크 안의 머신뿐입니다. 그런데 버그를 잡으려면 노트북에서 행 세 개를 봐야 합니다.

답은 Google이 이미 내놓았습니다. Cloud SQL Auth Proxy입니다. IP 허용 목록이 아니라 내 Google 계정으로 인가된 암호화 연결을 인스턴스로 열고, 그것을 로컬 포트로 노출합니다. 번거로운 건 그 주변입니다. 설치하고, 인스턴스 연결 이름을 기억해 두고, 클라이언트를 열기 전에 터미널에서 먼저 실행하고, 끝난 뒤에도 켜 둔 채 잊어버리는 일들이죠.

그 부분은 AgentsRoom이 맡습니다. 데이터베이스 연결의 경유 연결 항목에서 Google Cloud SQL을 고르고, 인스턴스를 입력하고, 필요하면 프라이빗 IP나 IAM 데이터베이스 인증을 체크하세요. 그 뒤로 그 데이터베이스를 여는 일은 클릭 한 번입니다. 프록시는 연결과 함께 시작되고 연결과 함께 멈춥니다.

흔히 쓰는 우회로에는 모두 대가가 있습니다

같은 문제에 대한 세 가지 답, 그리고 각각이 청구하는 비용.

이것만을 위한 배스천 VM

SSH 포트를 연 Compute Engine VM을, 가끔 누군가 데이터베이스로 터널을 뚫기 위해서만 VPC 안에 계속 둡니다. 패치를 해야 하고, 매시간 비용이 나가며, SSH 키와 방화벽 규칙은 팀원이 바뀔 때마다 어긋납니다.

공개 IP와 허용 목록

공개 IP를 켜고 집 주소를 승인된 네트워크에 추가하면, 주소가 바뀌기 전까지는 동작합니다. 그동안 데이터베이스는 인터넷을 향해 열려 있습니다. 임시여야 할 예외는 끝내 제거되지 않습니다.

노트북에 놓인 서비스 계정 키

프록시를 돌리려고 JSON 키를 내려받는 것은 누구나 후회하는 지름길입니다. 수명이 긴 자격 증명이 다운로드 폴더에 남고, 스크립트와 프롬프트에 복사되고, 아무도 교체하지 않고, 아무도 추적할 수 없습니다.

프라이빗 Cloud SQL 인스턴스에서 결과 집합까지

한 번만 해 두는 네 단계, 그다음부터는 클릭 한 번.

01

gcloud로 한 번 로그인하세요

내 컴퓨터에서 gcloud auth application-default login을 실행하세요. 여기서 만들어지는 Application Default Credentials를 프록시가 인스턴스에 닿는 데 사용합니다. AgentsRoom은 그 내용을 읽지도 저장하지도 않습니다.

02

경유 연결에서 인스턴스를 고르세요

MySQL 또는 PostgreSQL 연결을 만들고 경유 연결에서 Google Cloud SQL을 고르세요. 인스턴스 연결 이름인 project:region:instance를 입력하거나, 내 인스턴스 목록 보기를 눌러 gcloud 로그인으로 볼 수 있는 목록에서 고릅니다. 호스트와 포트 칸은 사라집니다. 인스턴스 자체가 주소이기 때문입니다.

03

프라이빗 IP와 IAM 인증을 고르세요

인스턴스에 공개 주소가 없고 내 컴퓨터가 VPN이나 Interconnect로 그 VPC에 닿는다면 프라이빗 IP를 체크하세요. Google 계정으로 로그인하려면 IAM 데이터베이스 인증을 체크하세요. 비밀번호 칸이 사라지고, 사용자는 IAM 데이터베이스 사용자가 됩니다.

04

직접 질의하거나, 에이전트에게 맡기세요

연결을 열면 비어 있는 루프백 포트를 확보하고, 그 포트에서 cloud-sql-proxy를 실행한 뒤 TCP 연결을 받아들일 때까지 기다립니다. 콘솔은 다른 연결과 똑같이 127.0.0.1에 연결하고, AI 에이전트도 MCP로 읽기 전용 질의를 할 수 있습니다. 연결을 닫으면 프록시도 멈춥니다.

실제로 실행되는 것

AgentsRoom이 실행하는 명령

새로 구현한 것은 없습니다. AgentsRoom은 Google이 만든 cloud-sql-proxy 바이너리(버전 2)를 자식 프로세스로 실행하며, 인자는 셸을 거치지 않고 직접 전달합니다. 프록시를 직접 실행해 본 적이 있다면, 이미 익숙한 바로 그 한 줄입니다.

cloud-sql-proxy acme-prod:europe-west1:orders \
  --address 127.0.0.1 --port 54321 \
  --private-ip \
  --auto-iam-authn

인스턴스와 두 가지 옵션은 저장한 연결에서 가져옵니다. 로컬 포트는 열 때 운영체제가 고릅니다.

프록시는 무엇이든 확인하기 전에 먼저 로컬 연결을 받아들이고, 문제가 있으면 그 연결을 끊은 뒤 이유를 로그에 남깁니다. AgentsRoom은 그 로그를 읽고 실제 원인을 알려 줍니다. 프록시가 설치되어 있지 않거나, gcloud 로그인이 만료되었거나(실행할 명령 포함), 계정에 Cloud SQL Client 역할이 없거나, 인스턴스에 프라이빗 IP가 없거나, 인스턴스 이름이 틀린 경우 등입니다.

사전 조건

작동하려면 갖춰져 있어야 하는 것

AgentsRoom은 내 Google Cloud 설정을 대신하는 것이 아니라 그 설정을 움직입니다. 프록시를 단독으로 쓸 때 필요한 것과 똑같은 조건입니다.

  • 내 컴퓨터의 cloud-sql-proxy

    PATH에 있는 Cloud SQL Auth Proxy 버전 2. gcloud components install cloud-sql-proxy가 가장 빠른 방법이며, Google은 단독 다운로드도 제공합니다. 없으면 AgentsRoom이 그렇게 알려 주고 실행할 명령을 안내합니다.

  • Application Default Credentials

    gcloud auth application-default login을 한 번 실행하세요. 그 로그인이 만료되면, 닫힌 소켓을 보여 주는 대신 다시 실행하라고 안내하는 오류가 나옵니다.

  • Cloud SQL Client 역할

    내 Google 계정에는 인스턴스가 속한 프로젝트의 Cloud SQL Client 역할이 필요하고, 그곳에서 Cloud SQL Admin API가 활성화되어 있어야 합니다. IAM 데이터베이스 인증에는 Cloud SQL Instance User 역할과 인스턴스의 IAM 사용자도 필요합니다.

  • 목록 선택을 위한 gcloud

    내 인스턴스 목록 보기는 활성 프로젝트, 또는 입력하기 시작한 프로젝트에서 gcloud sql instances list를 실행합니다. gcloud가 없어도 연결 이름을 직접 입력하면 됩니다.

  • 프라이빗 IP를 위한 VPC로의 경로

    프라이빗 IP를 쓰려면 내 컴퓨터가 VPN, Interconnect, 또는 네트워크 안의 머신을 통해 인스턴스의 VPC에 직접 닿아야 합니다. 그 경로가 없다면 프라이빗 IP를 끄고, 프록시의 암호화를 이용해 공개 IP로 연결하세요.

프록시가 하는 일, 그리고 거부하는 일

노트북에 설정을 남겨 두어도 안전한지를 가르는 특성들입니다.

루프백에만 바인딩

프록시는 127.0.0.1에서만 연결을 받습니다. 데이터베이스가 로컬 네트워크에 다시 공개되는 일이 없으므로, 카페 와이파이가 운영 환경으로 가는 길이 되지 않습니다.

OS가 고르는 포트

AgentsRoom은 운영체제에 비어 있는 포트를 요청해 프록시에 넘깁니다. 기억해 둘 고정 포트도 없고, 직접 실행한 다른 프록시와 충돌하지도 않습니다.

준비됐다면 정말 준비된 것

연결은 로컬 포트가 TCP를 받아들인 뒤에야 열리며, 곧바로 종료되는 프록시는 출력한 이유를 그대로 알려 줍니다. 어림짐작의 대기 시간도, 너무 일찍 붙는 클라이언트도 없습니다.

키를 저장하지 않습니다

프록시는 내 Application Default Credentials로 인가됩니다. AgentsRoom이 저장하는 것은 인스턴스 연결 이름과 두 가지 옵션뿐이며 이 중 어느 것도 자격 증명이 아니고, 서비스 계정 키는 앱에 닿지도 않습니다.

데이터베이스는 읽기 전용으로 유지됩니다

데이터베이스 연결은 만들 때 읽기 전용입니다. 쓰기를 하려면 그 연결을 쓰기 가능으로 바꾸고 명시적으로 확인해야 하며, 운영 환경으로 표시한 연결에서는 그 확인이 더 강하게 표시됩니다.

호출 한 번에 구문 하나

한 번의 호출은 정확히 구문 하나만 실행하므로 세미콜론 뒤에 무언가 숨을 수 없고, 결과 집합에는 상한이 있어 폭넓은 질의가 창이나 에이전트의 컨텍스트를 가득 채우지도 못합니다.

접근이 늘어나는 게 아니라 줄어드는 이유

인스턴스 쪽에서는 아무것도 열지 않습니다. 공개 IP는 꺼 둔 채로 두고, 승인된 네트워크에 추가할 것도 없으며, 가끔의 질의를 위해 SSH 포트가 열린 VM을 계속 켜 둘 필요도 없습니다. 프록시는 인스턴스까지의 연결을 종단 간 암호화합니다.

인가는 조직이 관리하는 곳에 그대로 남습니다. 내 Google 계정과 그 IAM 역할입니다. 그 계정에 부여된 접근은 다른 Cloud SQL 연결과 똑같이 기록되고, 역할을 제거하는 날 끝납니다. AgentsRoom이 보관하는 것은 인스턴스 이름, 프라이빗 IP 선택, IAM 선택이며, 이를 읽은 누군가가 재사용할 수 있는 것은 아무것도 없습니다.

데이터베이스 쪽의 안전장치는 모든 AgentsRoom 연결이 받는 것과 같습니다. 기본은 읽기 전용, 호출 한 번에 구문 하나, 상한이 있는 결과 집합, 그리고 쓰기 확인을 더 엄격하게 만드는 운영 환경 표시입니다. MCP로 질의하는 AI 에이전트가 받는 것은 결과 집합일 뿐 자격 증명이 아니며, 그 연결을 쓰기 가능으로 바꾸고 에이전트 쓰기 허용을 켜지 않는 한 쓸 수 없습니다.

지원하지 않는 것

MySQL과 PostgreSQL을 지원하며, SQL Server는 아직입니다

Cloud SQL은 MySQL, PostgreSQL, SQL Server를 실행합니다. AgentsRoom이 프록시로 닿을 수 있는 것은 앞의 두 가지이고, 지금은 SQL Server 클라이언트가 없습니다. 자체 프록시가 있는 AlloyDB도 대상이 아닙니다.

다음에 어떤 엔진이나 서비스를 지원할지는 사용자 요청으로 정해집니다. 쓰시는 것이 없다면 공개 백로그에 어떤 것인지 남겨 주세요. 집계에 반영됩니다.

내 데이터베이스 엔진 요청하기
AI 에이전트 + Cloud SQL

에이전트도 읽기 전용으로 질의할 수 있습니다

db_listdb_schemadb_querydb_connection_newdb_connection_save

연결이 만들어지면 AI 코딩 에이전트는 AgentsRoom MCP로 이름만 지정해 사용합니다. 테이블과 컬럼을 훑는 db_list와 db_schema, 행 수에 상한이 있는 구문 하나를 실행하는 db_query입니다. 에이전트가 인스턴스 연결 이름을 넘겨서 db_connection_new나 db_connection_save로 Cloud SQL 연결을 직접 등록할 수도 있습니다.

에이전트가 요청하면 AgentsRoom이 프록시를 직접 실행하므로, 에이전트는 Google 자격 증명도, 데이터베이스 비밀번호도, 포트 번호도 다루지 않습니다. 돌아오는 것은 결과 집합뿐입니다. 쓰기에는 쓰기 가능한 연결과, 기본값이 꺼짐인 에이전트 쓰기 허용 설정이 필요합니다.

운영 환경의 레플리카를 대상으로 디버깅하는 에이전트는 버그를 설명해 주는 행을 읽습니다. 컨텍스트로 새어 나갈 자격 증명도 없고, 앱을 닫고 나면 데이터베이스로 가는 경로도 남지 않습니다.

자주 묻는 질문

프라이빗 IP만 있는 Cloud SQL 인스턴스에는 어떻게 연결하나요?

MySQL 또는 PostgreSQL 연결을 만들고, 경유 연결에서 Google Cloud SQL을 고른 뒤 인스턴스 연결 이름을 입력하고 프라이빗 IP를 체크하세요. AgentsRoom이 --private-ip로 Cloud SQL Auth Proxy를 루프백 포트에 실행하고 클라이언트를 그 위로 연결합니다. 내 컴퓨터가 인스턴스의 VPC에 닿아야 하며, 예를 들어 VPN이나 Interconnect를 통해서 가능합니다.

AgentsRoom은 서비스 계정 키를 저장하나요?

아니요. 프록시는 내 컴퓨터에서 gcloud auth application-default login이 만든 Application Default Credentials로 인가됩니다. AgentsRoom이 저장하는 것은 인스턴스 연결 이름과 두 가지 옵션이며, 이 중 자격 증명은 하나도 없습니다.

데이터베이스 비밀번호 없이 연결할 수 있나요?

네, IAM 데이터베이스 인증을 쓰면 됩니다. 연결에서 이를 체크하면 프록시가 --auto-iam-authn으로 실행되어 내 Google 계정으로 로그인합니다. 비밀번호 칸은 사라지고 사용자는 IAM 데이터베이스 사용자가 됩니다. 인스턴스에서 IAM 인증이 활성화되어 있고 그 사용자가 만들어져 있어야 합니다.

무엇을 설치해 두어야 하나요?

Cloud SQL Auth Proxy 버전 2(gcloud components install cloud-sql-proxy 또는 Google의 단독 다운로드)와 Application Default Credentials용 gcloud 로그인입니다. gcloud 자체는 내 인스턴스 목록 보기 버튼에만 필요합니다.

gcloud 로그인이 만료되면 어떻게 되나요?

프록시가 연결을 거부하고 이유를 로그에 남깁니다. AgentsRoom은 그 로그를 읽고, 밋밋한 연결 오류 대신 gcloud auth application-default login을 실행하라는 알기 쉬운 메시지를 보여 줍니다. 그다음 다시 시도하면 됩니다.

어떤 로컬 포트가 쓰이고, 누가 닿을 수 있나요?

연결을 열 때 운영체제가 비어 있는 포트를 고르고, 프록시는 127.0.0.1에서만 연결을 받습니다. 로컬 네트워크의 어떤 것도 닿을 수 없으며, 프록시는 연결을 닫거나 앱을 종료하면 멈춥니다.

어떤 Cloud SQL 엔진을 지원하나요?

Cloud SQL for MySQL과 Cloud SQL for PostgreSQL입니다. AgentsRoom에는 아직 SQL Server 클라이언트가 없어서 Cloud SQL for SQL Server는 지원하지 않습니다. 공개 백로그에 요청해 주세요. 집계에 반영됩니다.

Windows와 Linux에서도 되나요?

네. cloud-sql-proxy는 macOS, Windows, Linux에서 동작하는 네이티브 바이너리이고, AgentsRoom은 세 곳 모두에서 같은 방식으로 실행합니다. 휴대폰 앱은 같은 연결을 보여 주고, 데스크톱을 거쳐 읽기 전용으로 질의합니다.

AI 에이전트가 프록시를 통해 데이터베이스에 질의할 수 있나요?

네, 기본은 읽기 전용입니다. 에이전트가 AgentsRoom MCP로 저장된 연결을 이름으로 지정하면 앱이 프록시를 실행하고 구문도 직접 실행하며, 돌아가는 것은 결과 집합뿐입니다. 에이전트는 Google 자격 증명도 데이터베이스 비밀번호도 받지 않으며, 연결이 쓰기 가능하고 에이전트 쓰기 허용을 켜 두지 않는 한 db_query는 읽기 외의 구문을 거부합니다.

이런 기능도 있습니다

데이터베이스 연결

MySQL, PostgreSQL, MongoDB 연결을 저장하고, SSH 터널이나 AWS SSM 세션으로 프라이빗 서브넷의 데이터베이스에 닿고, AI 에이전트가 MCP로 질의하게 하세요. 기본은 읽기 전용, 호출당 구문 하나, 결과 집합에는 상한이 있으며, 비밀번호는 에이전트에 전달되지 않습니다. 내보내기, 가져오기, 데이터베이스 간 직접 복사까지 포함합니다.

AWS SSM으로 RDS 연결

공개 엔드포인트가 없는 Amazon RDS 인스턴스에 내 컴퓨터에서 바로 닿으세요. aws ssm start-session과 AWS-StartPortForwardingSessionToRemoteHost 문서를 사용합니다. 유지할 배스천도, VPN도, 인바운드 SSH 규칙도 없습니다. AgentsRoom이 루프백 포트에 세션을 열고 그 위로 데이터베이스 클라이언트를 연결합니다. MySQL, PostgreSQL, MongoDB를 지원하므로 RDS MySQL, RDS PostgreSQL, Aurora, DocumentDB가 대상입니다.

시크릿 관리자

API 키, 토큰, 비밀번호를 OS 키체인에 저장하고, 개발 명령과 에이전트 환경에서 {{secret:NAME}}로 참조하면 AgentsRoom이 실행 시점에 실제 값을 채웁니다. 에이전트는 이름만 볼 뿐 값은 보지 못하며, 서버로 동기화되는 것은 아무것도 없습니다.

SSH 연결

SSH 연결을 저장하고, SSH로 내장 터미널을 열어 Claude Code, Codex, Antigravity CLI를 원격 서버나 VPS에서 바로 실행하세요. SSH 키 또는 비밀번호 인증, 프로젝트별 연결 프로필을 지원하며, 별도의 SSH 클라이언트가 필요 없습니다.

프라이빗 Cloud SQL 인스턴스에 질의하세요

AgentsRoom을 내려받아 Cloud SQL 인스턴스를 고르고, 내 gcloud 로그인으로 Cloud SQL Auth Proxy를 통해 질의하세요. 배스천 VM도, 공개 IP도, 디스크에 남는 키도 없습니다.

무료다운로드

컴패니언 앱: 이동 중에도 에이전트를 모니터링

Claude, Codex, Antigravity CLI 또는 다른 AI 공급자를 사용하세요.

확장 프로그램 설치
Chrome Web Store

버그와 요청을 공개 백로그로 바로 보내세요.

멀티 프로젝트
멀티 프로바이더
멀티 에이전트
실시간 상태
파일 diff & 커밋
모바일 앱
라이브 프리뷰
에이전트 팀
브라우저 자동화
백로그 기반 개발
프롬프트 라이브러리
스킬 라이브러리
모든 기능 보기