Instance Cloud SQL của bạn không có IP công khai.
Hãy chạm tới nó bằng tên, không cần VM bastion.
AgentsRoom khởi động Cloud SQL Auth Proxy khi bạn mở kết nối và trỏ trình khách cơ sở dữ liệu của mình vào đó. Bạn đưa tên kết nối của instance, project:region:instance, hoặc chọn nó từ danh sách mà lần đăng nhập gcloud của bạn nhìn thấy.
Proxy được cấp quyền bởi Application Default Credentials của bạn, nên AgentsRoom không lưu khóa service account nào. Với xác thực cơ sở dữ liệu bằng IAM, cũng không có mật khẩu cơ sở dữ liệu. Và một agent AI lập trình có thể truy vấn cùng instance đó, ở chế độ chỉ đọc.
Cách AgentsRoom chạm tới một instance Cloud SQL qua IP riêng của nó bằng Cloud SQL Auth Proxy, mà phía ứng dụng không phải lưu bất cứ thứ gì.
Một instance Cloud SQL chỉ có IP riêng là thiết lập đúng đắn, nhưng cũng là thiết lập khó chạm tới. Cơ sở dữ liệu nằm trong VPC của bạn, IP công khai đã tắt, và chỉ những máy nằm trong mạng đó mới chạm tới được. Rồi một lỗi buộc bạn phải xem ba hàng dữ liệu, từ một chiếc laptop.
Google đã có sẵn lời giải: Cloud SQL Auth Proxy. Nó mở một kết nối được mã hóa tới instance, được cấp quyền bằng danh tính Google của bạn thay vì danh sách IP được phép, và đưa nó ra thành một cổng cục bộ. Phần phiền toái thường nằm ở mọi thứ xung quanh: cài đặt, nhớ tên kết nối của instance, khởi động nó trong terminal trước khi mở trình khách, rồi quên tắt sau đó.
AgentsRoom lo phần đó. Bạn chọn Google Cloud SQL ở trường Kết nối qua của một kết nối cơ sở dữ liệu, đưa instance vào, đánh dấu IP riêng hoặc Xác thực cơ sở dữ liệu bằng IAM nếu cần, và từ lúc ấy mở cơ sở dữ liệu này chỉ còn là một cú nhấp. Proxy khởi động cùng kết nối và dừng cùng nó.
Những lối đi vòng quen thuộc đều có cái giá của nó
Ba cách trả lời cho cùng một vấn đề, và cái giá mỗi cách tính vào bạn.
Một VM bastion chỉ để làm việc này
Một VM Compute Engine có cổng SSH, được giữ trong VPC chỉ để thỉnh thoảng có người tạo tunnel tới cơ sở dữ liệu. Nó cần được vá, tốn tiền mỗi giờ, còn khóa SSH và quy tắc tường lửa của nó thì lệch dần theo mỗi lần đổi người trong nhóm.
Một IP công khai và một danh sách cho phép
Bật IP công khai rồi thêm địa chỉ nhà bạn vào các mạng được phép thì dùng được, cho tới khi địa chỉ của bạn đổi, và trong lúc đó cơ sở dữ liệu đang lắng nghe ngoài internet. Đó là ngoại lệ không bao giờ bị gỡ đi.
Một khóa service account trên laptop
Tải về một khóa JSON để chạy proxy là lối tắt mà ai cũng hối hận: một thông tin đăng nhập sống lâu nằm trong thư mục Downloads, bị chép vào các script và prompt, không ai xoay vòng và không ai truy vết được.
Từ một instance Cloud SQL riêng tư đến một tập kết quả
Bốn bước, làm một lần, sau đó chỉ còn một cú nhấp.
Đăng nhập bằng gcloud, chỉ một lần
Chạy gcloud auth application-default login trên máy của bạn. Application Default Credentials mà nó tạo ra là thứ proxy dùng để chạm tới instance. AgentsRoom không đọc và không lưu gì từ đó.
Chọn instance ở trường Kết nối qua
Tạo một kết nối MySQL hoặc PostgreSQL và chọn Google Cloud SQL ở trường Kết nối qua. Gõ tên kết nối của instance, project:region:instance, hoặc nhấp Liệt kê các instance của tôi để chọn từ những gì lần đăng nhập gcloud của bạn nhìn thấy. Host và cổng biến mất: chính instance là địa chỉ.
Chọn IP riêng và xác thực IAM
Đánh dấu IP riêng khi instance không có địa chỉ công khai và máy bạn chạm tới VPC của nó qua VPN hoặc Interconnect. Đánh dấu Xác thực cơ sở dữ liệu bằng IAM để đăng nhập bằng danh tính Google của bạn: ô mật khẩu biến mất, và người dùng là người dùng cơ sở dữ liệu IAM của bạn.
Tự truy vấn, hoặc để một agent truy vấn
Mở kết nối sẽ giữ chỗ một cổng loopback còn trống, khởi động cloud-sql-proxy trên đó và chờ tới khi nó chấp nhận kết nối TCP. Bảng điều khiển nối tới 127.0.0.1 như mọi kết nối khác, và một agent AI có thể truy vấn qua MCP, ở chế độ chỉ đọc. Đóng kết nối sẽ dừng proxy.
Câu lệnh AgentsRoom khởi chạy
Không có gì được viết lại. AgentsRoom chạy chính tệp nhị phân cloud-sql-proxy của Google (phiên bản 2) như một tiến trình con, với các đối số truyền thẳng chứ không qua shell. Nếu bạn từng tự khởi động proxy bằng tay, đây chính là dòng lệnh bạn đã quen.
cloud-sql-proxy acme-prod:europe-west1:orders \
--address 127.0.0.1 --port 54321 \
--private-ip \
--auto-iam-authnInstance và hai tùy chọn đến từ kết nối bạn đã lưu. Cổng cục bộ do hệ điều hành chọn tại thời điểm mở.
Proxy chấp nhận kết nối cục bộ trước khi kiểm tra bất cứ điều gì, rồi ngắt nó và ghi lại lý do vào log khi có gì sai. AgentsRoom đọc log đó và cho bạn biết nguyên nhân thật: proxy chưa được cài, lần đăng nhập gcloud của bạn đã hết hạn (kèm câu lệnh cần chạy), tài khoản của bạn thiếu vai trò Cloud SQL Client, instance không có IP riêng, hoặc tên instance bị sai.
Những gì cần có trước khi nó chạy được
AgentsRoom điều khiển thiết lập Google Cloud của bạn, không thay thế nó. Đây là những thứ proxy vẫn cần khi chạy riêng.
cloud-sql-proxy trên máy của bạn
Cloud SQL Auth Proxy phiên bản 2, nằm trong PATH của bạn. gcloud components install cloud-sql-proxy là cách nhanh nhất; Google cũng cung cấp bản tải riêng. Nếu thiếu, AgentsRoom sẽ báo và nêu tên câu lệnh cần chạy.
Application Default Credentials
gcloud auth application-default login, chạy một lần. Khi lần đăng nhập đó hết hạn, thông báo lỗi bảo bạn chạy lại, thay vì hiện ra một socket đã đóng.
Vai trò Cloud SQL Client
Tài khoản Google của bạn cần vai trò Cloud SQL Client trên project của instance, và Cloud SQL Admin API phải được bật ở đó. Xác thực cơ sở dữ liệu bằng IAM còn cần vai trò Cloud SQL Instance User và một người dùng IAM trên instance.
gcloud cho danh sách chọn
Liệt kê các instance của tôi chạy gcloud sql instances list trong project đang hoạt động của bạn, hoặc trong project bạn bắt đầu gõ. Không có gcloud, bạn vẫn có thể gõ tên kết nối bằng tay.
Một lối tới VPC cho IP riêng
IP riêng nghĩa là chính máy bạn phải chạm tới được VPC của instance, qua VPN, Interconnect hoặc một máy nằm trong mạng. Không có lối đó, hãy tắt IP riêng và dùng IP công khai với lớp mã hóa của proxy.
Proxy làm gì, và từ chối điều gì
Những đặc tính quyết định liệu có an toàn để cấu hình sẵn trên một chiếc laptop hay không.
Chỉ loopback
Proxy chỉ lắng nghe trên 127.0.0.1 và không ở đâu khác. Cơ sở dữ liệu không bao giờ bị phát lại ra mạng cục bộ, nên Wi-Fi quán cà phê không biến thành đường vào môi trường production.
Cổng do hệ điều hành chọn
AgentsRoom xin hệ điều hành một cổng còn trống và giao cho proxy. Không có cổng cố định để phải nhớ, không đụng độ với một proxy khác bạn tự khởi động.
Sẵn sàng nghĩa là sẵn sàng thật
Kết nối chỉ mở khi cổng cục bộ đã chấp nhận TCP, và một proxy thoát ngay sẽ báo lại lý do nó in ra. Không có khoảng chờ tùy tiện, không có trình khách nối vào quá sớm.
Không lưu khóa
Proxy được cấp quyền bởi Application Default Credentials của bạn. AgentsRoom lưu tên kết nối của instance và hai tùy chọn, không cái nào là thông tin đăng nhập, và không có khóa service account nào từng chạm vào ứng dụng.
Cơ sở dữ liệu vẫn chỉ đọc
Một kết nối cơ sở dữ liệu là chỉ đọc ngay từ khi tạo. Việc ghi đòi hỏi kết nối đó được cho phép ghi cùng một xác nhận rõ ràng, với cảnh báo mạnh hơn trên kết nối được đánh dấu là production.
Một câu lệnh cho mỗi lần gọi
Mỗi lần gọi mang đúng một câu lệnh, nên không có gì ẩn sau dấu chấm phẩy, và tập kết quả được giới hạn để một truy vấn quá rộng không làm ngập cửa sổ hay ngữ cảnh của agent.
Vì sao đây là ít quyền truy cập hơn, không phải nhiều hơn
Không có gì được mở ở phía instance. IP công khai có thể giữ tắt, không có mạng nào được thêm vào danh sách cho phép, và không có VM nào với cổng SSH phải bật mãi cho những truy vấn thỉnh thoảng. Proxy mã hóa kết nối đầu cuối tới instance.
Việc cấp quyền vẫn nằm ở nơi tổ chức của bạn quản lý: danh tính Google của bạn và các vai trò IAM của nó. Quyền truy cập cấp cho danh tính đó được ghi nhận như mọi kết nối Cloud SQL khác và chấm dứt vào ngày vai trò bị gỡ. AgentsRoom giữ tên instance, lựa chọn IP riêng và lựa chọn IAM, và không có gì mà người đọc được chúng có thể dùng lại.
Về phía cơ sở dữ liệu, các rào chắn giống hệt những gì mọi kết nối AgentsRoom đều có: mặc định chỉ đọc, một câu lệnh cho mỗi lần gọi, tập kết quả bị giới hạn, và cờ production siết chặt xác nhận khi ghi. Một agent AI truy vấn qua MCP nhận về một tập kết quả, không bao giờ là thông tin đăng nhập, và không thể ghi trừ khi bạn cho phép kết nối đó ghi và bật Cho phép tác tử ghi dữ liệu cho nó.
MySQL và PostgreSQL, chưa có SQL Server
Cloud SQL chạy MySQL, PostgreSQL và SQL Server. AgentsRoom chạm tới hai loại đầu qua proxy, và hiện chưa có trình khách SQL Server. AlloyDB, vốn có proxy riêng, cũng chưa được hỗ trợ.
Engine hay dịch vụ nào đến tiếp theo phụ thuộc vào những gì mọi người yêu cầu. Nếu cái của bạn còn thiếu, hãy nói rõ trên backlog công khai và yêu cầu đó sẽ được tính.
Yêu cầu engine cơ sở dữ liệu của bạnMột agent cũng truy vấn được, ở chế độ chỉ đọc
Khi kết nối đã có, một agent AI lập trình dùng nó qua MCP của AgentsRoom bằng cách gọi tên nó: db_list, db_schema để duyệt bảng và cột, db_query cho một câu lệnh với số hàng bị giới hạn. Agent cũng có thể tự đăng ký một kết nối Cloud SQL bằng db_connection_new hoặc db_connection_save, bằng cách đưa tên kết nối của instance.
AgentsRoom tự khởi động proxy khi agent yêu cầu, nên agent không bao giờ phải xử lý thông tin đăng nhập Google, mật khẩu cơ sở dữ liệu hay số cổng. Thứ trả về chỉ là một tập kết quả. Việc ghi đòi hỏi một kết nối cho phép ghi và thiết lập Cho phép tác tử ghi dữ liệu, mặc định đang tắt.
Một agent gỡ lỗi trên bản sao production đọc các hàng giải thích lỗi, không có thông tin đăng nhập nào để rò vào ngữ cảnh của nó và không có đường nào tới cơ sở dữ liệu sau khi ứng dụng đóng.
Câu hỏi thường gặp
Làm sao kết nối tới một instance Cloud SQL chỉ có IP riêng?
Tạo một kết nối MySQL hoặc PostgreSQL, chọn Google Cloud SQL ở trường Kết nối qua, đưa tên kết nối của instance và đánh dấu IP riêng. AgentsRoom khởi động Cloud SQL Auth Proxy với --private-ip trên một cổng loopback và nối trình khách của mình vào đó. Máy của bạn phải chạm tới được VPC của instance, chẳng hạn qua VPN hoặc Interconnect.
AgentsRoom có lưu khóa service account không?
Không. Proxy được cấp quyền bởi Application Default Credentials mà gcloud auth application-default login đã tạo trên máy của bạn. AgentsRoom lưu tên kết nối của instance và hai tùy chọn, không cái nào là thông tin đăng nhập.
Tôi có thể kết nối mà không cần mật khẩu cơ sở dữ liệu không?
Có, bằng xác thực cơ sở dữ liệu bằng IAM. Đánh dấu nó trong kết nối và proxy chạy với --auto-iam-authn: nó đăng nhập bằng danh tính Google của bạn, ô mật khẩu biến mất, và người dùng là người dùng cơ sở dữ liệu IAM của bạn. Instance phải bật xác thực IAM và người dùng đó phải được tạo sẵn.
Tôi cần cài những gì?
Cloud SQL Auth Proxy phiên bản 2 (gcloud components install cloud-sql-proxy, hoặc bản tải riêng của Google) và một lần đăng nhập gcloud cho Application Default Credentials. Bản thân gcloud chỉ cần cho nút Liệt kê các instance của tôi.
Chuyện gì xảy ra khi đăng nhập gcloud của tôi hết hạn?
Proxy từ chối kết nối và ghi lại lý do. AgentsRoom đọc log đó và hiện một thông báo rõ ràng bảo bạn chạy gcloud auth application-default login, thay vì một lỗi kết nối trống rỗng. Rồi bạn thử lại.
Cổng cục bộ nào được dùng, và ai chạm tới được nó?
Hệ điều hành chọn một cổng còn trống khi kết nối mở, và proxy chỉ lắng nghe trên 127.0.0.1. Không thứ gì trên mạng cục bộ chạm tới được nó, và proxy dừng khi kết nối đóng hoặc ứng dụng thoát.
Hỗ trợ những engine Cloud SQL nào?
Cloud SQL for MySQL và Cloud SQL for PostgreSQL. Cloud SQL for SQL Server chưa được hỗ trợ vì AgentsRoom chưa có trình khách SQL Server; hãy yêu cầu trên backlog công khai và yêu cầu đó sẽ được tính.
Có chạy được trên Windows và Linux không?
Có. cloud-sql-proxy là tệp nhị phân gốc trên macOS, Windows và Linux, và AgentsRoom khởi động nó theo cùng một cách trên cả ba. Ứng dụng điện thoại liệt kê cùng các kết nối đó và truy vấn chúng ở chế độ chỉ đọc thông qua máy tính của bạn.
Một agent AI có thể truy vấn cơ sở dữ liệu qua proxy không?
Có, mặc định ở chế độ chỉ đọc. Agent gọi tên một kết nối đã lưu qua MCP của AgentsRoom, ứng dụng tự khởi động proxy và chạy câu lệnh, và chỉ tập kết quả được trả về. Agent không bao giờ nhận thông tin đăng nhập Google hay mật khẩu cơ sở dữ liệu, và db_query từ chối mọi thứ ngoài việc đọc trừ khi kết nối cho phép ghi và bạn đã bật Cho phép tác tử ghi dữ liệu cho nó.
Có thể bạn cũng thích
Kết nối cơ sở dữ liệu
Lưu các kết nối MySQL, PostgreSQL và MongoDB của bạn, chạm tới một cơ sở dữ liệu trong mạng con riêng qua đường hầm SSH hoặc một phiên AWS SSM, và để các agent AI truy vấn nó qua MCP. Chỉ đọc theo mặc định, mỗi lần gọi một câu lệnh, tập kết quả có giới hạn, và mật khẩu không bao giờ tới tay agent. Có sẵn cả xuất, nhập và chép thẳng từ cơ sở dữ liệu này sang cơ sở dữ liệu kia.
RDS qua AWS SSM
Chạm tới một instance Amazon RDS không có endpoint công khai, ngay từ máy của bạn, thông qua aws ssm start-session và tài liệu AWS-StartPortForwardingSessionToRemoteHost. Không có bastion nào phải bảo trì, không VPN, không quy tắc SSH đi vào. AgentsRoom mở phiên trên một cổng loopback rồi nối trình khách cơ sở dữ liệu qua đó. MySQL, PostgreSQL và MongoDB, tức là RDS MySQL, RDS PostgreSQL, Aurora và DocumentDB.
Trình quản lý bí mật
Lưu khóa API, token và mật khẩu trong keychain của hệ điều hành, tham chiếu chúng bằng {{secret:NAME}} trong lệnh dev và trong môi trường của agent, rồi để AgentsRoom phân giải lúc khởi chạy. Agent chỉ thấy tên, không bao giờ thấy giá trị, và không có gì được đồng bộ lên máy chủ.
Kết nối SSH
Lưu các kết nối SSH của bạn, mở terminal tích hợp qua SSH và chạy Claude Code, Codex hoặc Antigravity CLI trực tiếp trên máy chủ từ xa hay VPS của bạn. Xác thực bằng khóa SSH hoặc mật khẩu, hồ sơ kết nối theo từng dự án, không cần ứng dụng SSH riêng.
Truy vấn instance Cloud SQL riêng tư của bạn
Tải AgentsRoom, chọn instance Cloud SQL của bạn và truy vấn nó qua Cloud SQL Auth Proxy bằng chính lần đăng nhập gcloud của bạn: không VM bastion, không IP công khai, không khóa trên đĩa.
Ứng dụng đồng hành: theo dõi agent khi đi đường
Sử dụng Claude, Codex, Antigravity CLI hoặc nhà cung cấp AI khác.
Gửi lỗi và yêu cầu thẳng vào backlog công khai của bạn.