יומנים לדוגמה של איחוד שירותי אימות הזהות של עומסי עבודה

בדף הזה אפשר לראות דוגמאות של יומני הביקורת שנוצרים כשמשתמשים באיחוד שירותי אימות הזהות של עומסי עבודה. עם איחוד שירותי אימות הזהות של עומסי עבודה, אפשר לאפשר לעומס עבודה מקומי או מרובה עננים (multi-cloud) לגשת למשאבים Google Cloud , בלי להשתמש במפתח של חשבון שירות.

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

יומנים להחלפת אסימון IdP באסימון מאוחד

אחרי שתבצעו הגדרת מאגר זהויות של כוח עבודה וספק זהויות (IdP), תוכלו ליצור אסימון עבור ה-IdP ולהמיר אותו באסימון מאוחד.

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

  • ממשק API לניהול זהויות והרשאות גישה (IAM) (הפעלת סוג היומן 'קריאת אדמין')
  • API של Security Token Service (הפעלת סוג היומן 'קריאת אדמין')

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

  • protoPayload.authenticationInfo.principalSubject: הנושא של אסימון IdP.
    • ב-Amazon Web Services (AWS), שדה זה מכיל את שם משאב Amazon‏(ARN) של חשבון המשתמש שבוצע עבורו אימות.
    • ב-Microsoft Azure, שדה זה מכיל את מזהה האובייקט של הזהות המנוהלת שצוינה כנושא אסימון Azure.
    • עבור שדות אחרים של OIDC IdPs, שדה זה מכיל את הערך של sub, או נושא, של הצהרה מאסימון ה-OIDC.
  • protoPayload.metadata.mapped_principal: נושא האסימון, באמצעות תחביר IAM כדי לזהות את חשבון המשתמש:

    principal://iam.googleapis.com/projects/project-number/locations/global/workloadIdentityPools/pool-id/subject/identifier
    
  • protoPayload.resourceName: ספק מאגר זהויות של כוח עבודה שאליו משויך האסימון.

הדוגמה הבאה מציגה רשומה ביומן הביקורת של בקשה להחלפת אסימון. בדוגמה זו, אסימון Microsoft Azure הוחלף באסימון מאוחד:

{
  "logName": "projects/my-project/logs/cloudaudit.googleapis.com%2Fdata_access",
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "authenticationInfo": {
      "principalSubject": "b6112abb-5791-4507-adb5-7e8cc306eb2e"
    },
    "metadata": {
      "mapped_principal": "principal://iam.googleapis.com/projects/1234567890123/locations/global/workloadIdentityPools/azure-pool/subject/a1234bcd-5678-9012-efa3-4b5cd678ef9a"
    },
    "methodName": "google.identity.sts.v1.SecurityTokenService.ExchangeToken",
    "resourceName": "projects/1234567890123/locations/global/workloadIdentityPools/azure-pool/providers/azure",
    "request": {
      "@type": "type.googleapis.com/google.identity.sts.v1.ExchangeTokenRequest",
      "grantType": "urn:ietf:params:oauth:grant-type:token-exchange"
    }
  },
  "resource": {
    "type": "audited_resource"
  }
}

יומנים עבור טענות נכונות (assertion) של SAML חתומות ומוצפנות

בקטע הזה מופיע תיאור של הרשומות ביומני הביקורת של Cloud ש-Security Token Service יוצר בניסיון לאמת טענות נכוֹנוּת (assertions) חתומות של SAML או לפענח טענות נכוֹנוּת (assertions) מוצפנות שנשלחות מה-IdP שלכם.

לאיחוד שירותי אימות הזהות של עומסי עבודה, הרשומה הרלוונטית ביומן נראית דומה לפלט הבא:

"keyInfo": [
  {
    "use": "verify"
    "fingerprint": "3C:B2:47:F8:A5:9A:8A:52:BD:1C:BC:96:B5:45:C1:8D:A7:F1:73:2D"
  },
  {
    "use": "decrypt"
    "resourceName": "//iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/WORKLOAD_POOL_NAME/providers/PROVIDER_NAME/keys/KEY_NAME"
  }
]

הפלט הזה כולל את הערכים הבאים:

  • fingerprint: הייצוג ההקסדצימלי של גיבוב (hash) SHA-256 של אישור ה-X.509 ששימש לאימות החתימה בפרטי הכניסה ל-SAML. האישור X.509 מחולץ מהמטא-נתונים של XML של ה-SAML, שמצורף לספק של מאגר הזהויות של כוח העבודה.
  • resourceName: שם המשאב של מאגר הזהויות של כוח העבודה ששימש לפענוח טענת הנכונות (assertion) המוצפנת של SAML. השדה הזה מוצג רק אם איחוד הזהויות מקבל תגובת SAML מוצפנת מה-IdP.

יומנים של איחוד X.509

בקטע הזה מופיע תיאור של הרשומות ביומני הביקורת של Cloud ש-Security Token Service יוצר בניסיון לאמת אישור לקוח של mTLS באמצעות מאגר אישורים מהימן שהוגדר מראש.

לאיחוד שירותי אימות הזהות של עומסי עבודה, הרשומה הרלוונטית ביומן נראית דומה לפלט הבא:

"keyInfo": [
  {
    "certificateType": "trust_anchor"
    "timeUntilExpiration": 3333405600s
    "fingerprintSha256": "e33f612a0e426692f29db2c7b17b9e3810ce13f09ad117c67e7227a84fd25ea5"
    "use": "verify"
  }

הפלט הזה כולל את הערכים הבאים:

  • certificateType: סוג האישור שמשתתף באימות של אישור הלקוח, שיכול להיות trust_anchor או intermediate_ca
  • timeUntilExpiration: הזמן שנותר בשניות עד לתפוגת האישור, כשמשתמשים בו באימות של שרשרת האישורים
  • fingerprintSha256: הייצוג ההקסדצימלי של גיבוב SHA-256 של אישור ה-X.509

יומנים ליצירה של פרטי כניסה לטווח קצר לחשבון שירות

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

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

  • protoPayload.authenticationInfo.principalSubject: הנושא של האסימון המאוחד.
  • resource.labels.email_id: חשבון השירות שעבורו נוצרו פרטי כניסה לטווח קצר.

הדוגמה הבאה מציגה רשומה ביומן הביקורת עבור בקשה ליצירת אסימון גישה מסוג OAuth 2.0 לטווח קצר עבור חשבון שירות. בדוגמה זו, הבקשה אומתה באמצעות פרטי כניסה מאוחדים, ופרטי הכניסה לטווח הקצר נוצרו עבור חשבון השירות my-service-account@my-project.iam.gserviceaccount.com:

{
  "logName": "projects/my-project/logs/cloudaudit.googleapis.com%2Fdata_access",
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "authenticationInfo": {
      "principalSubject": "principal://iam.googleapis.com/projects/1234567890123/locations/global/workloadIdentityPools/aws-pool/subject/012345678901"
    },
    "methodName": "GenerateAccessToken",
    "request": {
      "@type": "type.googleapis.com/google.iam.credentials.v1.GenerateAccessTokenRequest",
      "name": "projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com"
    },
    "resourceName": "projects/-/serviceAccounts/123456789012345678901"
  },
  "resource": {
    "labels": {
      "email_id": "my-service-account@my-project.iam.gserviceaccount.com",
      "project_id": "my-project",
      "unique_id": "123456789012345678901"
    },
    "type": "service_account"
  }
}

יומנים לאימות באמצעות פרטי כניסה של חשבון שירות שאליו בוצעה התחזות

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

חלק מה-methods שמפעילים עשויות ליצור יומני ביקורת. באופן כללי, רשומות אלו ביומן מציגות את הזהויות הבאות:

  • חשבון השירות שאליו פרטי הכניסה לטווח הקצר מתחזים
  • הזהות שיצרה את פרטי הכניסה לטווח קצר

לדוגמה, נניח שהמשתמש jamie@example.com יוצר אסימון מאוחד עבור הנושא principal://iam.googleapis.com/projects/1234567890123/locations/global/workloadIdentityPools/aws-pool/subject/jamie@example.com, ולאחר מכן משתמש באסימון המאוחד כדי ליצור פרטי כניסה לטווח קצר עבור חשבון השירות my-service-account@my-project.iam.gserviceaccount.com

לאחר מכן המשתמש יוצר נושא Pub/Sub חדש, באמצעות פרטי הכניסה לטווח הקצר כדי להתחזות לחשבון השירות. Pub/Sub יוצרת רשומת יומן שמזהה את חשבון השירות, וכן את הנושא של האסימון מה-IdP:

{
  "logName": "projects/my-project/logs/cloudaudit.googleapis.com%2Factivity",
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "authenticationInfo": {
      "principalEmail": "my-service-account@my-project.iam.gserviceaccount.com",
      "serviceAccountDelegationInfo": [
        {
          "principalSubject": "principal://iam.googleapis.com/projects/1234567890123/locations/global/workloadIdentityPools/aws-pool/subject/012345678901"
        }
      ]
    },
    "methodName": "google.pubsub.v1.Publisher.CreateTopic",
    "request": {
      "@type": "type.googleapis.com/google.pubsub.v1.Topic",
      "name": "projects/my-project/topics/my-topic"
    },
    "resourceName": "projects/my-project/topics/my-topic"
  },
  "resource": {
    "type": "pubsub_topic"
  }
}

המאמרים הבאים