Dasturchining noutbuki xodimlar VPN orqali xususiy RDS nusxasiga yetib boradi, lekin EC2 dagi dastur umuman ulana olmaydi. Bu buzilgan joylashtirish emas. Noutbukda EC2 nusxasi hech qachon meros olmaydigan tunnel bor, RDS dagi «xususiy» esa ma'lumotlar bazasining ochiq oxirgi nuqtasi yo'qligini bildiradi, inson VPN foydalanuvchilari yagona ruxsat etilgan chaqiruvchilar degani emas. Dasturga o'zining ruxsat etilgan yo'li, xavfsizlik guruhi bilan o'z munosabati va ma'lumotlar bazasida o'z identifikatori kerak, va bu uchtasini tanlash tartibi nosozliklarni tuzatishning katta qismini tejaydi. Avval marshrutni hal qiling, keyin ruxsatlarni, so'ngra o'z stolingizdan emas, joylashtirilgan muhitdan tekshiring.

Noutbuk VPN dasturning yo'li emas

Xodimlar VPN odamlar uchun nima qilsa ham, u biror nusxa uchun hech narsa qilmaydi, agar o'sha nusxa bir xil tarmoq yo'lining aniq qismi bo'lmasa. Xususiy subnetdagi EC2 nusxasi RDS ga VPC marshrutlash, xavfsizlik guruhlari va tarmoq ACL orqali yetib boradi. U inson tunnelini, inson sessiyasini yoki inson hisob ma'lumotlarini meros olmaydi va olmasligi kerak: nazoratsiz dastur ulanishi va xodimlarning masofaviy kirishi mustaqil ishlashi kerak.

Bu mustaqillik afzallikdir. VPN ishlamay qolsa, dastur ishlashda davom etadi. Dastur noto'g'ri ish tutsa, hech kim masofaviy kirishidan ayrilmaydi. Ikkalasini bitta yo'lda birlashtirgan loyihalar odatda hodisa paytida, eng yomon daqiqada aniqlanadi.

Qaror 1: bir xil VPC, to'g'ridan-to'g'ri yo'l

Dastur va ma'lumotlar bazasi bir xil VPC da to'g'ridan-to'g'ri marshrutlash bilan va ular orasida tekshiruv qurilmasi bo'lmaganda, yo'l sodda va xavfsizlik guruhiga havola mavjud eng kuchli vosita bo'ladi. Dasturga o'z guruhini bering, so'ng manzil oralig'idan emas, o'sha guruhdan ma'lumotlar bazasi portiga ruxsat bering:

aws ec2 authorize-security-group-ingress --group-id sg-0db123   --protocol tcp --port 5432 --source-group sg-0app456

aws rds describe-db-instances --db-instance-identifier prod-db   --query 'DBInstances[0].{Endpoint:Endpoint.Address,Port:Endpoint.Port,Public:PubliclyAccessible,Groups:VpcSecurityGroups}'

Port misol uchun keltirilgan va dvigatelga mos kelishi kerak. Guruh havolasi dastur nusxalaridan trafikni avtorizatsiya qiladi; u ularning qoidalarini nusxalamaydi va ma'lumotlar bazasiga kirish yaratmaydi. Ikki alohida muammo, ikki alohida tuzatish.

So'ng hozir qo'shilgan qoidada to'xtamay, yo'lning qolgan qismini tekshiring. Dasturning chiqish siyosati, ma'lumotlar bazasiga biriktirilgan guruhlarning to'liq to'plami, subnet marshrut jadvallari va har qanday tarmoq ACL bir-biriga mos kelishi kerak. Xavfsizlik guruhi qoidalari holatga ega, moslashtirilgan tarmoq ACL esa so'rov va qaytish trafigiga alohida qoidalarda ruxsat berishi kerak, vaqtinchalik portlarni ham qo'shib. Yangi tor ma'lumotlar bazasi qoidasi avval biriktirilgan eski keng ruxsatni ham bekor qilmaydi.

Qaror 2: boshqa VPC yoki boshqa hisob

Agar dastur boshqa VPC da bo'lsa, tarmoq egalari qo'llab-quvvatlanadigan xususiy ulanishni tanlaydilar: peering, tranzit loyihasi yoki umumiy VPC kelishuvi. Shunda marshrutlashning ikkala yo'nalishi ham bo'lishi kerak, nomlarni hal qilish RDS oxirgi nuqtasi uchun ishlashi kerak, va ma'lumotlar bazasi siyosati baholaydigan manba haqiqatda kelayotgan narsaga mos kelishi kerak. Hisob nomlarining mos kelishi yoki umumiy hisob-kitob munosabati bularning hech birini bermaydi.

Xavfsizlik guruhiga havola o'zgaradigan qismdir. U bir nechta xususiy ulanish loyihalarida ishlaydi, lekin vositachi qurilma manbani qayta yozganda yoki ulanishni tugatganda ishlashdan to'xtaydi, chunki unda ma'lumotlar bazasi sizning dastur guruhingizni emas, vositachini ko'radi. RDS VPC senariylari bir xil VPC ichidagi kirishni boshqa tuzilmalardan ajratadi, va qoida uslubi o'tadi deb taxmin qilishdan oldin o'z topologiyangizni ular bilan solishtirib ko'rish arziydi.

Yo'q marshrutni ma'lumotlar bazasini ochiq qilish bilan hal qilmang. Bu boshqa egasi bo'lgan boshqa ochiqlik qarori, va odatda uni oqibatdan eng uzoqda turgan odam taklif qiladi.

Qaror 3: ma'lumotlar bazasi qanday identifikatorni qabul qiladi

Tarmoq kirishi va ma'lumotlar bazasi autentifikatsiyasi alohida qatlamlar, ularni aralashtirish eng chalg'ituvchi xatolarni keltirib chiqaradi. Nusxa roli AWS API larini chaqirish uchun AWS identifikatoridir. U ma'lumotlar bazasi foydalanuvchisi emas. IAM ma'lumotlar bazasi autentifikatsiyasi dvigatel va konfiguratsiya ruxsat bergan joyda qo'llab-quvvatlanadigan xususiyat bo'lib, u hali ham ma'lumotlar bazasi foydalanuvchisiga xaritalash, uning o'rnini bosish emas.

Dastur konfiguratsiyasida bitta qidiruvdan olingan manzil o'rniga RDS oxirgi nuqtasi nomidan foydalaning. Multi-AZ o'tishi o'sha nom ortidagi manzilni o'zgartiradi, va IP ga bog'langan dastur aynan kerak bo'lgan paytda muvaffaqiyatsiz bo'ladi. Xatoni yo'q qilish uchun dvigatelning TLS tekshiruvini o'chirish o'rniga uni yoqilgan holda qoldiring, chunki tekshiruv muvaffaqiyatsizligi siz erishgan oxirgi nuqta haqida biror narsa aytadi.

So'ng ma'lumotlar bazasi hisobiga dasturga kerakli minimumni, u haqiqatda ishlatadigan sxemada bering. Bu ish zerikarli, uni audit qilish mumkin, va hodisa ko'rib chiqishi aynan shu qism haqida so'raydi.

Joylashtirilgan muhitdan tekshiring

Nusxadan yoki bir xil guruh, subnet va rol bilan ishlaydigan vazifadan sinab ko'ring. To'rt nosozlik noutbukdan bir xil ko'rinadi va u yerdan oson ajratiladi: hal qilinmaydigan nom, muddati tugaydigan ulanish, TLS tekshiruvining muvaffaqiyatsizligi va rad etilgan ma'lumotlar bazasiga kirish. Har biri boshqa chegaraga ishora qiladi, va qaysi biri sizda ekanini bilmasdan ma'lumotlar bazasining ochiqligini o'zgartirish taxmindir.

psql "host=prod-db.abc123.eu-west-1.rds.amazonaws.com port=5432 dbname=app sslmode=verify-full" -c 'select 1'

Agar ulanish nusxadan muvaffaqiyatli bo'lib, stolingizdan muvaffaqiyatsiz bo'lsa, dasturning yo'li to'g'ri va tuzatish kerak bo'lgan narsa sizning kirishingizdir. Agar u ikkalasidan ham muvaffaqiyatsiz bo'lsa, hisob ma'lumotlaridan emas, yuqoridagi guruh va marshrut tekshiruvlaridan boshlang. O'sha bitta taqqoslash bu chiptalar keltirib chiqaradigan tartibsizlikning ko'p qismini oldini oladi.

O'xshash maqolalar