आपकी APIs की सुरक्षा

AWS पर एप्लिकेशन विकसित करना

Ricardo Sueiras

Principal Technologist

AWS पर APIs की सुरक्षा

 

api सुरक्षित करना

  • क्लाउड-नेटिव ऐप्स के लिए APIs की सुरक्षा अहम है.
  • ये संवेदनशील बिजनेस फंक्शनलिटी उजागर करती हैं.
  • अक्सर बैक-एंड सिस्टम्स का पब्लिक एंट्री पॉइंट होती हैं.
  • API Gateway आपको APIs सुरक्षित रूप से एक्सपोज़ करने में मदद करता है.
AWS पर एप्लिकेशन विकसित करना

Authorization और authentication

 

प्रमाणीकरण और प्राधिकरण

  • दो मुख्य अवधारणाएँ:
  • Authentication: आप कौन हैं.
  • Authorization: आप क्या कर सकते हैं.
AWS पर एप्लिकेशन विकसित करना

IAM authorization

 

iam

  • API Gateway authentication और authorization के लिए IAM का उपयोग कर सकता है.
  • SigV4 (Signature Version 4) से APIs सुरक्षित होती हैं.
  • क्लाइंट हर रिक्वेस्ट को साइन करता है.
  • प्रोसेसिंग से पहले API Gateway सिग्नेचर वैलिडेट करता है.
  • फिर IAM पॉलिसीज़ तय करती हैं कि हर identity क्या इनवोक कर सकती है.
  • AWS service-to-service कम्युनिकेशन के लिए सर्वश्रेष्ठ.
AWS पर एप्लिकेशन विकसित करना

Amazon Cognito authorizers

  • Cognito यूज़र्स को JSON Web Tokens (JWTs) से authenticate करता है.
  • आम उपयोग: मोबाइल ऐप्स, वेब ऐप्स, साइन-इन फ्लो.
  • फेडरेटेड identities सपोर्ट करता है.
  • Google, Apple, और Facebook जैसे एक्सटर्नल प्रोवाइडर्स के साथ काम करता है.
  • एंटरप्राइज़ प्रोवाइडर्स via SAML या OIDC.
  • JWTs को नैटिवली वैलिडेट करता है, कस्टम authorizer कोड नहीं चाहिए.

 

cognito authorizers

AWS पर एप्लिकेशन विकसित करना

Lambda authorizers

  • एक Lambda फंक्शन आपका कस्टम authorization लॉजिक चलाता है.
  • यह एक्सेस allow/deny करने वाली IAM पॉलिसी लौटाता है.
  • कस्टम टोकन्स वैलिडेट करें.
  • एक्सटर्नल identity प्रोवाइडर्स से इंटीग्रेट करें.
  • अपनी कस्टम रूल्स लागू करें.

 

lambda authorizer

AWS पर एप्लिकेशन विकसित करना

Lambda authorizers

  • उदाहरण: Auth0 जैसे प्रोवाइडर से JWT वैलिडेट करें.
  • रिक्वेस्ट आती है और API Gateway authorizer को इनवोक करता है.
  • फंक्शन टोकन वैलिडेट कर IAM पॉलिसी लौटाता है.
  • पॉलिसी एक्सेस तय करती है: allow या deny.
  • allow होने पर रिक्वेस्ट बैक-एंड को फॉरवर्ड होती है.
  • deny होने पर API Gateway तुरंत 401 देता है.

 

lambda authorizer

AWS पर एप्लिकेशन विकसित करना

कौन सा authorizer

 

कौन सा authorizer चुनें

  • यूज़र-फेसिंग ऐप्स के लिए Cognito चुनें.
  • यह managed sign-up, sign-in, और token validation देता है.
  • कस्टम कोड की ज़रूरत नहीं.
  • कस्टम लॉजिक चाहिए तो Lambda चुनें.
  • थर्ड-पार्टी identity प्रोवाइडर्स के लिए अच्छा.
  • या ऐसे रूल्स जो Cognito से आगे हों.
AWS पर एप्लिकेशन विकसित करना

Authorizer caching

 

authz कैशिंग

  • Authorizer रिस्पॉन्सेस कैश होते हैं.
  • इससे बार-बार हिट होने वाले एंडपॉइंट्स पर latency और लागत घटती है.
  • Cache TTL कॉन्फ़िगर किया जा सकता है.
  • 0 से 3600 सेकंड तक.
  • डिफ़ॉल्ट 300 सेकंड है.
  • TTL को 0 करने पर कैशिंग बंद हो जाती है.
AWS पर एप्लिकेशन विकसित करना

API Gateway resource policies

 

रिसोर्स पॉलिसीज़

  • पॉलिसीज़ परिभाषित करें कि API को कौन एक्सेस कर सकता है.
  • AWS अकाउंट द्वारा प्रतिबंधित करें.
  • IP एड्रेस रेंज द्वारा प्रतिबंधित करें.
  • VPC द्वारा प्रतिबंधित करें.
  • इंटरनल APIs लॉकडाउन करने और एक्सपोज़र घटाने में मदद.
AWS पर एप्लिकेशन विकसित करना

एन्क्रिप्शन

  • API Gateway डिफ़ॉल्ट रूप से TLS के साथ HTTPS एंडपॉइंट्स सपोर्ट करता है.
  • HTTPS क्लाइंट और गेटवे के बीच ट्रांज़िट में डेटा एन्क्रिप्ट करता है.
  • AWS Certificate Manager (ACM) से इंटीग्रेट करता है.
  • ACM कस्टम डोमेन्स के लिए सर्टिफिकेट प्रबंधन सरल करता है.
  • कस्टम डोमेन सर्टिफिकेट्स फ्री हैं.
  • APIs को कभी भी अनएन्क्रिप्टेड HTTP पर एक्सपोज़ न करें.

 

एन्क्रिप्शन

AWS पर एप्लिकेशन विकसित करना

Mutual TLS (mTLS)

 

  • API Gateway mutual TLS (mTLS) सपोर्ट करता है.
  • सर्टिफिकेट्स से क्लाइंट्स को authenticate करता है.
  • कॉन्फ़िगर्ड डोमेन नाम आवश्यक.
  • मशीन-टू-मशीन कम्युनिकेशन में प्रचलित.
  • दोनों पक्ष एक-दूसरे की पहचान वेरिफ़ाई करते हैं.

 

mTLS

AWS पर एप्लिकेशन विकसित करना

API throttling और rate limiting

  • Throttling बैक-एंड सिस्टम्स को प्रोटेक्ट करता है.
  • यह API की विश्वसनीयता बढ़ाता है.
  • इसके बिना बैक-एंड सर्विसेज़ ओवरलोड हो सकती हैं.
  • Rate limits प्रति सेकंड स्थिर रिक्वेस्ट्स नियंत्रित करते हैं.
  • Burst limits अस्थायी ट्रैफिक स्पाइक्स की अनुमति देते हैं.
  • लिमिट पार होने पर 429 Too Many Requests मिलता है.

 

थ्रॉटलिंग

AWS पर एप्लिकेशन विकसित करना

सामान्य एक्सप्लॉइट्स से सुरक्षा

 

waf

  • API Gateway से AWS WAF अटैच करें.
  • यह आपकी API तक पहुँचने से पहले malicious रिक्वेस्ट्स ब्लॉक करता है.
  • SQL injection प्रयास रोकता है.
  • Cross-site scripting (XSS) रोकता है.
  • ज्ञात malicious IP रेंज से ट्रैफिक ब्लॉक करता है.
AWS पर एप्लिकेशन विकसित करना

Usage plans और API keys

 

उपयोग योजनाएँ

  • क्लाइंट्स आपकी APIs कैसे उपयोग करें, नियंत्रित करें.
  • रिक्वेस्ट कोटा कॉन्फ़िगर करें.
  • Rate limits परिभाषित करें.
  • सब्सक्रिप्शन टियर्स सेट करें.
  • प्रति-क्लाइंट खपत सीमाएँ असाइन करें.
AWS पर एप्लिकेशन विकसित करना

Cross-Origin Resource Sharing (CORS)

 

CORS

  • CORS ब्राउज़र्स को cross-origin API रिक्वेस्ट्स करने देता है.
  • इसके बिना वैध ब्राउज़र रिक्वेस्ट्स ब्लॉक हो सकती हैं.
  • बहुत अधिक permissive CORS सुरक्षा जोखिम है.
  • प्रोडक्शन में Access-Control-Allow-Origin: * से बचें.
  • हमेशा CORS को trusted origins तक सीमित रखें.
AWS पर एप्लिकेशन विकसित करना

CORS हैडर्स और प्रीफ़्लाइट रिक्वेस्ट्स

  • वास्तविक रिक्वेस्ट से पहले एक प्रीफ़्लाइट OPTIONS रिक्वेस्ट चलता है.
  • यह कन्फर्म करता है कि API cross-origin एक्सेस की अनुमति देता है.
  • API Gateway ज़रूरी CORS रिस्पॉन्स हैडर्स जोड़ता है.
  • Non-Proxy इंटीग्रेशन्स में इन्हें ऑटोमैटिक हैंडल करता है.
  • Proxy इंटीग्रेशन्स में आपका Lambda CORS हैडर्स लौटाए.
  • आपका Lambda प्रीफ़्लाइट OPTIONS भी हैंडल करे.

 

CORS हैडर्स

AWS पर एप्लिकेशन विकसित करना

अभ्यास करते हैं!

AWS पर एप्लिकेशन विकसित करना

Preparing Video For Download...