Instance RDS Anda Tidak Punya Endpoint Publik.
Jangkau Lewat AWS SSM, Tanpa Bastion.
AgentsRoom membuka sesi penerusan port AWS Session Manager ke database Anda dan menyambungkan klien SQL-nya lewat jalur itu. Sesinya menjalankan aws ssm start-session dengan dokumen AWS-StartPortForwardingSessionToRemoteHost, diotorisasi oleh profil AWS yang sudah dikonfigurasi di mesin Anda.
Database tetap berada di subnet privatnya, security group tetap tertutup, dan tidak ada satu pun hal baru yang terekspos ke internet. Yang berubah adalah Anda akhirnya bisa menjalankan kueri terhadapnya, begitu juga agen coding AI, secara baca-saja.
Bagaimana AgentsRoom menjangkau instance RDS di subnet privat lewat AWS Systems Manager, tanpa membuka apa pun ke internet.
Konfigurasinya cukup umum sampai terasa membosankan, dan cukup menyakitkan sampai menghabiskan satu sore penuh. Sebuah instance Amazon RDS duduk di subnet privat. Ia tidak punya endpoint publik. Security group-nya menerima trafik dari aplikasi, dan tidak dari yang lain. Tidak ada port SSH masuk di mana pun dalam VPC itu, karena seseorang melakukan hal yang benar dan menutupnya. Dan sekarang Anda perlu melihat tiga baris data untuk memahami sebuah bug.
AWS Systems Manager Session Manager sudah menyelesaikan urusan transportnya. Sebuah node EC2 terkelola di dalam VPC bisa meneruskan port lokal di mesin Anda ke host ketiga yang bisa ia jangkau, dan itulah persis posisi sebuah instance RDS di subnet privat. Dokumen yang melakukannya adalah AWS-StartPortForwardingSessionToRemoteHost, dan perintahnya adalah aws ssm start-session. Tidak ada yang eksotis, tidak ada yang perlu dipasang di databasenya.
AgentsRoom menjalankan perintah itu untuk Anda dan menempatkan klien SQL di ujung satunya. Anda memilih instance, region, dan profilnya sekali, mengaitkan sebuah koneksi database ke sana, dan sejak itu membuka database tersebut cukup satu klik. Sesinya diotorisasi oleh profil AWS atau login SSO Anda sendiri, jadi tidak ada kunci dan tidak ada kata sandi yang disimpan untuk lompatan itu sendiri.
Semua Jalan Memutar yang Biasa Dipakai Ada Harganya
Tiga jawaban untuk masalah yang sama, dan apa yang ditagihkan masing-masing kepada Anda.
Host bastion yang harus dirawat
Sebuah jump box di subnet publik adalah server yang Anda patch, pantau, bayari, dan pada akhirnya lupakan. Ia membawa satu port SSH masuk, daftar kunci terotorisasi yang terus melenceng seiring orang datang dan pergi, dan security group yang hanya berjarak satu suntingan ceroboh dari terbuka ke seluruh dunia. Ia ada semata-mata agar sesekali ada orang yang bisa menjangkau sebuah database.
VPN demi pertanyaan sepanjang tiga baris
VPN klien menaruh seluruh mesin Anda di dalam jaringan hanya untuk menjawab pertanyaan tentang tiga baris data. Ia harus disiapkan, dibagikan, diperbarui, dan dicabut, ia berebut dengan sisa konektivitas Anda, dan di laptop yang berpindah-pindah jaringan ia bagian yang paling dulu rusak. Kebanyakan tim yang memakainya tetap menyimpan sebuah bastion di sebelahnya.
Kredensial yang disalin ke mana-mana
Alternatif yang selalu jadi pelarian justru lebih buruk : endpoint dan kata sandinya berakhir di pesan chat, catatan bersama, skrip yang tidak sengaja dicommit, atau prompt yang dikirim ke sebuah agen AI. Aksesnya menyebar ke tempat-tempat yang tidak dilacak siapa pun, dan mencabutnya kemudian berarti merotasi sebuah kredensial sambil berharap semua salinannya sudah lenyap.
Dari Instance RDS Privat Menjadi Sebuah Set Hasil
Empat langkah, dikerjakan sekali, setelah itu cukup satu klik.
Simpan sebuah koneksi AWS SSM
Di pengelola koneksi, tambahkan sebuah koneksi dan setel transportnya ke AWS SSM. Anda memberinya ID instance dari node EC2 terkelola yang bisa menjangkau databasenya (i-0123456789abcdef0), profil AWS Anda, dan region-nya. Tidak ada kolom kata sandi dan tidak ada kolom kunci, karena sesinya diotorisasi oleh kredensial AWS yang sudah ada di mesin Anda.
Tambahkan databasenya dan jangkau lewat koneksi itu
Tambahkan koneksi MySQL atau MariaDB dengan endpoint RDS sebagai host-nya, lalu port, pengguna, dan databasenya. Di kolom Jangkau lewat, pilih koneksi AWS SSM yang baru Anda simpan alih-alih Koneksi langsung. Itu seluruh konfigurasinya : endpoint-nya tetap privat, security group-nya tetap tertutup.
AgentsRoom membuka sesinya
Saat Anda membuka koneksinya, AgentsRoom meminta port loopback yang bebas kepada sistem operasi, lalu menjalankan aws ssm start-session dengan dokumen AWS-StartPortForwardingSessionToRemoteHost, mengirimkan endpoint RDS sebagai host, port database sebagai portNumber, dan port yang dipesan sebagai localPortNumber. Ia menunggu sampai port itu benar-benar menerima koneksi TCP sebelum menyatakan terowongannya siap, jadi kliennya tidak pernah menyambung terlalu dini.
Jalankan kuerinya, atau biarkan agen yang menjalankan
Konsol SQL menyambung ke 127.0.0.1 pada port yang diteruskan dan berperilaku seperti koneksi lainnya : penjelajah skema, satu pernyataan dalam satu waktu, set hasil yang dibatasi. Sebuah agen coding AI bisa menjalankan kueri ke koneksi yang sama lewat MCP, secara baca-saja, tanpa pernah menerima kata sandinya. Menutup koneksinya sekaligus mematikan proses sesinya.
Perintah yang dijalankan AgentsRoom
Tidak ada protokol milik sendiri di sini dan tidak ada yang diimplementasikan ulang dalam JavaScript. AgentsRoom menjalankan AWS CLI sebagai proses anak, dengan argumen yang diteruskan langsung alih-alih lewat shell, lalu membaca keluarannya. Kalau Anda pernah membuka sesi penerusan port secara manual, inilah baris perintah yang sudah Anda kenal.
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, dan profilnya datang dari koneksi yang Anda simpan. Port lokalnya dipilih oleh sistem operasi saat koneksi dibuka.
Meneruskan ke node terkelola itu sendiri, alih-alih ke database di belakangnya, memakai dokumen yang sama dengan host=localhost. Itu sebabnya satu jenis koneksi yang sama mencakup database di subnet privat sekaligus layanan yang berjalan di instance tempat Anda terhubung.
Apa yang harus terpenuhi agar ini bekerja
AgentsRoom mengemudikan setup AWS Anda, bukan menggantikannya. Ada lima hal yang harus sudah siap, dan kelimanya sama persis dengan yang dibutuhkan Session Manager sendiri.
AWS CLI di mesin Anda
AgentsRoom memanggil biner aws secara langsung. Kalau aws ssm start-session berjalan di terminal Anda, ia juga berjalan di sini.
session-manager-plugin
Session Manager butuh plugin-nya terpasang berdampingan dengan CLI. Tanpa itu, sesinya langsung berhenti dan AgentsRoom menampilkan galat yang dicetak CLI alih-alih menggantung.
Profil AWS atau login SSO yang berfungsi
Otorisasinya datang dari kredensial Anda sendiri, yang diteruskan sebagai --profile dan --region. AgentsRoom menyimpan nama profil dan region-nya, tidak pernah sebuah kunci, tidak pernah sebuah rahasia.
Sebuah node terkelola di dalam VPC
Sebuah instance EC2 yang terdaftar di Systems Manager, menjalankan SSM Agent, dengan instance profile yang mengizinkan sesinya. Node inilah yang dilewati trafik, dan ia tidak butuh port masuk miliknya sendiri.
Jalur dari node menuju database
Security group database harus menerima trafik dari node itu pada port database, dan kebijakan IAM Anda harus mengizinkan ssm:StartSession dengan dokumen tersebut. Tidak ada hal lain di VPC yang perlu diubah.
Apa yang Dilakukan Terowongan Ini, dan Apa yang Ditolaknya
Sifat-sifat yang menentukan apakah ini aman dibiarkan terkonfigurasi di sebuah laptop.
Hanya loopback
Port yang diteruskan terikat ke 127.0.0.1 dan tidak ke apa pun selain itu. Database yang dijangkau dengan cara ini tidak pernah diterbitkan ulang ke jaringan lokal, jadi Wi-Fi kedai kopi tidak mengubah laptop Anda menjadi proksi terbuka menuju produksi.
Port yang dipilih sistem operasi
AgentsRoom meminta port yang bebas kepada sistem operasi dan menyerahkannya ke sesi. Tidak ada port tetap yang bisa ditebak, tidak ada yang perlu dipesan lebih dulu, dan tidak ada tabrakan dengan apa pun yang sedang Anda jalankan.
Siap berarti benar-benar siap
Terowongannya baru dinyatakan beres setelah port lokal benar-benar menerima koneksi TCP, dan ia menyerah dengan galat yang dicetak CLI kalau itu tidak pernah terjadi. Tidak ada jeda tunggu asal-asalan, tidak ada klien yang menyambung ke port yang belum mendengarkan.
Tanpa kunci, tanpa kata sandi untuk lompatan itu
Sesi SSM diotorisasi oleh profil AWS atau sesi SSO Anda. AgentsRoom menyimpan ID instance, nama profil, dan region-nya, dan tidak ada satu pun yang bisa diputar ulang oleh siapa saja yang membaca konfigurasi itu.
Databasenya tetap baca-saja
Sebuah koneksi database bersifat baca-saja sejak dibuat. Penulisan menuntut koneksi itu dibuat bisa ditulis sekaligus sebuah konfirmasi eksplisit, dan koneksi yang ditandai sebagai produksi menyatakannya dengan lantang di konfirmasi tersebut.
Satu pernyataan per panggilan
Setiap panggilan membawa tepat satu pernyataan, jadi tidak ada yang bersembunyi di balik titik koma, dan set hasilnya dibatasi supaya kueri yang lebar tidak bisa membanjiri jendela atau konteks agen.
Mengapa Ini Justru Mengurangi Akses, Bukan Menambahnya
Terowongan terdengar seperti lubang, dan refleks itu tidak salah : sebagian besar cara menjangkau database privat memang memperlebar permukaan serangan. Yang ini justru mempersempitnya. Tidak ada yang dibuka di sisi database, tidak ada port masuk yang dibuat di mana pun dalam VPC, dan node terkelola tidak butuh listener SSH miliknya sendiri. Trafiknya keluar dari node menuju layanan Systems Manager, dan mesin Anda menemuinya di sana.
Otorisasi tetap berada di tempat organisasi Anda sudah mengelolanya. Sesinya diberikan oleh identitas AWS Anda, lewat profil atau login SSO yang sudah dikonfigurasi di mesin, artinya sesi itu tercatat seperti sesi Session Manager mana pun, dicabut pada hari identitas itu dicabut, dan dibatasi oleh kebijakan IAM alih-alih oleh siapa yang kebetulan memegang sebuah kunci. AgentsRoom menyimpan ID instance, nama profil, dan region : tidak satu pun dari itu adalah kredensial.
Di sisi database, pengamannya sama persis dengan yang didapat setiap koneksi AgentsRoom. Baca-saja secara bawaan, satu pernyataan per panggilan, set hasil yang dibatasi, dan penanda produksi yang memperketat konfirmasi penulisan. Agen AI yang menjalankan kueri lewat MCP mendapat set hasil dan tidak pernah kata sandinya, dan alat yang ia pakai untuk berkueri menolak apa pun selain pembacaan, apa pun yang boleh dilakukan manusia lewat koneksi itu.
Hanya MySQL dan MariaDB, dan PostgreSQL bukan salah satunya
Klien databasenya berbicara dengan protokol wire MySQL, jadi mesin yang berfungsi adalah MySQL dan MariaDB. Di RDS itu berarti RDS for MySQL, RDS for MariaDB, dan edisi Aurora yang kompatibel dengan MySQL. RDS for PostgreSQL dan Aurora PostgreSQL tidak didukung, begitu pula SQL Server, Oracle, MongoDB, atau SQLite. Anda berhak tahu itu sebelum mengunduh, bukan sesudahnya.
Transport SSM-nya sendiri tidak peduli mesin apa yang dipakai, karena ia hanya meneruskan sebuah port TCP. Yang belum ada untuk PostgreSQL adalah kliennya di atas transport itu, bukan terowongan di bawahnya. Mesin mana yang menyusul ditentukan oleh apa yang diminta orang, jadi kalau milik Anda belum ada, sebutkan yang mana di backlog publik dan permintaan itu akan dihitung.
Minta mesin database AndaAgen pun bisa menjalankan kueri, secara baca-saja
Begitu koneksinya ada, sebuah agen coding AI bisa memakainya lewat AgentsRoom MCP dengan menyebut namanya. db_list mengembalikan koneksi tersimpan beserta metadatanya, db_schema menelusuri skema, tabel, dan kolomnya tanpa satu baris SQL pun, db_query menjalankan satu pernyataan dan mengembalikan baris yang dibatasi, dan db_connection_new mengusulkan database yang belum tersimpan dengan mengisi awal formulir yang Anda tinjau lalu simpan.
AgentsRoom sendiri yang membuka sesi SSM ketika agen memintanya, jadi agen tidak pernah memegang kredensial AWS, kata sandi database, atau nomor port. Yang kembali hanyalah set hasil. db_query bersifat baca-saja apa pun yang diizinkan koneksinya, dan aturan itu hidup di aplikasi desktop alih-alih di proses MCP, jadi ia tetap berlaku bahkan jika agen dibujuk untuk meminta hal lain.
Justru di situlah gunanya melakukan ini dengan benar. Agen yang men-debug terhadap replika produksi di subnet privat membaca baris-baris yang menjelaskan bug-nya, dan tidak punya jalan untuk mengubahnya, tidak punya kredensial yang bisa bocor ke konteksnya, dan tidak punya cara menjangkau database itu begitu aplikasinya ditutup.
FAQ
Bagaimana cara terhubung ke instance RDS yang tidak punya endpoint publik?
Lewat sesi penerusan port AWS SSM. Simpan sebuah koneksi AWS SSM yang menunjuk ke node EC2 terkelola yang bisa menjangkau databasenya, lalu buat koneksi MySQL atau MariaDB dengan endpoint RDS sebagai host-nya dan pilih koneksi SSM tadi di kolom Jangkau lewat. AgentsRoom membuka sesinya dengan aws ssm start-session dan menyambungkan klien SQL ke port loopback yang diteruskan. Databasenya tetap tanpa endpoint publik dan security group-nya tidak berubah.
Dokumen SSM mana yang dipakai AgentsRoom?
AWS-StartPortForwardingSessionToRemoteHost, dengan host disetel ke endpoint database, portNumber disetel ke port database, dan localPortNumber disetel ke port loopback yang dipesan di mesin Anda. Dokumen itu meneruskan lalu lintas lewat node terkelola menuju host ketiga, yang persis menggambarkan sebuah instance RDS di subnet privat. Meneruskan ke node itu sendiri memakai dokumen yang sama dengan host=localhost.
Apakah saya masih butuh host bastion?
Tidak. Session Manager menggantikan jump box untuk kasus pemakaian ini : node terkelola tidak butuh port SSH masuk maupun IP publik, trafiknya keluar dari node menuju layanan Systems Manager, dan mesin Anda bergabung ke sesinya dari luar. Tidak ada daftar kunci yang harus dirawat dan tidak ada subnet publik yang harus terus diawasi.
Apa saja yang harus terpasang di mesin saya?
AWS CLI dan session-manager-plugin, ditambah profil AWS atau login SSO yang berfungsi. AgentsRoom memanggil biner aws secara langsung, jadi kalau aws ssm start-session berjalan di terminal Anda, ia juga berjalan di sini. Kalau plugin-nya tidak ada, sesinya langsung berhenti dan AgentsRoom menampilkan galat yang dicetak CLI alih-alih menggantung pada prompt yang tidak terlihat.
Apakah AgentsRoom menyimpan kunci AWS untuk ini?
Tidak. Sesinya diotorisasi oleh kredensial AWS yang sudah dikonfigurasi di mesin Anda, yang diteruskan ke CLI sebagai --profile dan --region. AgentsRoom menyimpan ID instance, nama profil, dan region, dan semuanya bukan kredensial. Kata sandi database adalah hal terpisah : ia disimpan di brankas yang dienkripsi lewat keychain sistem operasi Anda, dan tidak pernah dikembalikan ke sebuah agen AI.
Port lokal mana yang dipakai terowongannya, dan siapa yang bisa menjangkaunya?
Sistem operasi memilih port yang bebas saat koneksi dibuka, dan terowongannya mengikat port itu hanya ke 127.0.0.1. Tidak ada apa pun di jaringan lokal yang bisa menjangkaunya, dan tidak ada port tetap yang bisa ditebak. Terowongannya baru dianggap siap setelah port tersebut benar-benar menerima koneksi TCP, dan ia ditutup bersama koneksinya.
Apakah ini bekerja dengan RDS for PostgreSQL?
Tidak. Klien databasenya hanya mendukung MySQL dan MariaDB, jadi di RDS itu berarti RDS for MySQL, RDS for MariaDB, dan edisi Aurora yang kompatibel dengan MySQL. RDS for PostgreSQL dan Aurora PostgreSQL belum didukung hari ini, begitu pula SQL Server, Oracle, MongoDB, atau SQLite. Terowongan SSM-nya sendiri meneruskan sebuah port TCP dan tidak peduli mesinnya apa : yang belum ada adalah kliennya di atas itu. Mintalah sebuah mesin di backlog publik dan permintaan itu akan dihitung.
Bisakah saya meneruskan ke instance EC2 itu sendiri alih-alih ke sebuah database?
Bisa. Itu dokumen yang sama dengan host=localhost, jadi layanan yang mendengarkan di node terkelola bisa dijangkau dengan cara yang sama. Koneksi AWS SSM yang sama juga membuka sesi terminal biasa di instance tersebut, dan begitulah cara Anda menjalankan agen CLI di mesin yang sama sekali tidak punya port SSH masuk.
Bisakah agen AI menjalankan kueri ke database lewat terowongan itu?
Bisa, secara baca-saja. Agen menyebut nama sebuah koneksi tersimpan lewat AgentsRoom MCP, aplikasi membuka sesi SSM dan menjalankan pernyataannya sendiri, lalu hanya set hasilnya yang kembali. Agen tidak pernah menerima profil AWS, kredensial endpoint, atau kata sandi database, dan db_query menolak apa pun selain pembacaan, apa pun yang boleh dilakukan manusia lewat koneksi itu.
Anda mungkin juga suka
Koneksi Database
Simpan koneksi MySQL dan MariaDB Anda, jangkau database di subnet privat lewat terowongan SSH atau sesi AWS SSM, dan biarkan agen AI Anda menjalankan kueri lewat MCP. Baca-saja secara bawaan, satu pernyataan per panggilan, set hasil dibatasi, dan kata sandi tidak pernah sampai ke agen.
Koneksi SSH
Simpan koneksi SSH-mu, buka terminal SSH bawaan, dan jalankan Claude Code, Codex, atau Antigravity CLI langsung di server jarak jauh atau VPS-mu. Autentikasi dengan kunci SSH atau kata sandi, profil koneksi per proyek, tanpa perlu klien SSH terpisah.
Pengelola Rahasia
Simpan kunci API, token, dan kata sandi di keychain sistem operasi Anda, rujuk sebagai {{secret:NAME}} di perintah dev dan lingkungan agen, lalu biarkan AgentsRoom menggantinya dengan nilai asli saat peluncuran. Agen melihat namanya, tidak pernah nilainya, dan tidak ada yang disinkronkan ke server.
Remote Fleet
Jalankan agen pengkodean Claude, Codex, dan Antigravity di setiap Mac yang Anda miliki, dan undang rekan tim untuk berkolaborasi pada agen yang sama secara real time. Mesin kantor, mesin rumah, server build, proyek tim bersama : semua dalam satu tampilan yang terintegrasi dan terenkripsi end-to-end.
Jalankan Kueri ke Database yang Tak Terjangkau Siapa Pun
Unduh AgentsRoom, simpan sebuah koneksi AWS SSM, arahkan database MySQL atau MariaDB ke sana, lalu jalankan kueri ke instance RDS privat Anda tanpa bastion, tanpa VPN, dan tanpa kata sandi bersama.
Aplikasi pendamping: pantau agen Anda saat bepergian
Gunakan Claude, Codex, Antigravity CLI, atau penyedia AI lainnya.
Kirim bug dan permintaan langsung ke backlog publik Anda.
Sekilas AgentsRoom dalam aksi.