한 줄 요약
2026-06-02, Google Cloud가 AlloyDB Remote MCP Server를 정식 출시(GA)했다. AI 에이전트가 AlloyDB(PostgreSQL 호환) 데이터베이스에 표준 프로토콜로 직접 붙어 SQL을 실행하고 인스턴스를 관리할 수 있게 됐다.
GA라는 단어가 핵심이다. 프리뷰 단계의 실험 기능이 아니라 production에 올려도 된다는 신호이고, 곧 실무 환경에서 에이전트가 운영 데이터베이스에 접근하는 구성이 현실이 된다는 뜻이다. 운영자와 DBA 입장에서는 “AI가 우리 DB에 직접 붙는다"는 상황을 더 이상 가정이 아니라 설계 대상으로 다뤄야 한다.
MCP가 뭔가
MCP(Model Context Protocol)는 LLM이 외부 데이터·도구에 일관된 방식으로 연결되도록 만든 오픈 표준이다. 모델마다, 도구마다 제각각이던 연동 방식을 하나의 규약으로 묶는다고 보면 된다. 에이전트는 MCP 서버가 노출하는 도구(tool) 목록을 받아 보고, 그중 필요한 것을 골라 호출한다. “데이터베이스에 질의해줘"라는 요청이 들어오면, 에이전트가 MCP 서버의 SQL 실행 도구를 호출하는 식이다.
AlloyDB Remote MCP Server는 이 규약을 AlloyDB에 입힌 것이다. Google Cloud의 관리형 인프라 위에서 동작하고, HTTP 엔드포인트 하나를 노출한다.
https://alloydb.googleapis.com/mcp
“Remote"라는 이름이 붙은 이유가 여기 있다. 예전 MCP 연동은 보통 로컬에서 stdio 스트림으로 도는 서버를 띄워 쓰는 방식이었다. 이번 GA는 그 서버를 Google Cloud가 직접 관리형으로 호스팅한다. 운영자가 별도 서버를 배포하거나 패치할 필요 없이, 인증된 에이전트가 원격 엔드포인트로 붙는다.
노출하는 도구는 크게 두 갈래다.
| 갈래 | 대표 도구 | 하는 일 |
|---|---|---|
| 데이터베이스 | execute_sql, execute_sql_read_only | SQL 실행 (쓰기/읽기 전용) |
| 데이터베이스 | export_data, import_data | 데이터 반출·반입 |
| 사용자 관리 | create_user, list_users, get_user | 데이터베이스 사용자 관리 |
| 인스턴스 관리 | create_instance, update_instance, get_instance | 인스턴스 생성·변경·조회 |
| 클러스터 관리 | create_cluster, restore_cluster, create_backup | 클러스터·백업 관리 |
주목할 점은 도구가 단순 조회에 그치지 않는다는 것이다. SQL 실행은 물론이고 인스턴스 변경, 데이터 반출입, 백업 생성과 클러스터 복원까지 포함한다. 에이전트가 마음만 먹으면 운영 작업 상당수를 직접 수행할 수 있는 범위다. 그만큼 권한 경계가 중요해진다.
읽기 전용 도구가 별도로 있다는 점도 눈여겨볼 만하다. execute_sql은 쓰기까지 가능하지만, execute_sql_read_only는 수정·삭제를 막는다. 에이전트가 의도치 않게 데이터를 바꾸는 사고를 도구 수준에서 차단하는 장치다.
인증·권한 모델
에이전트가 어떻게 인증하고 무엇까지 할 수 있는지가 운영의 핵심이다. AlloyDB Remote MCP Server는 공유 비밀번호나 API 키를 쓰지 않는다. 실제로 공식 문서는 “이 서버는 API 키를 받지 않는다"고 못박는다.
인증은 OAuth 2.0 bearer 토큰으로 한다. 에이전트는 Google Cloud IAM 신원으로 발급받은 토큰을 HTTP Authorization 헤더에 실어 보낸다. 모든 Google Cloud 신원이 인증 주체가 될 수 있다.
권한은 IAM 역할로 갈린다. 도구가 요구하는 역할이 작업 종류에 따라 다르다.
| 작업 | 필요 역할 |
|---|---|
| 인스턴스·사용자 생성 | roles/alloydb.admin |
| SQL 실행 (쓰기 포함) | roles/alloydb.admin 또는 roles/alloydb.databaseUser |
| 읽기 전용 SQL | roles/alloydb.viewer, roles/alloydb.databaseUser, roles/alloydb.admin |
| 인스턴스·사용자 목록 조회 | roles/alloydb.viewer |
OAuth 스코프는 https://www.googleapis.com/auth/alloydb가 기본이다. 즉 에이전트가 할 수 있는 일의 상한은 그 에이전트에 붙은 IAM 역할이 결정한다. 비밀번호를 공유하던 시절처럼 “DB에 붙을 수 있으면 전부 다 된다"가 아니라, 신원별로 역할을 좁혀 부여하는 구조다.
여기서 DBA가 정확히 이해해야 할 분리가 하나 있다. 에이전트가 들고 오는 IAM 신원과, 실제 데이터베이스 내부의 사용자 권한은 별개 층위다. IAM 역할은 “이 에이전트가 AlloyDB API를 호출할 수 있는가"를 가른다. 그 호출이 데이터베이스 안에서 어떤 테이블·스키마까지 읽고 쓰는지는 데이터베이스 자체의 GRANT/REVOKE로 통제한다. Google Cloud는 IAM으로 에이전트를 특정 테이블·스키마·뷰에 한정할 수 있다고 안내하는데, 실제 운영에서는 IAM 역할 부여와 데이터베이스 권한을 양쪽 다 좁혀야 의미가 산다.
DBA 관점 — 통제 지점
AI 에이전트가 production 데이터베이스에 직접 붙는다는 건, 사람 손을 거치지 않은 호출이 운영 작업을 일으킬 수 있다는 뜻이다. 통제 지점을 정리한다.
에이전트는 사람과 다르게 행동한다. 잘못된 판단으로
DELETE나DROP을 내릴 수 있고, 프롬프트 조작에 넘어가 의도하지 않은 질의를 던질 수도 있다. 권한·감사·입력 검증을 사람 DBA보다 더 촘촘하게 잡아야 한다.
- 최소 권한을 신원별로: 에이전트마다 별도 IAM 신원을 부여하고, 작업에 꼭 필요한 역할만 붙인다. 조회만 하는 에이전트에
roles/alloydb.admin을 주는 일은 없어야 한다. 기본값은roles/alloydb.viewer수준에서 시작해 필요할 때 올린다. - 읽기 전용을 기본으로: 분석·조회가 목적이라면
execute_sql_read_only만 쓰도록 제한한다. 쓰기가 가능한execute_sql은 명확히 필요한 경우에만, 그것도 권한을 좁힌 별도 신원에 한정한다. - 운영 작업 도구를 차단:
update_instance,restore_cluster,import_data같은 도구는 데이터베이스의 형상 자체를 바꾼다. 에이전트가 이런 도구에 닿을 이유가 없다면, IAM 역할에서 해당 권한을 빼 원천 차단한다. - 감사 로그를 끝까지 추적: 모든 질의·동작·도구 호출이 Cloud Audit Logs로 남는다. 어떤 신원이 언제 무슨 도구를 호출했는지 추적할 수 있다. 단순히 켜두는 데서 끝내지 말고, 비정상 패턴(대량 반출, 권한 밖 시도)에 대한 알림까지 엮어야 통제가 완성된다.
- 프롬프트 방어막 검토: Google Cloud는 Model Armor라는 선택적 보호 계층을 제공한다. 프롬프트 injection을 거르고 데이터 반출을 막는 용도다. 에이전트가 외부 입력을 받는 구성이라면 이 계층을 검토할 가치가 있다.
- 데이터베이스 권한과 함께 좁히기: 앞서 짚었듯 IAM만으로는 부족하다. 데이터베이스 안에서도 에이전트용 role을 만들어 접근 가능한 스키마·테이블을 GRANT로 한정한다. IAM과 데이터베이스 권한이 둘 다 좁아야 실효가 있다.
핵심은 데이터베이스가 더 이상 사람만 붙는 곳이 아니라는 전제로 권한 모델을 다시 짜는 것이다. 사람은 실수해도 속도가 느리지만, 에이전트는 잘못된 동작을 빠르게, 반복해서 일으킬 수 있다.
흐름과 권한 경계
에이전트 요청이 데이터베이스에 닿기까지의 경로와, 그 위에 놓인 두 겹의 권한 경계를 도식으로 정리한다.
flowchart TD
A[AI 에이전트] -->|OAuth 2.0 토큰| B[MCP 엔드포인트]
B --> C{IAM 역할 검사}
C -->|권한 있음| D[도구 호출]
C -->|권한 없음| X[거부]
D --> E{DB 사용자 권한}
E -->|GRANT 범위 내| F[AlloyDB 실행]
E -->|범위 밖| X
F --> G[Cloud Audit Logs 기록]
위쪽 IAM 검사는 “이 신원이 이 도구를 호출할 자격이 있는가"를 가르는 1차 경계다. 통과해도 데이터베이스 안에서 GRANT로 정해진 범위를 벗어나면 2차 경계에서 막힌다. 두 경계를 모두 통과한 작업만 실행되고, 그 흔적은 빠짐없이 감사 로그에 남는다. DBA가 손볼 지점은 결국 이 두 경계의 폭과, 마지막 로그를 읽어내는 체계다.
마치며
AlloyDB Remote MCP Server GA는 “AI 에이전트가 데이터베이스에 직접 붙는” 구성이 실험을 넘어 production 선택지가 됐다는 신호다. 편의는 분명하다. 자연어로 질의하고, 스키마를 자동으로 파악하고, 운영 작업까지 위임할 수 있다.
그만큼 DBA가 쥐어야 할 통제도 늘었다. 비밀번호 공유가 IAM 신원으로 바뀌고, 사람의 클릭이 에이전트의 도구 호출로 바뀌는 동안, 권한은 더 좁게, 감사는 더 촘촘하게 가져가야 한다. 데이터베이스에 새 문이 하나 열렸으니, 그 문의 자물쇠와 출입 기록을 챙기는 일이 다음 차례다.
출처: