Klien pangkalan data setempat, RDS peribadi: mengapa sambungan tamat masa
Klien setempat tidak dapat mencapai instans RDS peribadi atas tiga sebab berasingan. Semak DNS terpisah, laluan dan bukti kumpulan keselamatan sebelum mengubah apa-apa.
Komputer riba seorang pembangun tamat masa semasa menyambung ke titik akhir RDS peribadi, sedangkan kelayakan yang sama berfungsi dari hos bastion. Tiada apa yang tumbang. Laluan antara komputer riba itu dan pangkalan data kehilangan salah satu daripada tiga perkara: nama yang diselesaikan, laluan yang membawa trafik, atau peraturan kumpulan keselamatan yang membenarkan sumber yang benar-benar dilihat pangkalan data. Cari yang mana hilang sebelum mengubah dua yang lain.
Baca kegagalan pada lapisan yang betul
Tamat masa bukan satu kesalahan. Nama yang tidak diselesaikan gagal sebelum paket meninggalkan mesin. Alamat tanpa laluan menghantar paket ke lubang hitam. Port yang ditapis menghasilkan penantian yang kelihatan sama seperti hos yang salah. Jalankan langkah-langkah mengikut urutan dan berhenti pada yang pertama gagal.
dig +short db.internal.example
nc -vz db.internal.example 5432
Jika nama mengembalikan alamat awam, atau tidak mengembalikan apa-apa, terowong belum menjadi masalahnya.
Jika nama diselesaikan dan ujian port tergantung, bandingkan alamat yang anda selesaikan dengan alamat yang dilaporkan pangkalan data. Titik akhir terurus boleh diselesaikan kepada alamat peribadi di dalam VPC dan kepada apa-apa yang tidak berguna di luarnya, dan alamat yang disalin daripada carian lama akan menunjuk hos yang tidak lagi menjawab.
Pisahkan terowong daripada laluan
Menyambung VPN klien tidak menghalakan setiap julat peribadi secara automatik. Profil membawa laluan yang ditolak oleh perkhidmatan, dan klien mungkin memasang sebahagiannya sahaja. Lihat julat mana yang benar-benar ditambah klien dan sama ada alamat pangkalan data jatuh di dalam salah satunya.
ip route get 10.20.40.15
ip addr show tun0
Laluan yang menunjuk ke antara muka terowong perlu; ia tidak mencukupi, kerana sisi jauh masih perlu menerima trafik itu.
Profil terowong terpisah ialah sumber biasa kegagalan separuh ini. Ia berfungsi untuk aplikasi yang direka oleh profil itu dan membiarkan julat pangkalan data di luar terowong, yang menghasilkan tepat tamat masa yang akan dihasilkan oleh firewall.
Padankan kumpulan keselamatan dengan sumber sebenar
Kumpulan keselamatan RDS membenarkan sumber, bukan orang. Bergantung pada seni bina, sumbernya boleh jadi kolam klien VPN, alamat peribadi bastion, atau alamat NAT tempat trafik diterjemahkan. Baca peraturan dan sumber paket sebenar bersama-sama.
aws ec2 describe-security-groups --group-ids sg-0123456789abcdef0 \
--query 'SecurityGroups[].IpPermissions'
Peraturan untuk alamat rumah satu komputer riba ialah masalah penyelenggaraan, bukan reka bentuk akses.
Apabila VPN klien atau get laluan NAT berada di laluan, pangkalan data mungkin melihat alamat penterjemah dan bukan alamat terowong pembangun. Itulah sebabnya peraturan yang disalin daripada persediaan bastion yang berfungsi boleh gagal untuk komputer riba: kedua-dua laluan datang dari sumber berbeza walaupun kedua-duanya kelihatan dalaman.
Utamakan laluan sempit berbanding lebar
Apabila seorang pembangun memerlukan satu pangkalan data, pemajuan berasaskan sesi selalunya lebih murah untuk dikendalikan daripada terowong rangkaian penuh. Klien setempat menyambung ke port yang dimajukan, dan komponen jauh membuat sambungan pangkalan data dari dalam rangkaian.
ssh -N -L 5432:db.internal.example:5432 bastion.internal.example
Kekalkan pengesahan TLS utuh dalam reka bentuk itu. Klien masih perlu mengesahkan sijil pelayan terhadap nama yang dijangka; port yang dimajukan setempat bukan alasan untuk mematikan pengesahan, dan mematikannya menyembunyikan tepat masalah identiti yang wajar ditangkap.
Pilihan antara terowong penuh dan pemajuan sempit ialah keputusan tentang skop, bukan tentang teater keselamatan.
Tinggalkan laluan yang boleh diulang
Dokumenkan nama titik akhir dan bukan alamat yang diselesaikan, julat sumber yang dibenarkan kumpulan keselamatan, dan peranan pangkalan data yang digunakan pembangun. Ketiga-tiga fakta ini menjelaskan kebanyakan kegagalan masa depan tanpa panggilan. Tambah juga versi profil klien, kerana perubahan profil boleh membuang laluan yang dibawa oleh yang lama.
Kemudian uji kes negatif sekali: klien di luar sumber yang diluluskan masih patut ditolak.
Pangkalan data peribadi yang hanya berfungsi untuk orang yang menyediakannya bukan akses peribadi; ia pengecualian tidak didokumenkan yang menunggu ditemui semula. Tuliskan laluan itu, dan pembangun seterusnya mewarisi kaedah dan bukan misteri.