מדריך מועיל לניהול זהויות וגישות ב-AWS דרך דוגמאות

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

במדריך זה, תלמד את המושגים הבסיסיים של IAM על ידי הליכודך דרך סדרה של דוגמאות הבנויות זו על גבי זו.

מוכן? נשטוף נשימה עמוקה ונקפוץ!

דרישות מוקדמות

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

יצירת משתמשים ב-IAM ב-AWS

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

1. התחבר ל-מסוף AWS. בדוגמה זו יש שימוש בשם משתמש הנקרא cloud_user, אך שם המשתמש שלך יהיה שונה.

Logging in to the AWS console

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

Searching for IAM service

IAM הוא שירות גלובלי, המציין כי הרשאות המשתמשים וההרשאות שלהם נחילות על כל חשבון/אזור AWS שלך. אם מספר רב של אנשים חולקים חשבון AWS אחד (שזה דבר נפוץ מאוד, לדוגמה במקרה של צוות פיתוח ברמה רחבה בחברה), עליך לוודא סיבולת תקופת עבודה תקנית של IAM.

בנוסף, תוכל ליצור מופע EC בתוך אזור us-east. המופעים הם אזוריים. אולם, בקרת זהות וגישה ל-AWS אינה נמצאת באזורים. ההרשאות שמוקצות למשתמש יחולו בלתי תלויים באזור שבו המשתמשים מתחברים למופע EC.

Previewing the global option

שלב 4. בלוח המחוונים של IAM, לחץ על Users בלוח הצד השמאלי, ולאחר מכן ללחוץ על Add users בחלקו העליון-ימני של העמוד כדי להתחיל בהוספת משתמשים.

Adding a new user

כעת הגדר את פרטי המשתמש עם ההגדרות הבאות:

  • ספק שם משתמש בשדה User name המוצג למטה. לדוגמה, שם המשתמש מוגדר להיות user-1.
  • הפעל את האפשרות Password – גישה למקודש הניהול של AWS כדי לאפשר למשתמשים להיכנס למקודש הניהול של AWS.
  • בחר באפשרות Custom password לגבי Console password, וספק סיסמה מאובטחת בתחום הטקסט.
  • הסר את הסימון מהאפשרות Require password reset כדי שהמשתמש לא יתבקש ליצור סיסמה חדשה בכניסה הבאה, ולאחר מכן ללחוץ על Next: Permission.
Setting the username and password

5. דלג על הגדרת ההרשאות ולחץ על הבא: תגיות מאחר ואתה יוצר משתמש שאין לו הרשאות.

Skipping setting permissions

6. דלג גם על הוספת תגיות ולחץ על הבא: ביקורת.

Skipping settings tags

7. בדוק את פרטי המשתמש ולחץ על צור משתמש כדי לסיים את תהליך היצירה של המשתמש.

Creating a new user

לאחר יצירת המשתמש, תקבל מסך הצלחה דומה למסך שמוצג למטה.

Previewing the Success screen

8. עכשיו חזור לעמוד משתמשים בלוח הבקרה של IAM שלך, ולחץ על המשתמש שנוצר לאחרונה (user-1) כדי להציג את פרטי המשתמש. פתיחת המשתמש שלך-1

Opening your user-1

למטה, תחת הכרטיסיות ההרשאות ו-הקבוצות, תוכל לראות ש-user-1 אינו מקושר לשום הרשאה, והוא לא חבר בשום קבוצה.

Previewing the new user’s (user-1) permissions
Previewing the new user’s (user-1) group

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

Previewing the user-1 security credentials

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

Previewing the user-1 Access Advisor

9. לבסוף, חזור על התהליך (שלבים שלוש עד שבע) כדי ליצור עוד שני משתמשים (user-2 ו-user-3). חזור לעמוד משתמשים בלוח הבקרה של IAM שלך ותראה רשימה דומה לזו שמוצגת למטה.

Previewing lists of users (user-1, user-2, and user-3)

יצירת קבוצות המשתמשים

עכשיו שיצרת את המשתמשים, תורם ליצור קבוצות. תיצור קבוצות באמצעות המדיניות הניהול של AWS וקובץ JSON.

לצורך הדרכה זו, תיצור שלוש קבוצות:

  • EC2-Admin: מעניקה הרשאות לצפות, להתחיל ולעצור את מקרות ה-EC2
  • EC2-Support: מעניקה גישה לקריאה בלבד ל-EC2
  • S3-Support: מעניקה גישה לקריאה בלבד ל-S3

כדי להתחיל ביצירת קבוצות משתמשים:

1. בלוח הבקרה של IAM שלך, לחץ על קבוצות משתמשים בפאנל השמאלי ואז לחץ על צור קבוצה.

2. ספק שם קבוצת משתמש (EC2-Admin) בדף צור קבוצת משתמש, כפי שמופיע למטה.

Provide a User group name (EC2-Admin)

השאר את ההרשאות התקניות ולחץ על צור קבוצה כדי לסיים את יצירת קבוצת EC2-Admin.

Creating a new group

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

Showing successful group creation notification

3. לחץ על הקבוצה EC2-Admin תחת עמודת שם הקבוצה כדי לצפות בסיכום המידע על הקבוצה ולהוסיף מדיניות פנימית (שלב ארבע).

Previewing the EC2-Admin group

4. עכשיו לחץ על הכרטיסייה הרשאות -> הוסף הרשאות -> צור מדיניות פנימית כדי ליצור מדיניות פנימית. מדיניות פנימית נהוג לקשר עם משתמשים ישירות ונהוג להשתמש בהם במקרים חד פעמיים.

הדוגמה שלך: הצוות שלך מעביר סביבת EC2 ישנה לסביבה חדשה. ברצונך לוודא שלמנהל של המקרר הישן יש גישה להתחלה/עצירה ולהעתיק את הגדרות קבוצת האבטחה למקרר החדש.

Creating a policy for EC-Admin group.

5. בעמוד צור מדיניות, לחץ על הלשונית JSON המוצגת למטה כדי לפתוח עורך JSON שבו תיצור מדיניות.

Accessing the policy editor

6. הדבק את הקוד (מדיניות) למטה בשדה העורך ולחץ על ביקורת מדיניות כדי ליצור מדיניות מוטבעת. מדובר במדיניות מוטבעת שכבר יוצרו על ידי AWS או מנהל בתוך חשבון ה-AWS שלך שאתה יכול להשתמש בה, להתאים או לערוך כדי להתאים לצרכים שלך בדיוק.

עם מדיניות זו, חברי קבוצת EC2-Admin מורשים להתחיל ("ec2:StartInstances"), לעצור ("ec2:StopInstances") ולצפות ("ec2:Describe*") במקררי EC2. הם מורשים (”Effect”: “Allow”) לבצע פעולות על כל המשאבים ("Resource": "*"). פעולות אלו מקושרות לקריאות פונקציונליות או API של AWS בעצם.

חברי קבוצת EC2-Admin גם מורשים לראות את כל המאזני עומס גמישים (Action": "elasticloadbalancing:Describe), לרשומת מטריקולים (cloudwatch:ListMetrics), לקבלת סטטיסטיקות מטריקולים cloudwatch:GetMetricStatistics, ולתאר מטריקולים (cloudwatch:Describe).

מטריקולים של CloudWatch מוגדרים אוטומטית עם המקרר EC2 שלך, ואותו דבר חל גם על שירות ההתגלגלות אוטומטית.

{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Action": [
				"ec2:Describe*",
				"ec2:StartInstances",
				"ec2:StopInstances"
			],
			"Resource": "",
			"Effect": "Allow"
		},
		{
			"Action": "elasticloadbalancing:Describe",
			"Resource": "",
			"Effect": "Allow"
		},
		{
			"Action": [
				"cloudwatch:ListMetrics",
				"cloudwatch:GetMetricStatistics",
				"cloudwatch:Describe"
			],
			"Resource": "",
			"Effect": "Allow"
		},
		{
			"Action": "autoscaling:Describe",
			"Resource": "*",
			"Effect": "Allow"
		}
	]
}
Editing your JSON file for policy

7. בקר בסקירת המדיניות ולחץ על שמור שינויים כדי לשמור את המדיניות.

Saving your policy

8. כעת, נווטו שוב אל לוח המחוונים שלכם ל- IAM ואתחלו את יצירת הקבוצה כפי שעשיתם בשלב שני. אך הפעם, שנו את שם הקבוצה המשתמש שם קבוצת משתמש ל- EC2-Support.

גללו למטה, חפשו AmazonEC2ReadOnlyAccess בתיבת החיפוש לרשיות ההרשאות המצורפות כדי לצרף את המדיניות הזו לקבוצה (EC2-Support):

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

A managed policy is a shared policy. As a result, all users or groups of users who use the shared policy will have updated permissions automatically when the policy is updated.

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

סמנו את האפשרות AmazonEC2ReadOnlyAccess ולחצו על צור קבוצה כדי לסיים את יצירת הקבוצה.

Setting up the AmazonEC2ReadOnlyAccess policy

10. כעת, חזרו על השלבים שמספרם שמונה עד תשעה כדי ליצור את קבוצת ה- S3-Support עם מדיניות ניהולית של AmazonS3ReadOnlyAccess. לאחר שיצרתם את קבוצת ה- S3-Support, יהיה לכם רשימת קבוצות דומה לזו שמציגה את הרשאות המוגדרות לכל קבוצה.

Previewing the groups

הוספת משתמשים לקבוצותיהם המתאימות

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

הטבלה למטה מציגה את הקבוצות המתאימות שבהן תוסיפו כל משתמש:

Users In-group Permissions
user-1 S3-Support Read-only access to S3 Bucket
user-2 EC2-Support Read-only access to EC2 Instance
user-3 EC2-Admin Full EC2 Access (View/Start/Stop)

1. בלוח המחוונים שלך לניהול זיהוי וגישה (IAM), עבור לעמוד קבוצות משתמשים ולחץ על קבוצת ה-S3-Support המוצגת למטה כדי לגשת לעמוד הסיכום של הקבוצה.

Accessing the S3-Support group.

2. לאחר מכן, לחץ על כרטיסיית המשתמשים (משתמשים) -> הוסף משתמשים כדי להתחיל בהוספת משתמשים לקבוצה. הדפדפן שלך מפנה אותך לעמוד שבו תראה רשימת משתמשים שעדיין לא שייכים לאף קבוצה עדיין (שלב שלוש).

Accessing the list of users to add to the S3-Support group.

3. סמן את התיבה מול משתמש-1, ולאחר מכן לחץ על הוסף משתמשים כדי להוסיף את המשתמש לקבוצת ה-S3-Support. הדפדפן שלך מפנה אוטומטית אל עמוד סיכום הקבוצה S3-Support.

Adding a user (user-1) to the S3-Support group

למטה, תוכל לראות כי משתמש-1 כעת חלק מקבוצת ה-S3-Support.

user-1 is now a part of the S3-Support group

4. חזור על השלבים מ-1 עד 3 כדי להוסיף את משתמש-2 ומשתמש-3 לקבוצותיהם המתאימות.

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

Verifying the groups now have one user each

בדיקת הרשאות המשתמש פועלות בצורה תקינה

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

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

Noting the IAM user sign-in URL

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

Signing in as user-1

3. הקלד S3 בתיבת החיפוש, ולחץ על הקישור S3 המוצג למטה כדי לגשת לדף ה-Amazon S3 Buckets.

Accessing the S3 bucket

4. כעת, לחץ על צור bucket כדי להתחיל ביצירת bucket של S3 .bucket

Creating an S3 bucket

5. הזן שם ל- bucket בחלק ה-תצורה כללית, ולחץ על צור bucket כדי לנסות ליצור bucket של S3.

Adding an S3 Bucket Name
Attempting to create an S3 Bucket

אם אתה זוכר, קישרת את המדיניות AmazonS3ReadOnlyAccess למשתמש-1, שמעניקה למשתמש-1 הרשאה רק לקרוא לקרוא את ה- S3 buckets. כתוצאה, אם משתמש-1 מנסה ליצור, למחוק או לעדכן bucket של S3, הודעת השגיאה המוצגת למטה תופיע.

הודעת השגיאה למטה מציינת כי ההרשאה שהגדרת למשתמש-1 עובדת כהלכה.

Testing if user-1 permission is working

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

שגיאות אלו מתרחשות עקב אחרי עקרון ההרשאה המינימלית (PoLP). PoLP הוא המושג שכל חשבון משתמש או תהליך במערכת ההפעלה צריכים לקבל את ההרשאות המינימליות הדרושות בלבד להשלמת המשימה.

Viewing the EC2 dashboard

6. כעת, התנתק מהמשתמש-1 והתחבר כמשתמש-2, ונווט ללוח המחוונים של ה-EC2 שלך.

Previewing the EC2 dashboard

7. לחץ על כל אחת מהמקרים הרצים של EC2 כדי להציג את ההרשאות של משתמש-2. כפי שמוצג למטה, תקבל מידע על המקרה כמו מזהה המקרה, כתובת IPv4 הציבורית, וכו '.

Previewing running EC2 instance

8. לחץ על מצב המקרה בצד ימין של הדף ובחר באפשרות לעצור מקרה, לאתחל מקרה או לסיים את האפשרות כדי לבדוק אם ההרשאה של משתמש-2 עובדת.

Stopping/starting/ terminating an EC2 instance

שים לב שלמשתמש-2 יש גישה רק לקריאה למקרי EC2 (AmazonEC2ReadOnlyAccess). אז אם משתמש מנסה לנהל מקרה EC2, מופיעה הודעת שגיאה כמו בתמונה למטה.

לקבלת השגיאה למטה מעידה על כך שההרשאה של משתמש-2 עובדת נכון.

Previewing the error message.

9. לבסוף, התנתק ממשתמש-2, ואז התחבר כמשתמש-3 ונסה לנהל מקרי EC2 שרצים בחשבונך. מאחר שלמשתמש-3 יש הרשאות מלאות ל-EC2, אתה יכול להתחיל, לעצור או לסיים את המקרה בלעדייך לקבלת הודעת שגיאה.

סיכום

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

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

עכשיו, מהו השלב הבא לבנות על הידע החדש שרכשת? אולי לחקור את הגדרת שירותי EC2 שלך על מנת לעבוד עם IAM?

Source:
https://adamtheautomator.com/iam-aws/