Egy fejlesztő laptopja időtúllépésbe fut a privát RDS-végpont elérésekor, miközben ugyanazok a hitelesítő adatok egy bastion gazdagépről működnek. Semmi nem esett ki. A laptop és az adatbázis közötti útvonalról három dolog egyike hiányzik: egy név, amely feloldódik, egy útvonal, amely viszi a forgalmat, vagy egy biztonsági csoportszabály, amely beengedi azt a forrást, amelyet az adatbázis valóban lát. Derítse ki, melyik hiányzik, mielőtt a másik kettőt módosítja.

A hibát a megfelelő rétegen olvassa

Az időtúllépés nem egyetlen hiba. Egy név, amely nem oldódik fel, még azelőtt meghiúsul, hogy csomag hagyná el a gépet. Egy útvonal nélküli cím csomagokat küld a fekete lyukba. Egy szűrt port olyan várakozást okoz, amely pontosan rossz gazdagépnek tűnik. Hajtsa végre a lépéseket sorrendben, és álljon meg az elsőnél, amely meghiúsul.

dig +short db.internal.example
nc -vz db.internal.example 5432

Ha a név nyilvános címet ad vissza, vagy semmit, a belső csatorna még nem a probléma.

Ha a név feloldódik és a portteszt elakad, hasonlítsa össze a feloldott címet azzal a címmel, amelyet az adatbázis jelent. Egy felügyelt végpont feloldódhat a VPC-n belüli privát címre és azon kívül semmi hasznosra, egy régi lekérdezésből másolt cím pedig olyan gazdagépre mutat, amely már nem válaszol.

Válassza szét az alagutat az útvonaltól

Egy kliens VPN csatlakoztatása nem irányítja automatikusan az összes privát tartományt. A profil azokat az útvonalakat hordozza, amelyeket a szolgáltatás továbbít, és a kliens esetleg csak néhányat telepít közülük. Nézze meg, mely tartományokat adta hozzá a kliens valóban, és hogy az adatbázis címe beleesik-e valamelyikbe.

ip route get 10.20.40.15
ip addr show tun0

Az alagút interfészére mutató útvonal szükséges; nem elegendő, mert a túloldalnak még fogadnia kell a forgalmat.

A megosztott alagút profiljai a szokásos forrása ennek a fél hibának. Azon alkalmazás számára működnek, amelyhez a profilt tervezték, és az adatbázis tartományát az alagúton kívül hagyják, ami pontosan azt az időtúllépést okozza, amelyet egy tűzfal okozna.

Igazítsa a biztonsági csoportot a valódi forráshoz

Az RDS biztonsági csoport forrásokat enged be, nem embereket. Az architektúrától függően a forrás lehet a VPN klienspool, egy bastion privát címe vagy egy NAT-cím, amelyre a forgalom lefordítódik. Olvassa a szabályt és a csomag tényleges forrását együtt.

aws ec2 describe-security-groups --group-ids sg-0123456789abcdef0 \
  --query 'SecurityGroups[].IpPermissions'

Egy laptop otthoni címére vonatkozó szabály karbantartási probléma, nem hozzáférési terv.

Amikor egy kliens VPN vagy NAT-átjáró van az útvonalon, az adatbázis a fordító címét láthatja a fejlesztő alagútcíme helyett. Ezért egy működő bastion-beállításból másolt szabály meghiúsulhat egy laptopnál: a két útvonal különböző forrásból érkezik, pedig mindkettő belsőnek látszik.

A szűk utat részesítse előnyben a szélessel szemben

Amikor egy fejlesztőnek egy adatbázisra van szüksége, a munkamenet-alapú továbbítás gyakran olcsóbban üzemeltethető, mint egy teljes hálózati alagút. A helyi kliens egy továbbított portra csatlakozik, és a távoli komponens a hálózat belsejéből hozza létre az adatbáziskapcsolatot.

ssh -N -L 5432:db.internal.example:5432 bastion.internal.example

Tartsa érintetlenül a TLS-ellenőrzést ebben a tervben. A kliensnek továbbra is ellenőriznie kell a kiszolgáló tanúsítványát a várt névvel szemben; egy helyi továbbított port nem ok az ellenőrzés kikapcsolására, és kikapcsolása pontosan azt az identitásproblémát rejti el, amelyet érdemes elkapni.

A teljes alagút és a szűk továbbítás közötti választás a hatókörről szóló döntés, nem biztonsági színház.

Hagyjon maga után megismételhető utat

Dokumentálja a végpont nevét a feloldott cím helyett, a forrástartományt, amelyet a biztonsági csoport beenged, és az adatbázis-szerepet, amelyet a fejlesztő használ. Ez a három tény magyarázza a legtöbb jövőbeli hibát hívás nélkül. Adja hozzá a kliensprofil verzióját is, mert egy profilváltozás eltávolíthat egy útvonalat, amelyet a régi hordozott.

Utána egyszer tesztelje a negatív esetet: a jóváhagyott forráson kívüli klienst továbbra is el kell utasítani.

Egy privát adatbázis, amely csak annak a személynek működik, aki beállította, nem privát hozzáférés; ez egy dokumentálatlan kivétel, amely arra vár, hogy újra felfedezzék. Írja le az útvonalat, és a következő fejlesztő módszert örököl rejtély helyett.

Kapcsolódó cikkek