આંતરિક ALB, જાહેર DNS નામ: શું તે ખરેખર ખુલ્લું છે?
જાહેર રિઝોલ્વર આંતરિક AWS લોડ બેલેન્સર માટે ખાનગી સરનામાં પરત કરી શકે છે. તેને ખુલ્લું કહેતા પહેલાં સ્કીમ, પાથ અને લિસનર ચકાસો.
આંતરિક લોડ બેલેન્સર સામે જાહેર DNS લુકઅપ ચલાવો અને તમને ખાનગી સરનામું પાછું મળી શકે છે, જે રેકોર્ડ શેના માટે છે તે ચકાસે ત્યાં સુધી ખોટી ગોઠવણી જેવું લાગે છે. AWS દસ્તાવેજીકરણ કરે છે કે આંતરિક લોડ બેલેન્સરના નામ જાહેરમાં ઉકેલી શકાય તેવા હોઈ શકે છે, જ્યારે તેમના નોડ્સ ફક્ત ખાનગી સરનામાં ધરાવે છે. રિઝોલ્વરે જવાબ આપ્યો કે સેવા ક્યાં છે; તેણે કોઈ રૂટ બનાવ્યો નહીં, સુરક્ષા જૂથ ખોલ્યું નહીં કે કોઈને પ્રમાણિત કર્યું નહીં. એ જવાબ સમસ્યા છે કે નહીં તે તથ્યો પર આધાર રાખે છે જે તમે ક્રમમાં ચકાસી શકો છો.
પહેલું પગલું: સ્કીમ વાંચો, IP નહીં
સ્કીમ ફીલ્ડ એ લોડ બેલેન્સરનું પોતાના સીમા વિશેનું નિવેદન છે. aws elbv2 describe-load-balancers --names app-internal internal અથવા internet-facing મૂલ્ય સાથે Scheme પરત કરે છે, સાથે IPv4 અથવા ડ્યુઅલ સ્ટેક માટે સરનામાનો પ્રકાર. ઇન્ટરનેટ તરફનું લોડ બેલેન્સર હજી ખાનગી લક્ષ્યો તરફ ફોરવર્ડ કરી શકે છે, તેથી ખાનગી બેકએન્ડ સરનામાં જોવાથી ફ્રન્ટ એન્ડ વિશે કંઈ સાબિત થતું નથી.
બીજું કંઈ જોતા પહેલાં સ્કીમ લખી લો, કારણ કે પછીનું દરેક નિર્ણય તેના પર આધાર રાખે છે. તે એ પણ જણાવે છે કે કયા નિયંત્રણો છે, સુરક્ષા જૂથો અને લિસનર નિયમોથી લઈને તે લોડ બેલેન્સર પ્રકારની સુવિધાઓ સુધી. જૂના કન્સોલ સ્ક્રીનશોટમાંથી કોપી કરેલી સ્કીમ કોઈ નોંધ ન હોવા કરતાં ખરાબ છે. તેને API માંથી ફરી વાંચો અને મૂલ્ય ટિકિટમાં પેસ્ટ કરો.
બીજું પગલું: નામ ક્યાં ઉકેલાય છે તે જુઓ
VPC ની બહારથી dig +short app-internal-1234567890.eu-west-1.elb.amazonaws.com સાથે ક્વેરી કરો અને નોંધો કે જવાબો 10.0.0.0/8, 172.16.0.0/12 કે 192.168.0.0/16 માં છે. જાહેર રિઝોલ્વર તરફથી ખાનગી જવાબ આંતરિક લોડ બેલેન્સર નામ માટે અપેક્ષિત વર્તન છે; તે સાબિતી નથી કે સરનામું ઇન્ટરનેટથી રૂટ કરી શકાય છે.
VPC ની અંદરથી એ જ નામ રિઝોલ્વ કરો અને સરખાવો. જો બે જવાબ અલગ હોય, તો તમે સ્પ્લિટ-હોરાઇઝન નામકરણ જોઈ રહ્યા છો, અને તે તફાવત ડિઝાઇનની વિગત છે, લીક નથી.
ત્રીજું પગલું: જે પાથ ત્યાં પહોંચી શકે તેની યાદી બનાવો
ખાનગી સરનામું ત્યાંથી પહોંચી શકાય છે જ્યાં રૂટ અને સુરક્ષા નિયમ હોય. તેમને જાણી જોઈને સૂચિબદ્ધ કરો: સાઇટ-ટુ-સાઇટ VPN, ક્લાયન્ટ VPN, VPC પિયરિંગ, ટ્રાન્ઝિટ ગેટવે જોડાણો, Direct Connect અને VPC ની અંદરનું કોઈપણ પ્રોક્સી કે બેસ્ટિયન. તેમાંથી એક ઇચ્છિત પાથ છે, અને બાકીના એ છે જે હુમલાખોર શોધશે.
પછી દરેક પાથ પરના નિયંત્રણો ચકાસો: લોડ બેલેન્સર પરના સુરક્ષા જૂથો, સબનેટ પરના નેટવર્ક ACL, અને જે રૂટિંગ પાથને બનાવે છે. ખુલ્લી આંતરિક સેવાના મોટા ભાગના નોંધાયેલા કિસ્સા અહીં ઉકેલાય છે, કાં તો અનિચ્છનીય પિયરિંગ હતું અથવા પાથ ઇચ્છિત હતો અને એપ્લિકેશનમાં પ્રમાણીકરણ ન હતું.
ચોથું પગલું: લિસનર અને એપ્લિકેશન અલગ અલગ ચકાસો
એવા નેટવર્કથી કનેક્ટ કરવાનો પ્રયાસ કરો જે સેવા સુધી ન પહોંચવું જોઈએ અને ખાતરી કરો કે તમે નથી કરી શકતા. પછી એવા નેટવર્કથી પ્રયાસ કરો જે પહોંચવું જોઈએ, અને ખાતરી કરો કે તમે લિસનર સુધી પહોંચો છો. એ બે પરિણામો નેટવર્ક પહોંચને એપ્લિકેશન વર્તનથી અલગ પાડે છે, અને ખુલ્લાપણાના પ્રશ્ન માટે એ જ એકમાત્ર મહત્ત્વની સાબિતી છે.
પહોંચી શકાય તેવું લિસનર એ સુલભ એપ્લિકેશન જેવું નથી. TLS પ્રમાણપત્ર અને પ્રોટોકોલ નીતિ, પછી એપ્લિકેશનનું પોતાનું પ્રમાણીકરણ અને અધિકૃતિ ચકાસો. કોર્પોરેટ VPN પર કોઈપણ કૉલરને સ્વીકારતું આંતરિક સાધન તે VPN પરના દરેક સમાધાનગ્રસ્ત લેપટોપ સામે ખુલ્લું છે, જે ઇન્ટરનેટ તરફના જોખમ કરતાં અલગ છે, પણ હજી જોખમ છે.
યાદ રાખો કે નિયંત્રણો પ્રકાર પ્રમાણે અલગ હોય છે. એપ્લિકેશન-સ્તરના ફાયરવોલ એક લોડ બેલેન્સર કુટુંબ સાથે જોડાય છે, બીજા સાથે નહીં, તેથી સમાનતા ધારવાને બદલે તમારા સામેની સ્કીમ અને પ્રકાર માટે ખરેખર શું ઉપલબ્ધ છે તેની ખાતરી કરો.
પાંચમું પગલું: નામનું પોતે મહત્ત્વનું છે કે નહીં તે નક્કી કરો
જાહેર ઉકેલક્ષમતા સેવાનું નામ, પ્રદેશ અને સરનામા શ્રેણી જાહેર કરી શકે છે. તેને નીતિ-જવાબ સાથેની માહિતી જાહેર કરવાની બાબત તરીકે ગણો, આપોઆપ ઘટના તરીકે નહીં: સંવેદનશીલ વ્યાવસાયિક શબ્દોને સંસાધન નામોથી બહાર રાખો, અને જો નામકરણ પરંપરા તમે ઇચ્છો તેનાથી વધુ જાહેર કરે તો જોખમ નોંધમાં જાહેરાત નોંધો.
જો સંસ્થા ખાનગી નામકરણ અનુભવ ઇચ્છે, તો ખાનગી હોસ્ટેડ ઝોન એવો ઉપનામ આપી શકે જે ફક્ત સંબંધિત VPC ની અંદર ઉકેલાય. તે વપરાશકર્તાઓ જે નામ જુએ છે તે બદલે છે; તે પ્રદાતાએ બનાવેલું નામ ગુપ્ત બનાવતું નથી અને કોઈ નેટવર્ક પાથ દૂર કરતું નથી.
જવાબ છુપાવવા માટે સરનામાં પિન કરવાનો પ્રયાસ કરશો નહીં. લોડ બેલેન્સરના સરનામાં બદલાય છે, પિનિંગ TLS ચકાસણીની ટેવ તોડે છે, અને તમને ખરેખર જે નિયંત્રણ જોઈએ છે તે એ છે કે કોણ કનેક્શન સ્થાપિત કરી શકે અને એપ્લિકેશન તેમની પાસેથી શું માગે છે. ચાર તથ્યો ચકાસો, લખો, અને પ્રશ્ન અસ્પષ્ટ રહેતો નથી.