Instance RDS của bạn không có endpoint công khai.
Hãy chạm tới nó qua AWS SSM, không cần bastion.
AgentsRoom mở một phiên chuyển tiếp cổng AWS Session Manager tới cơ sở dữ liệu của bạn và nối trình khách cơ sở dữ liệu của mình qua đó. Phiên chạy aws ssm start-session với tài liệu AWS-StartPortForwardingSessionToRemoteHost, được cấp quyền bởi hồ sơ AWS đã cấu hình sẵn trên máy của bạn.
Cơ sở dữ liệu vẫn nằm trong mạng con riêng của nó, security group vẫn đóng, và không có gì mới bị phơi ra internet. Điều thay đổi là cuối cùng bạn cũng truy vấn được nó, và một agent AI lập trình cũng vậy, ở chế độ chỉ đọc.
Cách AgentsRoom chạm tới một instance RDS trong mạng con riêng thông qua AWS Systems Manager, mà không mở bất cứ thứ gì ra internet.
Kiểu thiết lập này phổ biến đến mức nhàm chán, và phiền toái đến mức ngốn của bạn cả một buổi chiều. Một instance Amazon RDS nằm trong mạng con riêng. Nó không có endpoint công khai. Security group của nó chỉ nhận lưu lượng từ ứng dụng, ngoài ra không nhận gì khác. Chẳng có cổng SSH đi vào nào ở bất cứ đâu trong VPC đó, vì đã có người làm đúng và đóng nó lại. Vậy mà giờ đây bạn lại cần nhìn ba hàng dữ liệu để hiểu một lỗi.
AWS Systems Manager Session Manager đã giải quyết sẵn phần vận chuyển. Một node EC2 được quản lý nằm trong VPC có thể chuyển tiếp một cổng cục bộ trên máy bạn tới một host thứ ba mà nó chạm tới được, và một instance RDS trong mạng con riêng đúng là như vậy. Tài liệu làm việc đó là AWS-StartPortForwardingSessionToRemoteHost, còn câu lệnh là aws ssm start-session. Không có gì lạ lẫm, không có gì phải cài lên cơ sở dữ liệu.
AgentsRoom chạy câu lệnh đó thay bạn và đặt một trình khách cơ sở dữ liệu ở đầu bên kia. Bạn chọn instance, region và hồ sơ một lần, gắn một kết nối cơ sở dữ liệu vào đó, và từ lúc ấy mở cơ sở dữ liệu này chỉ còn là một cú nhấp. Phiên được cấp quyền bởi chính hồ sơ AWS hay lần đăng nhập SSO của bạn, nên không có khóa và không có mật khẩu nào được lưu cho riêng chặng nhảy đó.
Những lối đi vòng quen thuộc đều có cái giá của nó
Ba câu trả lời cho cùng một vấn đề, và cái giá mà mỗi câu bắt bạn trả.
Một máy chủ bastion phải bảo trì
Một jump box đặt trong mạng con công khai là một máy chủ mà bạn phải vá, phải giám sát, phải trả tiền rồi cuối cùng sẽ quên. Nó mang theo một cổng SSH đi vào, một danh sách khóa được phép cứ trôi dạt theo người vào người ra, và một security group chỉ cách chuyện mở toang ra thế giới đúng một lần chỉnh sửa bất cẩn. Nó tồn tại chỉ để thỉnh thoảng có ai đó chạm tới được một cơ sở dữ liệu.
Một VPN cho một câu hỏi ba hàng dữ liệu
Một VPN phía máy khách đưa cả chiếc máy của bạn vào bên trong mạng chỉ để trả lời một câu hỏi về ba hàng dữ liệu. Nó phải được cấp phát, phân phối, gia hạn rồi thu hồi, nó xung đột với phần còn lại trong kết nối mạng của bạn, và trên một chiếc laptop di chuyển qua nhiều mạng thì nó là mảnh hỏng đầu tiên. Phần lớn các nhóm đã có VPN vẫn giữ thêm một bastion bên cạnh.
Thông tin đăng nhập bị sao chép khắp nơi
Phương án mà ai cũng quay về lại còn tệ hơn : endpoint và mật khẩu kết thúc trong một tin nhắn chat, một ghi chú dùng chung, một script bị commit nhầm, hay một prompt gửi cho một agent AI. Quyền truy cập lan ra những nơi không ai theo dõi, và thu hồi nó về sau nghĩa là xoay vòng một thông tin đăng nhập rồi hy vọng mọi bản sao đều đã biến mất.
Từ một instance RDS 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.
Lưu một kết nối AWS SSM
Trong trình quản lý kết nối, thêm một kết nối và đặt phương thức vận chuyển của nó thành AWS SSM. Bạn đưa cho nó ID instance của một node EC2 được quản lý có thể chạm tới cơ sở dữ liệu (i-0123456789abcdef0), hồ sơ AWS của bạn và region. Không có ô mật khẩu và cũng không có ô khóa, vì phiên được cấp quyền bởi thông tin đăng nhập AWS vốn đã có sẵn trên máy của bạn.
Thêm cơ sở dữ liệu và chạm tới nó qua kết nối đó
Thêm một kết nối cơ sở dữ liệu với endpoint RDS làm host, kèm port, user và cơ sở dữ liệu, rồi chọn engine của nó. Ở trường Reach through, chọn kết nối AWS SSM bạn vừa lưu thay vì Direct connection. Toàn bộ cấu hình chỉ có vậy : endpoint vẫn riêng tư, security group vẫn đóng.
AgentsRoom mở phiên
Khi bạn mở kết nối, AgentsRoom xin hệ điều hành một cổng loopback còn trống, rồi khởi chạy aws ssm start-session với tài liệu AWS-StartPortForwardingSessionToRemoteHost, truyền endpoint RDS làm host, cổng cơ sở dữ liệu làm portNumber và cổng đã giữ chỗ làm localPortNumber. Nó chờ tới khi cổng đó thực sự chấp nhận một kết nối TCP rồi mới tuyên bố đường hầm đã sẵn sàng, nên trình khách không bao giờ kết nối quá sớm.
Truy vấn nó, hoặc để một agent truy vấn
Bảng điều khiển kết nối tới 127.0.0.1 trên cổng đã chuyển tiếp và hoạt động như mọi kết nối khác : trình duyệt lược đồ, mỗi lần một câu lệnh, tập kết quả có giới hạn. Một agent AI lập trình truy vấn được chính kết nối đó qua MCP, ở chế độ chỉ đọc, mà không bao giờ nhận mật khẩu. Đóng kết nối là tiến trình của phiên cũng tắt theo.
Câu lệnh mà AgentsRoom khởi chạy
Ở đây không có giao thức độc quyền nào và cũng không có gì được viết lại bằng JavaScript. AgentsRoom khởi chạy AWS CLI như một tiến trình con, với các tham số được truyền thẳng chứ không đi qua một shell, rồi đọc đầu ra của nó. Nếu bạn từng tự tay mở một phiên chuyển tiếp cổng, đây chính là dòng lệnh bạn đã quen.
aws ssm start-session \
--target i-0a1b2c3d4e5f \
--document-name AWS-StartPortForwardingSessionToRemoteHost \
--parameters host=acme-prod.abc123.eu-west-1.rds.amazonaws.com,\
portNumber=3306,localPortNumber=54321 \
--profile acme-prod --region eu-west-1ID instance, endpoint, region và hồ sơ đều lấy từ kết nối bạn đã lưu. Cổng cục bộ do hệ điều hành chọn vào lúc mở.
Chuyển tiếp tới chính node được quản lý, thay vì tới một cơ sở dữ liệu nằm phía sau nó, vẫn là tài liệu đó với host=localhost. Đó là lý do cùng một kiểu kết nối bao trùm được cả một cơ sở dữ liệu trong mạng con riêng lẫn một dịch vụ đang chạy trên chính instance mà bạn đang kết nối tới.
Những gì phải đúng thì nó mới chạy được
AgentsRoom điều khiển thiết lập AWS của bạn chứ không thay thế nó. Năm thứ phải sẵn sàng, và đó đúng là năm thứ mà bản thân Session Manager vốn đã cần.
AWS CLI trên máy của bạn
AgentsRoom gọi thẳng tệp nhị phân aws. Nếu aws ssm start-session chạy được trong terminal của bạn thì nó cũng chạy được ở đây.
Plugin session-manager-plugin
Session Manager cần plugin của nó được cài bên cạnh CLI. Không có plugin, phiên thoát ra ngay lập tức và AgentsRoom hiển thị cho bạn đúng lỗi mà CLI in ra thay vì treo cứng.
Một hồ sơ AWS hoặc một lần đăng nhập SSO còn hoạt động
Quyền được cấp từ chính thông tin đăng nhập của bạn, truyền vào dưới dạng --profile và --region. AgentsRoom lưu tên hồ sơ và region, không bao giờ lưu một khóa, không bao giờ lưu một bí mật.
Một node được quản lý trong VPC
Một instance EC2 đã đăng ký với Systems Manager, đang chạy SSM Agent, kèm một instance profile cho phép mở phiên. Đó là node mà lưu lượng đi xuyên qua, và bản thân nó không cần một cổng đi vào nào.
Một đường đi từ node tới cơ sở dữ liệu
Security group của cơ sở dữ liệu phải chấp nhận lưu lượng từ node trên cổng cơ sở dữ liệu, và chính sách IAM của bạn phải cho phép ssm:StartSession với tài liệu đó. Ngoài ra không có gì khác trong VPC phải thay đổi.
Đường hầm làm được gì, và nó từ chối làm gì
Những đặc tính quyết định việc để nguyên cấu hình này trên một chiếc laptop có an toàn hay không.
Chỉ loopback
Cổng được chuyển tiếp chỉ gắn vào 127.0.0.1, không gắn vào gì khác. Một cơ sở dữ liệu chạm tới theo cách này không bao giờ bị phát lại ra mạng cục bộ, nên một mạng Wi-Fi quán cà phê không biến laptop của bạn thành một proxy mở dẫn thẳng vào sản xuất.
Một 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 rồi giao nó cho phiên. Không có cổng cố định nào để đoán, không có gì phải giữ chỗ trước, và không đụng độ với bất cứ thứ gì khác mà bạn đang chạy.
Sẵn sàng là thật sự sẵn sàng
Đường hầm chỉ được coi là xong khi cổng cục bộ thực sự chấp nhận một kết nối TCP, và nếu điều đó không bao giờ xảy ra thì nó dừng lại kèm đúng lỗi mà CLI in ra. Không có một lệnh chờ tùy tiện nào, không có trình khách nào kết nối vào một cổng còn chưa lắng nghe.
Không khóa, không mật khẩu cho chặng nhảy
Phiên SSM được cấp quyền bởi hồ sơ AWS hay phiên SSO của bạn. AgentsRoom lưu ID instance, tên hồ sơ và region, và không lưu bất cứ thứ gì mà người đọc được cấu hình đó có thể đem phát lại.
Cơ sở dữ liệu vẫn ở chế độ chỉ đọc
Một kết nối cơ sở dữ liệu lúc tạo ra là chỉ đọc. Một lần ghi đòi hỏi chính kết nối đó được cho phép ghi cùng một xác nhận rõ ràng, và một kết nối được đánh dấu là sản xuất sẽ nói to điều đó ra trong lời xác nhận ấy.
Mỗi lần gọi một câu lệnh
Mỗi lần gọi mang đúng một câu lệnh, nên không có gì nấp sau một dấu chấm phẩy, và tập kết quả bị giới hạn để một truy vấn rộng không thể làm ngập một cửa sổ hay ngữ cảnh của một agent.
Vì sao đây là ít quyền truy cập hơn, chứ không phải nhiều hơn
Nghe tới đường hầm là thấy giống một cái lỗ, và phản xạ đó không sai : phần lớn các cách chạm tới một cơ sở dữ liệu riêng tư đúng là mở rộng bề mặt tấn công. Cách này thì thu hẹp nó lại. Không có gì được mở ra ở phía cơ sở dữ liệu, không có cổng đi vào nào được tạo ra ở bất cứ đâu trong VPC, và node được quản lý cũng không cần một trình lắng nghe SSH nào của riêng nó. Lưu lượng đi ra từ node tới dịch vụ Systems Manager, còn máy của bạn gặp nó ở đó.
Việc cấp quyền vẫn nằm đúng nơi tổ chức của bạn vốn đã quản lý nó. Phiên được cấp bởi danh tính AWS của bạn, thông qua hồ sơ hay lần đăng nhập SSO đã cấu hình sẵn trên máy, nghĩa là nó được ghi log như mọi phiên Session Manager khác, bị thu hồi đúng ngày danh tính đó bị thu hồi, và bị giới hạn phạm vi bởi một chính sách IAM chứ không phải bởi việc ai đang tình cờ giữ một cái khóa. AgentsRoom lưu ID instance, tên hồ sơ và region : không thứ nào trong đó là một thông tin đăng nhập.
Ở phía cơ sở dữ liệu, các rào chắn vẫn đúng là những rào chắn mà mọi kết nối AgentsRoom đều có. 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 cờ sản xuất siết chặt lời xác nhận trước khi ghi. Một agent AI truy vấn qua MCP nhận về một tập kết quả chứ không bao giờ nhận mật khẩu, và công cụ nó dùng để truy vấn từ chối mọi thứ ngoài một lần đọc, trừ khi bạn đã cho phép ghi trên kết nối đó và bật “Cho phép tác tử ghi dữ liệu” cho nó.
Bốn engine đi qua đường hầm, và những cái vẫn còn thiếu
Đường hầm chỉ chuyển tiếp một cổng TCP và không quan tâm tới engine; thứ quyết định là trình khách nằm bên trên nó. AgentsRoom có sẵn bốn : MySQL và MariaDB, PostgreSQL, SQL Server, và MongoDB. Trên RDS, chừng đó phủ RDS for MySQL, RDS for MariaDB, RDS for PostgreSQL, RDS for SQL Server, các bản Aurora tương thích với MySQL hoặc PostgreSQL, và Amazon DocumentDB ở phía MongoDB. Oracle không được hỗ trợ. Bạn xứng đáng biết điều đó trước khi tải chứ không phải sau khi tải.
Bản thân lớp vận chuyển SSM không phụ thuộc vào engine, vì nó chuyển tiếp một cổng TCP. Thứ quyết định là trình khách nằm bên trên, và đó chính là chỗ Oracle vẫn còn thiếu. Engine nào tới lượt tiếp theo là do những gì mọi người yêu cầu quyết định, nên nếu thiếu cái của bạn, hãy nói rõ đó là cái nào trên backlog công khai và nó 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 nó, ở chế độ chỉ đọc
Một khi kết nối đã tồn tại, một agent AI lập trình dùng được nó qua AgentsRoom MCP bằng cách gọi tên. db_list trả về các kết nối đã lưu cùng siêu dữ liệu của chúng, db_schema đi qua các lược đồ, các bảng và các cột mà không cần một dòng SQL, db_query chạy một câu lệnh và trả về các hàng đã bị giới hạn, còn db_connection_new đề xuất một cơ sở dữ liệu chưa được lưu bằng cách điền sẵn biểu mẫu để bạn xem lại rồi lưu.
AgentsRoom tự mở phiên SSM khi agent yêu cầu, nên agent không bao giờ cầm một thông tin đăng nhập AWS, một mật khẩu cơ sở dữ liệu hay một số cổng. Thứ đi ngược trở về là một tập kết quả. Các thao tác ghi đòi một kết nối được cho phép ghi và việc người dùng bật rõ ràng cài đặt “Cho phép tác tử ghi dữ liệu”; tùy chọn này mặc định tắt và khi được bật thì các thao tác ghi chạy ngay lập tức.
Đó chính là toàn bộ lý do phải làm việc này cho tử tế. Một agent đang gỡ lỗi trên một bản sao sản xuất nằm trong mạng con riêng đọc được đúng những hàng giải thích lỗi, và không có đường nào để thay đổi chúng trừ khi bạn đã mở kết nối đó cho agent ghi, không có thông tin đăng nhập nào để rò rỉ vào ngữ cảnh của nó, và không có cách nào chạm tới cơ sở dữ liệu đó một khi ứng dụng đã đóng.
Câu hỏi thường gặp
Hỏi chúng tôi điều khácLàm sao tôi kết nối tới một instance RDS không có endpoint công khai?
AgentsRoom dùng tài liệu SSM nào?
Tôi có còn cần một máy chủ bastion không?
Tôi cần cài những gì trên máy của mình?
AgentsRoom có lưu một khóa AWS cho việc này không?
Đường hầm dùng cổng cục bộ nào, và ai chạm tới được nó?
Cách này có chạy với RDS for PostgreSQL không?
Tôi có chuyển tiếp tới chính instance EC2 thay vì tới một cơ sở dữ liệu được không?
Một agent AI có truy vấn được cơ sở dữ liệu qua đường hầm không?
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, SQL Server, MongoDB, SQLite và Google BigQuery 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 cho MySQL, PostgreSQL và MongoDB.
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.
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ủ.
Remote Fleet
Chạy các tác nhân lập trình Claude, Codex và Antigravity trên mọi máy tính bạn sở hữu, và mời đồng đội hợp tác trên cùng một tác nhân trong thời gian thực. Máy tính văn phòng, máy tính ở nhà, máy chủ xây dựng, dự án nhóm chia sẻ: tất cả trong một cái nhìn thống nhất, được mã hóa đầu cuối.
Truy vấn cơ sở dữ liệu mà không ai chạm tới được
Tải AgentsRoom, lưu một kết nối AWS SSM, trỏ một cơ sở dữ liệu MySQL, PostgreSQL, SQL Server hay MongoDB vào đó, và truy vấn instance RDS riêng tư của bạn mà không cần bastion, không cần VPN và không cần một mật khẩu dùng chung.
Ứ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.
Đọc agent như một cuộc trò chuyện
Mỗi agent có vai trò, khuôn mặt và một luồng tin nhắn bạn đọc như ứng dụng nhắn tin.
