AWS SSM üzerinden RDS

RDS Örneğinizin Herkese Açık Uç Noktası Yok.
Ona AWS SSM Üzerinden, Bastion Olmadan Ulaşın.

AgentsRoom veritabanınıza bir AWS Session Manager port yönlendirme oturumu açar ve SQL istemcisini onun üzerinden bağlar. Oturum, makinenizde zaten yapılandırılmış AWS profiliyle yetkilendirilerek AWS-StartPortForwardingSessionToRemoteHost belgesiyle aws ssm start-session çalıştırır.

Veritabanı özel alt ağında kalır, güvenlik grubu kapalı kalır ve internete yeni hiçbir şey açılmaz. Değişen tek şey, onu artık sorgulayabilmenizdir; bir yapay zeka kodlama ajanı da salt okunur olarak sorgulayabilir.

SSM port yönlendirme
Herkese açık uç nokta yok
AgentsRoom
127.0.0.1 : işletim sisteminin seçtiği port
aws ssm start-session
AWS-StartPortForwardingSessionToRemoteHost
Yönetilen düğümi-0a1b2c3d4e5f
RDS MySQL
özel alt ağ : 3306
Boş bir loopback portu ayrılıyor
Yalnızca loopback, asla yerel ağGelen SSH yok, herkese açık uç nokta yok

AgentsRoom'un özel bir alt ağdaki bir RDS örneğine AWS Systems Manager üzerinden, internete hiçbir şey açmadan nasıl ulaştığı.

Kurulum sıkıcı sayılacak kadar yaygın, bir öğleden sonranıza mal olacak kadar da zahmetli. Bir Amazon RDS örneği özel bir alt ağda duruyor. Herkese açık uç noktası yok. Güvenlik grubu yalnızca uygulamadan gelen trafiği kabul ediyor, başka hiçbir şeyden değil. O VPC'nin hiçbir yerinde gelen bir SSH portu yok, çünkü biri doğru olanı yapıp onu kapatmış. Ve şimdi bir hatayı anlamak için üç satıra bakmanız gerekiyor.

AWS Systems Manager Session Manager taşıma katmanını zaten çözüyor. VPC içindeki yönetilen bir EC2 düğümü, makinenizdeki yerel bir portu erişebildiği üçüncü bir sunucuya yönlendirebilir; özel bir alt ağdaki bir RDS örneği de tam olarak budur. Bunu yapan belge AWS-StartPortForwardingSessionToRemoteHost, komut ise aws ssm start-session. Egzotik bir şey yok, veritabanına kurulacak bir şey yok.

AgentsRoom bu komutu sizin için çalıştırır ve diğer uca bir SQL istemcisi koyar. Örneği, bölgeyi ve profili bir kez seçersiniz, üzerine bir veritabanı bağlantısı iliştirirsiniz ve o andan sonra o veritabanını açmak tek tık olur. Oturumu kendi AWS profiliniz ya da SSO oturumunuz yetkilendirir, dolayısıyla bu atlama için ne bir anahtar ne de bir parola saklanır.

Alışılmış Çözümlerin Hepsinin Bir Bedeli Var

Aynı soruna üç yanıt ve her birinin size çıkardığı fatura.

Bakımını üstlendiğiniz bir bastion sunucusu

Herkese açık bir alt ağdaki atlama makinesi; yamaladığınız, izlediğiniz, parasını ödediğiniz ve sonunda unuttuğunuz bir sunucudur. Gelen bir SSH portu, insanlar geldikçe ve gittikçe kayan bir yetkili anahtar listesi ve dikkatsiz tek bir düzenlemeyle dünyaya açılabilecek bir güvenlik grubu taşır. Var olma sebebi, birinin ara sıra bir veritabanına ulaşabilmesidir.

Üç satırlık bir soru için VPN

Bir istemci VPN'i, üç satır hakkındaki bir soruyu yanıtlamak için tüm makinenizi ağın içine sokar. Kurulması, dağıtılması, yenilenmesi ve iptal edilmesi gerekir, geri kalan bağlantılarınızla çatışır ve ağdan ağa dolaşan bir dizüstünde ilk bozulan parça odur. VPN'i olan ekiplerin çoğu yine de yanında bir bastion tutar.

Ortalıkta dolaşan kimlik bilgileri

Herkesin sığındığı alternatif daha da kötüdür : uç nokta ve parola bir sohbet mesajında, paylaşılan bir notta, yanlışlıkla commit edilmiş bir betikte ya da bir yapay zeka ajanına gönderilen bir prompt'ta son bulur. Erişim, kimsenin takip etmediği yerlere yayılır ve sonradan geri almak, bir kimlik bilgisini döndürüp her kopyanın yok olduğunu ummak demektir.

Özel Bir RDS Örneğinden Bir Sonuç Kümesine

Bir kez yapılan dört adım, sonrası tek tık.

01

Bir AWS SSM bağlantısı kaydedin

Bağlantı yöneticisinde bir bağlantı ekleyin ve taşıma türünü AWS SSM olarak ayarlayın. Ona, veritabanına ulaşabilen yönetilen bir EC2 düğümünün örnek kimliğini (i-0123456789abcdef0), AWS profilinizi ve bölgeyi verirsiniz. Parola alanı da anahtar alanı da yoktur, çünkü oturumu makinenizde zaten bulunan AWS kimlik bilgileri yetkilendirir.

02

Veritabanını ekleyin ve o bağlantı üzerinden ulaşın

Host olarak RDS uç noktası, port, kullanıcı ve veritabanı ile bir MySQL ya da MariaDB bağlantısı ekleyin. Üzerinden ulaş alanında, Doğrudan bağlantı yerine az önce kaydettiğiniz AWS SSM bağlantısını seçin. Tüm yapılandırma bundan ibarettir : uç nokta özel kalır, güvenlik grubu kapalı kalır.

03

AgentsRoom oturumu açar

Bağlantıyı açtığınızda AgentsRoom işletim sisteminden boş bir loopback portu ister, ardından AWS-StartPortForwardingSessionToRemoteHost belgesiyle aws ssm start-session başlatır; host olarak RDS uç noktasını, portNumber olarak veritabanı portunu ve localPortNumber olarak ayrılan portu geçirir. Tüneli hazır ilan etmeden önce o portun gerçekten bir TCP bağlantısı kabul etmesini bekler, böylece istemci hiçbir zaman erkenden bağlanmaz.

04

Siz sorgulayın ya da bir ajan sorgulasın

SQL konsolu, yönlendirilen portta 127.0.0.1'e bağlanır ve diğer her bağlantı gibi davranır : şema tarayıcısı, aynı anda tek ifade, sınırlandırılmış sonuç kümeleri. Bir yapay zeka kodlama ajanı aynı bağlantıyı MCP üzerinden, parolayı hiç almadan salt okunur sorgulayabilir. Bağlantıyı kapatmak, oturum sürecini de birlikte sonlandırır.

Gerçekte ne çalışıyor

AgentsRoom'un başlattığı komut

Burada tescilli bir protokol yok ve hiçbir şey JavaScript'te yeniden yazılmadı. AgentsRoom, AWS CLI'yi bir alt süreç olarak başlatır, argümanları bir kabuk üzerinden değil doğrudan geçirir ve çıktısını okur. Daha önce elle bir port yönlendirme oturumu açtıysanız, bu zaten bildiğiniz satırdır.

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-1

Örnek kimliği, uç nokta, bölge ve profil kaydettiğiniz bağlantıdan gelir. Yerel portu ise işletim sistemi açılış anında seçer.

Arkasındaki bir veritabanı yerine yönetilen düğümün kendisine yönlendirmek, host=localhost ile aynı belgedir. Aynı bağlantı türünün hem özel bir alt ağdaki bir veritabanını hem de bağlandığınız örnekte çalışan bir servisi kapsamasının sebebi budur.

Ön koşullar

Çalışması için önceden sağlanması gerekenler

AgentsRoom AWS kurulumunuzu yönetir, onun yerini almaz. Beş şeyin yerinde olması gerekir ve bunlar Session Manager'ın tek başına ihtiyaç duyduğu beş şeyin aynısıdır.

  • Makinenizde AWS CLI

    AgentsRoom doğrudan aws ikili dosyasını çağırır. aws ssm start-session terminalinizde çalışıyorsa burada da çalışır.

  • session-manager-plugin

    Session Manager, CLI'nin yanına kurulmuş eklentisine ihtiyaç duyar. O olmadan oturum hemen sonlanır ve AgentsRoom askıda kalmak yerine CLI'nin yazdırdığı hatayı size gösterir.

  • Çalışan bir AWS profili ya da SSO oturumu

    Yetkilendirme, --profile ve --region olarak geçirilen kendi kimlik bilgilerinizden gelir. AgentsRoom profil adını ve bölgeyi saklar, asla bir anahtarı, asla bir gizli bilgiyi değil.

  • VPC içinde yönetilen bir düğüm

    Systems Manager'a kayıtlı, SSM Agent çalıştıran ve oturuma izin veren bir örnek profiline sahip bir EC2 örneği. Trafiğin üzerinden geçtiği düğüm odur ve kendisine ait bir gelen porta ihtiyacı yoktur.

  • Düğümden veritabanına giden bir yol

    Veritabanı güvenlik grubunun düğümden gelen trafiği veritabanı portunda kabul etmesi ve IAM politikanızın o belgeyle ssm:StartSession işlemine izin vermesi gerekir. VPC ile ilgili başka hiçbir şeyin değişmesi gerekmez.

Tünel Ne Yapar, Neyi Yapmayı Reddeder

Bunu bir dizüstünde yapılandırılmış halde bırakmanın güvenli olup olmadığına karar veren özellikler.

Yalnızca loopback

Yönlendirilen port 127.0.0.1'e bağlanır, başka hiçbir şeye değil. Bu yolla ulaşılan bir veritabanı yerel ağda asla yeniden yayımlanmaz, dolayısıyla bir kafenin Wi-Fi'si dizüstünüzü üretime açılan bir proxy'ye çevirmez.

İşletim sisteminin seçtiği bir port

AgentsRoom işletim sisteminden boş bir port ister ve onu oturuma verir. Tahmin edilecek sabit bir port, önceden ayrılacak bir şey ve çalıştırdığınız diğer şeylerle bir çakışma yoktur.

Hazır demek gerçekten hazır demek

Tünel yalnızca yerel port gerçekten bir TCP bağlantısı kabul ettiğinde hazır sayılır; hiç kabul etmezse CLI'nin yazdırdığı hatayla vazgeçer. Rastgele bir bekleme yok, henüz dinlemeyen bir porta bağlanan istemci yok.

Atlama için ne anahtar ne parola

SSM oturumunu AWS profiliniz ya da SSO oturumunuz yetkilendirir. AgentsRoom örnek kimliğini, profil adını ve bölgeyi saklar; bu yapılandırmayı okuyan birinin yeniden kullanabileceği hiçbir şeyi değil.

Veritabanı salt okunur kalır

Bir veritabanı bağlantısı oluşturulduğunda salt okunurdur. Bir yazma işlemi, o belirli bağlantının yazılabilir yapılmasını ve açık bir onayı gerektirir; üretim olarak işaretlenmiş bir bağlantı da bunu o onayda yüksek sesle söyler.

Çağrı başına tek ifade

Her çağrı tam olarak bir ifade taşır, böylece bir noktalı virgülün arkasına hiçbir şey saklanamaz; sonuç kümeleri de sınırlandırılır, böylece geniş bir sorgu bir pencereyi ya da bir ajanın bağlamını boğamaz.

Bu Neden Daha Fazla Değil, Daha Az Erişim Demek

Bir tünel kulağa bir delik gibi gelir ve bu refleks haklıdır : özel bir veritabanına ulaşmanın çoğu yolu saldırı yüzeyini gerçekten genişletir. Bu yol ise onu daraltır. Veritabanı tarafında hiçbir şey açılmaz, VPC'nin hiçbir yerinde gelen bir port oluşturulmaz ve yönetilen düğümün kendine ait bir SSH dinleyicisine ihtiyacı olmaz. Trafik düğümden Systems Manager servisine doğru çıkar, makineniz de onunla orada buluşur.

Yetkilendirme, kuruluşunuzun onu zaten yönettiği yerde kalır. Oturumu, makinede zaten yapılandırılmış profil ya da SSO oturumu üzerinden AWS kimliğiniz verir; bu da oturumun diğer her Session Manager oturumu gibi kayıt altına alındığı, o kimlik iptal edildiği gün iptal edildiği ve elinde anahtar bulunan kişiye göre değil bir IAM politikasına göre sınırlandığı anlamına gelir. AgentsRoom örnek kimliğini, profil adını ve bölgeyi saklar : bunların hiçbiri bir kimlik bilgisi değildir.

Veritabanı tarafında koruma önlemleri her AgentsRoom bağlantısının aldıklarının aynısıdır. Varsayılan olarak salt okunur, çağrı başına tek ifade, sınırlandırılmış sonuç kümeleri ve yazma onayını sertleştiren bir üretim işareti. MCP üzerinden sorgu çalıştıran bir yapay zeka ajanı bir sonuç kümesi alır, parolayı asla almaz; sorgu çalıştırdığı araç da bağlantı bir insana ne yapma izni verirse versin okuma dışında her şeyi reddeder.

Desteklenmeyenler

Yalnızca MySQL ve MariaDB, PostgreSQL bunlardan biri değil

Veritabanı istemcisi MySQL wire protokolünü konuşur, dolayısıyla çalışan motorlar MySQL ve MariaDB'dir. RDS tarafında bu, RDS for MySQL, RDS for MariaDB ve Aurora MySQL uyumlu sürümler demektir. RDS for PostgreSQL ve Aurora PostgreSQL desteklenmiyor, SQL Server, Oracle, MongoDB ve SQLite de öyle. Bunu indirmeden sonra değil, önce bilmeyi hak ediyorsunuz.

SSM taşıması bir TCP portunu yönlendirdiği için kendisi motordan bağımsızdır. PostgreSQL için eksik olan, altındaki tünel değil, üstündeki istemcidir. Sıradaki motoru insanların ne istediği belirler, dolayısıyla sizinki eksikse hangisi olduğunu halka açık backlog'ta söyleyin, sayılsın.

Veritabanı motorunuzu talep edin
Yapay zeka ajanları + özel veritabanları

Bir ajan da onu salt okunur sorgulayabilir

db_listdb_schemadb_querydb_connection_new

Bağlantı bir kez var olduğunda, bir yapay zeka kodlama ajanı onu adıyla anarak AgentsRoom MCP üzerinden kullanabilir. db_list kayıtlı bağlantıları ve üst verilerini döndürür, db_schema tek satır SQL olmadan şemaları, tabloları ve sütunları dolaşır, db_query tek bir ifade çalıştırıp sınırlandırılmış satırlar döndürür ve db_connection_new, gözden geçirip kaydedeceğiniz formu önceden doldurarak henüz kaydedilmemiş bir veritabanını önerir.

Ajan istediğinde SSM oturumunu AgentsRoom'un kendisi açar, dolayısıyla ajan ne bir AWS kimlik bilgisine, ne bir veritabanı parolasına, ne de bir port numarasına dokunur. Geri dönen şey bir sonuç kümesidir. db_query, bağlantı neye izin verirse versin salt okunurdur ve bu kural MCP sürecinde değil masaüstü uygulamasında yaşar, dolayısıyla ajan başka bir şey istemeye ikna edilse bile geçerli kalır.

Bunu düzgün yapmanın bütün amacı budur. Özel bir alt ağdaki bir üretim replikasına karşı hata ayıklayan bir ajan, hatayı açıklayan satırları okur; onları değiştirmek için bir yolu, bağlamına sızdıracak bir kimlik bilgisi ve uygulama kapandıktan sonra o veritabanına ulaşmanın bir yolu yoktur.

Sıkça Sorulan Sorular

Herkese açık uç noktası olmayan bir RDS örneğine nasıl bağlanırım?

Bir AWS SSM port yönlendirme oturumu üzerinden. Veritabanına ulaşabilen yönetilen bir EC2 düğümünü gösteren bir AWS SSM bağlantısı kaydedin, ardından host olarak RDS uç noktasıyla MySQL veya MariaDB bağlantısını oluşturun ve Üzerinden ulaş alanında o SSM bağlantısını seçin. AgentsRoom oturumu aws ssm start-session ile açar ve SQL istemcisini yönlendirilen loopback portuna bağlar. Veritabanı herkese açık uç noktası olmadan kalır ve güvenlik grubu değişmez.

AgentsRoom hangi SSM belgesini kullanıyor?

AWS-StartPortForwardingSessionToRemoteHost; host veritabanı uç noktasına, portNumber veritabanı portuna ve localPortNumber makinenizde ayrılan loopback portuna ayarlanır. Bu belge, yönetilen düğüm üzerinden üçüncü bir sunucuya yönlendirir ki özel bir alt ağdaki bir RDS örneği tam olarak bu durumdur. Düğümün kendisine yönlendirmek ise host=localhost ile aynı belgedir.

Yine de bir bastion sunucusuna ihtiyacım var mı?

Hayır. Session Manager bu senaryoda atlama makinesinin yerini alır : yönetilen düğümün ne gelen bir SSH portuna ne de herkese açık bir IP'ye ihtiyacı vardır, trafik düğümden Systems Manager servisine doğru çıkar ve makineniz oturuma dışarıdan katılır. Bakılacak bir anahtar listesi ve göz kulak olunacak herkese açık bir alt ağ yoktur.

Makineme neyin kurulu olması gerekiyor?

AWS CLI ve session-manager-plugin, bir de çalışan bir AWS profili ya da SSO oturumu. AgentsRoom doğrudan aws ikili dosyasını çağırır, dolayısıyla aws ssm start-session terminalinizde çalışıyorsa burada da çalışır. Eklenti eksikse oturum hemen sonlanır ve AgentsRoom görünmez bir istemde askıda kalmak yerine CLI'nin yazdırdığı hatayı size gösterir.

AgentsRoom bunun için bir AWS anahtarı saklıyor mu?

Hayır. Oturumu, makinenizde zaten yapılandırılmış ve CLI'ye --profile ile --region olarak geçirilen AWS kimlik bilgileri yetkilendirir. AgentsRoom örnek kimliğini, profil adını ve bölgeyi saklar; bunlar kimlik bilgisi değildir. Veritabanı parolası ayrı bir konudur : işletim sistemi anahtar zincirinizle şifrelenmiş kasada tutulur ve bir yapay zeka ajanına asla döndürülmez.

Tünel hangi yerel portu kullanıyor ve ona kim ulaşabilir?

İşletim sistemi açılış anında boş bir port seçer ve tünel onu yalnızca 127.0.0.1'e bağlar. Yerel ağdaki hiçbir şey ona ulaşamaz ve tahmin edilecek sabit bir port yoktur. Tünel yalnızca o port gerçekten bir TCP bağlantısı kabul ettiğinde hazır sayılır ve bağlantıyla birlikte kapatılır.

Bu, RDS for PostgreSQL ile çalışıyor mu?

Hayır. Veritabanı istemcisi yalnızca MySQL ve MariaDB destekler, dolayısıyla RDS tarafında bu RDS for MySQL, RDS for MariaDB ve Aurora MySQL uyumlu sürümler demektir. RDS for PostgreSQL ve Aurora PostgreSQL bugün desteklenmiyor, SQL Server, Oracle, MongoDB ve SQLite de öyle. SSM tünelinin kendisi bir TCP portu yönlendirir ve motorla ilgilenmez : eksik olan onun üstündeki istemcidir. Halka açık backlog'ta bir motor talep edin, sayılsın.

Bir veritabanı yerine EC2 örneğinin kendisine yönlendirebilir miyim?

Evet. Bu, host=localhost ile aynı belgedir, dolayısıyla yönetilen düğümde dinleyen bir servise de aynı şekilde ulaşılır. Aynı AWS SSM bağlantısı o örnekte düz bir terminal oturumu da açar; hiç gelen SSH portu olmayan bir makinede bir ajan CLI'sini işte böyle çalıştırırsınız.

Bir yapay zeka ajanı veritabanını tünel üzerinden sorgulayabilir mi?

Evet, salt okunur olarak. Ajan AgentsRoom MCP üzerinden kayıtlı bir bağlantıyı adlandırır, uygulama SSM oturumunu açıp ifadeyi kendisi çalıştırır ve geri yalnızca sonuç kümesi döner. Ajan ne AWS profilini, ne uç nokta kimlik bilgilerini, ne de veritabanı parolasını alır; db_query de o bağlantı bir insana ne yapma izni verirse versin okuma dışında her şeyi reddeder.

Bunları da beğenebilirsiniz

Kimsenin Ulaşamadığı Veritabanını Sorgulayın

AgentsRoom'u indirin, bir AWS SSM bağlantısı kaydedin, ona bir MySQL ya da MariaDB veritabanı yönlendirin ve özel RDS örneğinizi bastion, VPN ya da paylaşılan bir parola olmadan sorgulayın.

Ücretsizİndir

Yardımcı uygulama: hareket halindeyken ajanlarinizi izleyin

Claude, Codex, Antigravity CLI veya başka bir AI sağlayıcı kullan.

Uzantıyı yükleyin
Chrome Web Store

Hataları ve istekleri doğrudan genel backlogunuza gönderin.

AgentsRoom'a kısa bir bakış.

Çoklu proje
Çoklu sağlayıcı
Çoklu ajan
Canlı durum
Diff ve commit
Mobil uygulama
Canlı önizleme
Ajan ekipleri
Tarayıcı otomasyonu
Backlog odaklı dev
Prompt kütüphanesi
Beceri kütüphanesi
Tüm özellikleri gör