Workday ๊ฐ์‚ฌ ๋กœ๊ทธ ์ˆ˜์ง‘

๋‹ค์Œ์—์„œ ์ง€์›:

์ด ๋ฌธ์„œ์—์„œ๋Š” AWS S3๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Workday ๊ฐ์‚ฌ ๋กœ๊ทธ๋ฅผ Google Security Operations์— ์ˆ˜์ง‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์„œ๋Š” ๋จผ์ € CSV ๋ฐ์ดํ„ฐ์˜ ํŒจํ„ด ๋ถ„์„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋กœ๊ทธ์—์„œ ํŠน์ • ์ด๋ฒคํŠธ ์œ ํ˜•์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์‹๋ณ„๋œ ์œ ํ˜•์— ๋”ฐ๋ผ ๊ด€๋ จ ํ•„๋“œ๋ฅผ ์ถ”์ถœํ•˜๊ณ  ๊ตฌ์กฐํ™”ํ•˜์—ฌ ์ผ๊ด€๋œ ๋ณด์•ˆ ๋ถ„์„์„ ์œ„ํ•ด ํ†ตํ•ฉ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ (UDM)์— ๋งคํ•‘ํ•ฉ๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๊ธฐ ์ „์—

๋‹ค์Œ ๊ธฐ๋ณธ ์š”๊ฑด์ด ์ถฉ์กฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

  • Google SecOps ์ธ์Šคํ„ด์Šค
  • AWS์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ
  • Workday์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ ๊ด€๋ฆฌ

Google SecOps์šฉ AWS S3 ๋ฒ„ํ‚ท ๋ฐ IAM ๊ตฌ์„ฑ

  1. ์ด ์‚ฌ์šฉ์ž ๊ฐ€์ด๋“œ(๋ฒ„ํ‚ท ๋งŒ๋“ค๊ธฐ)์— ๋”ฐ๋ผ Amazon S3 ๋ฒ„ํ‚ท์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  2. ๋‚˜์ค‘์— ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฒ„ํ‚ท ์ด๋ฆ„๊ณผ ๋ฆฌ์ „์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค (์˜ˆ: workday-audit-logs).
  3. ์ด ์‚ฌ์šฉ์ž ๊ฐ€์ด๋“œ(IAM ์‚ฌ์šฉ์ž ๋งŒ๋“ค๊ธฐ)์— ๋”ฐ๋ผ ์‚ฌ์šฉ์ž๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  4. ์ƒ์„ฑ๋œ ์‚ฌ์šฉ์ž๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  5. ๋ณด์•ˆ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด ํƒญ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  6. ์•ก์„ธ์Šค ํ‚ค ์„น์…˜์—์„œ ์•ก์„ธ์Šค ํ‚ค ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  7. ์‚ฌ์šฉ ์‚ฌ๋ก€๋กœ ์„œ๋“œ ํŒŒํ‹ฐ ์„œ๋น„์Šค๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  8. ๋‹ค์Œ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  9. ์„ ํƒ์‚ฌํ•ญ: ์„ค๋ช… ํƒœ๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  10. ์•ก์„ธ์Šค ํ‚ค ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  11. ์•ก์„ธ์Šค ํ‚ค์™€ ๋น„๋ฐ€ ์•ก์„ธ์Šค ํ‚ค๋ฅผ ์ €์žฅํ•˜์—ฌ ๋‚˜์ค‘์— ์ฐธ๊ณ ํ•˜๋ ค๋ฉด CSV ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  12. ์™„๋ฃŒ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  13. ๊ถŒํ•œ ํƒญ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  14. ๊ถŒํ•œ ์ •์ฑ… ์„น์…˜์—์„œ ๊ถŒํ•œ ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  15. ๊ถŒํ•œ ์ถ”๊ฐ€๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  16. ์ •์ฑ… ์ง์ ‘ ์—ฐ๊ฒฐ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  17. AmazonS3FullAccess ์ •์ฑ…์„ ๊ฒ€์ƒ‰ํ•˜์—ฌ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  18. ๋‹ค์Œ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  19. ๊ถŒํ•œ ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

Workday ํ†ตํ•ฉ ์‹œ์Šคํ…œ ์‚ฌ์šฉ์ž (ISU) ๋งŒ๋“ค๊ธฐ

  1. Workday์—์„œ Create Integration System User > OK๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
  2. ์‚ฌ์šฉ์ž ์ด๋ฆ„ (์˜ˆ: audit_s3_user)์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  3. ํ™•์ธ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  4. ๊ด€๋ จ ์ž‘์—… > ๋ณด์•ˆ > ๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌ์„ค์ •์œผ๋กœ ์ด๋™ํ•˜์—ฌ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์žฌ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  5. ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ๋งŒ๋ฃŒ๋˜์ง€ ์•Š๋„๋ก ํ•˜๋ ค๋ฉด ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ทœ์น™ ์œ ์ง€๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  6. Create Security Group > Integration System Security Group (Unconstrained)์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
  7. ์ด๋ฆ„ (์˜ˆ: ISU_Audit_S3)์„ ์ œ๊ณตํ•˜๊ณ  ISU๋ฅผ ํ†ตํ•ฉ ์‹œ์Šคํ…œ ์‚ฌ์šฉ์ž์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  8. ๊ธฐ๋Šฅ ์˜์—ญ > ์‹œ์Šคํ…œ์˜ ๋„๋ฉ”์ธ ๋ณด์•ˆ ์ •์ฑ…์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
  9. ๊ฐ์‚ฌ ์ถ”์ ์—์„œ ์ž‘์—… > ๊ถŒํ•œ ์ˆ˜์ •์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  10. Get Only์—์„œ ISU_Audit_S3 ๊ทธ๋ฃน์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  11. ํ™•์ธ > ๋ณด๋ฅ˜ ์ค‘์ธ ๋ณด์•ˆ ์ •์ฑ… ๋ณ€๊ฒฝ์‚ฌํ•ญ ํ™œ์„ฑํ™”๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

Workday ๋งž์ถค ๋ณด๊ณ ์„œ ๊ตฌ์„ฑ

  1. Workday์—์„œ ๋งž์ถค ๋ณด๊ณ ์„œ ๋งŒ๋“ค๊ธฐ๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋‹ค์Œ ๊ตฌ์„ฑ ์„ธ๋ถ€์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • ์ด๋ฆ„: ๊ณ ์œ ํ•œ ์ด๋ฆ„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค (์˜ˆ: Audit_Trail_BP_JSON).
    • ์œ ํ˜•: ๊ณ ๊ธ‰์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
    • ๋ฐ์ดํ„ฐ ์†Œ์Šค: ๊ฐ์‚ฌ ์ถ”์  - ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
    • ํ™•์ธ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
    • ์„ ํƒ์‚ฌํ•ญ: ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค ์œ ํ˜• ๋˜๋Š” ์‹œ์ž‘์ผ์— ํ•„ํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  3. ์ถœ๋ ฅ ํƒญ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  4. ์›น ์„œ๋น„์Šค๋กœ ์‚ฌ์šฉ ์„ค์ •, ์„ฑ๋Šฅ์— ์ตœ์ ํ™”๋ฅผ ์„ ํƒํ•˜๊ณ  JSON ํ˜•์‹์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  5. ํ™•์ธ > ์™„๋ฃŒ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  6. ๋ณด๊ณ ์„œ๋ฅผ ์—ด๊ณ  ๊ณต์œ  > ๋ณด๊ธฐ ๊ถŒํ•œ์œผ๋กœ ISU_Audit_S3 ์ถ”๊ฐ€ > ํ™•์ธ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  7. ๊ด€๋ จ ์ž‘์—… > ์›น ์„œ๋น„์Šค > URL ๋ณด๊ธฐ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  8. JSON URL (์˜ˆ: https://wd-services1.workday.com/ccx/service/customreport2/<tenant>/<user>/Audit_Trail_BP_JSON?format=json)์„ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

S3 ์—…๋กœ๋“œ์šฉ IAM ์ •์ฑ… ๋ฐ ์—ญํ•  ๊ตฌ์„ฑ

  1. ์ •์ฑ… JSON (๋‹ค๋ฅธ ๋ฒ„ํ‚ท ์ด๋ฆ„์„ ์ž…๋ ฅํ•œ ๊ฒฝ์šฐ workday-audit-logs ๋Œ€์ฒด):

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "AllowPutWorkdayObjects",
          "Effect": "Allow",
          "Action": "s3:PutObject",
          "Resource": "arn:aws:s3:::workday-audit-logs/*"
        }
      ]
    }
    
  2. AWS ์ฝ˜์†” > IAM > ์ •์ฑ… > ์ •์ฑ… ์ƒ์„ฑ > JSON ํƒญ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

  3. ์ •์ฑ…์„ ๋ณต์‚ฌํ•˜์—ฌ ๋ถ™์—ฌ๋„ฃ์Šต๋‹ˆ๋‹ค.

  4. ๋‹ค์Œ > ์ •์ฑ… ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  5. IAM > ์—ญํ•  > ์—ญํ•  ์ƒ์„ฑ > AWS ์„œ๋น„์Šค > Lambda๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

  6. ์ƒˆ๋กœ ๋งŒ๋“  ์ •์ฑ…์„ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

  7. ์—ญํ•  ์ด๋ฆ„์„ WriteWorkdayToS3Role๋กœ ์ง€์ •ํ•˜๊ณ  ์—ญํ•  ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

Lambda ํ•จ์ˆ˜ ๋งŒ๋“ค๊ธฐ

์„ค์ • ๊ฐ’
์ด๋ฆ„ workday_audit_to_s3
๋Ÿฐํƒ€์ž„ Python 3.13
์•„ํ‚คํ…์ฒ˜ x86_64
์‹คํ–‰ ์—ญํ•  WriteWorkdayToS3Role
  1. ํ•จ์ˆ˜๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด ์ฝ”๋“œ ํƒญ์„ ์—ด๊ณ  ์Šคํ…์„ ์‚ญ์ œํ•œ ํ›„ ์•„๋ž˜ ์ฝ”๋“œ (workday_audit_to_s3.py)๋ฅผ ๋ถ™์—ฌ๋„ฃ์Šต๋‹ˆ๋‹ค.

    #!/usr/bin/env python3
    
    import os, json, gzip, io, uuid, base64, datetime as dt, urllib.request, urllib.error
    import boto3
    
    WD_USER   = os.environ["WD_USER"]
    WD_PASS   = os.environ["WD_PASS"]
    WD_URL    = os.environ["WD_URL"]
    S3_BUCKET = os.environ["S3_BUCKET_NAME"]
    
    def fetch_report() -> bytes:
        credentials = f"{WD_USER}:{WD_PASS}".encode()
        auth_header = b"Basic " + base64.b64encode(credentials)
        req = urllib.request.Request(WD_URL, headers={"Authorization": auth_header.decode()})
        with urllib.request.urlopen(req, timeout=30) as r:
            return r.read()  # raw JSON bytes
    
    def upload(payload: bytes, ts: dt.datetime) -> None:
        key = f"{ts:%Y/%m/%d}/workday-audit-{uuid.uuid4()}.json.gz"
        buf = io.BytesIO()
        with gzip.GzipFile(fileobj=buf, mode="w") as gz:
            gz.write(payload)
        buf.seek(0)
        boto3.client("s3").upload_fileobj(buf, S3_BUCKET, key)
    
    def lambda_handler(event=None, context=None):
        now = dt.datetime.utcnow().replace(microsecond=0)
        data = fetch_report()
        upload(data, now)
        print(f"Uploaded Workday audit report ({len(data)} bytes raw)")
    
    if __name__ == "__main__":
        lambda_handler()
    
  2. ๊ตฌ์„ฑ > ํ™˜๊ฒฝ ๋ณ€์ˆ˜ > ์ˆ˜์ • > ์ƒˆ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ถ”๊ฐ€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

  3. ๋‹ค์Œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ๊ฐ’์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    ํ™˜๊ฒฝ ๋ณ€์ˆ˜

    ํ‚ค ์˜ˆ์‹œ ๊ฐ’
    WD_USER audit_s3_user
    WD_PASS Wrokday-Password
    WD_URL https://.../Audit_Trail_BP_JSON?format=json
    S3_BUCKET_NAME workday-audit-logs
  4. ํ•จ์ˆ˜๊ฐ€ ์ƒ์„ฑ๋œ ํ›„ ํ•ด๋‹น ํŽ˜์ด์ง€์— ๋จธ๋ฌด๋ฅด๊ฑฐ๋‚˜ Lambda > ํ•จ์ˆ˜ > yourโ€‘function์„ ์—ฝ๋‹ˆ๋‹ค.

  5. ๊ตฌ์„ฑ ํƒญ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  6. ์ผ๋ฐ˜ ๊ตฌ์„ฑ ํŒจ๋„์—์„œ ์ˆ˜์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  7. ์ œํ•œ ์‹œ๊ฐ„์„ 5๋ถ„ (300์ดˆ)์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ์ €์žฅ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

Lambda ํ•จ์ˆ˜ ์˜ˆ์•ฝ (EventBridge ์Šค์ผ€์ค„๋Ÿฌ)

  1. ๊ตฌ์„ฑ > ํŠธ๋ฆฌ๊ฑฐ > ํŠธ๋ฆฌ๊ฑฐ ์ถ”๊ฐ€ > EventBridge ์Šค์ผ€์ค„๋Ÿฌ > ๊ทœ์น™ ๋งŒ๋“ค๊ธฐ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋‹ค์Œ ๊ตฌ์„ฑ ์„ธ๋ถ€์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • ์ด๋ฆ„: daily-workday-audit export.
    • ์ผ์ • ํŒจํ„ด: ํฌ๋ก  ํ‘œํ˜„์‹
    • ํ‘œํ˜„์‹: 20 2 * * ? * (๋งค์ผ 02:20 UTC์— ์‹คํ–‰๋จ)
  3. ๋‚˜๋จธ์ง€๋Š” ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋‘๊ณ  ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

Workday ๊ฐ์‚ฌ ๋กœ๊ทธ๋ฅผ ์ˆ˜์ง‘ํ•˜๋„๋ก Google SecOps์—์„œ ํ”ผ๋“œ ๊ตฌ์„ฑ

  1. SIEM ์„ค์ •> ํ”ผ๋“œ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  2. + ์ƒˆ ํ”ผ๋“œ ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  3. ํ”ผ๋“œ ์ด๋ฆ„ ํ•„๋“œ์— ํ”ผ๋“œ ์ด๋ฆ„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค (์˜ˆ: Workday Audit Logs).
  4. ์†Œ์Šค ์œ ํ˜•์œผ๋กœ Amazon S3 V2๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  5. ๋กœ๊ทธ ์œ ํ˜•์œผ๋กœ Workday ๊ฐ์‚ฌ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  6. ์„œ๋น„์Šค ๊ณ„์ • ๊ฐ€์ ธ์˜ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  7. ๋‹ค์Œ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  8. ๋‹ค์Œ ์ž…๋ ฅ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๊ฐ’์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
    • S3 URI: ๋ฒ„ํ‚ท URI์ž…๋‹ˆ๋‹ค.
      • s3://workday-audit-logs/.
        • workday-audit-logs์„ ๋ฒ„ํ‚ท์˜ ์‹ค์ œ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.
    • ์†Œ์Šค ์‚ญ์ œ ์˜ต์…˜: ํ™˜๊ฒฝ์„ค์ •์— ๋”ฐ๋ผ ์‚ญ์ œ ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
    • ์ตœ๋Œ€ ํŒŒ์ผ ๊ธฐ๊ฐ„: ์ง€๋‚œ ์ผ์ˆ˜ ๋™์•ˆ ์ˆ˜์ •๋œ ํŒŒ์ผ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 180์ผ์ž…๋‹ˆ๋‹ค.
    • ์•ก์„ธ์Šค ํ‚ค ID: s3 ๋ฒ„ํ‚ท์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์šฉ์ž ์•ก์„ธ์Šค ํ‚ค์ž…๋‹ˆ๋‹ค.
    • ๋ณด์•ˆ ๋น„๋ฐ€ ์•ก์„ธ์Šค ํ‚ค: s3 ๋ฒ„ํ‚ท์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์šฉ์ž ๋ณด์•ˆ ๋น„๋ฐ€ ํ‚ค์ž…๋‹ˆ๋‹ค.
    • ์• ์…‹ ๋„ค์ž„์ŠคํŽ˜์ด์Šค: ์• ์…‹ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค.
    • ์ˆ˜์ง‘ ๋ผ๋ฒจ: ์ด ํ”ผ๋“œ์˜ ์ด๋ฒคํŠธ์— ์ ์šฉํ•  ๋ผ๋ฒจ์ž…๋‹ˆ๋‹ค.
  9. ๋‹ค์Œ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  10. ํ™•์ • ํ™”๋ฉด์—์„œ ์ƒˆ ํ”ผ๋“œ ๊ตฌ์„ฑ์„ ๊ฒ€ํ† ํ•œ ๋‹ค์Œ ์ œ์ถœ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

UDM ๋งคํ•‘ ํ…Œ์ด๋ธ”

๋กœ๊ทธ ํ•„๋“œ UDM ๋งคํ•‘ ๋…ผ๋ฆฌ
Account metadata.event_type '๊ณ„์ •' ํ•„๋“œ๊ฐ€ ๋น„์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด 'metadata.event_type' ํ•„๋“œ๊ฐ€ 'USER_RESOURCE_UPDATE_CONTENT'๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
Account principal.user.primaryId userid๋Š” grok ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ 'Account' ํ•„๋“œ์—์„œ ์ถ”์ถœ๋˜๊ณ  principal.user.primaryId์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
Account principal.user.primaryName ์‚ฌ์šฉ์ž ํ‘œ์‹œ ์ด๋ฆ„์€ grok ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ '๊ณ„์ •' ํ•„๋“œ์—์„œ ์ถ”์ถœ๋˜๊ณ  'principal.user.primaryName'์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
ActivityCategory metadata.event_type 'ActivityCategory' ํ•„๋“œ๊ฐ€ 'READ'์ธ ๊ฒฝ์šฐ 'metadata.event_type' ํ•„๋“œ๊ฐ€ 'RESOURCE_READ'๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. 'WRITE'์ธ ๊ฒฝ์šฐ 'RESOURCE_WRITTEN'์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
ActivityCategory metadata.product_event_type 'ActivityCategory' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
AffectedGroups target.user.group_identifiers 'AffectedGroups' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
Area target.resource.attribute.labels.area.value '์ง€์—ญ' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
AuthType extensions.auth.auth_details 'AuthType' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
AuthType extensions.auth.type 'AuthType' ํ•„๋“œ์—์„œ ํŠน์ • ๊ฐ’์— ๋”ฐ๋ผ UDM์— ์ •์˜๋œ ์—ฌ๋Ÿฌ ์ธ์ฆ ์œ ํ˜•์œผ๋กœ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
CFIPdeConexion src.domain.name 'CFIPdeConexion' ํ•„๋“œ๊ฐ€ ์œ ํšจํ•œ IP ์ฃผ์†Œ๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ 'src.domain.name'์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
CFIPdeConexion target.ip 'CFIPdeConexion' ํ•„๋“œ๊ฐ€ ์œ ํšจํ•œ IP ์ฃผ์†Œ์ธ ๊ฒฝ์šฐ 'target.ip'์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
ChangedRelationship metadata.description 'ChangedRelationship' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
ClassOfInstance target.resource.attribute.labels.class_instance.value 'ClassOfInstance' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
column18 about.labels.utub.value 'column18' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
CreatedBy principal.user.userid userid๋Š” grok ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ 'CreatedBy' ํ•„๋“œ์—์„œ ์ถ”์ถœ๋˜๊ณ  'principal.user.userid'์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
CreatedBy principal.user.user_display_name ์‚ฌ์šฉ์ž ํ‘œ์‹œ ์ด๋ฆ„์€ grok ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ 'CreatedBy' ํ•„๋“œ์—์„œ ์ถ”์ถœ๋˜๊ณ  'principal.user.user_display_name'์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
Domain about.domain.name '๋„๋ฉ”์ธ' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
EffectiveDate @timestamp 'yyyy-MM-dd HH:mm:ss.SSSZ' ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•œ ํ›„ '@timestamp'๋กœ ํŒŒ์‹ฑ๋ฉ๋‹ˆ๋‹ค.
EntryMoment @timestamp 'ISO8601' ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜๋œ ํ›„ '@timestamp'๋กœ ํŒŒ์‹ฑ๋ฉ๋‹ˆ๋‹ค.
EventType security_result.description 'EventType' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
Form target.resource.name '์–‘์‹' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
InstancesAdded about.resource.attribute.labels.instances_added.value 'InstancesAdded' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
InstancesAdded target.user.attribute.roles.instances_added.name 'InstancesAdded' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
InstancesRemoved about.resource.attribute.labels.instances_removed.value 'InstancesRemoved' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
InstancesRemoved target.user.attribute.roles.instances_removed.name 'InstancesRemoved' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
IntegrationEvent target.resource.attribute.labels.integration_event.value 'IntegrationEvent' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
IntegrationStatus security_result.action_details 'IntegrationStatus' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
IntegrationSystem target.resource.name 'IntegrationSystem' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
IP src.domain.name 'IP' ํ•„๋“œ๊ฐ€ ์œ ํšจํ•œ IP ์ฃผ์†Œ๊ฐ€ ์•„๋‹ˆ๋ฉด 'src.domain.name'์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
IP src.ip 'IP' ํ•„๋“œ๊ฐ€ ์œ ํšจํ•œ IP ์ฃผ์†Œ์ธ ๊ฒฝ์šฐ 'src.ip'์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
IsDeviceManaged additional.fields.additional1.value.string_value 'IsDeviceManaged' ํ•„๋“œ๊ฐ€ 'N'์ด๋ฉด ๊ฐ’์ด 'Successful'๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด '๋กœ๊ทธ์ธ ์‹คํŒจ ๋ฐœ์ƒ'์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
IsDeviceManaged additional.fields.additional2.value.string_value 'IsDeviceManaged' ํ•„๋“œ๊ฐ€ 'N'์ด๋ฉด ๊ฐ’์ด 'Successful'๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด 'Invalid Credentials'๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
IsDeviceManaged additional.fields.additional3.value.string_value 'IsDeviceManaged' ํ•„๋“œ๊ฐ€ 'N'์ด๋ฉด ๊ฐ’์ด 'Successful'๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด '๊ณ„์ • ์ž ๊น€'์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
IsDeviceManaged security_result.action_details 'IsDeviceManaged' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
OutputFiles about.file.full_path 'OutputFiles' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
Person principal.user.primaryId 'Person' ํ•„๋“œ๊ฐ€ 'INT'๋กœ ์‹œ์ž‘ํ•˜๋ฉด grok ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ userid๊ฐ€ ์ถ”์ถœ๋˜๊ณ  'principal.user.primaryId'์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
Person principal.user.primaryName 'Person' ํ•„๋“œ๊ฐ€ 'INT'๋กœ ์‹œ์ž‘ํ•˜๋ฉด grok ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ํ‘œ์‹œ ์ด๋ฆ„์ด ์ถ”์ถœ๋˜๊ณ  'principal.user.primaryName'์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
Person principal.user.user_display_name 'Person' ํ•„๋“œ๊ฐ€ 'INT'๋กœ ์‹œ์ž‘ํ•˜์ง€ ์•Š์œผ๋ฉด 'principal.user.user_display_name'์— ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
Person metadata.event_type 'Person' ํ•„๋“œ๊ฐ€ ๋น„์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด 'metadata.event_type' ํ•„๋“œ๊ฐ€ 'USER_RESOURCE_UPDATE_CONTENT'๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
ProcessedTransaction target.resource.attribute.creation_time 'dd/MM/yyyy HH:mm:ss,SSS (ZZZ)', 'dd/MM/yyyy, HH:mm:ss,SSS (ZZZ)' ๋˜๋Š” 'MM/dd/yyyy, HH:mm:ss.SSS A ZZZ' ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•œ ํ›„ 'target.resource.attribute.creation_time'์œผ๋กœ ํŒŒ์‹ฑ๋ฉ๋‹ˆ๋‹ค.
ProgramBy principal.user.userid 'ProgramBy' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
RecurrenceEndDate principal.resource.attribute.last_update_time 'yyyy-MM-dd' ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜๋œ ํ›„ 'principal.resource.attribute.last_update_time'์œผ๋กœ ํŒŒ์‹ฑ๋ฉ๋‹ˆ๋‹ค.
RecurrenceStartDate principal.resource.attribute.creation_time 'yyyy-MM-dd' ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜๋œ ํ›„ 'principal.resource.attribute.creation_time'์œผ๋กœ ํŒŒ์‹ฑ๋ฉ๋‹ˆ๋‹ค.
RequestName metadata.description 'RequestName' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
ResponseMessage security_result.summary 'ResponseMessage' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
RestrictedToEnvironment security_result.about.hostname 'RestrictedToEnvironment' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
RevokedSecurity security_result.outcomes.outcomes.value 'RevokedSecurity' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
RunFrequency principal.resource.attribute.labels.run_frequency.value 'RunFrequency' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
ScheduledProcess principal.resource.name 'ScheduledProcess' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
SecuredTaskExecuted target.resource.name 'SecuredTaskExecuted' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
SecureTaskExecuted metadata.event_type 'SecureTaskExecuted' ํ•„๋“œ์— 'Create'๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ 'metadata.event_type' ํ•„๋“œ๊ฐ€ 'USER_RESOURCE_CREATION'์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
SecureTaskExecuted target.resource.name 'SecureTaskExecuted' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
SentTime @timestamp 'ISO8601' ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜๋œ ํ›„ '@timestamp'๋กœ ํŒŒ์‹ฑ๋ฉ๋‹ˆ๋‹ค.
SessionId network.session_id 'SessionId' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
ShareBy target.user.userid 'ShareBy' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
SignOffTime additional.fields.additional4.value.string_value 'AuthFailMessage' ํ•„๋“œ ๊ฐ’์ด 'Enterprise Interface Builder' ํ‚ค์™€ ํ•จ๊ป˜ 'additional.fields' ๋ฐฐ์—ด ๋‚ด์— ๋ฐฐ์น˜๋ฉ๋‹ˆ๋‹ค.
SignOffTime metadata.description 'AuthFailMessage' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
SignOffTime metadata.event_type 'SignOffTime' ํ•„๋“œ๊ฐ€ ๋น„์–ด ์žˆ์œผ๋ฉด 'metadata.event_type' ํ•„๋“œ๊ฐ€ 'USER_LOGIN'์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด 'USER_LOGOUT'์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
SignOffTime principal.user.attribute.last_update_time 'ISO8601' ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜๋œ ํ›„ 'principal.user.attribute.last_update_time'์œผ๋กœ ํŒŒ์‹ฑ๋ฉ๋‹ˆ๋‹ค.
SignOnIp src.domain.name 'SignOnIp' ํ•„๋“œ๊ฐ€ ์œ ํšจํ•œ IP ์ฃผ์†Œ๊ฐ€ ์•„๋‹ˆ๋ฉด 'src.domain.name'์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
SignOnIp src.ip 'SignOnIp' ํ•„๋“œ๊ฐ€ ์œ ํšจํ•œ IP ์ฃผ์†Œ์ธ ๊ฒฝ์šฐ 'src.ip'์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
Status metadata.product_event_type '์ƒํƒœ' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
SystemAccount principal.user.email_addresses ์ด๋ฉ”์ผ ์ฃผ์†Œ๋Š” grok ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ 'SystemAccount' ํ•„๋“œ์—์„œ ์ถ”์ถœ๋˜๊ณ  'principal.user.email_addresses'์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
SystemAccount principal.user.primaryId userid๋Š” grok ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ 'SystemAccount' ํ•„๋“œ์—์„œ ์ถ”์ถœ๋˜๊ณ  'principal.user.primaryId'์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
SystemAccount principal.user.primaryName ์‚ฌ์šฉ์ž ํ‘œ์‹œ ์ด๋ฆ„์€ grok ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ 'SystemAccount' ํ•„๋“œ์—์„œ ์ถ”์ถœ๋˜๊ณ  'principal.user.primaryName'์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
SystemAccount src.user.userid ๋ณด์กฐ ์‚ฌ์šฉ์ž ID๋Š” grok ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ 'SystemAccount' ํ•„๋“œ์—์„œ ์ถ”์ถœ๋˜๊ณ  'src.user.userid'์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
SystemAccount src.user.user_display_name ๋ณด์กฐ ์‚ฌ์šฉ์ž ํ‘œ์‹œ ์ด๋ฆ„์€ grok ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ 'SystemAccount' ํ•„๋“œ์—์„œ ์ถ”์ถœ๋˜๊ณ  'src.user.user_display_name'์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
SystemAccount target.user.userid ํƒ€๊ฒŸ userid๋Š” grok ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ 'SystemAccount' ํ•„๋“œ์—์„œ ์ถ”์ถœ๋˜๊ณ  'target.user.userid'์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
Target target.user.user_display_name 'ํƒ€๊ฒŸ' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
Template about.resource.name 'ํ…œํ”Œ๋ฆฟ' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
Tenant target.asset.hostname 'ํ…Œ๋„ŒํŠธ' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
TlsVersion network.tls.version 'TlsVersion' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
Transaction security_result.action_details '๊ฑฐ๋ž˜' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
TransactionType security_result.summary 'TransactionType' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
TypeForm target.resource.resource_subtype 'TypeForm' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
UserAgent network.http.parsed_user_agent 'useragent' ํ•„ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 'UserAgent' ํ•„๋“œ์—์„œ ํŒŒ์‹ฑ๋ฉ๋‹ˆ๋‹ค.
UserAgent network.http.user_agent 'UserAgent' ํ•„๋“œ์—์„œ ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
WorkdayAccount target.user.user_display_name ์‚ฌ์šฉ์ž ํ‘œ์‹œ ์ด๋ฆ„์€ grok ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ 'WorkdayAccount' ํ•„๋“œ์—์„œ ์ถ”์ถœ๋˜๊ณ  'target.user.user_display_name'์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
WorkdayAccount target.user.userid userid๋Š” grok ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ 'WorkdayAccount' ํ•„๋“œ์—์„œ ์ถ”์ถœ๋˜๊ณ  'target.user.userid'์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
additional.fields.additional1.key 'FailedSignOn'์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
additional.fields.additional2.key 'InvalidCredentials'๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
additional.fields.additional3.key 'AccountLocked'๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
additional.fields.additional4.key 'Enterprise Interface Builder'๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
metadata.event_type ์ฒ˜์Œ์—๋Š” 'GENERIC_EVENT'๋กœ ์„ค์ •๋˜๊ณ  ๋‹ค๋ฅธ ํ•„๋“œ์™€ ๊ด€๋ จ๋œ ๋กœ์ง์— ๋”ฐ๋ผ ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค.
metadata.event_type ํŠน์ • ์ด๋ฒคํŠธ ์œ ํ˜•์˜ ๊ฒฝ์šฐ 'USER_CHANGE_PERMISSIONS'๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
metadata.event_type ํŠน์ • ์ด๋ฒคํŠธ ์œ ํ˜•์˜ ๊ฒฝ์šฐ 'RESOURCE_WRITTEN'์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
metadata.log_type 'WORKDAY_AUDIT'์œผ๋กœ ํ•˜๋“œ์ฝ”๋”ฉ๋ฉ๋‹ˆ๋‹ค.
metadata.product_name 'Enterprise Interface Builder'๋กœ ํ•˜๋“œ์ฝ”๋”ฉ๋ฉ๋‹ˆ๋‹ค.
metadata.vendor_name 'Workday'๋กœ ํ•˜๋“œ์ฝ”๋”ฉ๋ฉ๋‹ˆ๋‹ค.
principal.asset.category 'DeviceType' ํ•„๋“œ๊ฐ€ 'Phone'์ธ ๊ฒฝ์šฐ 'Phone'์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
principal.resource.resource_type 'ScheduledProcess' ํ•„๋“œ๊ฐ€ ๋น„์–ด ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ 'TASK'๋กœ ํ•˜๋“œ์ฝ”๋”ฉ๋ฉ๋‹ˆ๋‹ค.
security_result.action 'FailedSignOn', 'IsDeviceManaged', 'InvalidCredentials', 'AccountLocked' ํ•„๋“œ์˜ ๊ฐ’์— ๋”ฐ๋ผ 'ALLOW' ๋˜๋Š” 'FAIL'๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
security_result.summary 'FailedSignOn', 'IsDeviceManaged', 'InvalidCredentials', 'AccountLocked' ํ•„๋“œ์˜ ๊ฐ’์— ๋”ฐ๋ผ 'Successful' ๋˜๋Š” ํŠน์ • ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
target.resource.resource_type ํŠน์ • ์ด๋ฒคํŠธ ์œ ํ˜•์˜ ๊ฒฝ์šฐ 'TASK'๋กœ ํ•˜๋“œ์ฝ”๋”ฉ๋ฉ๋‹ˆ๋‹ค.
target.resource.resource_type 'TypeForm' ํ•„๋“œ๊ฐ€ ๋น„์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด 'DATASET'์œผ๋กœ ํ•˜๋“œ์ฝ”๋”ฉ๋ฉ๋‹ˆ๋‹ค.
message principal.user.email_addresses grok ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ 'message' ํ•„๋“œ์—์„œ ์ด๋ฉ”์ผ ์ฃผ์†Œ๋ฅผ ์ถ”์ถœํ•˜๊ณ  ํŠน์ • ํŒจํ„ด์ด ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ 'principal.user.email_addresses'์— ๋ณ‘ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
message src.user.userid 'event.idm.read_only_udm.principal.user.userid' ํ•„๋“œ๊ฐ€ 'message' ํ•„๋“œ์—์„œ ์ถ”์ถœ๋œ 'user_target'๊ณผ ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ ํ•„๋“œ๋ฅผ ์ง€์›๋‹ˆ๋‹ค.
message src.user.user_display_name 'event.idm.read_only_udm.principal.user.userid' ํ•„๋“œ๊ฐ€ 'message' ํ•„๋“œ์—์„œ ์ถ”์ถœ๋œ 'user_target'๊ณผ ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ ํ•„๋“œ๋ฅผ ์ง€์›๋‹ˆ๋‹ค.
message target.user.userid grok ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ 'message' ํ•„๋“œ์—์„œ userid๋ฅผ ์ถ”์ถœํ•˜๊ณ  ํŠน์ • ํŒจํ„ด์ด ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ 'target.user.userid'์— ๋งคํ•‘ํ•ฉ๋‹ˆ๋‹ค.

๋„์›€์ด ๋” ํ•„์š”ํ•˜์‹ ๊ฐ€์š”? ์ปค๋ฎค๋‹ˆํ‹ฐ ํšŒ์› ๋ฐ Google SecOps ์ „๋ฌธ๊ฐ€๋กœ๋ถ€ํ„ฐ ๋‹ต๋ณ€์„ ๋ฐ›์œผ์„ธ์š”.