समग्र आर्किटेक्चर | DNS और HTTPS पथ | AWS Direct Connect | Route 53 Resolver | Private API Gateway | सुरक्षा और समस्या निवारण
यहां यह नोट करना महत्वपूर्ण है: यह कोई "सीरियल प्रॉक्सी चेन" नहीं है जिससे सारा ट्रैफ़िक क्रम से गुजरता है।
यह वास्तव में दो स्वतंत्र प्रक्रियाओं में विभाजित है:
- DNS रिज़ॉल्यूशन पथ : VPC एंडपॉइंट के निजी आईपी में निजी डोमेन नाम को हल करने के लिए जिम्मेदार।
- HTTPS पहुंच पथ : क्लाइंट निजी आईपी प्राप्त करने के बाद, यह सीधे डायरेक्ट कनेक्ट के माध्यम से इंटरफ़ेस वीपीसी एंडपॉइंट तक पहुंचता है, और फिर इसे एडब्ल्यूएस प्राइवेटलिंक के माध्यम से निजी एपीआई गेटवे पर स्थानांतरित करता है।
2. समग्र संरचना
निम्नलिखित एक उदाहरण के रूप में टोक्यो क्षेत्र ap-northeast-1 को लेता है।
बाहरी कंपनी नेटवर्क
172.20.0.0/16
│
├─बिजनेस क्लाइंट
│ कर्ल / जावा / पोस्टमैन / बिजनेस सिस्टम
│
├─ बाहरी कंपनी डीएनएस
│ सशर्त अग्रेषण:
│ api.partner.example.com
│ ↓
│ 10.20.10.10
│ 10.20.20.10
│
└─ बाहरी कॉर्पोरेट राउटर
BGP
│
│ AWS Direct Connect
▼
Direct Connect Location
│
▼
Direct Connect Gateway
│
├─ Private VIF → VGW
│ या
└─ Transit VIF → Transit Gateway
│
▼
AWS VPC
10.20.0.0/16
│
┌──────────────┴──────────────┐
│ │
▼ ▼
Route 53 Resolver Interface VPC Endpoint
Inbound Endpoint com.amazonaws.ap-northeast-1.execute-api
UDP/TCP 53 TCP 443
10.20.10.10 10.20.11.x
10.20.20.10 10.20.21.x
│ │
▼ │
Route 53 Private Hosted Zone │
partner.example.com │
│ │
api.partner.example.com │
Alias → VPC Endpoint ─────────────┘
│
▼
API Gateway Private Domain
│
Domain Access Association
│
▼
API Mapping / Base Path
│
▼
Private REST API Gateway
│
▼
Lambda / AWS Service / VPC Link
रूट 53 रिज़ॉल्वर इनबाउंड एंडपॉइंट स्थानीय नेटवर्क से डीएनएस अनुरोध प्राप्त करता है, जबकि प्राइवेट होस्टेड ज़ोन निजी डोमेन नाम रिकॉर्ड सहेजता है; इंटरफ़ेस वीपीसी एंडपॉइंट एपीआई गेटवे में HTTPS डेटा प्रवाह के लिए वास्तविक प्रवेश बिंदु है।
3. संपूर्ण अनुरोध कैसे प्रवाहित होता है?
मान लीजिए कोई बाहरी कंपनी सिस्टम अनुरोध करता है:
https://api.partner.example.com/v1/orders
1. डीएनएस रिज़ॉल्यूशन प्रक्रिया
ग्राहक सबसे पहले बाहरी कंपनी से उसका आंतरिक DNS पूछता है:
api.partner.example.com का IP क्या है?
बाह्य कॉर्पोरेट DNS पर सशर्त अग्रेषण कॉन्फ़िगर किया गया:
partner.example.com
→ 10.20.10.10
→ 10.20.20.10
ये दो आईपी AWS VPC में रूट 53 रिज़ॉल्वर इनबाउंड एंडपॉइंट आईपी हैं।
DNS अनुरोध जाता है:
बाहरी कंपनी डीएनएस
→ Direct Connect
→ Transit Gateway/VGW
→ Resolver Inbound Endpoint
→ Route 53 VPC Resolver
→ Private Hosted Zone
प्राइवेट होस्टेड जोन में मौजूद:
api.partner.example.com
A Alias
→ vpce-xxxxxxxx.execute-api.ap-northeast-1.vpce.amazonaws.com
अंततः जो लौटाया जाता है वह एपीआई गेटवे का सार्वजनिक आईपी नहीं है, बल्कि इंटरफ़ेस वीपीसी एंडपॉइंट ईएनआई का निजी आईपी है, उदाहरण के लिए:
10.20.11.45
10.20.21.82
इनबाउंड एंडपॉइंट का आईपी स्वयं एक वीपीसी निजी आईपी है, इसलिए ऑन-प्रिमाइसेस नेटवर्क को डायरेक्ट कनेक्ट या वीपीएन के माध्यम से वीपीसी पर रूट किया जाना चाहिए। AWS को प्रत्येक रिज़ॉल्वर एंडपॉइंट को कम से कम दो IP के साथ कॉन्फ़िगर करने की आवश्यकता होती है, और उन्हें विभिन्न उपलब्धता क्षेत्रों में रखने की अनुशंसा की जाती है।
2. HTTPS एक्सेस प्रक्रिया
DNS समाप्त होने के बाद, क्लाइंट हल किए गए VPC एंडपॉइंट निजी IP पर TCP 443 स्थापित करता है:
ग्राहक
→ Direct Connect
→ TGW/VGW
→ VPC Endpoint ENI:443
→ AWS PrivateLink
→ API Gateway Private Custom Domain
→ API Mapping
→ Private REST API
यहां Route 53 रिज़ॉल्वर के HTTPS अग्रेषण में भाग नहीं लेता है। यह केवल पिछले DNS रिज़ॉल्यूशन के लिए ज़िम्मेदार है।
निजी एपीआई गेटवे को केवल एपीआई गेटवे के इंटरफ़ेस वीपीसी एंडपॉइंट के माध्यम से एक्सेस किया जा सकता है, और एपीआई संसाधन नीति को निर्दिष्ट वीपीसी या वीपीसी एंडपॉइंट की भी अनुमति देनी चाहिए।
4. प्रत्येक सेवा क्यों मौजूद है?
1. AWS Direct Connect
समारोह
डायरेक्ट कनेक्ट बाहरी कॉर्पोरेट नेटवर्क और AWS के बीच एक निजी लाइन कनेक्शन प्रदान करता है।
यह मुख्य रूप से इसके लिए जिम्मेदार है:
- किसी बाहरी कंपनी के निजी नेटवर्क खंड को AWS VPC पर रूट करें।
- बाहरी कंपनियों के लिए AWS VPC नेटवर्क खंड जारी करें।
- DNS अनुरोधों को होस्ट करता है।
- HTTPS API अनुरोधों को होस्ट करता है।
- सार्वजनिक इंटरनेट से गुजरने वाले व्यावसायिक ट्रैफ़िक से बचें।
- अपेक्षाकृत स्थिर बैंडविड्थ और विलंबता प्रदान करें।
डायरेक्ट कनेक्ट किसके लिए ज़िम्मेदार नहीं है
डायरेक्ट कनेक्ट स्वयं इसके लिए ज़िम्मेदार नहीं है:
- डीएनएस संकल्प.
- एपीआई प्रमाणीकरण.
- एपीआई प्राधिकरण.
- टीएलएस प्रमाणपत्र.
- एपीआई गेटवे रूटिंग.
- सभी लिंक स्वचालित रूप से एन्क्रिप्ट करें.
डायरेक्ट कनेक्ट एक "निजी सर्किट" है, लेकिन इसे केवल "एंड-टू-एंड एन्क्रिप्टेड सर्किट" के बराबर नहीं किया जा सकता है। जब लिंक एन्क्रिप्शन की आवश्यकता हो, तो जहां समर्थित हो वहां MACsec पर विचार करें, या डायरेक्ट कनेक्ट पर साइट-टू-साइट वीपीएन/आईपीसेक ओवरले करें। यदि एन्क्रिप्शन स्थापित नहीं किया जा सकता तो MACsec का must_encrypt मोड ट्रांसमिशन बंद कर देता है; विफलता पर should_encrypt अनएन्क्रिप्टेड संचार पर वापस आ सकता है।
2. Route 53 Resolver Inbound Endpoint
समारोह
AWS VPC के भीतर DNS को क्वेरी करने के लिए बाहरी कंपनियों के स्वयं के DNS सर्वर को सक्षम करें।
इसके बिना, बाहरी कंपनी के स्थानीय DNS से सीधे पूछताछ नहीं की जा सकती:
- Route 53 Private Hosted Zone。
- वीपीसी आंतरिक निजी डीएनएस नाम।
- वीपीसी एंडपॉइंट से संबंधित निजी रिकॉर्ड।
इनबाउंड एंडपॉइंट बनने के बाद, निर्दिष्ट सबनेट में एक ईएनआई बनाया जाएगा और एक निश्चित निजी आईपी सौंपा जाएगा। बाहरी कंपनी डीएनएस इन आईपी के लिए संबंधित डोमेन नाम के अनुरोध को अग्रेषित करती है।
मैं सीधे VPC के VPC+2 DNS से क्यों नहीं पूछ सकता?
VPC में सामान्य DNS पते समान हैं:
VPC CIDR:10.20.0.0/16
VPC Resolver:10.20.0.2
लेकिन बाहरी नेटवर्क को सामान्य DNS सर्वर के रूप में सीधे 10.20.0.2 का उपयोग नहीं करना चाहिए। हाइब्रिड नेटवर्क के लिए मानक प्रवेश बिंदु रिज़ॉल्वर इनबाउंड एंडपॉइंट है।
3. Route 53 Private Hosted Zone
समारोह
उदाहरण के लिए, निजी डोमेन नाम और संबंधित रिकॉर्ड सहेजें:
Private Hosted Zone:
partner.example.com
Record:
api.partner.example.com
A Alias
→ execute-api Interface VPC Endpoint
प्राइवेट होस्टेड ज़ोन केवल संबंधित वीपीसी और संबंधित रिज़ॉल्वर इनबाउंड एंडपॉइंट के माध्यम से दर्ज किए गए प्रश्नों के लिए प्रभावी होता है। वास्तविक एपीआई पते को सार्वजनिक डीएनएस पर उजागर करने की कोई आवश्यकता नहीं है।
4. Interface VPC Endpoint
सेवा का नाम:
com.amazonaws.ap-northeast-1.execute-api
समारोह
इंटरफ़ेस वीपीसी एंडपॉइंट वीपीसी के भीतर निजी एपीआई गेटवे का निजी प्रवेश द्वार है।
यह चयनित प्रत्येक उपलब्धता क्षेत्र सबनेट में एक ENI बनाता है:
AZ-a:10.20.11.45
AZ-c:10.20.21.82
बाहरी कंपनियों से HTTPS अनुरोध अंततः इन ENI तक पहुंचते हैं और फिर AWS PrivateLink के माध्यम से API गेटवे में प्रवेश करते हैं।
इंटरफ़ेस एंडपॉइंट समर्थन करता है:
- Security Group。
- VPC Endpoint Policy。
- एकाधिक उपलब्धता क्षेत्र।
- निजी DNS नाम.
- सेवा और कॉन्फ़िगरेशन के आधार पर IPv4, IPv6 या डुअल स्टैक।
AWS अनुशंसा करता है कि इंटरफ़ेस एंडपॉइंट उपलब्धता में सुधार के लिए एकाधिक सबनेट का चयन करें।
5. API Gateway Private Custom Domain
उदाहरण के लिए:
api.partner.example.com
यह दो समस्याओं का समाधान करता है:
मित्रवत कॉलिंग पता
उपयोग करने की कोई आवश्यकता नहीं:
https://a1b2c3d4-vpce123.execute-api.ap-northeast-1.amazonaws.com/prod
इसके बजाय उपयोग करें:
https://api.partner.example.com/v1
टीएलएस प्रमाणपत्र
एपीआई गेटवे टीएलएस एसएनआई पर आधारित है:
api.partner.example.com
संबंधित ACM प्रमाणपत्र का चयन करें.
निजी कस्टम डोमेन और VPC समापन बिंदु के बीच बनाया जाना चाहिए:
Domain Name Access Association
अन्यथा, भले ही DNS एंडपॉइंट की ओर इशारा करता हो, एपीआई गेटवे एंडपॉइंट को इस निजी डोमेन नाम का उपयोग करने की अनुमति नहीं देगा।
6. Private API Gateway
प्राइवेट एपीआई गेटवे अंतिम एपीआई प्रवेश द्वार है।
यह एकीकृत करना जारी रख सकता है:
- Lambda。
- एडब्ल्यूएस सेवाएँ।
- HTTP बैकएंड.
- वीपीसी लिंक के माध्यम से एएलबी/एनएलबी और इंट्रा-वीपीसी सेवाओं से जुड़ें।
निजी एपीआई का मतलब यह नहीं है कि "समर्पित लाइन के माध्यम से कोई भी इसे कॉल कर सकता है।" कम से कम निम्नलिखित प्राधिकरण परतें भी मौजूद हैं:
VPC Endpoint Security Group
VPC Endpoint Policy
Private Domain Resource Policy
Private API Resource Policy
एपीआई विधि स्तर प्रमाणीकरण
बैकएंड व्यवसाय प्रमाणन
निजी एपीआई की संसाधन नीति aws:SourceVpce या aws:SourceVpc के माध्यम से स्रोतों को प्रतिबंधित कर सकती है। AWS सभी मूलों की अनुमति देने के बजाय स्पष्ट रूप से VPC या VPC समापन बिंदु निर्दिष्ट करने की अनुशंसा करता है।
5. अनुशंसित पता और संसाधन योजना
एक विशिष्ट उदाहरण नीचे दिया गया है.
| प्रोजेक्ट | उदाहरण |
|---|---|
| AWS Region | ap-northeast-1 |
| AWS VPC | 10.20.0.0/16 |
| बाहरी कंपनी नेटवर्क खंड | 172.20.0.0/16 |
| रिज़ॉल्वर एंडपॉइंट सबनेट ए | 10.20.10.0/24 |
| रिज़ॉल्वर एंडपॉइंट सबनेट सी | 10.20.20.0/24 |
| Resolver IP A | 10.20.10.10 |
| Resolver IP C | 10.20.20.10 |
| एक्ज़ीक्यूट-एपीआई एंडपॉइंट सबनेट ए | 10.20.11.0/24 |
| एक्ज़ीक्यूट-एपीआई एंडपॉइंट सबनेट सी | 10.20.21.0/24 |
| निजी डोमेन नाम | api.partner.example.com |
| Private Hosted Zone | partner.example.com |
| API Stage | prod |
| Base Path | v1 |
सुविधा के लिए एक समर्पित सबनेट में रिज़ॉल्वर एंडपॉइंट और इंटरफ़ेस एंडपॉइंट को अलग करने की अनुशंसा की जाती है:
- NACL को स्वतंत्र रूप से कॉन्फ़िगर करें।
- अलग प्रवाह लॉग.
- लागतों की पहचान करें.
- रूटिंग और सुरक्षा समूहों का स्वतंत्र नियंत्रण।
- बाद में प्रतिस्थापन या विस्तार।
6. चरण एक: डायरेक्ट कनेक्ट कॉन्फ़िगरेशन
परिदृश्य ए: केवल एक वीपीसी
उपयोग कर सकते हैं:
Direct Connect
→ Private VIF
→ Direct Connect Gateway
→ Virtual Private Gateway
→ VPC
निजी वीआईएफ का उपयोग मुख्य रूप से निजी आईपी के माध्यम से वीपीसी तक पहुंचने के लिए किया जाता है। बनाते समय, आपको वीएलएएन, क्लाइंट बीजीपी एएसएन, बीजीपी पीयर आईपी और एमटीयू जैसे पैरामीटर सेट करने होंगे।
विकल्प बी: एकाधिक वीपीसी या साझा नेटवर्क केंद्र
अनुशंसित:
Direct Connect
→ Transit VIF
→ Direct Connect Gateway
→ Transit Gateway
→ Shared Services VPC
यह एंटरप्राइज़ परिवेश में एक अधिक सामान्य डिज़ाइन है क्योंकि इसका अनुसरण निम्न द्वारा किया जा सकता है:
- DNS VPC。
- API VPC。
- बिजनेस वीपीसी.
- सुरक्षा जांच वीपीसी.
ट्रांजिट गेटवे तक एकीकृत पहुंच।
ट्रांजिट वीआईएफ का उपयोग डायरेक्ट कनेक्ट गेटवे से जुड़े ट्रांजिट गेटवे से कनेक्ट करने के लिए किया जाता है; डायरेक्ट कनेक्ट गेटवे के अनुमत उपसर्ग स्थानीय नेटवर्क पर प्रकाशित AWS-साइड उपसर्गों को प्रभावित करते हैं।
डायरेक्ट कनेक्ट कॉन्फ़िगरेशन चरण
1. एक भौतिक या होस्टेड कनेक्शन स्थापित करें
हो सकता है:
- Dedicated Connection。
- साझेदारों द्वारा होस्ट किया गया कनेक्शन प्रदान किया गया।
उद्यम औपचारिक उत्पादन वातावरण को केवल एक लिंक होने से बचना चाहिए। AWS का उच्च उपलब्धता मॉडल विभिन्न उपकरणों और विभिन्न डायरेक्ट कनेक्ट स्थानों से अनावश्यक कनेक्शन का उपयोग करने की अनुशंसा करता है, और आप बीजीपी विफलता का परीक्षण करने के लिए रेजिलिएंसी टूलकिट का उपयोग कर सकते हैं।
2. डायरेक्ट कनेक्ट गेटवे बनाएं
उदाहरण के लिए:
Name: dxgw-partner-api
Amazon side ASN: 64520
3. ट्रांजिट गेटवे बनाएं
उदाहरण के लिए:
TGW ASN: 64530
जहां एपीआई स्थित है वहां वीपीसी को टीजीडब्ल्यू से संलग्न करें।
4. एसोसिएट डीएक्स गेटवे और टीजीडब्ल्यू
अनुमत उपसर्गों को सेट करने की आवश्यकता है, उदाहरण के लिए:
10.20.0.0/16
बेतरतीब ढंग से पोस्ट न करें:
0.0.0.0/0
10.0.0.0/8
जब तक कि यह स्पष्ट रूप से जांचा गया वेब डिज़ाइन न हो।
5. ट्रांज़िट VIF बनाएं
मुख्य मापदंडों में शामिल हैं:
VLAN: 120
Customer ASN: 65010
AWS ASN: DXGW से
Customer Peer IP: 169.254.x.x/30
AWS Peer IP: 169.254.x.x/30
बीजीपी एमडी5 कुंजी: स्वचालित रूप से उत्पन्न या निर्दिष्ट
एमटीयू: 1500 या 8500
6. स्थानीय राउटर कॉन्फ़िगर करें
AWS पर स्थानीय रूप से प्रकाशित करें:
172.20.0.0/16
स्थानीय के लिए AWS रिलीज़:
10.20.0.0/16
7. TGW राउटिंग टेबल कॉन्फ़िगर करें
AWS पक्ष को कम से कम आवश्यकता है:
172.20.0.0/16
→ डायरेक्ट कनेक्ट गेटवे/टीजीडब्ल्यू एसोसिएशन दिशा
एपीआई वीपीसी सबनेट रूट तालिका के लिए आवश्यक है:
172.20.0.0/16
→ Transit Gateway
बाहरी कॉर्पोरेट राउटर की आवश्यकता है:
10.20.0.0/16
→ Direct Connect
डायरेक्ट कनेक्ट सबसे आम त्रुटियाँ
मार्ग केवल एक दिशा में कॉन्फ़िगर किया गया है
उदाहरण के लिए:
बाहरी कंपनियां 10.20.11.45 पर जा सकती हैं
लेकिन AWS को नहीं पता कि 172.20.0.0/16 पर वापस कैसे पहुँचें
परिणाम आम तौर पर एक टीसीपी कनेक्शन टाइमआउट होता है।
सीआईडीआर ओवरलैप
उदाहरण के लिए:
बाहरी कंपनी: 10.20.0.0/16
AWS VPC:10.20.0.0/16
इस स्थिति को सामान्य रूटिंग से हल नहीं किया जा सकता. आमतौर पर इसकी आवश्यकता होती है:
- पते की दोबारा योजना बनाएं.
- NAT。
- मध्यस्थ एजेंट.
- प्राइवेटलिंक सेवा-आधारित वास्तुकला।
एमटीयू असंगत
निजी वीआईएफ 1500 या 9001 का उपयोग कर सकता है, ट्रांजिट वीआईएफ 1500 या 8500 का उपयोग कर सकता है। जंबो फ्रेम को सक्षम करने से पहले, सुनिश्चित करें कि ग्राहक राउटर, ऑपरेटर, डीएक्स लिंक, टीजीडब्ल्यू और मध्यवर्ती उपकरण सभी इसका समर्थन करते हैं। अन्यथा, छोटे अनुरोध सामान्य हो सकते हैं और बड़े अनुरोध अटक सकते हैं।
7. चरण 2: रूट 53 रिज़ॉल्वर इनबाउंड एंडपॉइंट बनाएं
1. एक सुरक्षा समूह बनाएं
उदाहरण के लिए:
sg-r53-inbound
आवक नियम:
UDP 53
स्रोत: बाहरी कंपनी डीएनएस सर्वर आईपी/32
TCP 53
स्रोत: बाहरी कंपनी डीएनएस सर्वर आईपी/32
उदाहरण के लिए:
UDP 53 ← 172.20.1.10/32
UDP 53 ← 172.20.1.11/32
TCP 53 ← 172.20.1.10/32
TCP 53 ← 172.20.1.11/32
केवल यूडीपी 53 न खोलें। टीसीपी का उपयोग निम्नलिखित स्थितियों में किया जा सकता है:
- DNS प्रतिक्रिया बहुत बड़ी है.
- DNSSEC。
- यूडीपी काट-छांट के बाद पुनः प्रयास करें।
- कुछ आंतरिक DNS उत्पादों का व्यवहार.
AWS को स्पष्ट रूप से TCP और UDP 53 की अनुमति देने के लिए इनबाउंड एंडपॉइंट सुरक्षा समूह की आवश्यकता होती है।
2. इनबाउंड एंडपॉइंट बनाएं
कंसोल पथ:
Route 53
→ Resolver
→ Inbound endpoints
→ Create inbound endpoint
अनुशंसित सेटिंग्स:
Name: r53-inbound-partner-api
VPC: vpc-api-shared
Endpoint category: Default
Protocol: Do53
Security Group: sg-r53-inbound
दो AZ कॉन्फ़िगर करें:
AZ-a
Subnet: subnet-dns-a
IP: 10.20.10.10
AZ-c
Subnet: subnet-dns-c
IP: 10.20.20.10
AWS को न्यूनतम दो IP की आवश्यकता होती है और विभिन्न उपलब्धता क्षेत्रों में रहने की अनुशंसा की जाती है; ये आईपी एंडपॉइंट के जीवन के लिए अपरिवर्तित रहते हैं।
3. बाहरी कंपनी DNS कॉन्फ़िगरेशन सशर्त अग्रेषण
विंडोज़ डीएनएस उदाहरण:
Conditional Forwarder:
partner.example.com
Master Servers:
10.20.10.10
10.20.20.10
बाइंड उदाहरण:
zone "partner.example.com" {
type forward;
forward only;
forwarders {
10.20.10.10;
10.20.20.10;
};
};
केवल सटीक डोमेन नाम अग्रेषित करने की अनुशंसा की जाती है:
partner.example.com
अनावश्यक रूप से कॉन्फ़िगर न करें:
.
com
example.com
अन्यथा बड़ी संख्या में अप्रासंगिक DNS क्वेरीज़ AWS को अग्रेषित की जा सकती हैं।
4. DNS लिंक सत्यापित करें
AWS रिज़ॉल्वर IP का सीधे परीक्षण करें:
dig @10.20.10.10 api.partner.example.com
फिर बाहरी कंपनी का सामान्य DNS परीक्षण पास करें:
dig api.partner.example.com
प्रारंभिक चरण में, जब प्राइवेट होस्टेड ज़ोन नहीं बनाया गया है, तो NXDOMAIN वापस किया जा सकता है, जो कम से कम यह साबित करता है कि अनुरोध रिज़ॉल्वर तक पहुंच गया है।
8. चरण 3: एक्ज़ीक्यूट-एपीआई इंटरफ़ेस वीपीसी एंडपॉइंट बनाएं
1. एक समापन बिंदु सुरक्षा समूह बनाएं
उदाहरण के लिए:
sg-vpce-execute-api
आवक नियम:
TCP 443
Source: 172.20.0.0/16
जब यह अधिक सख्त होता है, तो केवल व्यापार प्रणाली नेटवर्क खंड की अनुमति होती है:
TCP 443
Source: 172.20.10.0/24
यह सोचने की गलती न करें कि केवल वीपीसी सीआईडीआर को अनुमति देना ही पर्याप्त है। कॉल करने वाला किसी बाहरी कंपनी नेटवर्क में स्थित है। वीपीसी एंडपॉइंट द्वारा देखा गया स्रोत आमतौर पर बाहरी कंपनी का मूल निजी आईपी होता है, इसलिए संबंधित नेटवर्क सेगमेंट की अनुमति होनी चाहिए।
HTTPS 443 ट्रैफ़िक की अनुमति देने के लिए AWS को एक्ज़ीक्यूट-एपीआई एंडपॉइंट सुरक्षा समूह की आवश्यकता होती है।
2. समापनबिंदु बनाएं
कंसोल पथ:
VPC
→ Endpoints
→ Create endpoint
चुनें:
Service category: AWS services
Service:
com.amazonaws.ap-northeast-1.execute-api
Type:
Interface
विन्यास:
VPC: vpc-api-shared
Subnets:
subnet-endpoint-a
subnet-endpoint-c
Security Group:
sg-vpce-execute-api
Private DNS:
Enabled
कम से कम दो उपलब्धता क्षेत्रों का चयन करने की अनुशंसा की जाती है। प्रत्येक चयनित AZ के लिए केवल एक सबनेट का चयन किया जा सकता है, और AWS प्रत्येक सबनेट में एक एंडपॉइंट ENI बनाएगा।
एडब्ल्यूएस सीएलआई उदाहरण:
aws ec2 create-vpc-endpoint \
--region ap-northeast-1 \
--vpc-id vpc-0123456789abcdef0 \
--vpc-endpoint-type Interface \
--service-name com.amazonaws.ap-northeast-1.execute-api \
--subnet-ids subnet-aaa subnet-ccc \
--security-group-ids sg-0123456789abcdef0 \
--private-dns-enabled
3. प्राइवेट डीएनएस स्विच का प्रभाव
एक्ज़ीक्यूट-एपीआई प्राइवेट डीएनएस चालू करने के बाद:
*.execute-api.ap-northeast-1.amazonaws.com
इस वीपीसी के भीतर, वीपीसी एंडपॉइंट को पहले हल किया जाएगा।
प्राइवेट एपीआई के डिफ़ॉल्ट डोमेन नाम को कॉल करना अधिक सुविधाजनक है, लेकिन इसके दुष्प्रभाव भी हैं:
- VPC में सार्वजनिक API गेटवे डिफ़ॉल्ट
execute-apiURL तक पहुँचने पर, इसे प्राइवेट एंडपॉइंट पर हल किया जा सकता है। - इसलिए, सार्वजनिक एपीआई डिफ़ॉल्ट डोमेन नाम के माध्यम से पहुंच योग्य नहीं हो सकता है।
- सार्वजनिक नेटवर्क एपीआई के लिए अपने स्वयं के क्षेत्रीय कस्टम डोमेन का उपयोग करना सबसे अच्छा है।
AWS दस्तावेज़ स्पष्ट रूप से याद दिलाता है कि एक्ज़ीक्यूट-एपीआई एंडपॉइंट निजी DNS को सक्षम करने के बाद, VPC में डिफ़ॉल्ट एंडपॉइंट के माध्यम से सार्वजनिक एपीआई तक पहुंच प्रभावित हो सकती है।
9. चरण 4: प्राइवेट रेस्ट एपीआई बनाएं
1. एपीआई बनाएं
कंसोल:
API Gateway
→ Create API
→ REST API
→ Build
चुनें:
Endpoint type: Private
IP address type: Dualstack
VPC Endpoint IDs: vpce-xxxxxxxx
यहां प्राइवेट एपीआई गेटवे का तात्पर्य REST API प्राइवेट एंडपॉइंट से है। इसे बनाते समय आप एक्ज़ीक्यूट-एपीआई वीपीसी एंडपॉइंट को सीधे संबद्ध कर सकते हैं। एक बार संबद्ध होने पर, एपीआई गेटवे एपीआई आईडी और एंडपॉइंट आईडी से संबंधित कॉलिंग डीएनएस नाम उत्पन्न करता है।
सीएलआई उदाहरण:
aws apigateway create-rest-api \
--region ap-northeast-1 \
--name partner-private-api \
--endpoint-configuration '{
"types":["PRIVATE"],
"ipAddressType":"dualstack",
"vpcEndpointIds":["vpce-0123456789abcdef0"]
}'
2. संसाधन और विधियाँ बनाएँ
उदाहरण के लिए:
/
└── orders
├── GET
└── POST
या:
/health
/orders
/orders/{orderId}
लैम्ब्डा या अन्य एकीकरण को कॉन्फ़िगर करने के बाद, यहां तैनात करें:
Stage: prod
3. API Resource Policy
केवल निर्दिष्ट समापन बिंदु को अनुमति देने की अनुशंसा की जाती है:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": "execute-api:/*"
},
{
"Effect": "Deny",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": "execute-api:/*",
"Condition": {
"StringNotEquals": {
"aws:SourceVpce": "vpce-0123456789abcdef0"
}
}
}
]
}
इस प्रकार लिखने का अर्थ है:
- सिद्धांत रूप में, कॉल की अनुमति है।
- लेकिन जब तक स्रोत समापन बिंदु निर्दिष्ट समापन बिंदु नहीं है, तब तक इसे स्पष्ट रूप से अस्वीकार कर दिया जाएगा।
AWS aws:SourceVpce और aws:SourceVpc पर आधारित निजी एपीआई संसाधन नीतियों के उदाहरण प्रदान करता है।
संसाधन नीति को संशोधित करने के बाद, एपीआई को फिर से तैनात किया जाना चाहिए।
10. चरण 5: प्रमाणपत्र और निजी कस्टम डोमेन
1. एसीएम प्रमाणपत्र तैयार करें
प्रमाणपत्र में शामिल होना चाहिए:
api.partner.example.com
और प्रमाणपत्र उस क्षेत्र में स्थित होना चाहिए जहां एपीआई गेटवे स्थित है, उदाहरण के लिए:
ap-northeast-1
आप उपयोग कर सकते हैं:
api.partner.example.com
या जहां उपयुक्त हो:
*.partner.example.com
निजी कस्टम डोमेन वाइल्डकार्ड प्रमाणपत्रों का समर्थन करता है, लेकिन वाइल्डकार्ड कस्टम डोमेन नाम का समर्थन नहीं करता है; निजी डोमेन नाम हमेशा टीएलएस 1.2 का उपयोग करते हैं।
एसीएम सार्वजनिक प्रमाणपत्रों से संबंधित महत्वपूर्ण मुद्दे
भले ही डोमेन नाम केवल इंट्रानेट के लिए उपयोग किया जाता है, फिर भी एसीएम सार्वजनिक प्रमाणपत्र के लिए आवेदन करते समय एसीएम को डोमेन नाम स्वामित्व को सत्यापित करने की आवश्यकता होती है।
DNS सत्यापन रिकॉर्ड सार्वजनिक DNS से ACM द्वारा खोजे जाने योग्य होने चाहिए। केवल CNAME को रूट 53 प्राइवेट होस्टेड ज़ोन में रखने से ACM सार्वजनिक प्रमाणपत्र सत्यापन पूरा नहीं हो सकता।
इसलिए, एक सुरक्षित तरीका यह है:
- एक सार्वजनिक डोमेन नाम उपडोमेन का उपयोग करें जो वास्तव में कंपनी के स्वामित्व में है, जैसे
api.partner.example.com। - सार्वजनिक DNS में केवल ACM सत्यापित CNAME डालें।
- वास्तविक एपीआई का ए रिकॉर्ड केवल प्राइवेट होस्टेड ज़ोन में रखा गया है।
- सार्वजनिक नेटवर्क DNS को एपीआई का वास्तविक पता प्रकाशित करने की आवश्यकता नहीं है।
2. निजी कस्टम डोमेन बनाएं
कंसोल:
API Gateway
→ Custom domain names
→ Add domain name
विन्यास:
Domain name:
api.partner.example.com
Endpoint type:
Private
Routing mode:
API mappings only
ACM Certificate:
api.partner.example.com को कवर करने वाला प्रमाणपत्र
निर्माण के बाद, एपीआई गेटवे शुरू में एक नीति को कॉन्फ़िगर करेगा जो डोमेन नाम तक सभी पहुंच से इनकार करती है, और वीपीसी एंडपॉइंट को निर्दिष्ट करने के लिए मैन्युअल प्राधिकरण की आवश्यकता होती है।
सीएलआई उदाहरण:
aws apigateway create-domain-name \
--region ap-northeast-1 \
--domain-name api.partner.example.com \
--certificate-arn arn:aws:acm:ap-northeast-1:111122223333:certificate/xxxxxxxx \
--security-policy TLS_1_2 \
--endpoint-configuration '{"types":["PRIVATE"]}' \
--policy file://domain-policy.json
11. निजी डोमेन संसाधन नीति
निजी डोमेन को स्वयं भी VPC समापन बिंदु को निर्दिष्ट करने की अनुमति देनी होगी।
domain-policy.json:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": "execute-api:/*"
},
{
"Effect": "Deny",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": "execute-api:/*",
"Condition": {
"StringNotEquals": {
"aws:SourceVpce": "vpce-0123456789abcdef0"
}
}
}
]
}
यहां नज़रअंदाज़ करने वाला एक बहुत ही आसान बिंदु है:
किसी अनुरोध के सफल होने के लिए, कम से कम निम्नलिखित सत्य होना चाहिए:
निजी डोमेन नीति अनुमति देती है
निजी एपीआई नीति अनुमति देती है
वीपीसी समापन बिंदु नीति अनुमति देती है
विधि स्तर प्रमाणीकरण की अनुमति देता है
AWS को स्पष्ट रूप से संसाधन नीतियों को अलग से कॉन्फ़िगर करने के लिए निजी एपीआई और निजी कस्टम डोमेन की आवश्यकता होती है।
12. चरण 6: एपीआई मैपिंग बनाएं
उदाहरण के लिए, आशा:
https://api.partner.example.com/v1/orders
के लिए मानचित्र:
API: partner-private-api
Stage: prod
Base Path: v1
कंसोल:
API Gateway
→ Custom domain names
→ api.partner.example.com
→ API mappings
→ Configure mappings
सेटिंग्स:
API: partner-private-api
Stage: prod
Path: v1
CLI:
aws apigateway create-base-path-mapping \
--region ap-northeast-1 \
--domain-name api.partner.example.com \
--domain-name-id abcd1234 \
--rest-api-id a1b2c3d4 \
--stage prod \
--base-path v1
निजी कस्टम डोमेन को एपीआई मैपिंग या रूटिंग नियमों के माध्यम से विशिष्ट निजी एपीआई और स्टेज पर मैप किया जाना चाहिए।
13. चरण 7: डोमेन नाम एक्सेस एसोसिएशन बनाएं
निजी कस्टम डोमेन आर्किटेक्चर में यह सबसे आसानी से छूटा हुआ कदम है।
निर्माण की आवश्यकता:
Private Custom Domain
↕
execute-api VPC Endpoint
कंसोल:
API Gateway
→ Custom domain names
→ api.partner.example.com
→ Resource sharing
→ Domain name access associations
→ Create
चुनें:
Domain ARN:
arn:aws:apigateway:ap-northeast-1:111122223333:
/domainnames/api.partner.example.com+domain-id
VPC Endpoint:
vpce-0123456789abcdef0
CLI:
aws apigateway create-domain-name-access-association \
--region ap-northeast-1 \
--domain-name-arn \
arn:aws:apigateway:ap-northeast-1:111122223333:/domainnames/api.partner.example.com+abcd1234 \
--access-association-source vpce-0123456789abcdef0 \
--access-association-source-type VPCE
एसोसिएशन बनने के बाद उसे उपलब्ध होने में लगभग 15 मिनट का समय लग सकता है, और निजी कस्टम डोमेन के निर्माण या प्रमाणपत्र के अपडेट में भी कुछ समय लग सकता है।
14. चरण 8: वीपीसी समापन बिंदु नीति कॉन्फ़िगर करें
समापन बिंदु नीति नियंत्रण:
लंबे समय तक पूर्ण पहुंच बनाए रखने की अनुशंसा नहीं की जाती है।
उदाहरण के लिए, केवल डोमेन और एपीआई निर्दिष्ट करने की अनुमति है:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": [
"arn:aws:execute-api:ap-northeast-1:111122223333:/domainnames/api.partner.example.com+abcd1234",
"arn:aws:execute-api:ap-northeast-1:111122223333:a1b2c3d4/*"
]
}
]
}
आप केवल निर्दिष्ट निजी कस्टम डोमेन तक पहुंच को प्रतिबंधित करने के लिए execute-api:viaDomainArn का भी उपयोग कर सकते हैं। एडब्ल्यूएस निजी डोमेन नाम, एपीआई और विधि द्वारा वीपीसी एंडपॉइंट नीति को प्रतिबंधित करने का एक उदाहरण देता है।
प्राधिकरण शीर्षलेख नोट्स
समापन बिंदु नीति सबसे पहले अनुरोध के Authorization हेडर का मूल्यांकन करती है:
- कोई प्राधिकरण नहीं: अज्ञात प्राचार्य द्वारा मूल्यांकन किया गया।
- सही SigV4: IAM प्रिंसिपल के रूप में पहचाना गया।
- त्रुटि SigV4: प्रत्यक्ष अस्वीकृति.
- बियरर टोकन/जेडब्ल्यूटी: समापन बिंदु नीति का मूल्यांकन आमतौर पर अज्ञात प्रिंसिपल के आधार पर किया जाता है।
इसलिए, यदि व्यवसाय परत OAuth/JWT/Lambda ऑथराइज़र का उपयोग करती है, तो गलती से एंडपॉइंट नीति में IAM उपयोगकर्ता से अनुरोध न करें, अन्यथा वैध JWT अनुरोध एंडपॉइंट नीति द्वारा अवरुद्ध हो सकते हैं।
15. चरण 9: निजी होस्टेड ज़ोन और उपनाम रिकॉर्ड बनाएं
1. प्राइवेट होस्टेड जोन बनाएं
बनाने के लिए अनुशंसित:
partner.example.com
और निम्नलिखित संसाधनों से युक्त एक वीपीसी संबद्ध करें:
- Resolver Inbound Endpoint。
- execute-api VPC Endpoint。
कम से कम प्राइवेट होस्टेड ज़ोन को वीपीसी से संबद्ध होना चाहिए जहां इनबाउंड एंडपॉइंट स्थित है, ताकि रिज़ॉल्वर बाहरी प्रश्नों का जवाब देने के लिए होस्टेड ज़ोन का उपयोग कर सके।
CLI:
aws route53 create-hosted-zone \
--name partner.example.com \
--caller-reference "$(date +%s)" \
--hosted-zone-config Comment="Partner private API",PrivateZone=true \
--vpc VPCRegion=ap-northeast-1,VPCId=vpc-0123456789abcdef0
2. उपनाम रिकॉर्ड बनाएं
कंसोल:
Route 53
→ Hosted zones
→ partner.example.com
→ Create record
विन्यास:
Record name:
api
Record type:
A
Alias:
On
Route traffic to:
Alias to VPC endpoint
Region:
ap-northeast-1
Endpoint:
vpce-0123456789abcdef0
निजी एपीआई कस्टम डोमेन का रूट 53 उपनाम लक्ष्य एक्ज़ीक्यूट-एपीआई इंटरफ़ेस वीपीसी एंडपॉइंट होना चाहिए, न कि लैम्ब्डा, एपीआई आईडी या रिज़ॉल्वर एंडपॉइंट।
सीएलआई रिकॉर्ड उदाहरण:
{
"Changes": [
{
"Action": "UPSERT",
"ResourceRecordSet": {
"Name": "api.partner.example.com",
"Type": "A",
"AliasTarget": {
"DNSName": "vpce-0123456789abcdef0.execute-api.ap-northeast-1.vpce.amazonaws.com",
"HostedZoneId": "VPC_ENDPOINT_HOSTED_ZONE_ID",
"EvaluateTargetHealth": false
}
}
}
]
}
फिर:
aws route53 change-resource-record-sets \
--hosted-zone-id Z0123456789ABCDEFG \
--change-batch file://api-alias.json
यदि एंडपॉइंट IPv6 या Dualstack का उपयोग करता है, तो वास्तविक आवश्यकताओं के अनुसार AAAA रिकॉर्ड जोड़ें।
16. बाहरी कंपनी को अंततः क्या कॉन्फ़िगर करने की आवश्यकता है?
बाहरी कंपनियों को आमतौर पर केवल निम्नलिखित जानकारी तक पहुंच की आवश्यकता होती है।
नेटवर्क जानकारी
AWS लक्ष्य नेटवर्क खंड:
10.20.0.0/16
समझौता:
DNS UDP/TCP 53
HTTPS TCP 443
डीएनएस जानकारी
अग्रेषण डोमेन:
partner.example.com
डीएनएस लक्ष्य:
10.20.10.10
10.20.20.10
एपीआई जानकारी
Base URL:
https://api.partner.example.com/v1
स्वास्थ्य जांच:
GET /health
बिजनेस एपीआई:
GET /orders
POST /orders
प्रमाणीकरण संबंधी जानकारी
उदाहरण के लिए, डिज़ाइन पर निर्भर करता है:
- OAuth2/JWT。
- API Gateway Lambda Authorizer。
- AWS IAM SigV4。
- एचएमएसी हस्ताक्षर.
- Cognito Token。
- व्यावसायिक उपयोगकर्ता नाम/पासवर्ड, अकेले उपयोग करने की अनुशंसा नहीं की जाती है।
- एपीआई कुंजी केवल मीटरिंग और उपयोग योजना के लिए उपयुक्त है और इसका उपयोग केवल सुरक्षा प्रमाणीकरण के रूप में नहीं किया जाना चाहिए।
निजी एपीआई वर्तमान में एपीआई गेटवे के पारस्परिक टीएलएस फ़ंक्शन का समर्थन नहीं करता है, इसलिए बी 2 बी दो-तरफा प्रमाणपत्र प्रमाणीकरण को सार्वजनिक नेटवर्क क्षेत्रीय एपीआई की एमटीएलएस विधि के अनुसार सीधे कॉन्फ़िगर नहीं किया जा सकता है। आप IAM SigV4, JWT/Lambda ऑथराइज़र, एप्लिकेशन लेयर प्रमाणपत्र सत्यापन का उपयोग कर सकते हैं, या फ्रंट-एंड प्रॉक्सी लेयर को फिर से डिज़ाइन कर सकते हैं।
17. पूर्ण सुरक्षा नियंत्रण परत
नियंत्रणों को छह परतों में विभाजित करने की अनुशंसा की जाती है।
परत 1: डायरेक्ट कनेक्ट रूटिंग
केवल आवश्यक नेटवर्क खंड प्रकाशित करें:
बाहरी कंपनी → AWS:
10.20.0.0/16
AWS → बाहरी कंपनी:
172.20.10.0/24
संपूर्ण एंटरप्राइज़ नेटवर्क खंडों को एक-दूसरे पर प्रकाशित न करने का प्रयास करें।
दूसरी परत: रिज़ॉल्वर एंडपॉइंट सुरक्षा समूह
बाहरी कंपनियों के केवल आधिकारिक DNS सर्वरों को ही अनुमति है:
UDP/TCP 53
172.20.1.10/32
172.20.1.11/32
सभी ग्राहकों को रिज़ॉल्वर से सीधे पूछताछ करने की अनुमति न दें।
तीसरी परत: एक्ज़ीक्यूट-एपीआई एंडपॉइंट सुरक्षा समूह
केवल व्यवसाय सिस्टम स्रोत नेटवर्क खंडों की अनुमति है:
TCP 443
172.20.10.0/24
परत 4: वीपीसी समापन बिंदु नीति
केवल अनुमति:
निजी डोमेन निर्दिष्ट करें
एपीआई निर्दिष्ट करें
विधि या चरण निर्दिष्ट करें
परत 5: डोमेन और एपीआई संसाधन नीति
यह भी पारित:
aws:SourceVpce
निर्दिष्ट समापन बिंदु को सीमित करें.
जब आपको बाहरी मूल आईपी को और अधिक प्रतिबंधित करने की आवश्यकता होती है, तो निजी एपीआई संसाधन नीति का उपयोग किया जा सकता है:
aws:VpcSourceIp
क्योंकि VPC एंडपॉइंट नेटवर्क लेयर स्रोत IP को फिर से लिख सकता है, aws:VpcSourceIp का उपयोग मूल अनुरोध स्रोत पता निर्धारित करने के लिए किया जाता है।
स्तर 6: विधि-स्तर और व्यवसाय-स्तर प्रमाणन
उदाहरण के लिए:
OAuth2 Access Token
JWT Claims
Partner ID
Scope
आदेश अनुमतियाँ
कॉल आवृत्ति
व्यवसाय लेखापरीक्षा
नेटवर्क द्वारा पहुंच योग्य होने का मतलब यह नहीं है कि व्यवसाय तक पहुंच है।
18. डीएनएस डिज़ाइन में ध्यान देने योग्य मुख्य बिंदु
1. Split-Horizon DNS
मान लें कि बाहरी कंपनी पहले से ही आंतरिक रूप से प्रबंधित है:
example.com
AWS फिर से बनाता है:
Private Hosted Zone: example.com
फिर विभाजित डीएनएस और प्राधिकरण टकराव हो सकता है।
समर्पित उपडोमेन को विभाजित करने की अधिक अनुशंसा की जाती है:
aws-api.example.com
partner-api.example.com
private.example.com
उसके बाद ही इस उपडोमेन को सशर्त रूप से अग्रेषित करें।
2. प्राइवेट होस्टेड ज़ोन एसोसिएशन त्रुटि
यदि:
वीपीसी-ए में रिज़ॉल्वर समापन बिंदु
प्राइवेट होस्टेड ज़ोन केवल वीपीसी-बी से संबद्ध है
इनबाउंड एंडपॉइंट होस्टेड ज़ोन को उम्मीद के मुताबिक हल नहीं कर सकता है।
सबसे सरल तरीका है:
Private Hosted Zone
वीपीसी को भी वहां संबद्ध करें जहां रिज़ॉल्वर एंडपॉइंट स्थित है
और वीपीसी जहां एक्ज़ीक्यूट-एपीआई एंडपॉइंट स्थित है
यदि दोनों एक ही वीपीसी में हों तो यह आसान है।
3. रिज़ॉल्वर आईपी को बिजनेस ए रिकॉर्ड में न लिखें
त्रुटि:
api.partner.example.com
A → 10.20.10.10
10.20.10.10 एक DNS सर्वर है, API सर्वर नहीं।
सही:
api.partner.example.com
A Alias → execute-api VPC Endpoint
4. टीटीएल और कैशिंग
प्राइवेट होस्टेड ज़ोन रिकॉर्ड में बदलाव के बाद, बाहरी कॉर्पोरेट डीएनएस और क्लाइंट कैश का उपयोग करना जारी रख सकते हैं।
परीक्षण करते समय आप यह कर सकते हैं:
dig api.partner.example.com
टीटीएल का निरीक्षण करें और सफाई करें:
- विंडोज़ डीएनएस कैश.
- लिनक्स
systemd-resolvedकैश। - जावा जेवीएम डीएनएस कैश।
- एंटरप्राइज़ DNS कैशिंग।
19. उच्च उपलब्धता डिज़ाइन
Direct Connect
उत्पादन परिवेश के लिए, कम से कम इस पर विचार करें:
DX Connection A
DX Connection B
विभिन्न उपकरण
सर्वश्रेष्ठ भिन्न डीएक्स स्थान
और तैयार करें:
Site-to-Site VPN Backup
सक्रिय और स्टैंडबाय को नियंत्रित करने के लिए बीजीपी विशेषताओं का उपयोग करें।
Resolver Inbound Endpoint
कम से कम दो AZ:
10.20.10.10
10.20.20.10
बाहरी DNS को एक ही समय में दो फ़ॉरवर्डर्स के साथ कॉन्फ़िगर किया गया है।
प्रत्येक रिज़ॉल्वर एंडपॉइंट आईपी बड़ी संख्या में प्रश्नों को संभाल सकता है; वर्तमान AWS दस्तावेज़ में कहा गया है कि परिस्थितियाँ उपयुक्त होने पर एक एकल IP लगभग 10,000 UDP DNS QPS को संभाल सकता है, लेकिन वास्तविक क्षमता क्वेरी आकार, प्रोटोकॉल, प्रतिक्रिया विलंबता और सुरक्षा समूह कनेक्शन ट्रैकिंग से प्रभावित होती है।
Interface VPC Endpoint
कम से कम दो AZ:
Endpoint ENI A
Endpoint ENI C
रूट 53 उपनाम संबंधित समापन बिंदु पता लौटाएगा।
AWS यह भी स्पष्ट रूप से अनुशंसा करता है कि निजी कस्टम डोमेन कम से कम दो उपलब्धता क्षेत्रों में VPC एंडपॉइंट का उपयोग करें।
API Gateway
एपीआई गेटवे स्वयं एक क्षेत्रीय होस्टिंग सेवा है और इसे EC2-शैली सक्रिय और स्टैंडबाय इंस्टेंसेस की तैनाती की आवश्यकता नहीं है। हालाँकि, बैकएंड पर अभी भी अलग से विचार करने की आवश्यकता है:
- लैम्ब्डा समवर्ती.
- VPC Link。
- ALB/NLB में एकाधिक AZ हैं।
- डेटाबेस में एकाधिक AZ हैं।
- क्रॉस-रीजन आपदा पुनर्प्राप्ति.
20. निगरानी और लॉगिंग
कम से कम निम्नलिखित आइटम को सक्षम करने की अनुशंसा की जाती है।
Direct Connect
मॉनिटर:
ConnectionState
VirtualInterfaceBpsIngress
VirtualInterfaceBpsEgress
VirtualInterfacePpsIngress
VirtualInterfacePpsEgress
बीजीपी स्थिति
और यह पुष्टि करने के लिए बीजीपी फ़ेलओवर टेस्ट निष्पादित करें कि बैकअप लिंक वास्तव में कार्यभार संभाल सकता है। AWS रिज़िलिएंसी टूलकिट BGP सत्र को अस्थायी रूप से बंद करके अनावश्यक मार्गों को सत्यापित करने का समर्थन करता है।
Route 53 Resolver
सक्षम करें:
Resolver Query Logging
CloudWatch Resolver Endpoint Metrics
लॉग को क्वेरी करने से पुष्टि करने में मदद मिल सकती है:
- क्या डोमेन नाम क्वेरी प्राप्त हुई है.
- क्वेरी किस VPC से आती है.
- क्वेरी प्रकार.
- परिणाम लौटाएँ.
यह ध्यान दिया जाना चाहिए कि रिज़ॉल्वर कैश द्वारा दोहराई गई क्वेरीज़ आमतौर पर प्रत्येक स्वतंत्र क्वेरी के रूप में क्वेरी लॉग में दिखाई नहीं देती हैं।
VPC
सक्षम करें:
VPC Flow Logs
मुख्य विशेषताएं:
- Resolver Endpoint ENI。
- execute-api Endpoint ENI。
- टीजीडब्ल्यू संबंधित यातायात।
- ACCEPT/REJECT。
- स्रोत आईपी, गंतव्य आईपी, पोर्ट।
API Gateway
सक्षम करें:
Access Logs
Execution Logs
Detailed Metrics
एडब्ल्यूएस एक्स-रे, मांग पर
यह अनुशंसा की जाती है कि एक्सेस लॉग में कम से कम शामिल हों:
$requestId
$context.identity.sourceIp
$context.domainName
$context.httpMethod
$context.resourcePath
$context.status
$context.responseLength
$context.integrationErrorMessage
21. मानक परीक्षण क्रम
प्रारंभ में केवल curl न चलाएं, परत दर परत परीक्षण करें।
चरण 1: बीजीपी और रूटिंग की जाँच करें
बाहरी राउटर पुष्टि करता है कि उसने सीखा है:
10.20.0.0/16
AWS पक्ष पुष्टि करता है कि उसने सीखा है:
172.20.0.0/16
चरण 2: रिज़ॉल्वर एंडपॉइंट का सीधे परीक्षण करें
dig @10.20.10.10 api.partner.example.com A
dig @10.20.20.10 api.partner.example.com A
चरण 3: किसी बाहरी कंपनी द्वारा औपचारिक DNS परीक्षण पास करें
dig api.partner.example.com A
एंडपॉइंट निजी आईपी वापस किया जाना चाहिए।
चरण 4: टीसीपी 443 का परीक्षण करें
nc -vz api.partner.example.com 443
या:
telnet api.partner.example.com 443
चरण पाँच: टीएलएस प्रमाणपत्र की जाँच करें
openssl s_client \
-connect api.partner.example.com:443 \
-servername api.partner.example.com
जांचें:
Subject Alternative Name
Issuer
Validity
TLS version
Certificate chain
चरण 6: स्वास्थ्य जांच को कॉल करें
curl -v https://api.partner.example.com/v1/health
चरण 7: प्रमाणीकरण के साथ कॉल करें
जेडब्ल्यूटी उदाहरण:
curl -v \
-H "Authorization: Bearer ${TOKEN}" \
https://api.partner.example.com/v1/orders
SigV4 परिदृश्य SDK, AWS CLI या संबंधित हस्ताक्षर लाइब्रेरी का उपयोग कर सकते हैं जो हस्ताक्षर का समर्थन करता है।
22. सामान्य दोष और निर्णय विधियाँ
1. डीएनएस अनुरोध समयबाह्य
प्रदर्शन:
खुदाई का समय समाप्त
प्राथमिकता जांच:
बाहरी डीएनएस से रिज़ॉल्वर आईपी रूटिंग
टीजीडब्ल्यू रूटिंग
वीपीसी सबनेट रूटिंग
Resolver SG UDP/TCP 53
बाहरी फ़ायरवॉल
NACL
2. DNS NXDOMAIN लौटाता है
इसका मतलब है कि नेटवर्क और डीएनएस सर्वर कनेक्ट हो सकते हैं, लेकिन रिकॉर्ड लेयर में कोई समस्या है।
जांचें:
निजी होस्टेड ज़ोन का नाम
एक उपनाम रिकॉर्ड
होस्टेड ज़ोन वीपीसी से संबद्ध है
क्या FQDN से पूछा गया प्रश्न सही है?
क्या कोई अधिक विशिष्ट संघर्ष होस्ट किया गया क्षेत्र है?
3. डोमेन नाम का समाधान किया जा सकता है, लेकिन टीसीपी 443 बार समाप्त हो जाती है।
जांचें:
execute-api Endpoint SG
एंडपॉइंट ईएनआई के लिए बाहरी रूटिंग
NACL
टीजीडब्ल्यू बैकहॉल रूटिंग
बाहरी फ़ायरवॉल
4. टीएलएस प्रमाणपत्र नाम बेमेल
उदाहरण के लिए प्रमाणपत्र है:
*.example.com
लेकिन डोमेन नाम है:
api.partner.example.com
*.example.com केवल एक परत को कवर करता है:
api.example.com
आमतौर पर कवर नहीं किया जाता:
api.partner.example.com
उपयोग किया जाना चाहिए:
*.partner.example.com
या सटीक प्रमाणपत्र:
api.partner.example.com
5. वापसी 403 निषिद्ध
आदेश जांचें:
क्या डोमेन नाम एक्सेस एसोसिएशन उपलब्ध है?
Domain Resource Policy
API Resource Policy
VPC Endpoint Policy
विधि प्राधिकरण
जेडब्ल्यूटी/आईएएम हस्ताक्षर
API Key/Usage Plan
6. गुम प्रमाणीकरण टोकन वापस करें
सामान्य कारण:
आधार पथ त्रुटि
स्टेज मैपिंग त्रुटि
HTTP विधि त्रुटि
संसाधन पथ मौजूद नहीं है
एपीआई पुनः तैनात नहीं किया गया
उदाहरण के लिए वास्तविक मानचित्रण:
/v1 → prod
सही:
https://api.partner.example.com/v1/orders
त्रुटि:
https://api.partner.example.com/prod/orders
7. डिफ़ॉल्ट एक्ज़ीक्यूट-एपीआई यूआरएल तक पहुंचा जा सकता है, लेकिन कस्टम डोमेन तक नहीं
जांचने योग्य मुख्य बिंदु:
एसीएम प्रमाणपत्र
निजी डोमेन स्थिति
Domain Resource Policy
Domain Access Association
API Mapping
Route 53 Alias
Host/SNI
8. इसे वीपीसी के भीतर एक्सेस किया जा सकता है, लेकिन बाहरी कंपनियों द्वारा नहीं।
आमतौर पर कहा गया है:
एपीआई गेटवे कॉन्फ़िगरेशन मूलतः सही है
समस्या डीएक्स रूटिंग, एंडपॉइंट एसजी या बाहरी डीएनएस पर केंद्रित है
9. छोटे अनुरोध सामान्य हैं, लेकिन बड़े अनुरोध विफल हो जाते हैं।
जांचें:
MTU
PMTUD
ICMP Fragmentation Needed
मध्यवर्ती फ़ायरवॉल
Jumbo Frame
23. दस सबसे आसानी से छूटी हुई जगहें
- Direct Connect ट्रैफ़िक अपने-आप एन्क्रिप्ट नहीं होता है।
- DNS और HTTPS दो अलग-अलग नेटवर्क पथों का उपयोग करते हैं।
- Resolver Endpoint पर UDP और TCP, दोनों के लिए पोर्ट 53 खोलना आवश्यक है।
- Private Hosted Zone को उस VPC से संबद्ध होना चाहिए जिसमें Resolver मौजूद है।
- Alias का लक्ष्य Resolver नहीं, बल्कि execute-api VPC Endpoint होना चाहिए।
- execute-api Endpoint के सुरक्षा समूह में बाहरी कंपनी के स्रोत नेटवर्क से TCP 443 की अनुमति होनी चाहिए।
- Private Domain Policy और Private API Policy दो अलग-अलग नीतियाँ हैं।
- Domain Name Access Association बनाना आवश्यक है।
- API के Endpoint association या संसाधन बदलने के बाद API को दोबारा deploy करना आवश्यक है।
- ACM सार्वजनिक प्रमाणपत्र का DNS validation record सार्वजनिक DNS से उपलब्ध होना चाहिए; उसे केवल Private Hosted Zone में नहीं रखा जा सकता।
24. अनुशंसित अंतिम उत्पादन विन्यास
औपचारिक B2B सिस्टम के लिए निम्नलिखित कॉन्फ़िगरेशन की अनुशंसा की जाती है:
दो सीधे कनेक्ट
+ वीपीएन बैकअप लिंक
Transit VIF
+ Direct Connect Gateway
+ Transit Gateway
स्टैंडअलोन साझा सेवाएँ वीपीसी
दो AZs का रिज़ॉल्वर इनबाउंड एंडपॉइंट
+ केवल आधिकारिक DNS सर्वर UDP/TCP 53 को अनुमति दें
दो AZ का निष्पादन-एपीआई इंटरफ़ेस समापन बिंदु
+ केवल बाहरी व्यापार नेटवर्क खंड टीसीपी 443 की अनुमति दें
समर्पित निजी उपडोमेन
api.partner.example.com
Private Custom Domain
+ एसीएम प्रमाणपत्र
+ Domain Access Association
Private Domain Policy
+ API Resource Policy
+ Endpoint Policy
सभी प्रतिबंध aws:SourceVpce
JWT या IAM SigV4 प्रमाणीकरण
+ API Gateway Access Logs
+ Resolver Query Logs
+ VPC Flow Logs
+ डीएक्स क्लाउडवॉच अलर्ट
अंतिम लिंक को इस प्रकार संक्षेप में प्रस्तुत किया जा सकता है:
DNS:
बाहरी डीएनएस
→ Direct Connect
→ Resolver Inbound Endpoint
→ Private Hosted Zone
→ वीपीसी एंडपॉइंट निजी आईपी पर लौटें
HTTPS:
बाह्य व्यापार प्रणाली
→ Direct Connect
→ execute-api Interface Endpoint
→ Private Custom Domain
→ API Mapping
→ Private REST API
→ बैकएंड सेवाएँ