PracticU

הגדרת AWS Security Group
עם Terraform
פרויקט NodeJS

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

הגדרת AWS Security Group עם Terraform פרויקט NodeJS
כדי שאפשר יהיה להתחבר למכונה הווירטואלית בענן, צריך לפתוח עבורה firewall - ב-AWS זה נקרא Security Group - ומגדירים אותו עם Terraform.
השלבים העיקריים
1. מקור הדוגמה: מחפשים "AWS Security Group Terraform", נכנסים לאתר הרשמי terraform.io ולוקחים את ה-Basic Usage כבסיס, ומתאימים אותו לקובץ ה-EC2.
2. הגדרת הקבוצה: יוצרים משאב aws_security_group, נותנים לו שם ותיאור, ומציינים את ה-VPC שבו הוא נמצא. חשוב שהמכונה הווירטואלית וה-Security Group יהיו ב-Region זהה, אחרת הם לא "רואים" זה את זה.
3. חוקי Ingress (כניסה): מגדירים חוק SSH בפורט 22, מוגבל רק ל-IP האישי (עם /32) כדי שלא כל העולם יוכל להתחבר. מגדירים חוק HTTP בפורט 80 פתוח לכולם, וחוק HTTPS בפורט 443 פתוח לכולם לקראת הוספת תעודה דיגיטלית בעתיד.
4. שם ייחודי לכל חוק: לכל משאב חוק יש שם (למשל Allow SSH, Allow HTTP) שמשמש רק לתקשורת פנימית עם Terraform, ולא קיים בענן בפועל. אי אפשר לתת לשני חוקים מאותו סוג את אותו שם - זה מזוהה כ-Duplicate resource.
5. שיוך לקבוצה: בכל חוק כותבים security_group_id ומפנים לאובייקט דרך .id, בעזרת פלאגין שמשלים את שמות המאפיינים אוטומטית.
6. חוקי Egress (יציאה): מגדירים חוק שמאפשר יציאה לכל כתובת IP, בכל הפורטים, גם ל-IPv4 וגם ל-IPv6.
7. חיבור למכונה: במשאב ה-EC2 מוסיפים את ה-Security Group כמערך (בתוך סוגריים מרובעים, כיוון שיכולות להיות כמה קבוצות).
8. בדיקה והחלה: מריצים terraform plan כדי לוודא שהכל תקין (ולראות שגיאות כמו ID חסר או משאב כפול), ולבסוף terraform apply -auto-approve.
פקודות והגדרות
aws_security_group, security_group_id, פורטים 22 (SSH), 80 (HTTP), 443 (HTTPS), terraform plan, terraform apply -auto-approve.
כעת למכונה הווירטואלית יש firewall מוגדר שמאפשר גישת SSH מה-IP האישי בלבד וגישת אינטרנט לכולם, מוכן לחיבור בפועל.
השיעור הבא בקורס: חיבור לענן ב-SSH עם תעודה דיגיטלית פרויקט NodeJS

פרקי ההרצאה: הגדרת AWS Security Group עם Terraform פרויקט NodeJS

  1. 00:00

    מציאת דוגמת Security Group ב-Terraform

  2. 00:41

    חוקים ל-SSH ולאתר האינטרנט

  3. 01:19

    מציאת מזהה ה-VPC

  4. 01:57

    הגדרת חוק Ingress לפורט SSH

תמלול ההרצאה: הגדרת AWS Security Group עם Terraform פרויקט NodeJS

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

  1. 00:02

    שלום לכולם. בהרצאה זו אנחנו הולכים להגדיר firewall למכונה וירטואלית שלנו בענן, מה שנקרא בשפת AWS Security Group. אני רושם בגוגל AWS Security Group Terraform ונכנס לאתר הרשמי Terraform IO.

  2. 00:20

    יש לנו פה למטה Basic Usage. בואו נעתיק את הדוגמה הזאת ונתאים אותה למקרה הספציפי שלנו. אני שם את זה בקובץ של EC2 כי זה קשור למכונה וירטואלית.

  3. 00:32

    תראו, דבר ראשון שעשינו בקובץ הזה יצרנו מכונה וירטואלית EC2 Instance, והדבר השני שאנחנו הולכים לעשות בקובץ הזה זה Security Group, חוק ב-firewall. והחוק הזה למעשה זה קבוצת חוקים, וקבוצת החוקים הזאת תכלול חוק ל-SSH.

  4. 00:50

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

  5. 01:07

    אז קודם כל אנחנו רואים פה שיש לנו משאב מסוג AWS Security Group וניתן לו שם Practicu PU EC2 Security Group. אז נתנו שמות, נתנו תיאור. עכשיו באיזה VPC, באיזה ענן צריך ליצור את הקבוצה הזאת?

  6. 01:24

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

  7. 01:53

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

  8. 02:07

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

  9. 02:16

    בשורה הזאת, Security Group ID, אנחנו כותבים למי לשייך. איך כותבים? סוג נקודה השם.

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

ההרצאה הקודמת: יצירת מפתחות הצפנה ב-AWS - פרויקט NodeJS

ההרצאה הבאה: חיבור לענן ב-SSH - עם תעודה דיגיטלית - פרויקט NodeJS

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

  • הגדרת SCCM Boundary Group
  • View Group
  • מבוא ל-NodeJS
  • הגדרת VLAN ו-TRUNK עם Port Security

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

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