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

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

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

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

כדי לקרוא על הגנה על הנתונים באמצעות CMEK בפונקציות שנוצרו באמצעות פקודות gcloud functions או Cloud Functions v2 API, אפשר לעיין במאמר הגנה על הנתונים באמצעות CMEK.

חשוב לשים לב לנקודות הבאות:

  • מטא-נתונים של קבצים, כמו הנתיב, לא מוצפנים.
  • מטא-נתונים של שירות Cloud Run או של מאגר עובדים, כמו שם או משתני סביבה, לא מוצפנים באמצעות המפתח שסופק אלא באמצעות Google-owned and Google-managed encryption key.
  • בזמן הריצה, הזיכרון ותוכן הקובץ לא מוצפנים.
  • אם משביתים את ה-CMEK, מופעים חדשים של עדכונים קיימים ב-Cloud Run שמשתמשים במפתח לא יופעלו.
  • אם CMEK מושבת, פריסת גרסה חדשה של Cloud Run תיכשל אלא אם נעשה שימוש במפתח חדש ותקין.

CMEK עם Cloud KMS Autokey

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

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

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

אי אפשר להשתמש ב-Autokey בפונקציות שנוצרו באמצעות פקודות gcloud functions או באמצעות Cloud Functions v2 API.

אתם לא צריכים להשתמש באותו מפתח לפריסה ב-Cloud Run.

מכסות של Cloud KMS ו-Cloud Run

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

פעולות הצפנה ופענוח באמצעות מפתחות CMEK משפיעות על המכסות של Cloud KMS באופן הבא:

  • כשמשתמשים במפתחות CMEK של תוכנה שנוצרו ב-Cloud KMS, לא נצרכת מכסת Cloud KMS.
  • מפתחות CMEK בחומרה – לפעמים נקראים מפתחות Cloud HSM – פעולות ההצפנה והפענוח נספרות במסגרת המכסות של Cloud HSM בפרויקט שמכיל את המפתח.
  • במקרה של מפתחות CMEK חיצוניים – שלפעמים נקראים מפתחות Cloud EKM – פעולות ההצפנה והפענוח נספרות במכסות של Cloud EKM בפרויקט שמכיל את המפתח.

מידע נוסף מופיע במאמר מכסות ב-Cloud KMS.

התנהגות של התאמה אוטומטית לעומס שמושפעת מ-CMEK

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

בטבלה הבאה מוצגים השינויים האפשריים בהתנהגות כתוצאה משימוש ב-CMEK:

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

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

מתן גישה למפתח ל-Cloud Run

כדי להשתמש ב-CMEK ב-Cloud Run, מבצעים את השלבים הבאים:

  1. מגדירים את Artifact Registry לשימוש ב-CMEK.

  2. בעזרת המדריך למתחילים ל-Docker ב-Artifact Registry, יוצרים מאגר Docker ומעבירים אליו בדחיפה קובץ אימג'.

  3. משתמשים במפתח סימטרי קיים של Cloud KMS או יוצרים מפתח סימטרי חדש.

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

    המסוף

    1. עוברים אל הדף Cryptographic keys

    2. לוחצים על מחזיק המפתחות של המפתח כדי לפתוח את דף רשימת המפתחות.

    3. בוחרים את המפתח ובכרטיסייה Permissions (הרשאות) בצד שמאל, לוחצים על Add principal (הוספת גורם ראשי).

    4. בשדה New principals, מעתיקים את כתובת האימייל של סוכן השירות של Cloud Run. הסיומת שלו היא:

      service-PROJECT_NUMBER@serverless-robot-prod.iam.gserviceaccount.com.

    5. בשדה Select a role, בוחרים באפשרות Cloud KMS CryptoKey Encrypter/Decrypter.

    6. לוחצים על שמירה

    gcloud

    משתמשים בפקודה gcloud kms הבאה:

    gcloud kms keys add-iam-policy-binding KEY_NAME \
    --keyring=KEYRING \
    --location=LOCATION \
    --member serviceAccount:service-PROJECT_NUMBER@serverless-robot-prod.iam.gserviceaccount.com \
    --role='roles/cloudkms.cryptoKeyEncrypterDecrypter'

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

    • KEY_NAME: שם המפתח.
    • KEYRING: השם של אוסף המפתחות.
    • LOCATION: שם האזור.
    • PROJECT_NUMBER: מספר הפרויקט שבו אתם מתכוונים לפרוס את שירות Cloud Run או את מאגר העובדים.

    כדי להעניק את תפקיד ה-IAM‏ roles/cloudkms.cryptoKeyEncrypterDecrypter, צריך הרשאה לניהול משאבי Cloud KMS בפרויקטGoogle Cloud . רק חברים ב-IAM עם התפקידים 'בעלים' (roles/owner) או 'אדמין של Cloud KMS' (roles/cloudkms.admin) יכולים להעניק או לבטל גישה למשאבי Cloud KMS.

הגדרת CMEK לשירות

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

המסוף

  1. נכנסים ל-Cloud Run במסוף Google Cloud :

    כניסה ל-Cloud Run

  2. בתפריט הניווט של Cloud Run, בוחרים באפשרות Services (שירותים) ולוחצים על Deploy container (פריסת קונטיינר) כדי להגדיר שירות חדש. אם אתם מגדירים שירות קיים, לוחצים על השירות ואז על עריכה ופריסה של עדכון חדש.

  3. אם אתם מגדירים שירות חדש, ממלאים את דף ההגדרות הראשוניות של השירות ואז לוחצים על Containers, Networking, Security (מאגרי נתונים, רשתות, אבטחה) כדי להרחיב את דף הגדרות השירות.

  4. לוחצים על הכרטיסייה אבטחה.

    תמונה

    • בקטע הצפנה:
      1. בוחרים באפשרות מפתח Cloud KMS.
      2. בשדה Key type, בוחרים באפשרות Cloud KMS.
      3. בתפריט Select a Cloud KMS key (בחירת מפתח Cloud KMS), בוחרים אחת מהאפשרויות הבאות:
        • בוחרים באפשרות החלפת פרויקט אם רוצים להשתמש במפתח מפרויקט אחר. אתם יכולים להפנות למפתח מפרויקט אחר אם לחשבון השירות של הפרויקט שלכם יש גישה למפתח לפעולות הצפנה ופענוח.

        • בוחרים באפשרות Enter key manually (הזנת מפתח באופן ידני) כדי להזין את הסוד מפרויקט, באמצעות הפורמט הבא: projects/PROJECT_NAME/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME.

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

        • עוברים אל הדף 'מפתחות קריפטוגרפיים'.
        • לוחצים על אוסף המפתחות.
        • בוחרים את השם של אוסף המפתחות ולוחצים על פעולות.
        • בתפריט, בוחרים באפשרות העתקת שם המשאב ומדביקים אותו בשדה שם המשאב של המפתח מהשלב הקודם.

      4. בתפריט פעולת ביטול המפתח, בוחרים באחת מהאפשרויות הבאות:
        • מניעת הפעלה של מופע חדש של מאגר: לא יופעלו מופעים חדשים אחרי ביטול המפתח של CMEK.

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

        • השהיית כיבוי בהתאמה אישית: מציינים את מספר השעות לפני שהשירות ייכבה.

  5. לוחצים על יצירה או על פריסה.

gcloud

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

gcloud run deploy SERVICE \
--image IMAGE_URL \
--key KEY \
--post-key-revocation-action-type KEY_REVOCATION_ACTION
--encryption-key-shutdown-hours SHUTDOWN_HOURS
gcloud run services update SERVICE --key KEY
--post-key-revocation-action-type KEY_REVOCATION_ACTION
--encryption-key-shutdown-hours SHUTDOWN_HOURS

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

  • SERVICE: השם של השירות.
  • IMAGE_URL: הפניה לקובץ אימג' של קונטיינר, לדוגמה, us-docker.pkg.dev/cloudrun/container/hello:latest. אם אתם משתמשים ב-Artifact Registry, צריך ליצור מראש את המאגר REPO_NAME. כתובת ה-URL היא בפורמט LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .
  • KEY: השם המלא של המפתח בפורמט הבא: projects/PROJECT_NAME/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME.
  • KEY_REVOCATION_ACTION: shut-down או prevent-new, בהתאם להעדפות שלכם לביטול מפתחות.
  • SHUTDOWN_HOURS: מספר השעות להשהיה לפני שהשירות נסגר אחרי ביטול ההרשאה.

YAML

  1. אם אתם יוצרים שירות חדש, דלגו על השלב הזה. אם אתם מעדכנים שירות קיים, אתם צריכים להוריד את הגדרות ה-YAML שלו:

    gcloud run services describe SERVICE --format export > service.yaml
  2. מעדכנים את הערכים של ההערות הבאות של CMEK לערכים הרצויים:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/encryption-key: projects/PROJECT_NAME/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME
            run.googleapis.com/post-key-revocation-action-type: KEY_REVOCATION_ACTION
            run.googleapis.com/encryption-key-shutdown-hours: SHUTDOWN_HOURS
          name: REVISION

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

    • SERVICE: השם של שירות Cloud Run.
    • PROJECT_NAME: השם של הפרויקט שבו נוצר המפתח.
    • LOCATION: המיקום שבו נוצר המפתח. המיקום צריך להיות זהה למיקום של שירות Cloud Run.
    • KEYRING_NAME: השם של אוסף המפתחות.
    • KEY_NAME: השם של המפתח.
    • KEY_REVOCATION_ACTION: shut-down או prevent-new, בהתאם להעדפות שלכם לביטול מפתחות.
    • SHUTDOWN_HOURS: מספר השעות להשהיה לפני שהשירות נסגר אחרי ביטול ההרשאה.
    • REVISION עם שם חדש לגרסה או למחוק אותה (אם היא קיימת). אם מספקים שם חדש לגרסה, חובה שהוא יעמוד בקריטריונים הבאים:
      • מתחיל ב-SERVICE-
      • מכיל רק אותיות קטנות, מספרים ו-
      • לא מסתיים ב--
      • לא חורג מ-63 תווים
  3. מחליפים את השירות בהגדרות החדשות באמצעות הפקודה הבאה:

    gcloud run services replace service.yaml

Terraform

כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.

מוסיפים את הטקסט הבא למשאב google_cloud_run_v2_service בהגדרות של Terraform.

resource "google_cloud_run_v2_service" "default" {
  name     = "SERVICE"
  location = "europe-west1"

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"
    }
    encryption_key = "projects/PROJECT_NAME/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME"
  }
}

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

  • SERVICE: השם של שירות Cloud Run.
  • PROJECT_NAME: השם של הפרויקט שבו נוצר המפתח.
  • LOCATION: המיקום שבו נוצר המפתח. המיקום צריך להיות זהה למיקום של שירות Cloud Run.
  • KEYRING_NAME: השם של אוסף המפתחות.
  • KEY_NAME: השם של המפתח.

שימוש ב-Autokey לשירותים

אם עדיין לא עשיתם זאת, מפעילים את Cloud KMS Autokey.

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

המסוף

  1. נכנסים ל-Cloud Run במסוף Google Cloud :

    כניסה ל-Cloud Run

  2. בתפריט הניווט של Cloud Run, בוחרים באפשרות Services (שירותים) ולוחצים על Deploy container (פריסת קונטיינר) כדי להגדיר שירות חדש. אם אתם מגדירים שירות קיים, לוחצים על השירות ואז על עריכה ופריסה של עדכון חדש.

  3. אם אתם מגדירים שירות חדש, ממלאים את דף ההגדרות הראשוניות של השירות ואז לוחצים על Containers, Networking, Security (מאגרי נתונים, רשתות, אבטחה) כדי להרחיב את דף הגדרות השירות.

  4. לוחצים על הכרטיסייה אבטחה.

    תמונה

    • בקטע הצפנה:
      1. בתפריט Key type (סוג המפתח), בוחרים באפשרות Cloud KMS with Autokey (Cloud KMS עם Autokey).
      2. לוחצים על בקשת מפתח.
      3. לוחצים על יצירה.

        פרטי המפתח מוצגים אחרי יצירת המשאב.

      4. בתפריט פעולת ביטול המפתח, בוחרים באחת מהאפשרויות הבאות:
        • מניעת מופע חדש של מאגר: לא יופעלו מופעים חדשים אחרי ביטול CMEK.

        • כיבוי בהקדם האפשרי: לא יופעלו מכונות חדשות והמכונות הקיימות יכובו אחרי ביטול ההרשאה של CMEK.

        • השהיית כיבוי בהתאמה אישית: מציינים את מספר השעות לפני שהשירות ייכבה.

  5. לוחצים על יצירה או על פריסה.

הצגת הגדרות האבטחה של שירותים

כדי לראות את הגדרות האבטחה של שירות Cloud Run:

המסוף

  1. נכנסים לדף Services של Cloud Run במסוף Google Cloud :

    כניסה ל-Cloud Run

  2. לוחצים על השירות כדי לפתוח את הדף פרטי השירות.

  3. לוחצים על הכרטיסייה עדכונים.

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

gcloud

  1. מריצים את הפקודה הבאה כדי לראות את הגדרות האבטחה:

    gcloud run services describe SERVICE
  2. מאתרים את הגדרת האבטחה בתצורה שהוחזרה.

הגדרות נוספות לפריסות שמבוססות על מקור

פריסות של מקורות Cloud Run ופונקציות כוללות שלב נוסף של build. כדי לוודא שהשלב הזה תואם ל-CMEK, צריך לבצע את הפעולות הבאות:

  1. יוצרים קטגוריה של Cloud Storage עם הצפנה באמצעות CMEK. פרטים נוספים זמינים במאמרי העזרה בנושא CMEK ל-Cloud Storage.

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

  3. יוצרים מאגר Artifact Registry מוצפן באמצעות CMEK. פרטים נוספים זמינים במסמכי התיעוד בנושא CMEK ל-Artifact Registry. במאגר הזה מאוחסנים ארטיפקטים שנוצרו בתהליך ה-build.

  4. פורסים את הפונקציה ומעבירים את משאבי ה-build באמצעות הדגלים --source ו---image.

    gcloud run deploy FUNCTION \
        --key KEY \
        --source CUSTOM_BUCKET_WITH_SOURCE_CODE \
        --image CUSTOM_AR_REPOSITORY \
        --function FUNCTION_ENTRYPOINT \
        --base-image BASE_IMAGE \
        --region REGION

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

  • FUNCTION: השם של הפונקציה שרוצים לפרוס. אפשר להשמיט את הפרמטר הזה לגמרי, אבל אם תשמיטו אותו, תתבקשו לציין את השם.

  • KEY: השם המלא של המפתח בפורמט הבא: projects/PROJECT_NAME/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME.

  • CUSTOM_BUCKET_WITH_SOURCE_CODE: ה-URI של מיקום ב-Cloud Storage שבו מאוחסן קוד המקור. צריך להשתמש בפורמט הבא: gs://BUCKET_NAME/PATH_TO_SOURCE.

  • CUSTOM_AR_REPOSITORY: ה-URI של מאגר Artifact Registry בפורמט REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME.

  • FUNCTION_ENTRYPOINT: נקודת הכניסה לפונקציה בקוד המקור. זה הקוד ש-Cloud Run מריץ כשהפונקציה פועלת. הערך של הדגל הזה צריך להיות שם של פונקציה או שם מלא של מחלקה שקיימים בקוד המקור.

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

  • REGION: האזור שבו רוצים לפרוס את הפונקציה. Google Cloudלדוגמה, europe-west1.

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

בדיקת ביטול של CMEK בשירותים

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

  1. מריצים את הפקודה הבאה כדי לוודא שאפשר לגשת לשירות:

    curl SERVICE_URL

    מחליפים את SERVICE_URL בכתובת ה-URL של השירות. אפשר למצוא את כתובת ה-URL הזו בממשק המשתמש של המסוף אחרי הפריסה: כתובת ה-URL של מאגר התגים מוצגת לצד הטקסט כתובת URL:.

  2. משביתים את גרסת המפתח.

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

  4. אחרי שמחכים את משך הזמן SHUTDOWN_HOURS שהגדרתם, מריצים מחדש את הפקודה הבאה ומוודאים שאי אפשר יותר לגשת לשירות:

     curl SERVICE_URL
     

  5. אחרי שמוודאים שגרסת המפתח מושבתת, מפעילים את המפתח.

הגדרת CMEK למאגר עובדים

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

המסוף

  1. נכנסים ל-Cloud Run במסוף Google Cloud :

    כניסה ל-Cloud Run

  2. בתפריט, בוחרים באפשרות מאגרי עובדים ולוחצים על פריסת קונטיינר כדי להגדיר מאגר עובדים חדש. אם אתם מגדירים מאגר עובדים קיים, לוחצים על מאגר העובדים ואז על Edit and deploy new revision (עריכה ופריסה של עדכון חדש).

  3. אם אתם מגדירים מאגר עובדים חדש, ממלאים את הדף הראשוני של מאגר העובדים ולוחצים על Containers, Networking, Security (מאגרי קונטיינרים, רשתות, אבטחה) כדי להרחיב את דף ההגדרות של מאגרי העובדים.

  4. לוחצים על הכרטיסייה אבטחה.

    תמונה

    • בקטע הצפנה:
      1. בוחרים באפשרות מפתח Cloud KMS.
      2. בשדה Key type, בוחרים באפשרות Cloud KMS.
      3. בתפריט Select a Cloud KMS key (בחירת מפתח Cloud KMS), בוחרים אחת מהאפשרויות הבאות:
        • בוחרים באפשרות החלפת פרויקט אם רוצים להשתמש במפתח מפרויקט אחר. אתם יכולים להפנות למפתח מפרויקט אחר אם לחשבון השירות של הפרויקט שלכם יש גישה למפתח לפעולות הצפנה ופענוח.

        • בוחרים באפשרות Enter key manually (הזנת מפתח באופן ידני) כדי להזין את הסוד מפרויקט, באמצעות הפורמט הבא: projects/PROJECT_NAME/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME.

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

        • עוברים אל הדף 'מפתחות קריפטוגרפיים'.
        • לוחצים על אוסף המפתחות.
        • בוחרים את השם של אוסף המפתחות ולוחצים על פעולות.
        • בתפריט, בוחרים באפשרות העתקת שם המשאב ומדביקים אותו בשדה שם המשאב של המפתח מהשלב הקודם.

      4. בתפריט פעולת ביטול המפתח, בוחרים באחת מהאפשרויות הבאות:
        • מניעת הפעלה של מופע חדש של מאגר: לא יופעלו מופעים חדשים אחרי ביטול המפתח של CMEK.

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

        • השהיית כיבוי בהתאמה אישית: מציינים את מספר השעות לפני שהשירות ייכבה.

  5. לוחצים על יצירה או על פריסה.

gcloud

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

gcloud run worker-pools deploy WORKER_POOL \
--image IMAGE_URL \
--key KEY \
--post-key-revocation-action-type KEY_REVOCATION_ACTION
--encryption-key-shutdown-hours SHUTDOWN_HOURS
gcloud run worker-pools update WORKER_POOL --key KEY
--post-key-revocation-action-type KEY_REVOCATION_ACTION
--encryption-key-shutdown-hours SHUTDOWN_HOURS

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

  • WORKER_POOL: השם של מאגר העובדים.
  • IMAGE_URL: כתובת ה-URL של קובץ אימג' של קונטיינר.
  • KEY: השם המלא של המפתח בפורמט הבא: projects/PROJECT_NAME/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME.
  • KEY_REVOCATION_ACTION: shut-down או prevent-new.
  • SHUTDOWN_HOURS: מספר השעות שצריך להמתין לפני שמאגר העובדים מושבת אחרי ביטול ההרשאה.

YAML

  1. אם אתם יוצרים מאגר חדש של עובדים, דלגו על השלב הזה. אם אתם מעדכנים מאגר עובדים קיים, אתם צריכים להוריד את הגדרות ה-YAML שלו:

    gcloud run worker-pools describe WORKER_POOL --format export > workerpool.yaml
  2. מעדכנים את ההערות הבאות של CMEK בהגדרה WorkerPool:

    apiVersion: run.googleapis.com/v1
    kind: WorkerPool
    metadata:
      name: WORKER_POOL
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/encryption-key: projects/PROJECT_NAME/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME
            run.googleapis.com/post-key-revocation-action-type: KEY_REVOCATION_ACTION
            run.googleapis.com/encryption-key-shutdown-hours: SHUTDOWN_HOURS

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

    • WORKER_POOL: השם של מאגר העובדים.
    • PROJECT_NAME: השם של הפרויקט שבו נוצר המפתח.
    • LOCATION: המיקום שבו נוצר המפתח. המיקום צריך להיות זהה למיקום של מאגר העובדים ב-Cloud Run.
    • KEYRING_NAME: השם של אוסף המפתחות.
    • KEY_NAME: השם של המפתח.
    • KEY_REVOCATION_ACTION: shut-down או prevent-new, בהתאם להעדפות שלכם לביטול מפתחות.
    • SHUTDOWN_HOURS: מספר השעות שצריך להמתין לפני שמאגר העובדים מושבת אחרי ביטול ההרשאה.
  3. מחליפים את מאגר העובדים בהגדרה החדשה שלו באמצעות הפקודה הבאה:

    gcloud run worker-pools replace workerpool.yaml

שימוש ב-Autokey למאגרי כוח עבודה

אם עדיין לא עשיתם זאת, מפעילים את Cloud KMS Autokey.

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

המסוף

  1. נכנסים ל-Cloud Run במסוף Google Cloud :

    כניסה ל-Cloud Run

  2. בתפריט, בוחרים באפשרות מאגרי עובדים ולוחצים על פריסת קונטיינר כדי להגדיר מאגר עובדים חדש. אם אתם מגדירים מאגר עובדים קיים, לוחצים על מאגר העובדים ואז על Edit and deploy new revision (עריכה ופריסה של עדכון חדש).

  3. אם אתם מגדירים מאגר עובדים חדש, ממלאים את הדף הראשוני של מאגר העובדים ולוחצים על Containers, Networking, Security (מאגרי קונטיינרים, רשתות, אבטחה) כדי להרחיב את דף ההגדרות של מאגרי העובדים.

  4. לוחצים על הכרטיסייה אבטחה.

    תמונה

    • בקטע הצפנה:
      1. בתפריט Key type (סוג המפתח), בוחרים באפשרות Cloud KMS with Autokey (Cloud KMS עם Autokey).
      2. לוחצים על בקשת מפתח.
      3. לוחצים על יצירה.

        פרטי המפתח מוצגים אחרי יצירת המשאב.

      4. בתפריט פעולת ביטול המפתח, בוחרים באחת מהאפשרויות הבאות:
        • מניעת מופע חדש של מאגר: לא יופעלו מופעים חדשים אחרי ביטול CMEK.

        • כיבוי בהקדם האפשרי: לא יופעלו מכונות חדשות והמכונות הקיימות יכובו אחרי ביטול ההרשאה של CMEK.

        • השהיית כיבוי בהתאמה אישית: מציינים את מספר השעות לפני שהשירות ייכבה.

  5. לוחצים על יצירה או על פריסה.

הצגת הגדרות האבטחה של מאגרי עובדים

כדי לראות את הגדרות האבטחה של מאגר העובדים ב-Cloud Run:

המסוף

  1. במסוף Google Cloud , עוברים לדף Cloud Run worker pools:

    כניסה לדף Cloud Run worker pools

  2. לוחצים על מאגר העובדים כדי לפתוח את הדף פרטי מאגרי עובדים.

  3. לוחצים על הכרטיסייה עדכונים.

  4. מאתרים את הגדרת האבטחה בפרטי התצורה.

gcloud

  1. משתמשים בפקודה הבאה:

    gcloud run worker-pools describe WORKER_POOL
  2. מאתרים את הגדרת האבטחה בתצורה שהוחזרה.

הסבר על יומני ביקורת והודעות שגיאה

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

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

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

יומני ביקורת

יומני ביקורת של KMS מספקים נתיב ביקורת לכל פעולה שמתבצעת באמצעות מפתח. במשאבי Cloud Run שמופעל בהם CMEK,‏ Cloud Run מוסיף הקשר ספציפי של המתקשר ב-Cloud Run שמפרט למה המערכת ניגשה למפתח הלקוח. בטבלה הבאה מפורטים ההקשרים שעשויים להופיע ביומני הביקורת:

הסיבה לגישה למפתח תיאור
Decrypting CMEK-encrypted layer during container clone start. הרישום מתבצע בכל פעם שמופעל מופע חדש.
Encrypting a newly created data-encryption-key w/ the customer-managed-encryption-key. הרישום מתבצע במהלך הפריסה של שירות או מאגר עובדים עם CMEK, שבו מפתח הצפנת הנתונים עטוף ב-CMEK.
Decrypting an existing encrypted data-encryption-key, under the same customer-managed-encryption-key, to be used to encrypt container contents. הרישום מתבצע כשמופע חדש מופעל, ונדרשת פענוח של התמונה.
Performing an encrypt operation on dummy data to check the customer-managed-encryption-key status and access. הפעולה מתועדת בכל פעם שמתבצעת בדיקת אימות של המפתח, והבדיקה הזו מתבצעת מעת לעת.
Performing a decrypt operation on dummy data to check the customer-managed-encryption-key status and access. הפעולה מתועדת בכל פעם שמתבצעת בדיקת אימות של המפתח, והבדיקה הזו מתבצעת מעת לעת.

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

הודעות שגיאה

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

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

הודעה תיאור
User's service account does not have CMEK decrypter permission. Service account: %s פתרון: מתן גישה למשאב Cloud Run למפתח
User's KMS operation quota has been exceeded. CMEK key: %s המשאב עם CMEK חרג ממכסות KMS. פתרון: שליחת בקשה להגדלת המכסה ב-KMS
User's CMEK key has been disabled. CMEK key: %s בוטל ה-CMEK. פתרון: צריך לשנות את ה-CMEK של המשאב ולפרוס אותו מחדש.
User's CMEK key has been destroyed. CMEK key: %s מחקתם את ה-CMEK. פתרון: צריך לשנות את ה-CMEK של המשאב ולפרוס אותו מחדש.
User's CMEK key has been scheduled for deletion. CMEK Key: %s המחיקה של ה-CMEK תוכננה. פתרון: צריך לשנות את ה-CMEK של המשאב ולפרוס אותו מחדש.

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