כברירת מחדל, 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.
Cloud KMS יוצר יומני ביקורת כשמפעילים או משביתים מפתחות, או כשמשתמשים בהם במשאבים מתקדמים של Eventarc כדי להצפין ולפענח הודעות. מידע נוסף מופיע במאמר בנושא רישום ביומן של ביקורת ב-Cloud KMS.
מה מוגן באמצעות CMEK
אתם יכולים להגדיר CMEK לערוץ שמשמש את Eventarc Standard ולהצפין את האירועים שעוברים דרך הערוץ. הפעלת ערוץ עם CMEK מגנה על הנתונים שמשויכים אליו באמצעות מפתח הצפנה שרק לכם יש גישה אליו.
כשמפעילים CMEK לערוץ Google בפרויקט Google Cloud , כל הטריגרים של Eventarc Standard לסוגי אירועים של Google באותו פרויקט ובאותו אזור מוצפנים באופן מלא באמצעות מפתח ה-CMEK הזה. אי אפשר להחיל מפתחות CMEK על כל טריגר בנפרד.
לפני שמתחילים
לפני שמשתמשים בתכונה הזו ב-Eventarc, כדאי:
המסוף
-
מפעילים את Cloud KMS API ואת Eventarc API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידים - יצירת אוסף מפתחות
- יצירת מפתח לאוסף מפתחות ספציפי
gcloud
- מעדכנים את הרכיבים של
gcloud.gcloud components update
- להפעיל את Cloud KMS API ואת Eventarc API בפרויקט שבו יאוחסנו מפתחות ההצפנה.
gcloud services enable cloudkms.googleapis.com eventarc.googleapis.com
- יצירת אוסף מפתחות
- יצירת מפתח לאוסף מפתחות ספציפי
כדי לקבל מידע על כל הדגלים והערכים האפשריים, מריצים את הפקודה עם הדגל --help.
Terraform
מפעילים את Cloud KMS API ואת Eventarc API בפרויקט שבו יאוחסנו מפתחות ההצפנה על ידי הגדרת המשאב
google_project_service:יוצרים אוסף מפתחות ומפתח על ידי הגדרת המשאבים
google_kms_key_ringו-google_kms_crypto_key:
מידע נוסף על שימוש ב-Terraform זמין במאמרי העזרה בנושא Terraform ב- Google Cloud.
שימו לב ש-Cloud KMS ו-Eventarc הם שירותים אזוריים. האזור של מפתח Cloud KMS והאזור של ערוץ Eventarc המוגן חייבים להיות זהים.
מעניקים לחשבון השירות של Eventarc גישה למפתח
כדי לתת לחשבון השירות של Eventarc גישה למפתח Cloud KMS, צריך להוסיף את חשבון השירות כחשבון משתמש של המפתח ולהעניק לחשבון השירות את התפקיד Cloud KMS CryptoKey Encrypter/Decrypter:
המסוף
כשמפעילים CMEK לערוץ של Google או של צד שלישי דרך המסוף, מוצגת בקשה להעניק לחשבון השירות את התפקיד Cloud KMS CryptoKey Encrypter/Decrypter. מידע נוסף מופיע במאמר הזה בקטע הפעלת CMEK לסוגי אירועים של Google או הפעלת CMEK לערוץ אירועים של צד שלישי.
gcloud
gcloud kms keys add-iam-policy-binding KEY_NAME \ --keyring RING_NAME \ --location LOCATION \ --member serviceAccount:SERVICE_AGENT_EMAIL \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
מחליפים את מה שכתוב בשדות הבאים:
-
KEY_NAME: השם של המפתח. לדוגמה,my-key. -
RING_NAME: השם של אוסף המפתחות. לדוגמה,my-keyring. -
LOCATION: המיקום של המפתח. לדוגמה,us-central1.
SERVICE_AGENT_EMAIL: כתובת האימייל של חשבון השירות עם התפקידeventarc.serviceAgent.לדוגמה,
service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com. מידע נוסף זמין במאמר בנושא סוכני שירות.
Terraform
יוצרים את הזהות בשירות Eventarc על ידי הגדרת המשאב
google_project_service_identity:מקצים את התפקיד Cloud KMS לחשבון השירות של Eventarc על ידי הגדרת המשאב
google_kms_crypto_key_iam_member:
הפעלת CMEK לסוגי אירועים של Google
טריגרים של Eventarc שמנתבים סוגי אירועים של Google מפרסמים אירועים בערוץ וירטואלי שנקרא ערוץ Google, שהוא ספציפי לפרויקט ולאזור. הערוץ הווירטואלי הזה זמין בכל האזורים של Eventarc.
כשמפעילים CMEK לערוץ Google ב Google Cloud פרויקט, כל הטריגרים של Eventarc לסוגי אירועים של Google באותו פרויקט ובאותו אזור מוצפנים באופן מלא באמצעות מפתח ה-CMEK הזה. אתם יכולים להוסיף כמה מפתחות CMEK ולשייך כל אחד מהם לאזור ספציפי בערוץ Google. אי אפשר להחיל מפתחות CMEK על בסיס כל טריגר בנפרד.
המסוף
במסוף Google Cloud , נכנסים לדף Eventarc > Channels.
לוחצים על ערוץ עם ספק של Google.
בדף Edit channel (עריכת הערוץ), מסמנים את התיבה Use a customer-managed encryption key (CMEK) (שימוש במפתח הצפנה בניהול הלקוח (CMEK)).
לוחצים על הוספת מפתח הצפנה.
בוחרים אזור וברשימה מפתח הצפנה מסוג CMEK בוחרים חבילת מפתחות שיצרתם עבור האזור. שימו לב שאפשר להוסיף רק מפתח הצפנה אחד לכל אזור בערוץ.
אופציונלי: כדי להזין ידנית את שם המשאב של המפתח, ברשימה CMEK encryption key (מפתח הצפנה CMEK), לוחצים על Don't see your key? מזינים את שם המשאב של המפתח, ומזינים את שם המפתח בפורמט שצוין.
אם תתבקשו, תנו לחשבון השירות של Eventarc את התפקיד
cloudkms.cryptoKeyEncrypterDecrypterעם התפקידeventarc.serviceAgent.אופציונלי: לוחצים על הוספת מפתח הצפנה כדי להוסיף עוד מחזיק מפתחות שיצרתם עבור אזור אחר.
לוחצים על Save.
gcloud
gcloud eventarc google-channels update \ --location=LOCATION \ --crypto-key=KEY
מחליפים את מה שכתוב בשדות הבאים:
-
LOCATION: האזור של ערוץ Google שרוצים להגן עליו. המיקום צריך להיות זהה למיקום של המפתח שבו נעשה שימוש. הערה: אפשר להוסיף רק מפתח הצפנה אחד לכל אזור בערוץ. -
KEY: השם המלא של מפתח Cloud KMS בפורמטprojects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME.
Terraform
מפעילים את CMEK עבור המשאב GoogleChannelConfig בפרויקט ובמיקום נתונים על ידי הגדרת המשאב google_eventarc_google_channel_config:
REST
אפשר לעדכן את המשאב GoogleChannelConfig באמצעות method projects.locations.updateGoogleChannelConfig ולציין מפתח CMEK לפרויקט ולמיקום מסוימים.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud. -
LOCATION: האזור של ערוץ Google שרוצים להגן עליו. הוא חייב להיות זהה למיקום של המפתח שבו נעשה שימוש – לדוגמה,us-central1. שימו לב שאפשר להוסיף רק מפתח הצפנה אחד לכל אזור בערוץ. -
KEY_NAME: השם של המפתח, לדוגמהmy-key. -
RING_NAME: השם של מחזיק המפתחות, למשלmy-keyring.
תוכן בקשת JSON:
{
"cryptoKeyName": "projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME"
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע מעודכן של GoogleChannelConfig:
{
"name": "projects/PROJECT_ID/locations/LOCATION/googleChannelConfig",
"updateTime": "2025-03-05T17:56:54.106390447Z",
"cryptoKeyName": "projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME"
}
אם אתם יוצרים טריגרים של Pub/Sub באמצעות נושאים קיימים משלכם, מומלץ להגדיר גם את מפתח KMS בנושא כדי לקבל הגנה מקיפה של CMEK. מידע נוסף על הגדרת נושאים ב-Pub/Sub
אימות השימוש ב-Cloud KMS
כדי לוודא שהערוץ עומד עכשיו בדרישות של CMEK:
המסוף
במסוף Google Cloud , נכנסים לדף Eventarc > Triggers.
לוחצים על טריגר שמופיע בו ספק האירועים Google Cloud מקור ואזור שמוגנים באמצעות CMEK.
בדף פרטי הטריגר מוצג הסטטוס הצפנה, עם ההודעה
Events encrypted using Customer-managed encryption keys.
gcloud
כדי לאשר את מפתח ה-CMEK, אפשר להשתמש בפקודה google-channels describe.
gcloud eventarc google-channels describe \ --location=LOCATION
הפלט אמור להיראות כך:
cryptoKeyName: projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME name: projects/PROJECT_ID/locations/LOCATION/googleChannelConfig updateTime: '2022-06-28T17:24:56.365866104Z'
הערך cryptokeyName מציג את מפתח Cloud KMS שבו נעשה שימוש בערוץ Google.
Terraform
כדי לאשר את מפתח ה-CMEK, אפשר להשתמש בפקודה state show של Terraform.
terraform state show google_eventarc_google_channel_config.default
הפלט אמור להיראות כך:
# google_eventarc_google_channel_config.default: resource "google_eventarc_google_channel_config" "default" { crypto_key_name = "projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME" id = "projects/PROJECT_ID/locations/LOCATION/googleChannelConfig" location = "LOCATION" name = "projects/PROJECT_ID/locations/LOCATION/googleChannelConfig" project = "PROJECT_ID" update_time = "2025-03-24T17:15:08.809635011Z" }
REST
כדי לאשר את מפתח ה-CMEK, אפשר לאחזר את המשאב GoogleChannelConfig באמצעות השיטה projects.locations.getGoogleChannelConfig.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud. -
LOCATION: האזור של ערוץ Google המוגן.
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע של
GoogleChannelConfig:
{
"name": "projects/PROJECT_ID/locations/LOCATION/googleChannelConfig",
"updateTime": "2025-03-05T17:56:54.106390447Z",
"cryptoKeyName": "projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME"
}
הפעלת CMEK בערוץ של צד שלישי
ערוץ Eventarc לצדדים שלישיים הוא משאב שדרכו ישויות שאינןGoogle Cloud שמציעות מקור Eventarc יכולות לקיים אינטראקציה עם יעדים. הערוץ הזה ספציפי לאזור מסוים, ואפשר להוסיף רק מפתח אחד לכל ערוץ של צד שלישי.
כדי להפעיל CMEK בערוץ של צד שלישי:
המסוף
במסוף Google Cloud , נכנסים לדף Eventarc > Channels.
לוחצים על ערוץ עם ספק צד שלישי.
בדף פרטי הערוץ, לוחצים על עריכה.
בדף Edit channel, בקטע Encryption, בוחרים באפשרות Cloud KMS key.
ברשימה סוג המפתח, בוחרים שיטה לניהול המפתחות.
אתם יכולים לנהל את המפתחות באופן ידני או להשתמש ב-Autokey, שמאפשר לכם ליצור מחזיקי מפתחות ומפתחות לפי דרישה. אם האפשרות 'הוספת מפתח אוטומטית' מושבתת, היא עדיין לא משולבת עם סוג המשאב הנוכחי.
בוחרים מפתח מהרשימה Select a Cloud KMS key. חשוב לזכור שאפשר להוסיף רק מפתח הצפנה אחד לכל אזור בערוץ.
אופציונלי: כדי להזין ידנית את שם המשאב של המפתח, ברשימה Select a Cloud KMS key (בחירת מפתח Cloud KMS), לוחצים על Enter key manually (הזנת מפתח באופן ידני) ומזינים את שם המפתח בפורמט שצוין.
אם מתבקשים, מקצים את התפקיד
cloudkms.cryptoKeyEncrypterDecrypterלסוכן השירות של Eventarc.לוחצים על Save.
gcloud
gcloud eventarc channels update CHANNEL_NAME \ --location=LOCATION \ --crypto-key=KEY
מחליפים את מה שכתוב בשדות הבאים:
-
CHANNEL_NAME: השם של הערוץ של הצד השלישי. כדי ליצור ערוץ חדש של צד שלישי, אפשר לעיין במאמר בנושא יצירת ערוץ. -
LOCATION: האזור של הערוץ של הצד השלישי שרוצים להגן עליו. המיקום צריך להיות זהה למיקום של המפתח. -
KEY: השם המלא של מפתח Cloud KMS בפורמטprojects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME.
Terraform
כדי לציין מפתח CMEK לערוץ של צד שלישי, צריך להגדיר את המשאב google_eventarc_channel. לדוגמה:
resource "google_eventarc_channel" "default" { location = "us-central1" name = "CHANNEL_NAME" crypto_key_name = google_kms_crypto_key.default.id }
מחליפים את CHANNEL_NAME בשם של הערוץ של הצד השלישי.
REST
אתם יכולים לעדכן משאב Channel באמצעות ה-method projects.locations.channels.patch ולציין מפתח CMEK לפרויקט ולמיקום מסוימים.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
CHANNEL_NAME: שם הערוץ. -
PROJECT_ID: מזהה הפרויקט ב- Google Cloud. -
LOCATION: האזור של הערוץ שרוצים להגן עליו. הוא חייב להיות זהה למיקום של המפתח שבו נעשה שימוש – לדוגמה,us-central1. שימו לב שאפשר להוסיף רק מפתח הצפנה אחד לכל אזור בערוץ. -
KEY_NAME: השם של המפתח, לדוגמהmy-key. -
RING_NAME: השם של מחזיק המפתחות, למשלmy-keyring.
תוכן בקשת JSON:
{
"cryptoKeyName": "projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME"
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע חדש של
Operation:
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata",
"createTime": "2024-01-25T17:17:45.782370139Z",
"target": "projects/PROJECT_ID/locations/LOCATION/channels/CHANNEL_NAME",
"verb": "update",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
אימות השימוש ב-Cloud KMS
כדי לוודא שהערוץ עומד עכשיו בדרישות של CMEK:
המסוף
במסוף Google Cloud , נכנסים לדף Eventarc > Triggers.
לוחצים על טריגר עם מקור צד שלישי בתור ספק האירועים ואזור שמוגן באמצעות CMEK.
בדף פרטי הטריגר, הסטטוס של הצפנה מציג את ההודעה
Events encrypted using Customer-managed encryption keys.
gcloud
gcloud eventarc channels describe CHANNEL_NAME \ --location=LOCATION
הפלט אמור להיראות כך:
createTime: '2022-06-28T18:05:52.403999904Z' cryptoKeyName: projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME name: projects/PROJECT_ID/locations/LOCATION/googleChannelConfig pubsubTopic: projects/PROJECT_ID/topics/PUBSUB_TOPIC_ID state: ACTIVE 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_channel.default
הפלט אמור להיראות כך:
# google_eventarc_channel.default: resource "google_eventarc_channel" "default" { create_time = "2025-03-31T13:07:44.721274062Z" crypto_key_name = "projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME" id = "projects/PROJECT_ID/locations/LOCATION/channels/CHANNEL_NAME" location = "LOCATION" name = "CHANNEL_NAME" project = "PROJECT_ID" pubsub_topic = "projects/PROJECT_ID/topics/PUBSUB_TOPIC_ID" state = "ACTIVE" uid = "406302e9-1d41-4479-8f4f-2524a803790e" update_time = "2025-03-31T13:07:49.708241490Z" }
REST
כדי לאשר את מפתח ה-CMEK של ערוץ, אפשר לאחזר משאב Channel באמצעות השיטה projects.locations.channels.get.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
CHANNEL_NAME: שם הערוץ. -
PROJECT_ID: מזהה הפרויקט ב- Google Cloud. -
LOCATION: האזור של הערוץ המוגן.
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע של
Channel:
{
"name": "projects/PROJECT_ID/locations/LOCATION/channels/CHANNEL_NAME",
"uid": "12f941a6-196a-457b-bfdb-ca21138859d0",
"createTime": "2025-01-29T15:05:12.113912689Z",
"updateTime": "2025-01-29T15:05:17.210986285Z",
"pubsubTopic": "projects/PROJECT_ID/topics/TOPIC_ID",
"state": "ACTIVE",
"cryptoKeyName": "projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME"
}
הצגת המפתח שמשמש לערוץ
אפשר לתאר ערוץ Eventarc ולהציג את מפתח Cloud KMS שמשמש את הערוץ.
המסוף
במסוף Google Cloud , נכנסים לדף Eventarc > Channels.
לוחצים על שם הערוץ.
מוצגים כל מפתחות ההצפנה בניהול הלקוח (CMEK) שמשמשים לערוץ.
gcloud
בהתאם לסוג הערוץ, מריצים את הפקודה הבאה:
פלטפורמה של Google
gcloud eventarc google-channels describe \ --location=LOCATION
ערוץ של צד שלישי
gcloud eventarc channels describe CHANNEL_NAME \ --location=LOCATION
הפלט צריך לכלול שורה שדומה לזו:
cryptoKeyName: projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAMEהערך cryptoKeyName מציג את המפתח של Cloud KMS שמשמש לערוץ.
Terraform
בהתאם לסוג הערוץ, מריצים את הפקודה הבאה:
פלטפורמה של Google
terraform state show google_eventarc_google_channel_config.default
ערוץ של צד שלישי
terraform state show google_eventarc_channel.default
הפלט צריך לכלול שורה שדומה לזו:
crypto_key_name= "projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME"
הערך crypto_key_name מציג את מפתח Cloud KMS שבו נעשה שימוש בערוץ.
REST
בהתאם לסוג הערוץ, שולחים את הבקשה הבאה:
פלטפורמה של Google
כדי לאשר את מפתח ה-CMEK עבור פרויקט ומיקום מסוימים, אפשר לאחזר את משאב GoogleChannelConfig באמצעות ה-method projects.locations.getGoogleChannelConfig.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud. -
LOCATION: האזור של ערוץ Google המוגן.
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע של
GoogleChannelConfig:
{
"name": "projects/PROJECT_ID/locations/LOCATION/googleChannelConfig",
"updateTime": "2025-03-05T17:56:54.106390447Z",
"cryptoKeyName": "projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME"
}
ערוץ של צד שלישי
כדי לאשר את מפתח ה-CMEK עבור פרויקט ומיקום מסוימים, אפשר לאחזר משאב Channel באמצעות ה-method projects.locations.channels.get.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
CHANNEL_NAME: שם הערוץ. -
PROJECT_ID: מזהה הפרויקט ב- Google Cloud. -
LOCATION: האזור של הערוץ המוגן.
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע של
Channel:
{
"name": "projects/PROJECT_ID/locations/LOCATION/channels/CHANNEL_NAME",
"uid": "12f941a6-196a-457b-bfdb-ca21138859d0",
"createTime": "2025-01-29T15:05:12.113912689Z",
"updateTime": "2025-01-29T15:05:17.210986285Z",
"pubsubTopic": "projects/PROJECT_ID/topics/TOPIC_ID",
"state": "ACTIVE",
"cryptoKeyName": "projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME"
}
השבתת CMEK
אפשר להשבית את ההגנה באמצעות CMEK שמשויכת לערוץ. האירועים שמועברים דרך ערוצים כאלה עדיין מוגנים על ידי Google-owned and Google-managed encryption keys. כדי למחוק את ההגנה באמצעות CMEK שמשויכת לערוץ:
המסוף
במסוף Google Cloud , נכנסים לדף Eventarc > Channels.
בהתאם לסוג הערוץ, מבצעים את השלבים הבאים:
פלטפורמה של Google
- לוחצים על ערוץ עם ספק של Google.
- בדף עריכת הערוץ, מעבירים את מצביע העכבר מעל הרשימה מפתח הצפנה מסוג CMEK כדי לראות את הכפתור מחיקת פריט.
- לוחצים על מחיקת הפריט.
לוחצים על Save.
יכול להיות שתצטרכו לרענן את הדף כדי להפעיל את תיבת הסימון Use a customer-managed encryption key (CMEK) (שימוש במפתח הצפנה בניהול הלקוח).
ערוץ של צד שלישי
- לוחצים על ערוץ עם ספק צד שלישי.
- בדף פרטי הערוץ, לוחצים על עריכה.
- בדף Edit channel, בקטע Encryption, בוחרים באפשרות Google-managed encryption key.
- לוחצים על Save.
gcloud
בהתאם לסוג הערוץ, מריצים את הפקודה הבאה:
פלטפורמה של Google
gcloud eventarc google-channels \ update --clear-crypto-key
ערוץ של צד שלישי
gcloud eventarc channels CHANNEL_NAME \ update --clear-crypto-key
Terraform
בהתאם לסוג הערוץ, צריך לנקות את הערך crypto_key_name על ידי אי-ציון שלו כשמגדירים את משאב Terraform:
פלטפורמה של Google
resource "google_eventarc_google_channel_config" "default" { location = "us-central1" name = "googleChannelConfig" }
ערוץ של צד שלישי
resource "google_eventarc_channel" "default" { location = "us-central1" name = "CHANNEL_NAME" }
REST
בהתאם לסוג הערוץ, שולחים את הבקשה הבאה:
פלטפורמה של Google
כדי למחוק את מפתח ה-CMEK, אפשר לעדכן את המשאב GoogleChannelConfig עבור פרויקט ומיקום מסוימים באמצעות השיטה projects.locations.updateGoogleChannelConfig.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud. -
LOCATION: האזור של ערוץ Google המוגן שרוצים להגן עליו.
תוכן בקשת JSON:
{
"cryptoKeyName": ""
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע מעודכן של GoogleChannelConfig:
{
"name": "projects/PROJECT_ID/locations/LOCATION/googleChannelConfig",
"updateTime": "2025-03-05T17:56:54.106390447Z"
}
ערוץ של צד שלישי
כדי למחוק את מפתח ה-CMEK, אפשר לעדכן משאב Channel עבור פרויקט ומיקום מסוימים באמצעות ה-method projects.locations.channels.patch.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
CHANNEL_NAME: שם הערוץ. -
PROJECT_ID: מזהה הפרויקט ב- Google Cloud. -
LOCATION: האזור של הערוץ המוגן.
תוכן בקשת JSON:
{
"cryptoKeyName": ""
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע חדש של
Operation:
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata",
"createTime": "2024-01-25T17:17:45.782370139Z",
"target": "projects/PROJECT_ID/locations/LOCATION/channels/CHANNEL_NAME",
"verb": "update",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
החלה של מדיניות הארגון ל-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 ממשיכים להתקיים וניתן לגשת אליהם ללא בעיה.
המסוף
במסוף Google Cloud , נכנסים לדף מדיניות הארגון.
משתמשים בFilter כדי לחפש את האילוץ הבא:
constraints/gcp.restrictNonCmekServicesבעמודה Name (שם), לוחצים על Restrict which services may create resources without CMEK (הגבלת השירותים שיכולים ליצור משאבים ללא CMEK).
לוחצים על ניהול המדיניות.
בדף עריכת מדיניות, בקטע מקור המדיניות, בוחרים באפשרות במקום המדיניות של המשאב הראשי.
בקטע כללים, לוחצים על הוספת כלל.
ברשימה ערכי מדיניות, בוחרים באפשרות בהתאמה אישית.
ברשימה Policy type (סוג המדיניות), בוחרים באפשרות Deny (דחייה).
בשדה ערכים מותאמים אישית, מזינים את הערכים הבאים:
is:eventarc.googleapis.comלוחצים על סיום ואז על הגדרת מדיניות.
gcloud
יוצרים קובץ זמני
/tmp/policy.yamlלאחסון המדיניות:name: projects/PROJECT_ID/policies/gcp.restrictNonCmekServices spec: rules: - values: deniedValues: - is:eventarc.googleapis.com
מחליפים את
PROJECT_IDבמזהה הפרויקט שבו רוצים להחיל את האילוץ הזה.מריצים את הפקודה
org-policies set-policy:gcloud org-policies set-policy /tmp/policy.yaml
כדי לוודא שהמדיניות הוחלה בהצלחה, אפשר לנסות ליצור ערוץ Eventarc Standard בפרויקט. התהליך ייכשל אם לא תציינו מפתח 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".
המסוף
במסוף Google Cloud , נכנסים לדף מדיניות הארגון.
משתמשים בFilter כדי לחפש את האילוץ הבא:
constraints/gcp.restrictCmekCryptoKeyProjectsבעמודה 'שם', לוחצים על הגבלת הפרויקטים שיכולים לספק מפתחות הצפנה של KMS ל-CMEK.
לוחצים על ניהול המדיניות.
בדף עריכת מדיניות, בקטע מקור המדיניות, בוחרים באפשרות במקום המדיניות של המשאב הראשי.
בקטע כללים, לוחצים על הוספת כלל.
ברשימה ערכי מדיניות, בוחרים באפשרות בהתאמה אישית.
ברשימה סוג המדיניות, בוחרים באפשרות הרשאה.
בשדה ערכים מותאמים אישית, מזינים את הערכים הבאים:
under:projects/KMS_PROJECT_IDמחליפים את הערך
KMS_PROJECT_IDבמזהה הפרויקט שבו נמצאים מפתחות Cloud KMS שרוצים להשתמש בהם.לדוגמה,
under:projects/my-kms-project.לוחצים על סיום ואז על הגדרת מדיניות.
gcloud
יוצרים קובץ זמני
/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 שרוצים להשתמש בהם.
-
מריצים את הפקודה
org-policies set-policy:gcloud org-policies set-policy /tmp/policy.yaml
כדי לוודא שהמדיניות הוחלה בהצלחה, אפשר לנסות ליצור ערוץ Eventarc Standard באמצעות מפתח Cloud KMS מפרויקט אחר. התהליך ייכשל.
השבתה והפעלה של מפתחות Cloud KMS
בגרסת מפתח מאוחסנים חומרי המפתח הקריפטוגרפיים שמשמשים להצפנה, לפענוח, לחתימה ולאימות של נתונים. אפשר להשבית את גרסת המפתח הזו כדי שלא תהיה גישה לנתונים שהוצפנו באמצעות המפתח.
אם ל-Eventarc אין גישה למפתחות Cloud KMS, פרסום האירועים בערוצים נכשל עם שגיאות FAILED_PRECONDITION ומסירת האירועים נפסקת. אפשר להפעיל מפתח במצב מושבת כדי לקבל שוב גישה לנתונים המוצפנים.
השבתת מפתחות Cloud KMS
כדי למנוע מ-Eventarc להשתמש במפתח להצפנה או לפענוח של נתוני האירועים, אפשר לבצע אחת מהפעולות הבאות:
- מומלץ להשבית את גרסת המפתח שהגדרתם לערוץ. ההשפעה היא רק על ערוצים וטריגרים של Eventarc שמשויכים למפתח הספציפי.
- אופציונלי: מבטלים את התפקיד
cloudkms.cryptoKeyEncrypterDecrypterמחשבון השירות של Eventarc. ההשפעה היא על כל הערוצים והטריגרים של Eventarc בפרויקט שתומכים באירועים מוצפנים באמצעות CMEK.
אף אחת מהפעולות לא מבטיחה ביטול גישה מיידי, אבל השינויים בניהול הזהויות והרשאות הגישה (IAM) מופצים בדרך כלל מהר יותר. מידע נוסף זמין במאמרים עקביות של משאבי Cloud KMS והפצת שינויים בגישה.
הפעלה מחדש של מפתחות Cloud KMS
כדי לחדש את העברת האירועים ואת הפרסום שלהם, צריך לשחזר את הגישה ל-Cloud KMS.
תמחור
השילוב הזה לא כרוך בעלויות נוספות מעבר לפעולות העיקריות, שמחויבות בפרויקט שלכם. Google Cloudהשימוש ב-CMEK בערוץ כרוך בתשלום על גישה לשירות Cloud KMS על סמך תמחור Pub/Sub.
מידע נוסף על התמחור העדכני ביותר זמין במאמר תמחור של Cloud KMS.