אבטחת מיקרו-שירותים כיצד לאבטח את תשתית המיקרו-שירות שלך?



מאמר זה בנושא Microservices Security ידון בכמה מהשיטות המומלצות לאבטחת מיקרו-שירותים באופן מפורט.

בשוק של ימינו בו תעשיות משתמשות בארכיטקטורות תוכנה ויישומים שונים, כמעט בלתי אפשרי להרגיש את זה, הנתונים שלך מאובטחים לחלוטין. לכן, תוך כדי בניית יישומים באמצעות נושאי האבטחה הופכים להיות משמעותיים יותר מכיוון ששירותים אישיים מתקשרים זה עם זה עם הלקוח. לכן, במאמר זה בנושא אבטחת מיקרו-שירותים, אדון בדרכים השונות בהן תוכלו ליישם את אבטחת המיקרו-שירותים ברצף הבא.

מהם מיקרו-שירותים?

שירותי מיקרו, aka אדריכלות מיקרו-שירותים , הוא סגנון אדריכלי שמבנה יישום כאוסף של שירותים אוטונומיים קטנים, המעוצבים סביב א תחום עסקי. אז אתה יכול להבין את שירותי המיקרו כשירותים קטנים בודדים שמתקשרים ביניהם סביב ההיגיון העסקי היחיד. אם ברצונך לדעת יותר על מיקרו-שירותים לעומק, תוכל לעשות זאת





מה הם שירותים מיקרו - אבטחת מיקרוסרוויס - אדוריקה

מהי ירושה מרובה בג'אווה

כעת, לעתים קרובות כאשר חברות עוברות מארכיטקטורה מונוליטית למיקרו-שירותים, הן רואות יתרונות רבים כמו מדרגיות, גמישות ומחזורי פיתוח קצרים. אך יחד עם זאת ארכיטקטורה זו מציגה גם כמה בעיות מורכבות.



אז, בהמשך מאמר זה בנושא אבטחת מיקרו-שירותים, הבה נבין את הבעיות העומדות בפני ארכיטקטורת מיקרו-שירותים.

בעיות במיקרו-שירותים

הבעיות העומדות בפני מיקרו שירותים הן כדלקמן:

בעיה 1:

שקול תרחיש, שבו משתמש צריך להתחבר כדי לגשת למשאב. כעת, בארכיטקטורת המיקרו-שירותים, יש לשמור את פרטי הכניסה למשתמש באופן כזה, שהמשתמש לא מתבקש לאמת בכל פעם שהוא / היא מנסה לגשת למשאב. עכשיו זה יוצר בעיה מכיוון שפרטי המשתמש עשויים שלא להיות מאובטחים וניתן לגשת אליהם על ידי 3מחקר ופיתוחמפלגה.



בעיה 2:

כאשר לקוח שולח בקשה, יש לאמת את פרטי הלקוח ולבדוק את ההרשאות שניתנו ללקוח. לכן, כאשר אתה משתמש במיקרו-שירותים, זה יכול לקרות שלכל שירות ושירות אתה צריך לאמת ולהסמיך את הלקוח. כעת, לשם כך, מפתחים עשויים להשתמש באותו קוד עבור כל שירות ושירות. אבל, אתה לא חושב שהסתמכות על קוד ספציפי מפחיתה את הגמישות של שירותי המיקרו? ובכן, זה בהחלט כן. אז זו אחת הבעיות העיקריות שמתמודדות לעתים קרובות בארכיטקטורה זו.

בעיה 3:

הבעיה הבאה הבולטת מאוד היא האבטחה של כל מיקרו-שירות בנפרד. בארכיטקטורה זו כל שירותי המיקרו מתקשרים זה עם זה בו זמנית בנוסף ל -3מחקר ופיתוחיישומי צד. לכן, כאשר לקוח מתחבר מ -3מחקר ופיתוחיישום צד, עליכם לוודא שהלקוח לא יקבל גישה לנתונים של שירותי המיקרו, באופן שהוא / היא עשוי לנצל אותם.

בסדר, הבעיות הנ'ל אינן הבעיות היחידות שנמצאות בארכיטקטורת מיקרו-שירותים. הייתי אומר, אתה יכול להתמודד עם בעיות רבות אחרות הקשורות לאבטחה על סמך היישום והארכיטקטורה שיש לך. בהערה זו, הבה נתקדם במאמר זה בנושא אבטחת מיקרו-שירותים ונדע את הדרך הטובה ביותר לצמצם את האתגרים.

שיטות עבודה מומלצות לאבטחת מיקרו-שירותים

השיטות המומלצות לשיפור האבטחה במיקרו-שירותים הן כדלקמן:

הגנה במנגנון עומק

מאחר וידוע שמיקרו-שירותים מאמצים כל מנגנון ברמה המפורטת, אתה יכול ליישם את מנגנון ההגנה בעומק כדי להבטיח את השירותים יותר. במונחים של הדיוט, מנגנון ההגנה בעומק הוא בעצם טכניקה שבאמצעותה ניתן ליישם שכבות של אמצעי נגד אבטחה כדי להגן על השירותים הרגישים. לכן, כמפתחים, אתה רק צריך לזהות את השירותים עם המידע הרגיש ביותר ואז להחיל מספר שכבות אבטחה כדי להגן עליהם. באופן זה, תוכלו לוודא כי כל תוקף פוטנציאלי אינו יכול לפצח את האבטחה בבת אחת, ועליכם להתקדם ולנסות לפצח את מנגנון ההגנה של כל השכבות.

כמו כן, מכיוון שבארכיטקטורה של שירותי מיקרו-שירות תוכלו ליישם שכבות אבטחה שונות בשירותים שונים, תוקף, שמצליח לנצל שירות מסוים, לא יוכל לפצח את מנגנון ההגנה של השירותים האחרים.

אסימונים ו- Gateway API

לעיתים קרובות, כשאתה פותח יישום, תראה תיבת דו-שיח שאומרת 'קבל את הסכם הרישיון ואת ההרשאה לעוגיות'. מה מסר הודעה זו? ובכן, לאחר שתקבל זאת, אישורי המשתמש שלך יאוחסנו וייווצר מושב. כעת, בפעם הבאה שתעבור לאותו עמוד, העמוד יוטען מזיכרון המטמון ולא מהשרתים עצמו. לפני שהקונספט הזה נכנס לתמונה, הפעלות אוחסנו בצד השרת באופן מרכזי. אבל, זה היה אחד החסמים הגדולים ביותר בקנה מידה אופקי, היישום.

אסימונים

לכן, הפתרון לבעיה זו הוא שימוש באסימונים, כדי להקליט את אישורי המשתמש. אסימונים אלה משמשים לזיהוי המשתמש בקלות ומאוחסנים בצורת עוגיות. כעת, בכל פעם שלקוח מבקש דף אינטרנט, הבקשה מועברת לשרת ואז השרת קובע אם למשתמש יש גישה למשאב המבוקש או לא.

כעת, הבעיה העיקרית היא אסימונים שבהם מאוחסן פרטי המשתמש. לכן, הנתונים של האסימונים צריכים להיות מוצפנים כדי למנוע ניצול מ -3מחקר ופיתוחמשאבי צד. פורמט האינטרנט של ג'ייסון או המכונה לרוב JWT הוא תקן פתוח המגדיר את פורמט האסימונים, מספק ספריות עבור שפות שונות ומצפין גם את האסימונים הללו.

שערי API

שערי API מוסיפים כאלמנט נוסף לאבטחת שירותים באמצעות אימות אסימונים. ה Gateway משמש נקודת כניסה לכל בקשות הלקוח ומסתיר ביעילות את שירותי המיקרו מהלקוח. לכן, אין ללקוח גישה ישירה למיקרו-שירותים ובכך, אף לקוח לא יכול לנצל את כל השירותים.

מעקב וניהול מושבים מבוזרים

מעקב מבוזר

בעת שימוש במיקרו-שירותים, עליך לפקח על כל השירותים הללו ברציפות. אבל כאשר אתה צריך לפקח על כמות עצומה של שירותים בו זמנית, זה הופך לבעיה. כדי למנוע אתגרים כאלה, אתה יכול להשתמש בשיטה המכונה מעקב מבוזר. מעקב מבוזר הוא שיטה לאתר את הכשלים ולזהות את הסיבה העומדת מאחוריה. לא רק זה, אלא תוכלו לזהות גם את המקום בו מתרחש כישלון. לכן קל מאוד לאתר, איזה מיקרו-שירות עומד בפני בעיית אבטחה.

תכנות שקעי שרת לקוח בג'אווה - -

ניהול מושבים

ניהול מושבים הוא פרמטר חשוב שעליך לשקול בעת אבטחת מיקרו-שירותים. כעת, מושב נוצר בכל פעם שמשתמש מגיע ליישום. אז אתה יכול לטפל בנתוני ההפעלה בדרכים הבאות:

  1. ניתן לאחסן את נתוני ההפעלה של משתמש יחיד בשרת ספציפי. אך מערכת מסוג זה תלויה לחלוטין באיזון העומסים בין השירותים ועומדת בקנה מידה אופקי בלבד.
  2. ניתן לשמור את נתוני ההפעלה המלאה במופע יחיד. אז ניתן לסנכרן את הנתונים דרך הרשת. הבעיה היחידה היא שבשיטה זו משאבי הרשת מותשים.
  3. אתה יכול לוודא שניתן להשיג את נתוני המשתמש מאחסון ההפעלות המשותף, כדי להבטיח שכל השירותים יכולים לקרוא את אותם נתוני הפעלות. אך מכיוון שהנתונים מאוחסנים מאחסון משותף, עליכם לוודא שיש לכם מנגנון אבטחה כלשהו, ​​כדי לגשת לנתונים בצורה מאובטחת.

מפגש ראשון ו- SSL הדדי

הרעיון של המפגש הראשון הוא פשוט מאוד. משתמשים צריכים להתחבר ליישום פעם אחת, ואז הם יכולים לגשת לכל השירותים ביישום. אבל, כל משתמש צריך בתחילה לתקשר עם שירות אימות. ובכן, זה בהחלט יכול לגרום לתנועה רבה בין כל השירותים ועלול להיות מסורבל עבור היזמים להבין כשלים בתרחיש כזה.

כאשר מגיעים ל- SSL הדדי, לעתים קרובות יישומים מתמודדים עם תעבורת משתמשים, 3מחקר ופיתוחמסיבות וגם מיקרו-שירותים המתקשרים זה עם זה. אבל, מכיוון שהשירותים הללו ניגשים על ידי 3מחקר ופיתוחצדדים, תמיד קיים סיכון להתקפות. כעת, הפתרון לתרחישים כאלה הוא SSL הדדי או אימות הדדי בין מיקרו-שירותים. עם זאת, הנתונים המועברים בין השירותים יוצפנו. הבעיה היחידה בשיטה זו היא שכאשר מספר המיקרו-שירותים יגדל, מכיוון שלכל שירות ושירות יהיה תעודת TLS משלו, יהיה קשה מאוד למפתחים לעדכן את האישורים.

מיון c ++ stl

3מחקר ופיתוחגישה ליישומי צד

כולנו ניגשים ליישומים שהם 3מחקר ופיתוחיישומי צד. 3מחקר ופיתוחיישומי צד משתמשים באסימון API שנוצר על ידי המשתמש ביישום כדי לגשת למשאבים הנדרשים. לכן, יישומי הצד השלישי יכולים לגשת לנתוני משתמשים מסוימים ולא לאישורי משתמשים אחרים. ובכן, זה היה ביחס למשתמש יחיד. אבל מה אם היישומים צריכים לגשת לנתונים ממספר משתמשים? איך לדעתך ניתן לקבל בקשה כזו?

שימוש ב- OAuth

הפיתרון הוא להשתמש ב- OAuth. כאשר אתה משתמש ב- OAuth, היישום מבקש מהמשתמש לאשר את ה- 3מחקר ופיתוחיישומי צד, להשתמש במידע הנדרש וליצור אסימון עבורו. באופן כללי, משתמשים בקוד הרשאה לבקשת האסימון כדי לוודא שכתובת האתר להתקשרות חוזרת לא נגנבת.

לכן, תוך אזכור אסימון הגישה הלקוח מתקשר עם שרת ההרשאה, ושרת זה מסמיך את הלקוח למנוע מאחרים לזייף את זהות הלקוח. לכן, כאשר אתה משתמש במיקרו-שירותים עם OAuth, השירותים פועלים כלקוח בארכיטקטורת OAuth, כדי לפשט את בעיות האבטחה.

ובכן, אנשים, לא הייתי אומר שאלה הדרכים היחידות בהן תוכלו להבטיח את השירותים שלכם. אתה יכול לאבטח מיקרו-שירותים בדרכים רבות על בסיס הארכיטקטורה של היישום. לכן, אם אתה מישהו ששואף לבנות יישום המבוסס על מיקרו-שירותים, אז זכור כי אבטחת השירותים היא גורם חשוב אחד שעליך להיות זהיר לגביו. בהערה זו, אנו מגיעים לסוף מאמר זה בנושא אבטחת מיקרו-שירותים. אני מקווה שמצאת מאמר זה אינפורמטיבי.

אם ברצונך ללמוד שירותי מיקרוסופט ולבנות יישומים משלך, בדוק את המידע שלנו שמגיע עם הדרכה חיה בהנחיית מדריך וניסיון פרויקט אמיתי. הכשרה זו תעזור לך להבין לעומק את שירותי המיקרו-שירותים ותעזור לך להשיג שליטה בנושא.

יש לך שאלה עבורנו? אנא הזכיר זאת בסעיף ההערות של ” אבטחת מיקרו-שירות ”ואחזור אליך.