PracticU

יצירת AWS Security Group
עבור RDS
פרויקט NodeJS

בלי כתוביותעם כתוביות
PracticU › קורס Terraform - DevOps - Azure & AWS › יצירת AWS Security Group עבור RDS פרויקט NodeJS
מילון מושגים:
AWS - שירותי הענן של אמזון (Amazon Web Services), המספקים שרתים, אחסון, מסדי נתונים ושירותים נוספים לפי שימוש.
Node.js - סביבת ריצה שמאפשרת להריץ קוד JavaScript מחוץ לדפדפן, בעיקר בצד השרת.
MySQL - מערכת ניהול מסדי נתונים יחסיים בקוד פתוח, נפוצה מאוד באתרים וביישומי אינטרנט.
Terraform - כלי להגדרת תשתית כקוד, שמאפשר ליצור ולנהל משאבי ענן ותשתית בעזרת קובצי תצורה.
VPC - רשת וירטואלית פרטית ומבודדת בתוך הענן, שבה הלקוח שולט בכתובות, בתת-רשתות ובכללי הגישה.
EC2 - שירות של AWS להפעלת שרתים וירטואליים בענן לפי דרישה ולפי שימוש.
IPv4 - הגרסה הרווחת של פרוטוקול IP, שבה כתובת מורכבת מארבעה מספרים בין 0 ל-255.
IPv6 - הדור החדש של פרוטוקול IP, עם מרחב כתובות גדול בהרבה מ-IPv4, שנכתבות בפורמט הקסדצימלי.

יצירת AWS Security Group עבור RDS - פרויקט NodeJS

בשיעור זה יוצרים חוקי חומת אש בענן של AWS עבור ה-SQL, מקימים Security Group עם חוקי כניסה ויציאה, פותרים שגיאת כפילות בשמות, ומחברים את הקבוצה החדשה למופע ה-RDS הקיים.
נושאי הסיכום המוצגים בשיעור:
1. הבעיה שאותה פותרים: שרת ה-MySQL בענן כבר עובד אבל אי אפשר להתחבר אליו כי אין חוק בחומת האש שמאפשר חיבור, ובעולם של AWS חוקי החומת אש נקראים security group.
2. מה ייפתח בקבוצה: בתוך ה-security group פותחים את פורט שלוש שלוש אפס שש, הפורט של MySQL, ונותנים התחברות לכל מי שנמצא בקבוצה של המכונות הווירטואליות, שהם למעשה שרתי ה-web שלנו, וכי השרת הקיים משויך ל-security group הוא יוכל להתחבר ל-RDS.
3. הרחבה לכמה שרתים עם count: אם רוצים יותר משרת אחד משתמשים ב-count, וכדי שלמכונות לא יהיה שם זהה מוסיפים את מספר האינדקס לשם, וברגע שה-count גדול מאחד האובייקט הופך ממכונה בודדת לרשימה של מכונות, ואז כשפונים אליו מקבלים רשימה וצריך לציין בדיוק איזה אינדקס רוצים, כשהספירה מתחילה מאפס, ואפשר גם כוכבית שמשמעותה כל הרשימה, אבל בשלב זה משאירים מכונה אחת ונותנים לכל מי שמשויך לקבוצה אישור להיכנס ל-SQL.
4. חוק נוסף לגישה מהבית: מוסיפים חוק שמאפשר התחברות לדאטאבייס בפורט שלוש שלוש אפס שש מכתובת ה-IP שלנו מהבית, כך שרק אנחנו והמכונות הווירטואליות שיושבות בקבוצה בענן יוכלו להיכנס, וגם כי יש כתובת IP אינטרנטית החומת האש תמנע מכל האחרים להתחבר.
5. הבאת הקוד מהתיעוד הרשמי: מחפשים בגוגל את המשאב של security group ב-Terraform, נכנסים לאתר הרשמי, מורידים לחלק של השימוש הבסיסי, לוקחים את הדוגמה הפשוטה ומוסיפים משאב חדש מתחת ל-RDS, ונותנים לו שם פנימי של Terraform שלא יראו בענן אבל ישמש לקישור בין הקבוצה למכונה הווירטואלית.
6. מאפייני הקבוצה וה-VPC: לקבוצה יש מאפייני שם ותיאור, וכמו כל אובייקט בענן היא משויכת ל-VPC, ומעתיקים את מזהה ה-VPC המוגדר כברירת מחדל, נותנים תיאור שמתאר שמותר תעבורת MySQL, ואפשר להוסיף הערות בקוד עם סולמית כדי שיהיה קל להבין אותו בעתיד.
7. חוקי כניסה לפי כתובת: מוסיפים חוק כניסה, ingress rule, שמשויך לקבוצה שיצרנו, ומציינים כתובות IP מותרות, את הכתובת שלנו מהבית עם סיומת שלושים ושתיים שמשמעותה כתובת אחת ויחידה, ואם היינו נותנים סיומת של רשת גדולה יותר כל מי שברשת הזאת היה יכול להתחבר, והחוק פועל על פורט שלוש שלוש אפס שש.
8. חוק כניסה מקבוצה לקבוצה: חוק שני מאפשר לכל ה-VPC ולכל מכונות ה-EC2 שמשויכות לקבוצה שלהן להתחבר ל-MySQL, ובמקום כתובות IP נותנים את המאפיין שמקשר ל-security group האחר, כך שהחוק עובד על בסיס קבוצה לקבוצה, ומגלים את המאפיין הזה בקישור לחוקי הכניסה בתיעוד הרשמי של Terraform.
9. חוקי יציאה: אחרי שני חוקי הכניסה מוסיפים חוקי יציאה, egress, חוק שמאפשר לכולם לצאת החוצה ב-IPv4 וחוק שמאפשר יציאה ב-IPv6, ואם רוצים אבטחה ברמה גבוהה יותר אפשר למחוק את שני החוקים האלה ואז המכונה לא יכולה לצאת החוצה ביוזמתה.
10. תיקון שגיאת כפילות: ב-Terraform plan מקבלים הודעת שגיאה על duplicate resource, כי לקחנו את אותה דוגמה מוכנה גם ב-RDS וגם ב-EC2 ולא שינינו את השמות, והמזהה של אובייקט הוא סוגו נקודה שמו, ולכן מוסיפים לשמות החוקים של ה-RDS קידומת ייחודית כדי שהשמות יהיו שונים מאלו של ה-EC2 וה-plan יעבור.
11. ה-plan וה-apply: ב-plan רואים חמישה אובייקטים חדשים, ארבעה חוקים וקבוצה ראשית, וסימן של שינוי ב-instance הקיים של ה-RDS, שבו יוחלף מזהה ה-security group מהקבוצה דיפולטית לקבוצה החדשה שתיווצר, וב-apply שעושה קודם plan ומציג את התוכנית ומבקש אישור, אפשר היה גם להשתמש ב-auto approve, וברגע שהוא מסיים יש חוקי כניסה שמאפשרים התחברות פנימה ל-MySQL.
סיכום:
בשיעור זה בנינו בקוד Terraform קבוצת אבטחה לשרת ה-SQL בענן, הגדרנו חוקי כניסה גם לפי כתובת IP אישית וגם מקבוצת ה-EC2 אל הקבוצה של ה-RDS, הוספנו חוקי יציאה ודנו באפשרות להחריגם לאבטחה מחמירה, תקנו כפילות שמות בין המשאבים, וביצענו plan ו-apply שחיברו את הקבוצה החדשה אל מופע ה-RDS הקיים, ובשיעור הבא נדבר על שיטות להתחברות פנימה.
SR13881HE

פרקי ההרצאה: יצירת AWS Security Group עבור RDS פרויקט NodeJS

  1. 00:00

    חוקי firewall ל-SQL בענן

  2. 00:38

    הרחבת מספר השרתים עם count

  3. 01:12

    מעבר מאובייקט לרשימת מכונות

  4. 01:52

    מתן הרשאת כניסה ל-SQL

תמלול ההרצאה: יצירת AWS Security Group עבור RDS פרויקט NodeJS

הטקסט המלא של הדקות הראשונות בהרצאה «יצירת AWS Security Group עבור RDS פרויקט NodeJS» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

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

  2. 00:17

    חוקים ב-firewall בעולם של AWS נקראים security group, ובתוך ה-security group אנחנו נפתח פורט שלוש שלוש אפס שש, שזה הפורט של MySQL, וניתן להתחבר לכל מי שנמצא ב-security group בקבוצה של המכונות הווירטואליות שלנו, שזה למעשה שרתי ה-web שלנו.

  3. 00:39

    כרגע יש לנו פה ב-EC2 שרת אחד. זה השרת שלנו, ובגלל שהשרת הזה משויך ל-security group הוא יוכל להתחבר ל-RDS. יותר מזה, אם אנחנו נעשה עוד שרת אחד, דרך אגב זה מאוד פשוט, אני יכול לעשות count ולרשום שאני צריך שני שרתים.

  4. 00:58

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

  5. 01:12

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

  6. 01:28

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

  7. 01:38

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

  8. 01:56

    והחוק השני שאני הולך לעשות, שאפשר להתחבר

לקורס המלא: קורס Terraform אונליין ל‑DevOps

ההרצאה הקודמת: הקמת RDS - עם טרפורם Terraform - פרויקט NodeJS

ההרצאה הבאה: חיבור ל-MySQL - פרויקט NodeJS

הרצאות קשורות מקורסים אחרים

  • יצירת Group Resources
  • יצירת פרויקט עם Templating Engine בנוד NodeJS
  • View Group
  • יצירת פרויקט REST API מלא - עבור חנות ספרים

קורסים נוספים במסלול

  • קורס AWS - ניהול מכונה וירטואלית בענן
  • קורס קוברנטיקס - Kubernetes
  • קורס Docker - עם Swarm Cluster
  • קורס DevOps - Ansible
  • קורס PowerShell
  • קורס Git ו-GitHub עם Visual Studio