నెట్‌ఫ్లిక్స్ కోసం భద్రతా అనుమతి శాస్త్రం

Jul 29, 2024

నెట్‌ఫ్లిక్స్‌లో అనుమతి

ప్రదాతలు

  • మనిష్ మెహతా: నెట్‌ఫ్లిక్స్‌లో భద్రతా ఇంజనీర్, సురక్షిత బూట్‌స్ట్రాపింగ్, PKI, రహస్యాల నిర్వహణ, అనుమతి మరియు అధికారంలో నిష్ణాతులు.
  • టోరిన్ సాండల్: ఓపెన్ పాలసీ ఏజెంట్ (OPA) ప్రాజెక్ట్ యొక్క టెక్ లీడ్, కుబేర్నెట్స్ మరియు ఇస్టియోకు కాంట్రిబ్యూటర్.

ముఖ్య కాన్సెప్ట్‌లు

నిర్వచనాలు

  • దృఢీకరణ (AuthN): అభ్యర్ధకుడి గుర్తింపును ధృవీకరించడం. ఉదాహరణ: ఒక బ్యాంక్ $1,000 బదిలీని అభ్యర్థిస్తున్నది ఎవరో ధృవీకరించడం.
  • అధికారం (AuthZ): ధృవీకరించిన గుర్తింపు అభ్యర్థించిన చర్యను చేయడానికి అనుమతి కలిగి ఉందో లేదో ధృవీకరించడం.

AuthN మరియు AuthZ ను వేరుచేయడం

  • ఈ రెండు ప్రక్రియలు విశాలంగా ఉండతగు ఒకే వ్యవస్థలో బంధించబద్రతా అవసరం లేదు.

నెట్‌ఫ్లిక్స్ ఆర్కిటెక్షర్ విజ్ఞానపరంగా

  • అధిక-స్థాయి వీక్షణ: కస్టమర్లతో, బ్యాకెండ్‌తో, క్లౌడ్ ప్రొవైడర్‌ల (AWS వంటి) మరియు CDN తో సరళీకరించిన ఆర్కిటెక్చర్.
  • కేంద్రం: బ్యాకెండ్ ఆప్లికేషన్లను (API గేట్వేలు, వ్యక్తిగతీకరణ, ఖాతా నిర్వహణ ఇలా) నియంత్రిస్తుంది.

సేవ పరస్పర చర్యల సవాళ్లు

  • నియంత్రణ సైంధి మీద ఉన్న అప్లికేషన్లు (ఉదాహరణ: REST, gRPC సేవలు) సమర్ధవంతంగా పరస్పరం సంభాషించాలి.
  • ముఖ్య విశ్లేషణలు:
    • నెట్వర్క్ రీచబిలిటీ vs. అతికారం: నెట్వర్క్ రీచబిలిటీ అధికారం కాదు. REST ఎండ్‌పాయింట్లపై మరింత చిన్న నియంత్రణ అవసరం.
    • విభిన్న ప్రోటోకాల్‌లు: విభిన్న ప్రోటోకాల్‌లు (REST, gRPC, ప్రత్యేక ప్రోటోకాల్‌లు) అనువైన పరిష్కారాలను అవసరం.

సమస్య నిర్వచనం

  • కాంబినేషన్‌ల ఆధారంగా నియంత్రణలను నిర్వచించడానికి మరియు అమలు చేయడానికి ఏకైక విధానం అవసరం:
    • I: గుర్తింపు
    • O: ఆపరేషన్
    • R: వనరు
  • అనేక పరిష్కారాలను నాలుకుతున్న జ్ఞానపరంగా మరియు నియంత్రణ లేకుండా చేయడానికి.

పరిష్కారం కోసం కీలక అవసరాలు

  1. కంపెనీ సంస్కృతి అనుకున్నం: ఇంజనీర్లు మరియు టీమ్‌లు స్వీయ-సేవలను (స్వతంత్య్రం మరియు బాధ్యత) పొందడానికి అనుమతించాలి.
  2. వనరు రకాలు మద్దతు: వివిధ వనరు రకాలను అనుమతించండి, API వనరులు కాకుండా కూడా (ఉదాహరణ: SSH).
  3. విభిన్న గుర్తింపులు: ఉద్యోగులు, కాంట్రాక్టర్లు, మరియు సాఫ్ట్‌వేర్ సేవలను వారికి సంబంధించిన భావ్యులను మద్దతుతో ఉంచాలి.
  4. ప్రోటోకాల్ స్వతంత్య్రం: అనేక ప్రాథమిక ప్రోటోకాల్‌లను (ఉదాహరణ HTTP, gRPC) ప్రతిధ్వనించే సామర్థ్యం.
  5. నియంత్రణ యొక్క సౌలభ్యత: కొత్త వినియోగాల మరియు ఫార్మాట్‌ల కు అనుకూలంగా ఉండాలి.
  6. పనితీరు (లేటెన్సీ): నిర్ణయాలు సబ్-మిల్లీసెకండ్ టైమ్ ఫ్రేమ్‌లో చేయాలి, అదుపు సులువుగా లేటెన్సీ తగినట్టు ముఖ్యం.
  7. ఉద్దేశ్యాన్ని పట్టుకోవడం: యూజర్లు తమ ఉద్దేశ్యం నుండి వేరుపడే విధానాలను తప్పుగా రాయకుండా చేయండి.

అనుమతి కోసం ఆర్కిటెక్చర్ విజ్ఞానపరంగా

  • భాగాలు:
    • పాలసీ పోర్టల్: ఇంజనీర్లు విధానాలని రాసే UI, వెర్షన్లను నిర్వహించడం, మరియు అవసరమైతే నియంత్రణలను తప్పింపు పరచడం.
    • అగ్రిగేటర్: విధానాలను ప్రభావితం చేసే వివిధ మూలాల నుండి సమాచారాన్ని సేకరిస్తుంది (ఉదాహరణ: యజమాని డేటాబేస్‌లు).
    • డిస్ట్రిబ్యూటర్: ఏజెంట్లకు విధానాలను పంపిణి చేస్తుంది, లేటెన్సీ లేకుండా మెమరీలో సమాచారాన్ని తాజాగా ఉంచడం.
  • అనుమతి ఏజెంట్లు: వేగవంతమైన నిర్ణయాన్ని ఐచారంగా చేయడానికి అప్లికేషన్ల పక్కన ఉండవలె (హాట్ పాథ్) మరియు డిస్ట్రిబ్యూటర్ల నుండి ధారావాహికంగా అప్‌డేట్ చేయడం (స్లో పాథ్).

ఉదాహరణ: పేరోల్ సిస్టమ్

  • REST API తో జీతం పొందండి మరియు జీతం నవీకరించండి ఎండ్‌పాయింట్లతో ఉంచు:
    • ఉద్యోగి-మేనేజర్ సంబంధాలు మరియు ఉద్యోగభాధితుల పై ఆధారపడి జీతం చదవడానికి విధానాలు.

ఓపెన్ పాలసీ ఏజంట్ (OPA)

  • సాధారణ-ప్రయోజన విధానం ఇంజన్: గోలో అమలు చేయబడింది, తేలికగా, సంయుక్తతావోఖ్యం లేకుండా రన్‌టైమ్ ఇంటిగ్రేషన్ కోసం డిజైన్ చేయబడింది.
  • రేగో భాష: విధానాలను రాయడానికి డిక్లరేటివ్ భాష, డేటా మరియు లాజిక్ పైన దృష్టిపెట్టడం.
  • పనితీరు మీట్రిక్స్: డేటా సెట్‌లు వృద్ధిచెందినప్పుడు కూడా లేటెన్సీ స్థిరంగా ఉంది.

OPA యొక్క అదనపు ఫీచర్లు

  • విధాన సమాహారతలు లాజిక్‌ని మరింత నియంత్రణలకు దోహదం చేసుకోవడంలో సహాయపడుతుంది.
  • వనరు స్వతంత్య్రం, అంటే ఏకైక డొమైన్ లేదా సాంకేతికతకు నిర్దిష్టంగా ఉండదు.
  • సమూహంను మరియు ఎకోసిస్టమ్: OPA మొదటి నుండి కుబేర్నెట్స్ వంటి ప్లాట్ఫారమ్‌లకు ప్రీ బిల్డ్ ఇంటిగ్రేషన్లు కలిగి ఉంది మరియు బలమైన కమ్యూనిటీ మద్దతు.

స్వీయ-సేవ UI మరియు టెస్టింగ్

  • ఇంజనీర్లు పద్ధతులను సులభంగా సృష్టించడానికి UI ని వికసింపజేసాము, మరియు వారి ఉద్దేశాలను సమర్ధవంతంగా పట్టుకోవడంతో అధిక నియంత్రణలను రాయకుండా నిరోధిస్తుంది.
  • ఇన్‌బిల్ట్ యూనిట్ టెస్టింగ్: విధానాలపై టెస్టులు ప్రవేశపెట్టడం, ములుపు చేయడానికి మరియు పుగాకులు తర్వాత అప్‌డేట్‌లు నిరోధిస్తుంది.

తేలిక

  • అనుమతి ఒక ముఖ్య భద్రతా సవాలు, మేఘ వాతావరణాలు డైనమిక్స్ మార్చుతున్నాయి.
  • ఏకీకృత పరిష్కారం యొక్క లక్ష్యం, అనేక విభాగాలు ఉండకుండా జ్ఞానపరంగా మరియు నియంత్రణను నిర్ధారణ చేయాలని.
  • కమ్యూనిటీ పాల్గొనడం: OPA వంటి ఓపెన్-సోర్స్ ప్రాజెక్టులను పరిశీలించడం, మరియు మాట్లాడుతూ తగిన మద్దతు కోసం ఇతరులతో కలిసి పనిచేయడం.