איסוף יומני AWS IAM
גרסת כלי הניתוח: 1.0
במאמר הזה מוסבר איך להטמיע נתוני הגדרה של ניהול זהויות והרשאות גישה (IAM) ב-AWS ב-Google Security Operations באמצעות פיד של API של צד שלישי.
כלי הניתוח של AWS IAM הופך את נתוני הישות של IAM (משתמשים, קבוצות, תפקידים ומדיניות) למודל נתונים מאוחד (UDM) מובנה, ומוציא שדות כמו פרטי משתמש, מידע על תפקידים, הרשאות וחותמות זמן לניתוח אבטחה עקבי.
לפני שמתחילים
חשוב לוודא שמתקיימות הדרישות המוקדמות הבאות:
- מכונה של Google SecOps
- גישה עם הרשאות למסוף AWS
- הרשאות ליצירת משתמשים וכללי מדיניות ב-IAM
קבלת טווחי כתובות ה-IP של Google SecOps
- עוברים אל SIEM Settings > Feeds (הגדרות SIEM > פידים).
- לוחצים על הוספת פיד חדש.
- רושמים את טווחי כתובות ה-IP שמוצגים בחלק העליון של הדף.
- אפשר גם לאחזר טווחים של כתובות IP באופן פרוגרמטי באמצעות Feed Management API.
יצירת משתמש IAM עם ההרשאות הנדרשות
חשוב: כדי לאפשר ל-Google SecOps לאחזר נתוני AWS IAM באמצעות ה-API, צריך ליצור משתמש IAM עם הרשאות קריאה מתאימות.
אפשרות א': שימוש במדיניות מנוהלת של AWS (מומלץ)
- יוצרים משתמש לפי ההוראות במדריך הזה: יצירת משתמש IAM.
- בוחרים את המשתמש שנוצר.
- לוחצים על הכרטיסייה פרטי כניסה מאובטחים.
- בקטע Access Keys, לוחצים על Create Access Key.
- בוחרים באפשרות שירות של צד שלישי בתור תרחיש שימוש.
- לוחצים על הבא.
- אופציונלי: מוסיפים תג תיאור.
- לוחצים על Create access key (יצירת מפתח גישה).
- לוחצים על הורדת קובץ CSV כדי לשמור את מזהה מפתח הגישה ואת מפתח הגישה הסודי לעיון עתידי.
- לוחצים על סיום.
- לוחצים על הכרטיסייה הרשאות.
- בקטע Permissions policies, לוחצים על Add permissions.
- לוחצים על הוספת הרשאות.
- בוחרים באפשרות צירוף מדיניות ישירות.
- מחפשים את IAMReadOnlyAccess (מדיניות מנוהלת של AWS).
- בוחרים את המדיניות.
- לוחצים על הבא.
- לוחצים על הוספת הרשאות.
חשוב: המדיניות IAMReadOnlyAccess כוללת את כל ההרשאות הנדרשות:
iam:GetUseriam:ListUsersiam:GetGroupiam:ListGroupsiam:GetPolicyiam:ListPoliciesiam:GetRoleiam:ListRolesiam:ListAttachedUserPoliciesiam:ListAttachedGroupPoliciesiam:ListAttachedRolePoliciesiam:GetAccountSummary
אפשרות ב': יצירת מדיניות בהתאמה אישית (הרשאות מינימליות)
אם מדיניות האבטחה שלכם דורשת הרשאות מינימליות במקום מדיניות מנוהלת:
- במסוף AWS, עוברים אל IAM > Policies > Create policy > הכרטיסייה JSON.
מדביקים את המדיניות הבאה:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:GetUser", "iam:ListUsers", "iam:GetGroup", "iam:ListGroups", "iam:GetPolicy", "iam:ListPolicies", "iam:GetRole", "iam:ListRoles", "iam:ListAttachedUserPolicies", "iam:ListAttachedGroupPolicies", "iam:ListAttachedRolePolicies", "iam:GetAccountSummary" ], "Resource": "*" } ] }לוחצים על הבא.
נותנים למדיניות את השם
chronicle-iam-api-read-policy.לוחצים על יצירת מדיניות.
יוצרים משתמש לפי ההוראות במדריך הזה: יצירת משתמש IAM.
בוחרים את המשתמש שנוצר.
לוחצים על הכרטיסייה פרטי כניסה מאובטחים.
בקטע Access Keys, לוחצים על Create Access Key.
בוחרים באפשרות שירות של צד שלישי בתור תרחיש שימוש.
לוחצים על הבא.
- אופציונלי: מוסיפים תג תיאור.
לוחצים על Create access key (יצירת מפתח גישה).
לוחצים על הורדת קובץ CSV כדי לשמור את מזהה מפתח הגישה ואת מפתח הגישה הסודי לעיון עתידי.
לוחצים על סיום.
לוחצים על הכרטיסייה הרשאות.
בקטע Permissions policies, לוחצים על Add permissions.
לוחצים על הוספת הרשאות.
בוחרים באפשרות Attach policies directly.
מחפשים את האפשרות
chronicle-iam-api-read-policyולוחצים עליה.לוחצים על הבא.
לוחצים על הוספת הרשאות.
הגדרת פיד ב-Google SecOps כדי להטמיע נתוני הגדרות של IAM
פיד AWS IAM אוסף רשימה אחת של ישויות IAM לכל פיד, שנבחרה על ידי השדה API type (Users, Roles או Groups). כדי לאסוף את כל ישויות ה-IAM, יוצרים פיד אחד לכל סוג API, כולם באמצעות סוג היומן AWS IAM.
שימוש במרכז התוכן (מומלץ)
- עוברים אל מרכז התוכן > חבילות תוכן > תחילת העבודה.
- לוחצים על החבילה Amazon Cloud Platform.
- מוצאים ברשימה את סוג היומן AWS IAM.
- בתפריט הנפתח סוג המקור, בוחרים באפשרות API של צד שלישי.
- מזינים את פרטי ההגדרה הבאים:
- שם משתמש: מזהה מפתח הגישה של משתמש ה-IAM שנוצר קודם.
- Secret: מפתח הגישה הסודי ממשתמש IAM שנוצר קודם.
- סוג ה-API: בוחרים את רשימת ישויות ה-IAM לאיסוף: משתמשים, תפקידים או קבוצות.
- שם הפיד: ערך שמאכלס מראש את השדה ומזהה את הפיד (לדוגמה,
AWS IAM Users). - מרחב שמות של נכס: מרחב השמות שמשויך לפיד.
- תוויות להעברה: תוויות שמוחלות על כל האירועים מהפיד הזה.
- לוחצים על יצירת פיד.
למידע נוסף על הגדרת כמה פידים לסוגים שונים של יומנים בתוך משפחת המוצרים הזו, אפשר לעיין במאמר בנושא הגדרת פידים לפי מוצר.
שימוש בהגדרות SIEM
- עוברים אל SIEM Settings > Feeds (הגדרות SIEM > פידים).
- לוחצים על הוספת פיד חדש.
- בדף הבא, לוחצים על הגדרת פיד יחיד.
- בשדה שם הפיד, מזינים שם לפיד (לדוגמה,
AWS IAM API Configuration). - בוחרים באפשרות API של צד שלישי בתור סוג המקור.
- בוחרים באפשרות AWS IAM בתור סוג היומן.
- לוחצים על הבא.
- מציינים ערכים לפרמטרים הבאים של הקלט:
- שם משתמש: מזהה מפתח הגישה של משתמש ה-IAM שנוצר קודם לכן.
- Secret: מפתח הגישה הסודי ממשתמש IAM שנוצר קודם.
- סוג ה-API: בוחרים את רשימת הישויות של IAM שרוצים לאסוף: משתמשים, תפקידים או קבוצות.
- מרחב השמות של הנכס: מרחב השמות של הנכס.
- תוויות הטמעה: התווית שתתווסף לאירועים מהפיד הזה.
- לוחצים על הבא.
- בודקים את ההגדרות של הפיד החדש במסך סיום ולוחצים על שליחה.
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | היגיון |
|---|---|---|
Group.CreateDate |
entity.group.attribute.creation_time |
ניתוח הכתובות שברשימה: ISO8601 |
Group.Path |
entity.group.attribute.labels.value |
מיפוי ישיר |
IsTruncated |
entity.group.attribute.labels.value |
מיפוי ישיר |
Marker |
entity.group.attribute.labels.value |
מיפוי ישיר |
Group.GroupName |
entity.group.email_addresses |
ממוזג |
Group.GroupName |
entity.group.group_display_name |
מיפוי ישיר |
Group.GroupID |
entity.group.product_object_id |
מיפוי ישיר |
RoleLastUsed.Region |
entity.location.name |
מיפוי ישיר |
CreateDate |
entity.resource.attribute.creation_time |
ניתוח הכתובות שברשימה: ISO8601 |
MaxSessionDuration |
entity.resource.attribute.labels.value |
מיפוי ישיר |
Path |
entity.resource.attribute.labels.value |
מיפוי ישיר |
RoleLastUsed.LastUsedDate |
entity.resource.attribute.labels.value |
מיפוי ישיר |
AssumeRolePolicyDocument |
entity.resource.attribute.permissions.name |
מיפוי ישיר |
Description |
entity.resource.attribute.roles.description |
מיפוי ישיר |
RoleName |
entity.resource.attribute.roles.name |
מיפוי ישיר |
Arn |
entity.resource.name |
מיפוי ישיר |
Group.Arn |
entity.resource.name |
מיפוי ישיר |
RoleID |
entity.resource.product_object_id |
מיפוי ישיר |
CreateDate |
entity.user.attribute.creation_time |
נותח בתור ISO8601 |
PasswordLastUsed |
entity.user.last_login_time |
נותח בתור ISO8601 |
UserID |
entity.user.product_object_id |
מיפוי ישיר |
UserName |
entity.user.userid |
מיפוי ישיר |
PermissionsBoundary.PermissionsBoundaryArn |
relations.entity.resource.attribute.labels.value |
מיפוי ישיר |
PermissionsBoundary.PermissionsBoundaryType |
relations.entity.resource.attribute.labels.value |
מיפוי ישיר |
user.PermissionsBoundary.PermissionsBoundaryArn |
relations.entity.resource.attribute.labels.value |
מיפוי ישיר |
user.PermissionsBoundary.PermissionsBoundaryType |
relations.entity.resource.attribute.labels.value |
מיפוי ישיר |
user.Arn |
relations.entity.resource.name |
מיפוי ישיר |
user.CreateDate |
relations.entity.user.attribute.creation_time |
ניתוח הכתובות שברשימה: ISO8601 |
tag.Key |
relations.entity.user.attribute.labels.key |
מיפוי ישיר |
Path |
relations.entity.user.attribute.labels.value |
מיפוי ישיר |
tag.Value |
relations.entity.user.attribute.labels.value |
מיפוי ישיר |
user.Path |
relations.entity.user.attribute.labels.value |
מיפוי ישיר |
user.PasswordLastUsed |
relations.entity.user.last_login_time |
ניתוח הכתובות שברשימה: ISO8601 |
user.UserID |
relations.entity.user.product_object_id |
מיפוי ישיר |
user.UserName |
relations.entity.user.userid |
מיפוי ישיר |
| לא רלוונטי | entity.group.attribute.labels.key |
קבוע: is_truncated |
| לא רלוונטי | entity.resource.attribute.cloud.environment |
קבוע: AMAZON_WEB_SERVICES |
| לא רלוונטי | entity.resource.attribute.labels.key |
קבוע: max_session_duration |
| לא רלוונטי | entity.resource.resource_subtype |
קבוע: User |
| לא רלוונטי | entity.resource.resource_type |
קבוע: ACCESS_POLICY |
| לא רלוונטי | metadata.entity_type |
קבוע: USER |
| לא רלוונטי | metadata.product_name |
קבוע: AWS IAM |
| לא רלוונטי | metadata.vendor_name |
קבוע: AWS |
| לא רלוונטי | relations.direction |
קבוע: UNIDIRECTIONAL |
| לא רלוונטי | relations.entity.resource.attribute.labels.key |
קבוע: permissions_boundary_arn |
| לא רלוונטי | relations.entity.resource.resource_subtype |
קבוע: User |
| לא רלוונטי | relations.entity.user.attribute.labels.key |
קבוע: path |
| לא רלוונטי | relations.entity_type |
קבוע: USER |
| לא רלוונטי | relations.relationship |
קבוע: MEMBER |
יומן שינויים
צפייה ביומן השינויים של המנתח הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.