שימוש במפתחות הצפנה בניהול הלקוח (CMEK)

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

אם אתם רוצים לשלוט במפתחות ההצפנה, אתם יכולים להשתמש במפתחות הצפנה בניהול הלקוח (CMEK) ב-Cloud KMS עם שירותים שמשולבים עם CMEK, כולל Eventarc. שימוש במפתחות Cloud KMS מאפשר לכם לשלוט ברמת ההגנה, במיקום, בלוח הזמנים של הרוטציה, בשימוש ובהרשאות הגישה, ובגבולות הקריפטוגרפיים. בנוסף, באמצעות Cloud KMS תוכלו לצפות ביומני ביקורת ולשלוט במחזורי החיים של המפתחות. במקום ש-Google תהיה הבעלים של מפתחות ההצפנה של המפתחות (KEK) הסימטריים שמגנים על הנתונים שלכם ותנהל אותם, אתם שולטים במפתחות האלה ומנהלים אותם ב-Cloud KMS.

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

מפתחות הצפנה בניהול הלקוח מאוחסנים כמפתחות תוכנה, באשכול Cloud HSM או באופן חיצוני באמצעות Cloud External Key Manager.

מה מוגן באמצעות CMEK

אתם יכולים להגדיר CMEK כדי להצפין את הודעות האירועים שעוברות דרך המשאבים המתקדמים הבאים של Eventarc:

  • MessageBus—אוטובוס Eventarc Advanced
  • Pipeline—צינור עיבוד נתונים של Eventarc Advanced
  • GoogleApiSource—משאב מתקדם של Eventarc שמייצג מינוי לאירועים ב-Google API באוטובוס מסוים

מידע נוסף מופיע במאמר סקירה כללית מתקדמת של Eventarc.

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

‫Cloud KMS ו-Eventarc הם שירותים אזוריים. האזור של מפתח Cloud KMS ושל משאב Eventarc Advanced המוגן חייב להיות זהה.

לפני שמתחילים

כדי להשתמש בתכונה הזו ב-Eventarc, אתם צריכים לבצע את הפעולות הבאות:

המסוף

  1. מפעילים את Cloud KMS API ואת Eventarc API.

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

    הפעלת ממשקי ה-API

  2. יצירת אוסף מפתחות
  3. יצירת מפתח לאוסף מפתחות ספציפי

gcloud

  1. מעדכנים את הרכיבים של gcloud.
    gcloud components update
  2. להפעיל את Cloud KMS API ואת Eventarc API בפרויקט שבו יאוחסנו מפתחות ההצפנה.
    gcloud services enable cloudkms.googleapis.com eventarc.googleapis.com
  3. יצירת אוסף מפתחות
  4. יצירת מפתח לאוסף מפתחות ספציפי

כדי לקבל מידע על כל הדגלים והערכים האפשריים, מריצים את הפקודה עם הדגל --help.

Terraform

  1. מפעילים את Cloud KMS API ואת Eventarc API בפרויקט שבו יאוחסנו מפתחות ההצפנה על ידי הגדרת המשאב google_project_service:

    resource "google_project_service" "apis" {
      for_each = toset([
        "cloudkms.googleapis.com",
        "eventarc.googleapis.com",
        "eventarcpublishing.googleapis.com"
      ])
      service            = each.key
      disable_on_destroy = false
    }
  2. יוצרים אוסף מפתחות ומפתח על ידי הגדרת המשאבים google_kms_key_ring ו-google_kms_crypto_key. לדוגמה:

    resource "random_id" "default" {
      byte_length = 8
    }
    
    # Create a Cloud KMS key ring
    resource "google_kms_key_ring" "default" {
      name     = "${random_id.default.hex}-example-keyring"
      location = "us-central1"
    }
    
    # Create a Cloud KMS key
    resource "google_kms_crypto_key" "default" {
      name            = "example-key"
      key_ring        = google_kms_key_ring.default.id
      rotation_period = "7776000s"
    }

מידע נוסף על שימוש ב-Terraform זמין במאמרי העזרה בנושא Terraform ב- Google Cloud.

מעניקים לחשבון השירות של Eventarc גישה למפתח

כדי לתת לחשבון השירות של Eventarc גישה למפתח Cloud KMS, צריך להוסיף את חשבון השירות כחשבון משתמש של המפתח ולהעניק לחשבון השירות את התפקיד Cloud KMS CryptoKey Encrypter/Decrypter:

המסוף

כשמפעילים CMEK באוטובוס או בצינור עיבוד נתונים באמצעות מסוף Google Cloud , מוצגת בקשה להעניק לחשבון השירות את התפקיד Cloud KMS CryptoKey Encrypter/Decrypter. מידע נוסף מופיע במאמר הזה בקטע הפעלת CMEK לאפיק או בקטע הפעלת CMEK לצינור.

gcloud

 gcloud kms keys add-iam-policy-binding KEY_NAME \
     --keyring KEY_RING \
     --location REGION \
     --member serviceAccount:SERVICE_AGENT_EMAIL \
     --role roles/cloudkms.cryptoKeyEncrypterDecrypter

מחליפים את מה שכתוב בשדות הבאים:

  • KEY_NAME: שם המפתח – לדוגמה, my-key
  • KEY_RING: השם של מחזיק המפתחות, למשל my-keyring
  • REGION: מיקום המפתח, לדוגמה, us-central1
  • SERVICE_AGENT_EMAIL: כתובת האימייל של חשבון השירות עם התפקיד eventarc.serviceAgent

    לדוגמה, service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com. מידע נוסף זמין במאמר בנושא סוכני שירות.

Terraform

  1. יוצרים את הזהות בשירות Eventarc על ידי הגדרת המשאב google_project_service_identity:

    # Generate service identity for Eventarc service
    resource "google_project_service_identity" "default" {
      provider   = google-beta
      project    = data.google_project.project.project_id
      service    = "eventarc.googleapis.com"
      depends_on = [google_project_service.apis]
    }
  2. מקצים את התפקיד Cloud KMS לחשבון השירות של Eventarc על ידי הגדרת המשאב google_kms_crypto_key_iam_member:

    # Grant service account access to Cloud KMS key
    resource "google_kms_crypto_key_iam_member" "default" {
      crypto_key_id = google_kms_crypto_key.default.id
      role          = "roles/cloudkms.cryptoKeyEncrypterDecrypter"
      member        = "serviceAccount:${google_project_service_identity.default.email}"
      depends_on    = [time_sleep.default]
    }

הערה: המשאב time_sleep מוסיף עיכוב כדי לאפשר הפצה של הרשאות של סוכני שירות ו-IAM.

הפעלת CMEK באוטובוס

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

המסוף

  1. במסוף Google Cloud , נכנסים לדף Eventarc > Bus.

    מעבר אל Bus

  2. אפשר ליצור אוטובוס או ללחוץ על שם האוטובוס כדי לעדכן אותו.

  3. בדף פרטי האוטובוס, לוחצים על עריכה.

  4. בדף Edit bus, בקטע Encryption, בוחרים באפשרות Cloud KMS key.

  5. ברשימה סוג המפתח, בוחרים שיטה לניהול המפתחות.

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

  6. בוחרים מפתח מהרשימה Select a Cloud KMS key.

  7. אופציונלי: כדי להזין ידנית את שם המשאב של המפתח, ברשימה Select a Cloud KMS key (בחירת מפתח Cloud KMS), לוחצים על Enter key manually (הזנת מפתח באופן ידני) ומזינים את שם המפתח בפורמט שצוין.

  8. אם מתבקשים, מקצים את התפקיד cloudkms.cryptoKeyEncrypterDecrypter לסוכן השירות של Eventarc.

  9. לוחצים על Save.

gcloud

משתמשים בפקודה gcloud eventarc message-buses update כדי להפעיל את CMEK באוטובוס:

gcloud eventarc message-buses update BUS_NAME \
    --location=REGION \
    --crypto-key=KEY

מחליפים את מה שכתוב בשדות הבאים:

  • BUS_NAME: המזהה או המזהה המוגדר במלואו של האוטובוס
  • REGION: a supported Eventarc Advanced location
  • KEY: השם המלא של מפתח Cloud KMS בפורמט projects/PROJECT_NAME/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME

    הREGION של המפתח צריך להיות זהה למיקום האוטובוס שרוצים להגן עליו.

Terraform

כדי להפעיל CMEK באוטובוס, צריך להגדיר את המשאב google_eventarc_message_bus. לדוגמה:

# Enable CMEK for an Eventarc Advanced bus
resource "google_eventarc_message_bus" "default" {
  location        = "us-central1"
  message_bus_id  = "example-bus"
  crypto_key_name = google_kms_crypto_key.default.id
  depends_on      = [google_kms_crypto_key_iam_member.default]
}

אימות השימוש ב-Cloud KMS

מוודאים שהאוטובוס תואם עכשיו ל-CMEK.

המסוף

  1. במסוף Google Cloud , נכנסים לדף Eventarc > Bus.

    מעבר אל Bus

  2. לוחצים על שם האוטובוס שהגנתם עליו באמצעות CMEK.

  3. בדף Bus details, הסטטוס Encryption מציין את מפתח ההצפנה בניהול הלקוח שנמצא בשימוש. אפשר ללחוץ על המפתח כדי לעבור אליו ב-Security Command Center.

    אחרת, הודעת הסטטוס היא Event messages encrypted using Google-managed encryption keys.

gcloud

משתמשים בפקודה gcloud eventarc message-buses describe כדי לתאר את האוטובוס:

 gcloud eventarc message-buses describe BUS_NAME \
     --location=REGION

הפלט אמור להיראות כך:

 cryptoKeyName: projects/PROJECT_ID/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
 name: projects/PROJECT_ID/locations/REGION/messageBuses/BUS_NAME
 updateTime: '2022-06-28T17:24:56.365866104Z'

הערך cryptoKeyName מציג את מפתח Cloud KMS שבו נעשה שימוש באוטובוס.

Terraform

כדי לאשר את מפתח ה-CMEK, אפשר להשתמש בפקודה state show של Terraform.

terraform state show google_eventarc_message_bus.default

הפלט אמור להיראות כך:

resource "google_eventarc_message_bus" "default" {
    create_time           = "2026-03-02T21:24:11.493277339Z"
    crypto_key_name       = "projects/PROJECT_ID/locations/us-central1/keyRings/adffca5e8fbc2cca-example-keyring/cryptoKeys/example-key"
    effective_annotations = {}
    effective_labels      = {
        "goog-terraform-provisioned" = "true"
    }
    id                    = "projects/PROJECT_ID/locations/us-central1/messageBuses/example-bus"
    location              = "us-central1"
    message_bus_id        = "example-bus"
    name                  = "projects/PROJECT_ID/locations/us-central1/messageBuses/example-bus"
    project               = "PROJECT_ID"
    terraform_labels      = {
        "goog-terraform-provisioned" = "true"
    }
    uid                   = "771501be-36ac-4336-93e3-f04604e2523e"
    update_time           = "2026-03-02T21:24:29.933105970Z"

    logging_config {
        log_severity = "NONE"
    }
}

השבתת CMEK באוטובוס

אפשר להשבית את ההגנה באמצעות CMEK שמשויכת לאוטובוס. האירועים שנשלחים דרך האוטובוס עדיין מוגנים על ידי Google-owned and Google-managed encryption keys.

המסוף

  1. במסוף Google Cloud , נכנסים לדף Eventarc > Bus.

    מעבר אל Bus

  2. לוחצים על שם האוטובוס.

  3. בדף פרטי האוטובוס, לוחצים על עריכה.

  4. בדף Edit bus, בשדה Encryption, בוחרים באפשרות Google-managed encryption key.

  5. לוחצים על Save.

gcloud

משתמשים בפקודה gcloud eventarc message-buses update כדי להשבית את CMEK באוטובוס:

gcloud eventarc message-buses update BUS_NAME \
    --location=REGION \
    --clear-crypto-key

Terraform

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

  # Disable CMEK for an Eventarc Advanced bus
  resource "google_eventarc_message_bus" "default" {
    location        = "us-central1"
    message_bus_id  = "example-bus"
  }

הפעלת CMEK לצינור עיבוד נתונים

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

המסוף

  1. במסוף Google Cloud , נכנסים לדף Eventarc > Pipelines.

    מעבר אל Pipelines

  2. אפשר ליצור צינור, או ללחוץ על שם הצינור אם מעדכנים צינור קיים.

  3. בדף פרטי צינור, לוחצים על עריכה.

  4. בדף Edit pipeline, בקטע Encryption, בוחרים באפשרות Cloud KMS key.

  5. ברשימה סוג המפתח, בוחרים שיטה לניהול המפתחות.

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

  6. בוחרים מפתח מהרשימה Select a Cloud KMS key.

  7. אופציונלי: כדי להזין ידנית את שם המשאב של המפתח, ברשימה Select a Cloud KMS key, לוחצים על Enter key manually ומזינים את שם המפתח בפורמט שצוין.

  8. אם מתבקשים, מקצים את התפקיד cloudkms.cryptoKeyEncrypterDecrypter לסוכן השירות של Eventarc.

  9. לוחצים על Save.

gcloud

משתמשים בפקודה gcloud eventarc pipelines update כדי להפעיל את CMEK עבור צינור:

 gcloud eventarc pipelines update PIPELINE_NAME \
     --location=REGION \
     --crypto-key=KEY

מחליפים את מה שכתוב בשדות הבאים:

  • PIPELINE_NAME: המזהה או המזהה המלא של הצינור
  • REGION: מיקום נתמך של Eventarc Advanced
  • KEY: השם המלא של מפתח Cloud KMS בפורמט projects/PROJECT_NAME/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME

    הREGION של המפתח צריך להיות זהה למיקום של צינור הנתונים שרוצים להגן עליו.

Terraform

כדי להפעיל CMEK בצינור עיבוד הנתונים, צריך להגדיר את המשאב google_eventarc_pipeline. לדוגמה:

# Enable CMEK for an Eventarc Advanced pipeline
resource "google_eventarc_pipeline" "default" {
  location    = "us-central1"
  pipeline_id = "example-pipeline"
  destinations {
    http_endpoint {
      uri = google_cloud_run_v2_service.default.uri
    }
    authentication_config {
      google_oidc {
        service_account = google_service_account.default.email
      }
    }
  }
  crypto_key_name = google_kms_crypto_key.default.id
  depends_on      = [google_kms_crypto_key_iam_member.default]
}

אימות השימוש ב-Cloud KMS

מוודאים שהצינור עכשיו תואם ל-CMEK.

המסוף

  1. במסוף Google Cloud , נכנסים לדף Eventarc > Pipelines.

    מעבר אל Pipelines

  2. לוחצים על שם צינור הנתונים שהגנתם עליו באמצעות CMEK.

  3. בדף Pipeline details, הסטטוס Encryption מציין את מפתח ההצפנה בניהול הלקוח שנמצא בשימוש. אפשר ללחוץ על המפתח כדי לעבור אליו ב-Security Command Center.

    אחרת, הודעת הסטטוס היא Event messages encrypted using Google-managed encryption keys.

gcloud

משתמשים בפקודה gcloud eventarc pipelines describe כדי לאמת את CMEK עבור צינור העיבוד:

 gcloud eventarc pipelines describe PIPELINE_NAME \
     --location=REGION

הפלט אמור להיראות כך:

 createTime: '2022-06-28T18:05:52.403999904Z'
 cryptoKeyName: projects/PROJECT_ID/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
 destinations: ...
 name: projects/PROJECT_ID/locations/REGION/pipelines/PIPELINE_NAME
 uid: 5ea277f9-b4b7-4e7f-a8e0-6ca9d7204fa3
 updateTime: '2022-06-28T18:09:18.650727516Z'

הערך cryptoKeyName מציג את מפתח Cloud KMS שבו נעשה שימוש בצינור.

Terraform

כדי לאשר את מפתח ה-CMEK, אפשר להשתמש בפקודה state show של Terraform.

terraform state show google_eventarc_pipeline.default

הפלט אמור להיראות כך:

resource "google_eventarc_pipeline" "default" {
    create_time           = "2026-03-02T21:24:32.651373287Z"
    crypto_key_name       = "projects/PROJECT_ID/locations/us-central1/keyRings/adffca5e8fbc2cca-example-keyring/cryptoKeys/example-key"
    effective_annotations = {}
    effective_labels      = {
        "goog-terraform-provisioned" = "true"
    }
    id                    = "projects/PROJECT_ID/locations/us-central1/pipelines/example-pipeline"
    location              = "us-central1"
    name                  = "projects/PROJECT_ID/locations/us-central1/pipelines/example-pipeline"
    pipeline_id           = "example-pipeline"
    project               = "PROJECT_ID"
    terraform_labels      = {
        "goog-terraform-provisioned" = "true"
    }
    uid                   = "124e444d-55ca-4c99-8529-395bda80c82b"
    update_time           = "2026-03-02T21:28:26.699657974Z"

    destinations {
        authentication_config {
            google_oidc {
                service_account = "eventarc-advanced-sa@PROJECT_ID.iam.gserviceaccount.com"
            }
        }
        http_endpoint {
            uri = "https://example-service-hk27nrrura-uc.a.run.app"
        }
    }

    retry_policy {
        max_attempts    = 5
        max_retry_delay = "60s"
        min_retry_delay = "1s"
    }
}

השבתת CMEK בצינור עיבוד נתונים

אפשר להשבית את ההגנה באמצעות CMEK שמשויכת לצינור עיבוד נתונים. האירועים שמועברים דרך צינור עיבוד הנתונים עדיין מוגנים על ידי Google-owned and Google-managed encryption keys.

המסוף

  1. במסוף Google Cloud , נכנסים לדף Eventarc > Pipelines.

    מעבר אל Pipelines

  2. לוחצים על שם הצינור.

  3. בדף פרטי צינור, לוחצים על עריכה.

  4. בדף Edit pipeline, בשדה Encryption, בוחרים באפשרות Google-managed encryption key.

  5. לוחצים על Save.

gcloud

משתמשים בפקודה gcloud eventarc pipelines update כדי להשבית את CMEK עבור צינור העיבוד:

gcloud eventarc pipelines update PIPELINE_NAME \
    --location=REGION \
    --clear-crypto-key

Terraform

כדי לעדכן את צינור העיבוד במקום, מוחקים את הערך crypto_key_name ולא מציינים אותו בקובץ התצורה של Terraform. לדוגמה:

  # Disable CMEK for an Eventarc Advanced pipeline
  resource "google_eventarc_pipeline" "default" {
    location    = "us-central1"
    pipeline_id = "example-pipeline"
    destinations {
      http_endpoint {
        uri = google_cloud_run_v2_service.default.uri
      }
      authentication_config {
        google_oidc {
          service_account = google_service_account.default.email
        }
      }
    }
  }

הפעלת CMEK למקורות של Google API

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

המסוף

  1. במסוף Google Cloud , נכנסים לדף Eventarc > Bus.

    מעבר אל Bus

  2. אפשר ליצור אוטובוס או ללחוץ על שם האוטובוס כדי לעדכן אותו.

  3. בדף פרטי האוטובוס, לוחצים על עריכה.

  4. כדי להוסיף מקור הודעות, לוחצים על הוספת מקור.

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

  5. בחלונית הוספת מקור הודעות, בשדה של ספק ההודעות של Google API, מאשרים את ברירת המחדל google-api-source.

  6. בקטע הצפנה, בוחרים באפשרות מפתח Cloud KMS ופועלים לפי השלבים הבאים:

    1. ברשימה סוג המפתח, בוחרים שיטה לניהול המפתחות.

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

    2. בקטע Select a Cloud KMS key, בוחרים מפתח.

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

    3. אופציונלי: כדי להזין ידנית את שם המשאב של המפתח, ברשימה Select a Cloud KMS key (בחירת מפתח Cloud KMS), לוחצים על Enter key manually (הזנת מפתח באופן ידני) ומזינים את שם המפתח בפורמט שצוין.

    4. אם מתבקשים, מקצים את התפקיד cloudkms.cryptoKeyEncrypterDecrypter לסוכן השירות של Eventarc.

  7. לוחצים על יצירה.

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

    רק אירועים ממשאבים באותו Google Cloud פרויקט כמו GoogleApiSource מתפרסמים. מידע נוסף זמין במאמר בנושא פרסום אירועים ממקורות של Google.

  8. לוחצים על Save.

gcloud

משתמשים בפקודה gcloud eventarc google-api-sources update כדי להפעיל את CMEK עבור משאב GoogleApiSource:

gcloud eventarc google-api-sources update GOOGLE_API_SOURCE_NAME \
    --location=REGION \
    --crypto-key=KEY

מחליפים את מה שכתוב בשדות הבאים:

  • GOOGLE_API_SOURCE_NAME: המזהה או המזהה המוגדר במלואו של משאב GoogleApiSource
  • REGION: a supported Eventarc Advanced location
  • KEY: השם המלא של מפתח Cloud KMS בפורמט projects/PROJECT_NAME/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME

    REGION המפתח צריך להיות זהה למיקום המשאב שרוצים להגן עליו.

Terraform

כדי להפעיל CMEK במקורות Google API, צריך להגדיר את המשאב google_eventarc_google_api_source. לדוגמה:

# Enable CMEK for Google API sources
resource "google_eventarc_google_api_source" "default" {
  location             = "us-central1"
  google_api_source_id = "example-google-api-source"
  destination          = google_eventarc_message_bus.default.id
  crypto_key_name      = google_kms_crypto_key.default.id
  depends_on           = [google_kms_crypto_key_iam_member.default]
}

אימות השימוש ב-Cloud KMS

מוודאים שהמשאב תואם עכשיו ל-CMEK.

המסוף

  1. במסוף Google Cloud , נכנסים לדף Eventarc > Bus.

    מעבר אל Bus

  2. לוחצים על שם האוטובוס שהגנתם על מקור ההודעות שלו באמצעות מפתח Cloud KMS.

  3. בדף פרטי האוטובוס, לוחצים על עריכה.

    המפתח שמצפין את מקור ההודעה אמור להופיע. אפשר ללחוץ על המפתח כדי לעבור אליו ב-Security Command Center.

    אחרת, הודעת הסטטוס של ההצפנה היא Event messages encrypted using Google-managed encryption keys.

gcloud

משתמשים בפקודה gcloud eventarc google-api-sources describe כדי לאמת את CMEK עבור משאב GoogleApiSource:

  gcloud eventarc google-api-sources describe GOOGLE_API_SOURCE_NAME \
      --location=REGION

הפלט אמור להיראות כך:

  createTime: '2022-06-28T18:05:52.403999904Z'
  cryptoKeyName: projects/PROJECT_ID/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
  destination: projects/PROJECT_ID/locations/REGION/messageBuses/BUS_NAME
  name: projects/PROJECT_ID/locations/REGION/googleApiSources/GOOGLE_API_SOURCE_NAME
  uid: 5ea277f9-b4b7-4e7f-a8e0-6ca9d7204fa3
  updateTime: '2022-06-28T18:09:18.650727516Z'

הערך cryptoKeyName מציג את המפתח של Cloud KMS ששימש למשאב.

Terraform

כדי לאשר את מפתח ה-CMEK, אפשר להשתמש בפקודה state show של Terraform.

terraform state show google_eventarc_google_api_source.default

הפלט אמור להיראות כך:

resource "google_eventarc_google_api_source" "default" {
    create_time           = "2026-03-02T21:24:32.019246933Z"
    crypto_key_name       = "projects/PROJECT_ID/locations/us-central1/keyRings/adffca5e8fbc2cca-example-keyring/cryptoKeys/example-key"
    destination           = "projects/PROJECT_ID/locations/us-central1/messageBuses/example-bus"
    effective_annotations = {}
    effective_labels      = {
        "goog-terraform-provisioned" = "true"
    }
    google_api_source_id  = "example-google-api-source"
    id                    = "projects/PROJECT_ID/locations/us-central1/googleApiSources/example-google-api-source"
    location              = "us-central1"
    name                  = "projects/PROJECT_ID/locations/us-central1/googleApiSources/example-google-api-source"
    project               = "PROJECT_ID"
    terraform_labels      = {
        "goog-terraform-provisioned" = "true"
    }
    uid                   = "5c79b6e1-8377-48bd-b5d1-61f04ec07e29"
    update_time           = "2026-03-02T21:24:38.051947964Z"

    logging_config {
        log_severity = "NONE"
    }
}

השבתת CMEK למקורות של Google API

אפשר להשבית את ההגנה באמצעות CMEK שמשויכת למקורות של Google API. האירועים שנאספים דרך משאב GoogleApiSource עדיין מוגנים על ידי Google-owned and Google-managed encryption keys.

המסוף

  1. במסוף Google Cloud , נכנסים לדף Eventarc > Bus.

    מעבר אל Bus

  2. לוחצים על שם האוטובוס שהגנתם על מקור ההודעות שלו באמצעות CMEK.

  3. בדף פרטי האוטובוס, לוחצים על עריכה.

  4. כדי למחוק את מקור ההודעה שמוצפן באמצעות מפתח של Cloud KMS, לוחצים על מחיקת משאב.

  5. אם צריך, מוסיפים מחדש את מקור ההודעה.

gcloud

משתמשים בפקודה gcloud eventarc google-api-sources update כדי להשבית את CMEK עבור משאב GoogleApiSource:

gcloud eventarc google-api-sources update GOOGLE_API_SOURCE_NAME \
    --location=REGION \
    --clear-crypto-key

Terraform

כדי לעדכן את משאב GoogleApiSource במקום, מוחקים את הערך crypto_key_name ולא מציינים אותו בקובץ התצורה של Terraform. לדוגמה:

  # Disable CMEK for Google API sources
  resource "google_eventarc_google_api_source" "default" {
    location             = "us-central1"
    google_api_source_id = "example-google-api-source"
    destination          = google_eventarc_message_bus.default.id
  }

החלה של מדיניות הארגון ל-CMEK

‫Eventarc משולב עם שני אילוצים של מדיניות הארגון כדי לוודא שנעשה שימוש ב-CMEK בכל הארגון:

  • התג constraints/gcp.restrictNonCmekServices משמש לדרישה של הגנה באמצעות CMEK.
  • constraints/gcp.restrictCmekCryptoKeyProjects משמש להגבלת המפתחות ב-Cloud KMS שמשמשים להגנה באמצעות CMEK.

השילוב הזה מאפשר לכם לציין את דרישות התאימות להצפנה הבאות עבור משאבי Eventarc בארגון שלכם:

שיקולים בהחלת מדיניות הארגון

לפני שמחילים מדיניות ארגונית של CMEK, חשוב להביא בחשבון את הנקודות הבאות.

  • הכנה לעיכוב בהפצה

    אחרי שמגדירים או מעדכנים מדיניות ארגונית, יכולות לחלוף עד 15 דקות עד שהמדיניות החדשה תיכנס לתוקף.

  • שיקולים לגבי משאבים קיימים

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

  • אימות ההרשאות הנדרשות להגדרת מדיניות הארגון

    יכול להיות שיהיה קשה לקבל את ההרשאה להגדיר או לעדכן את מדיניות הארגון לצורך בדיקות. צריך לקבל את התפקיד 'אדמין מדיניות ארגונית', שאפשר לתת רק ברמת הארגון (ולא ברמת הפרויקט או התיקייה).

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

דרישה להשתמש במפתחות CMEK למשאבי Eventarc חדשים

אתם יכולים להשתמש באילוץ constraints/gcp.restrictNonCmekServices כדי לדרוש שימוש במפתחות CMEK להגנה על משאבי Eventarc חדשים בארגון.

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

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

המסוף

  1. במסוף Google Cloud , נכנסים לדף מדיניות הארגון.

    מעבר למדיניות הארגון

  2. משתמשים בFilter כדי לחפש את האילוץ הבא:

    constraints/gcp.restrictNonCmekServices
    
  3. בעמודה Name (שם), לוחצים על Restrict which services may create resources without CMEK (הגבלת השירותים שיכולים ליצור משאבים ללא CMEK).

  4. לוחצים על ניהול המדיניות.

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

  6. בקטע כללים, לוחצים על הוספת כלל.

  7. ברשימה ערכי מדיניות, בוחרים באפשרות בהתאמה אישית.

  8. ברשימה Policy type (סוג המדיניות), בוחרים באפשרות Deny (דחייה).

  9. בשדה ערכים מותאמים אישית, מזינים את הערכים הבאים:

    is:eventarc.googleapis.com
    
  10. לוחצים על סיום ואז על הגדרת מדיניות.

gcloud

  1. יוצרים קובץ זמני /tmp/policy.yaml לאחסון המדיניות:

      name: projects/PROJECT_ID/policies/gcp.restrictNonCmekServices
      spec:
        rules:
        - values:
            deniedValues:
            - is:eventarc.googleapis.com

    מחליפים את PROJECT_ID במזהה הפרויקט שבו רוצים להחיל את האילוץ הזה.

  2. מריצים את הפקודה org-policies set-policy:

    gcloud org-policies set-policy /tmp/policy.yaml

כדי לוודא שהמדיניות הוחלה בהצלחה, אפשר לנסות ליצור Eventarc Advanced בפרויקט. התהליך ייכשל אם לא תציינו מפתח Cloud KMS.

הגבלת מפתחות Cloud KMS לפרויקט Eventarc

אפשר להשתמש באילוץ constraints/gcp.restrictCmekCryptoKeyProjects כדי להגביל את מפתחות Cloud KMS שבהם אפשר להשתמש כדי להגן על משאב בפרויקט Eventarc.

לדוגמה, אפשר לציין כלל שדומה לכלל הבא: "לגבי משאבי Eventarc רלוונטיים ב-projects/my-company-data-project, מפתחות Cloud KMS שמשמשים בפרויקט הזה חייבים להגיע מ-projects/my-company-central-keys או מ-projects/team-specific-keys".

המסוף

  1. במסוף Google Cloud , נכנסים לדף מדיניות הארגון.

    מעבר למדיניות הארגון

  2. משתמשים בFilter כדי לחפש את האילוץ הבא:

    constraints/gcp.restrictCmekCryptoKeyProjects
    
  3. בעמודה 'שם', לוחצים על הגבלת הפרויקטים שיכולים לספק מפתחות הצפנה של KMS ל-CMEK.

  4. לוחצים על ניהול המדיניות.

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

  6. בקטע כללים, לוחצים על הוספת כלל.

  7. ברשימה ערכי מדיניות, בוחרים באפשרות בהתאמה אישית.

  8. ברשימה סוג המדיניות, בוחרים באפשרות הרשאה.

  9. בשדה ערכים מותאמים אישית, מזינים את הערכים הבאים:

    under:projects/KMS_PROJECT_ID
    

    מחליפים את הערך KMS_PROJECT_ID במזהה של הפרויקט שבו נמצאים מפתחות Cloud KMS שרוצים להשתמש בהם.

    לדוגמה, under:projects/my-kms-project.

  10. לוחצים על סיום ואז על הגדרת מדיניות.

gcloud

  1. יוצרים קובץ זמני /tmp/policy.yaml לאחסון המדיניות:

      name: projects/PROJECT_ID/policies/gcp.restrictCmekCryptoKeyProjects
      spec:
        rules:
        - values:
            allowedValues:
            - under:projects/KMS_PROJECT_ID

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: מזהה הפרויקט שבו רוצים להחיל את האילוץ הזה.
    • KMS_PROJECT_ID: המזהה של הפרויקט שבו נמצאים מפתחות Cloud KMS שרוצים להשתמש בהם.
  2. מריצים את הפקודה org-policies set-policy:

    gcloud org-policies set-policy /tmp/policy.yaml

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

השבתה והפעלה של מפתחות Cloud KMS

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

כשאין ל-Eventarc גישה למפתחות Cloud KMS, ניתוב האירועים נכשל עם שגיאות FAILED_PRECONDITION ומסירת האירועים נפסקת. אפשר להפעיל מפתח במצב מושבת כדי לקבל שוב גישה לנתונים המוצפנים.

השבתת מפתחות Cloud KMS

כדי למנוע מ-Eventarc להשתמש במפתח להצפנה או לפענוח של נתוני האירועים, אפשר לבצע אחת מהפעולות הבאות:

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

הפעלה מחדש של מפתחות Cloud KMS

כדי לחדש את העברת האירועים והניתוב שלהם, צריך לשחזר את הגישה ל-Cloud KMS.

רישום ביומן הביקורת ופתרון בעיות

‫Cloud KMS יוצר יומני ביקורת כשמפעילים או משביתים מפתחות, או כשמשתמשים בהם במשאבים מתקדמים של Eventarc כדי להצפין ולפענח הודעות. מידע נוסף מופיע במאמר בנושא רישום ביומן של ביקורת ב-Cloud KMS.

כדי לפתור בעיות שאתם עשויים להיתקל בהן כשאתם משתמשים ב-Cloud KMS עם Eventarc, תוכלו לעיין במאמר בנושא פתרון בעיות.

כדי לפתור בעיות שאתם עשויים להיתקל בהן כשאתם משתמשים במפתחות שמנוהלים באופן חיצוני דרך Cloud External Key Manager ‏ (Cloud EKM), תוכלו לעיין במאמר הפניה לשגיאות ב-Cloud EKM.

תמחור

השילוב של האוטובוס לא כרוך בעלויות נוספות מעבר לפעולות המרכזיות, שמחויבות בפרויקט Google Cloud . השימוש ב-CMEK בצינור גורר חיובים על גישה לשירות Cloud KMS על סמך התמחור של Pub/Sub.

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

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