שילוב של AWS CloudWatch עם Google SecOps

במסמך הזה מוסבר איך לשלב את AWS CloudWatch עם Google Security Operations ‏ (Google SecOps).

תרחישים לדוגמה

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

פרמטרים של שילוב

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

שם הפרמטר לתצוגה> סוג> ערך ברירת המחדל> Is Mandatory> תיאור>
מזהה מפתח הגישה של AWS String לא רלוונטי כן מזהה מפתח הגישה ל-AWS שבו משתמשים בשילוב.
מפתח סודי של AWS סיסמה לא רלוונטי כן מפתח סודי של AWS לשימוש בשילוב.
אזור ברירת המחדל של AWS String לא רלוונטי כן אזור ברירת המחדל של AWS לשימוש בשילוב, לדוגמה us-west-2.

איך מגדירים שילובים ב-Google SecOps

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

פעולות

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

פינג

בודקים את הקישוריות ל-AWS CloudWatch.

ריצה

הפעולה הזו לא פועלת על ישויות.

תוצאות הפעולה

תוצאת הסקריפט
Script Result Name> אפשרויות ערך>
is_success is_success=False
is_success is_success=True
קיר תיקים
סוג התוצאות ערך / תיאור סוג
הודעת פלט*

הפעולה לא אמורה להיכשל או להפסיק את ההפעלה של הפלייבוק:
אם הפעולה הצליחה: "Successfully connected to the AWS CloudWatch server with the provided connection parameters!"

הפעולה אמורה להיכשל ולעצור את ההפעלה של הפלייבוק:
אם הפעולה נכשלה: "Failed to connect to the AWS CloudWatch server!‎ השגיאה היא {0}".format(exception.stacktrace)

כללי

הצגת רשימה של קבוצות יומנים

רשימה של קבוצות היומנים שזמינות ב-AWS CloudWatch.

פרמטרים

שם הפרמטר לתצוגה> סוג> ערך ברירת המחדל> Is Mandatory> תיאור>
מספר הקבוצות המקסימלי שיוחזרו מספר שלם 50 לא מציינים כמה קבוצות להחזיר. ברירת המחדל: 50.

ריצה

הפעולה הזו לא פועלת על ישויות.

תוצאות הפעולה

תוצאת הסקריפט
Script Result Name> אפשרויות ערך>
is_success is_success=False
is_success is_success=True
תוצאת JSON
[
    {
        "arn": "arn:aws:logs:us-east-1:",
        "creationTime": 1611581795766,
        "logGroupName": "CloudTrail/DefaultLogGroup",
        "metricFilterCount": 0,
        "storedBytes": 24529015
    },
    {
        "arn": "arn:aws:logs:us-east-1:",
        "creationTime": 1606993203235,
        "logGroupName": "Example",
        "metricFilterCount": 1,
        "storedBytes": 730
    },
    {
        "arn": "arn:aws:logs:us-east-1:",
        "creationTime": 1611652265055,
        "logGroupName": "aws-cloudtrail-logs",
        "metricFilterCount": 0,
        "storedBytes": 51354815
    }
]
קיר תיקים
סוג התוצאות ערך / תיאור סוג
הודעת פלט*

הפעולה לא אמורה להיכשל או להפסיק את ההפעלה של הפלייבוק:
אם הנתונים זמינים (is_success = true): "Successfully returned available log groups in AWS CloudWatch".

אם אין נתונים זמינים (is_success = true): "No log groups were found in AWS CloudWatch".

הפעולה אמורה להיכשל ולעצור את ההפעלה של הפלייבוק:
אם יש שגיאה חמורה, כמו פרטי כניסה שגויים, אין חיבור לשרת, אחר: "Error executing action "List Log Groups". הסיבה: {0}''.format(error.Stacktrace)

כללי
שולחן קיר עם ויטרינה

שם: "Log Groups"

עמודה:

שם

מספר המסננים של המדדים

בייטים מאוחסנים

שעת יצירה

כללי

הצגת רשימה של מקורות נתונים ביומן

רשימה של מקורות הנתונים הזמינים ב-AWS CloudWatch.

פרמטרים

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

שם מקור הנתונים של היומן

ערכים אפשריים:

שם מקור הנתונים של היומן

מועד האירוע האחרון

לא מציינים את הסדר שבו יופיעו זרמי היומנים.
סדר המיון DDL

סדר עולה

ערכים אפשריים:

סדר עולה

סדר יורד

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

ריצה

הפעולה הזו לא פועלת על ישויות.

תוצאות הפעולה

תוצאת הסקריפט
Script Result Name> אפשרויות ערך>
is_success is_success=False
is_success is_success=True
תוצאת JSON
[{
    "group":"{group name}"
"logStreams": [
        {
            "arn": "arn:aws:logs:us-east-1:log-group:aws-cloudtrail-logs:log-stream:CloudTrail_us-east-1",
            "creationTime": 1611652272827,
            "firstEventTimestamp": 1611652287716,
            "lastEventTimestamp": 1612271538268,
            "lastIngestionTime": 1612271538289,
            "logStreamName": "CloudTrail_us-east-1",
            "storedBytes": 0,
            "uploadSequenceToken": "49039859450784908968417870788122674924958823185025535393"
        }
    ]
}
]
קיר תיקים
סוג התוצאות ערך / תיאור סוג
הודעת פלט*

הפעולה לא אמורה להיכשל או להפסיק את ההפעלה של הפלייבוק:
אם יש נתונים זמינים לפחות לקבוצת יומנים אחת (is_success = true): "Successfully returned available log streams for the following log groups in AWS CloudWatch: {group names}".

אם אין נתונים זמינים לפחות לקבוצת יומנים אחת (is_success = true): "הפעולה לא הצליחה להחזיר את זרמי היומנים הזמינים לקבוצות היומנים הבאות ב-AWS CloudWatch: ‏{group names}".

אם אין נתונים זמינים לפחות לקבוצת יומנים אחת (is_success = false): "No log streams were found for the provided log groups in AWS CloudWatch".

הפעולה אמורה להיכשל ולעצור את ההפעלה של הפלייבוק:
אם יש שגיאה חמורה, כמו פרטי כניסה שגויים, אין חיבור לשרת, אחר: "Error executing action "List Log Streams".‎ הסיבה: {0}''.format(error.Stacktrace)

כללי
שולחן קיר עם ויטרינה

שם: "{Group Name}: Log Streams"

עמודה:

שם

בייטים מאוחסנים

שעת יצירה

חותמת הזמן של האירוע האחרון

כללי

אירוע ביומן החיפושים

חיפוש אירועים ביומן ב-AWS CloudWatch.

פרמטרים

שם הפרמטר לתצוגה> סוג> ערך ברירת המחדל> Is Mandatory> תיאור>
קבוצת יומנים String לא רלוונטי כן מציינים את שם קבוצת היומנים שבה רוצים לחפש אירועים.
רישום ביומן של מקורות נתונים CSV לא רלוונטי לא מציינים רשימה מופרדת בפסיקים של מקורות נתונים של יומנים שבהם רוצים לחפש אירועים.
מסגרת זמן DDL

בשעה האחרונה

ערכים אפשריים:

בשעה האחרונה

6 השעות האחרונות

‫24 השעות האחרונות

בשבוע שעבר

בחודש שעבר

בהתאמה אישית

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

ריצה

הפעולה הזו לא פועלת על ישויות.

תוצאות הפעולה

תוצאת הסקריפט
Script Result Name> אפשרויות ערך>
is_success is_success=False
is_success is_success=True
תוצאת JSON
[
        {
            "eventId": "ID",
            "ingestionTime": 1611652287896,
            "logStreamName": "CloudTrail_us-east-1",
            "message": {
                "eventVersion": "1.08",
                "userIdentity": {
                    "type": "AssumedRole",
                    "principalId": "ID",
                    "arn":"arn:aw
s:sts: : ACCOUNT_ID:assumed-role/AWSServiceRoleForAmazonMacie/AmazonMacieSession","accountId":"ACCOUNT_ID","accessKeyId":"KEY_ID","sessionC
ontext":{"sessionIssuer":{"type":"Role","principalId":"ID","arn":"arn:aws:iam: : ACCOUNT_ID:role/aws-service-role/macie.amazonaws.com/AW
SServiceRoleForAmazonMacie","accountId":"ACCOUNT_ID","userName":"AWSServiceRoleForAmazonMacie"},"webIdFederationData":{},"attributes":{"mfaAuthenticated": "false",
                    "creationDate": "2021-01-26T08:53:52Z"
                }
            },
            "invokedBy": "AWS Internal",
            "eventTime": "2021-01-26T08:53:52Z",
            "eventSource": "s3.amazonaws.com",
            "eventName": "GetBucketLogging",
            "awsRegion": "us-east-1",
            "sourceIPAddress": "AWSInternal",
            "userAgent": "AWS Internal",
            "requestParameters": {
                "logging": "",
                "bucketName": "example",
                "Host": "example.s3.amazonaws.com"
            },
            "responseElements": null,
            "additionalEventData": {
                "SignatureVersion": "SigV4",
                "CipherSuite": "ECDHE-RSA-AES128-GCM-SHA256",
                "bytesTransferredIn": 0,
                "AuthenticationMethod": "AuthHeader",
                "x-amz-id-2": "PFM+6pyK/gCPy95gh8dtstgtXftrpHkL8s=",
                "bytesTransferredOut": 289
            },
            "requestID": "8FA919A428BC82D7",
            "eventID": "7eb5dd44-7021-4945-b9be-27f5b1e0d8d0",
            "readOnly": true,
            "resources": [
                {
                    "accountId": "ACCOUNT_ID",
                    "type": "AWS::S3::Bucket",
                    "ARN": "arn:aws:s3:::example"
                }
            ],
            "eventType": "AwsApiCall",
            "managementEvent": true,
            "eventCategory": "Management",
            "recipientAccountId": "ACCOUNT_ID"
        },
        "timestamp": 1611652287716
    }
]
קיר תיקים
סוג התוצאות ערך / תיאור סוג
הודעת פלט*

הפעולה לא אמורה להיכשל או להפסיק את ההפעלה של הפלייבוק:
אם הנתונים זמינים (is_success = true): "החיפוש ב-AWS CloudWatch בוצע בהצלחה".

אם הנתונים לא זמינים (is_success = false): "לא נמצאו נתונים לחיפוש שצוין".

הפעולה אמורה להיכשל ולעצור את ההפעלה של הפלייבוק:
אם יש שגיאה חמורה, כמו פרטי כניסה שגויים, אין חיבור לשרת, אחר: "שגיאה בהפעלת הפעולה "חיפוש אירועים ביומן". הסיבה: {0}''.format(error.Stacktrace)

כללי
שולחן קיר עם ויטרינה

שם: "תוצאות חיפוש"

עמודה: כל המפתחות הזמינים.

כללי

הגדרת מדיניות שמירת נתונים

מגדירים את מדיניות שמירת הנתונים של קבוצות היומנים ב-AWS CloudWatch.

פרמטרים

שם הפרמטר לתצוגה> סוג> ערך ברירת המחדל> Is Mandatory> תיאור>
קבוצת יומנים String לא רלוונטי כן מציינים את השם של קבוצת היומנים שרוצים להגדיר לה את מדיניות שמירת הנתונים.
ימי שמירה DDL

1

ערכים אפשריים

‫1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1,827 ו-3,653

כן מציינים את מספר הימים שבהם הנתונים יישמרו בקבוצת היומנים.

ריצה

הפעולה הזו לא פועלת על ישויות.

תוצאות הפעולה

תוצאת הסקריפט
Script Result Name> אפשרויות ערך>
is_success is_success=False
is_success is_success=True
קיר תיקים
סוג התוצאות ערך / תיאור סוג
הודעת פלט*

הפעולה לא אמורה להיכשל או להפסיק את ההפעלה של הפלייבוק:
אם הנתונים הצליחו: (is_success = true): "Successfully set the retention policy for log group {group} in AWS CloudWatch".

הפעולה אמורה להיכשל ולעצור את ההפעלה של הפלייבוק:
אם יש שגיאה חמורה, כמו פרטי כניסה שגויים, אין חיבור לשרת, אחר: "שגיאה בביצוע הפעולה "הגדרת מדיניות שמירה". הסיבה: {0}''.format(error.Stacktrace)

כללי

הסרה של מדיניות שמירת נתונים

מסירים את מדיניות שמירת הנתונים מקבוצת היומנים ב-AWS CloudWatch.

פרמטרים

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

ריצה

הפעולה הזו לא פועלת על ישויות.

תוצאות הפעולה

תוצאת הסקריפט
Script Result Name> אפשרויות ערך>
is_success is_success=False
is_success is_success=True
קיר תיקים
סוג התוצאות ערך / תיאור סוג
הודעת פלט*

הפעולה לא אמורה להיכשל או להפסיק את ההפעלה של הפלייבוק:
אם הנתונים הצליחו: (is_success = true): "Successfully removed the retention policy from log group {group} in AWS CloudWatch".

הפעולה אמורה להיכשל ולעצור את ההפעלה של הפלייבוק:
אם יש שגיאה חמורה, כמו פרטי כניסה שגויים, אין חיבור לשרת, אחר: "שגיאה בביצוע הפעולה "הסרת מדיניות שמירת נתונים". הסיבה: {0}''.format(error.Stacktrace)

כללי

יצירת קבוצת יומנים

יוצרים קבוצת יומנים ב-AWS CloudWatch.

פרמטרים

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

ריצה

הפעולה הזו לא פועלת על ישויות.

תוצאות הפעולה

תוצאת הסקריפט
Script Result Name> אפשרויות ערך>
is_success is_success=False
is_success is_success=True
תוצאת JSON
{
"group_name": "GROUP_NAME"
}
קיר תיקים
סוג התוצאות ערך / תיאור סוג
הודעת פלט*

הפעולה לא אמורה להיכשל או להפסיק את ההפעלה של הפלייבוק:
אם הנתונים הצליחו: (is_success = true): "Successfully created a new log group {group} in AWS CloudWatch".

הפעולה אמורה להיכשל ולעצור את ההפעלה של הפלייבוק:
אם יש שגיאה חמורה, כמו פרטי כניסה שגויים, אין חיבור לשרת, אחר: "Error executing action "Сreate Log Group". הסיבה: {0}''.format(error.Stacktrace)

כללי

יצירת מקור נתונים של יומנים

יוצרים זרם יומנים לקבוצת היומנים ב-AWS CloudWatch.

פרמטרים

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

ריצה

הפעולה הזו לא פועלת על ישויות.

תוצאות הפעולה

תוצאת הסקריפט
Script Result Name> אפשרויות ערך>
is_success is_success=False
is_success is_success=True
תוצאת JSON
{
"log_stream": "STREAM_NAME"
}
קיר תיקים
סוג התוצאות ערך / תיאור סוג
הודעת פלט*

הפעולה לא אמורה להיכשל או להפסיק את ההפעלה של הפלייבוק:
אם הנתונים הצליחו: (is_success = true): "נוצר בהצלחה זרם יומנים חדש בקבוצת היומנים {group} ב-AWS CloudWatch".

הפעולה אמורה להיכשל ולעצור את ההפעלה של הפלייבוק:
אם יש שגיאה חמורה, כמו פרטי כניסה שגויים, אין חיבור לשרת, אחר: "שגיאה בביצוע הפעולה "יצירת מקור ליומן". הסיבה: {0}''.format(error.Stacktrace)

כללי

מחיקת קבוצת יומנים

מחיקת קבוצת יומנים ב-AWS CloudWatch.

פרמטרים

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

ריצה

הפעולה הזו לא פועלת על ישויות.

תוצאות הפעולה

תוצאת הסקריפט
Script Result Name> אפשרויות ערך>
is_success is_success=False
is_success is_success=True
קיר תיקים
סוג התוצאות ערך / תיאור סוג
הודעת פלט*

הפעולה לא אמורה להיכשל או להפסיק את ההפעלה של הפלייבוק:
אם הנתונים הצליחו: (is_success = true): "קבוצת היומנים {group} נמחקה בהצלחה ב-AWS CloudWatch".

אם הקבוצה לא קיימת (is_success=false): "הפעולה לא הצליחה למחוק את קבוצת היומנים {group} ב-AWS CloudWatch. סיבה: קבוצת היומנים {group} לא נמצאה ב-AWS CloudWatch."

הפעולה אמורה להיכשל ולעצור את ההפעלה של הפלייבוק:
אם יש שגיאה חמורה, כמו פרטי כניסה שגויים, אין חיבור לשרת, אחר: "שגיאה בביצוע הפעולה "מחיקת קבוצת יומנים". הסיבה: {0}''.format(error.Stacktrace)

כללי

מחיקת מקור נתונים של יומן רישום

מחיקת זרם יומנים בקבוצת יומנים ב-AWS CloudWatch.

פרמטרים

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

ריצה

הפעולה הזו לא פועלת על ישויות.

תוצאות הפעולה

תוצאת הסקריפט
Script Result Name> אפשרויות ערך>
is_success is_success=False
is_success is_success=True
קיר תיקים
סוג התוצאות ערך / תיאור סוג
הודעת פלט*

הפעולה לא אמורה להיכשל או להפסיק את ההפעלה של הפלייבוק:
אם הנתונים הצליחו: (is_success = true): "Successfully deleted log stream {stream} from log group {group} in AWS CloudWatch".

אם הסטרימינג לא קיים (is_success=false): "הפעולה לא הצליחה למחוק את סטרימינג היומן {stream} מקבוצת היומנים {group} ב-AWS CloudWatch. סיבה: זרם היומן {stream} לא נמצא בקבוצת היומנים {group} ב-AWS CloudWatch."

אם הקבוצה לא קיימת (is_success=false): "הפעולה לא הצליחה למחוק את זרם היומן {stream} מקבוצת היומנים {group} ב-AWS CloudWatch. סיבה: קבוצת היומנים {group} לא נמצאה ב-AWS CloudWatch."

הפעולה אמורה להיכשל ולעצור את ההפעלה של הפלייבוק:
אם יש שגיאה חמורה, כמו פרטי כניסה שגויים, אין חיבור לשרת, אחר: "שגיאה בביצוע הפעולה 'מחיקת מקור נתונים של יומן'. הסיבה: {0}''.format(error.Stacktrace)

כללי

הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.