יצירת חיבור EKM

בדף הזה מוסבר איך להגדיר את Cloud External Key Manager ‏ (Cloud EKM) כדי להתחבר לספק ניהול מפתחות חיצוני (EKM) באמצעות רשת ענן וירטואלי פרטי (VPC).

אתם יכולים להשתמש במפתחות חיצוניים ב-VPC במיקומים של Cloud KMS שתומכים ב-EKM דרך VPC. מידע נוסף מופיע בדף בנושא מיקומים ב-Cloud KMS.

הסברים על המונחים

  • חיבור EKM

    משאב Cloud KMS שמשמש להגדרת חיבור למנהל המפתחות החיצוני. במסוף Google Cloud , זה נקרא EKM באמצעות חיבור VPC.

  • פרויקט VPC

    הפרויקט שמכיל את משאב ה-VPC שמשמש לחיבור למנהל המפתחות החיצוני.

  • פרויקטים מרכזיים

    הפרויקטים שכוללים משאבי חיבור EKM ומפתחות Cloud EKM ב-Cloud KMS. פרויקט המפתחות יכול להיות זהה לפרויקט ה-VPC, אבל זו לא חובה.

  • עולם הקריפטו

    קונטיינר של המשאבים שלכם אצל השותף החיצוני לניהול מפתחות. המרחב הקריפטוגרפי שלכם מזוהה באמצעות נתיב ייחודי למרחב הקריפטוגרפי. הפורמט של הנתיב של מרחב ההצפנה משתנה בהתאם לשותף החיצוני לניהול מפתחות – לדוגמה, v0/cryptospaces/YOUR_UNIQUE_PATH.

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

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

יצירת פרויקט חדש

  1. במסוף Google Cloud , עוברים לדף Manage Resources.

    כניסה לדף Manage Resources

  2. יוצרים פרויקט חדש או בוחרים פרויקט קיים. Google Cloud

  3. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  4. מידע נוסף על התמחור של Cloud EKM

הפעלת Cloud KMS

  1. מפעילים את Cloud Key Management Service API בפרויקט.

    הפעלת Cloud Key Management Service API

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

    service-PROJECT_NUMBER@gcp-sa-ekms.iam.gserviceaccount.com
    

מוודאים שגרסת ה-CLI של gcloud עדכנית

אם אתם מתכוונים להשתמש ב-Google Cloud CLI, ודאו שהוא מעודכן באמצעות הפקודה הבאה:

‫CLI של gcloud

gcloud components update

הכנת רשת VPC

יש שתי אפשרויות להגדרת רשת VPC:

כברירת מחדל, פרויקטים חדשים מכילים רשת במצב אוטומטי שמאוכלסת מראש בכללי חומת אש. אם לא תשתמשו ברשת ה-VPC למטרות ייצור, רשת ברירת המחדל במצב אוטומטי היא הדרך המהירה ביותר להתחיל.

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

כדי להגדיר את ה-VPC, פועלים לפי השלבים הבאים:

  1. הפעלת גישה פרטית ל-Google

    מנהל המפתחות החיצוני צריך לאמת את אסימון ה-OIDC שכלול בכל בקשה. כדי לאמת את הטוקן, צריך לאחזר את המפתח הציבורי של OAuth2 משם הדומיין www.googleapis.com. אם מנהל המפתחות החיצוני פועל ב- Google Cloud ואין לו גישה דרך האינטרנט (לדוגמה, מכונה וירטואלית ללא כתובת IP חיצונית או חסימה על ידי חומת אש), צריך לפעול לפי ההוראות להגדרת גישה פרטית ל-Google.

  2. הגדרת חומת אש לטווח כתובות IP‏ 35.199.192.0/19

    בקשות מ-Cloud EKM יגיעו מהטווח הזה. יוצרים כללים של חומת אש שמאפשרים תעבורת נתונים נכנסת (ingress) ויוצאת (egress) ב-TCP עבור היציאה שבה מנהל המפתחות החיצוני מאזין.

הגדרת קישוריות היברידית

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

  1. הפעלת גישה פרטית ל-Google

    מנהל המפתחות החיצוני צריך לאמת את אסימון ה-OIDC שכלול בכל בקשה. כדי לאמת את האסימון, צריך לאחזר את המפתח הציבורי של OAuth2 משם הדומיין www.googleapis.com. אם מנהל המפתחות החיצוני פועל בפריסה מקומית ואין לו גישה דרך האינטרנט, צריך לפעול לפי ההוראות להגדרת גישה פרטית ל-Google עבור מארחים בפריסה מקומית.

  2. הגדרת חומת אש לטווח כתובות IP‏ 35.199.192.0/19

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

  3. מוודאים של-VPC יש נתיב חזרה לטווח כתובות ה-IP‏ 35.199.192.0/19

    ברשת המקומית שלכם חייב להיות מסלול ליעד 35.199.192.0/19. מידע על עמידה בדרישה הזו זמין במאמר אסטרטגיות של נתיבי חזרה ליעדים מקומיים.

שיטות להחזרת נתונים ליעדים מקומיים

  • למנהרות Cloud VPN שמשתמשות בניתוב סטטי, צריך ליצור באופן ידני נתיב ברשת המקומית שהיעד שלו הוא 35.199.192.0/19 והקפיצה הבאה שלו היא מנהרת Cloud VPN. עבור מנהרות Cloud VPN שמשתמשים בניתוח תנועה מבוסס-מדיניות, מגדירים את הכלי לבחירת תנועה מקומית של Cloud VPN ואת הכלי לבחירת תנועה מרחוק של שער VPN מקומי כך שיכללו את 35.199.192.0/19.

  • במנהרות Cloud VPN שמשתמשות בניתוח דינמי או ב-Cloud Interconnect, צריך להגדיר מצב פרסום בהתאמה אישית עבור 35.199.192.0/19 בסשן BGP של Cloud Router שמנהל את המנהרה או את חיבור ה-VLAN.

הגדרה של מנהל מפתחות חיצוני

פועלים לפי ההוראות של ספק ה-EKM כדי להגדיר את ה-EKM.

הגדרת מרחב קריפטו

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

אם ספק ה-EKM שלכם תואם לניהול מפתחות EKM מ-Cloud KMS, צריך לבצע את שלבי ההגדרה והקביעה הבאים ב-EKM:

  • יוצרים מרחב קריפטוגרפי למשאבים שמנוהלים על ידי Cloud KMS ב-EKM.

  • נותנים לחשבון השירות ב-Cloud KMS גישה למרחב ההצפנה ולמפתחות שנוצרו בו.

  • מגדירים מדיניות Key Access Justifications כדי לקבוע אילו הצדקות לגישה יאושרו או יידחו.

התהליך המדויק של כל אחד מהשלבים האלה תלוי ב-EKM שלכם. מידע נוסף זמין במסמכי התיעוד של ספק ה-EKM.

יצירה של נקודת קצה של שירות ב-Service Directory

יוצרים ומגדירים נקודת קצה של שירות Service Directory בפרויקט ה-VPC שמפנה לכתובת ה-IP הפרטית ולפורט של מנהל המפתחות החיצוני. אם משתמשים במאזן עומסים לפני כמה עותקים משוכפלים של EKM, צריך להשתמש בכתובת ה-IP והיציאה של מאזן העומסים. מוודאים שהשדה network של נקודת הקצה של שירות Service Directory מלא.

איך נותנים ל-Cloud EKM הרשאת גישה ל-VPC

לכל פרויקט מפתח, צריך לתת ל-Cloud EKM הרשאה לגשת ל-VPC בשם הפרויקט הזה, גם אם פרויקט המפתח ופרויקט ה-VPC זהים. כשמאשרים גישה, מפתחות בפרויקט המפתחות יכולים להשתמש ב-VPC בפרויקט ה-VPC.

  1. מוודאים שקיים חשבון שירות של Cloud EKM בפרויקט.

    ‫CLI של gcloud

    gcloud beta services identity create \
      --service=cloudkms.googleapis.com \
      --project=KEY_PROJECT_ID
    
  2. מעניקים את ההרשאות servicedirectory.viewer ו-servicedirectory.pscAuthorizedService בפרויקט ה-VPC ל-service-KEY_PROJECT_NUMBER@gcp-sa-ekms.iam.gserviceaccount.com. כדי לקבל עזרה באיתור מזהה פרויקט ומספר הפרויקט, אפשר לעיין במאמר יצירה וניהול של פרויקטים.

    ‫CLI של gcloud

    gcloud projects add-iam-policy-binding VPC_PROJECT_ID \
      --member=serviceAccount:service-KEY_PROJECT_NUMBER@gcp-sa-ekms.iam.gserviceaccount.com \
      --role=roles/servicedirectory.viewer
    
    gcloud projects add-iam-policy-binding VPC_PROJECT_ID \
      --member=serviceAccount:service-KEY_PROJECT_NUMBER@gcp-sa-ekms.iam.gserviceaccount.com \
      --role=roles/servicedirectory.pscAuthorizedService
    

יצירת חיבור EKM

כדי לחבר את מנהל המפתחות החיצוני ל-Cloud EKM, צריך ליצור חיבור EKM בפרויקט המפתחות.

המסוף

  1. נכנסים לדף KMS infrastructure במסוף Google Cloud .

    כניסה אל KMS infrastructure

  2. לוחצים על יצירת חיבור.

  3. בשדה Connection name, מזינים שם לחיבור.

  4. בקטע Region, בוחרים מיקום לחיבור EKM. כל מפתחות Cloud KMS שמשויכים לחיבור הזה צריכים להיות באותו מיקום כמו החיבור.

  5. בשדה Service resource ID (self_link) מזינים את הערך של שירות Service Directory שנוצר בקטע יצירת נקודת קצה של שירות Service Directory. שירות ספריית השירותים צריך להיות באותו מיקום כמו החיבור.

  6. בשדה שם המארח, מוסיפים את שם המארח של מנהל המפתחות החיצוני.

  7. בקטע Certificates (אישורים), לוחצים על Add certificate (הוספת אישור) כדי להעלות אישור שרת X.509 אחד או יותר עבור מנהל המפתחות החיצוני. האישורים צריכים להיות בפורמט DER.

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

  9. אם בחרתם באפשרות Cloud KMS בשדה EKM management mode, בשדה Crypto space path מזינים את הנתיב של מרחב ההצפנה שסופק על ידי ה-EKM.

  10. זה שינוי אופציונלי. כדי להגדיר את חיבור ה-EKM כחיבור ברירת המחדל לפרויקט ולמיקום האלה, מסמנים את התיבה Set connection as the default (הגדרת החיבור כברירת מחדל). אם חיבור EKM אחר מוגדר כרגע כחיבור ברירת המחדל לפרויקט ולמיקום האלה, חיבור ה-EKM הזה יחליף את ברירת המחדל הקיימת.

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

gcloud

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

כדי ליצור חיבור EKM למפתחות חיצוניים שמנוהלים באופן ידני, מריצים את הפקודה הבאה:

gcloud beta kms ekm-connections create EKM_CONNECTION \
    --location LOCATION \
    --service-directory-service SERVICE_DIRECTORY_SERVICE \
    --hostname HOSTNAME \
    --server-certificates-files SERVER_CERTIFICATE_FILES \
    --key-management-mode manual

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

  • EKM_CONNECTION: שם לחיבור EKM.
  • LOCATION: המיקום ב-Cloud KMS שבו רוצים ליצור את חיבור ה-EKM. כל מפתחות Cloud KMS שמשויכים לחיבור הזה צריכים להיות באותו מיקום כמו החיבור.
  • SERVICE_DIRECTORY_SERVICE: מזהה המשאב של שירות Service Directory לחיבור שלכם.
  • HOSTNAME: שם המארח של מנהל המפתחות החיצוני.
  • SERVER_CERTIFICATE_FILES: רשימה מופרדת בפסיקים של קבצים שמכילים אישורי שרת X.509 עבור מנהל המפתחות החיצוני. האישורים צריכים להיות בפורמט DER.

כדי ליצור חיבור EKM למפתחות חיצוניים מתואמים, מריצים את הפקודה הבאה:

gcloud beta kms ekm-connections create EKM_CONNECTION \
    --location LOCATION \
    --service-directory-service SERVICE_DIRECTORY_SERVICE \
    --hostname HOSTNAME \
    --server-certificates-files SERVER_CERTIFICATE_FILES \
    --key-management-mode cloud-kms \
    --crypto-space-path CRYPTO_SPACE_PATH

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

  • EKM_CONNECTION: שם לחיבור EKM.
  • LOCATION: המיקום ב-Cloud KMS שבו רוצים ליצור את חיבור ה-EKM. כל מפתחות Cloud KMS שמשויכים לחיבור הזה צריכים להיות באותו מיקום כמו החיבור.
  • SERVICE_DIRECTORY_SERVICE: מזהה המשאב של שירות Service Directory לחיבור שלכם.
  • HOSTNAME: שם המארח של מנהל המפתחות החיצוני.
  • SERVER_CERTIFICATE_FILES: רשימה מופרדת בפסיקים של קבצים שמכילים אישורי שרת X.509 עבור מנהל המפתחות החיצוני. האישורים צריכים להיות בפורמט DER.
  • CRYPTO_SPACE_PATH: הנתיב למרחב ההצפנה שסופק על ידי ספק ה-EKM.

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

API

בדוגמאות האלה נעשה שימוש ב-curl כלקוח HTTP כדי להדגים את השימוש ב-API. מידע נוסף על בקרת גישה זמין במאמר גישה ל-Cloud KMS API.

כדי ליצור חיבור EKM למפתחות חיצוניים מתואמים, מריצים את הפקודה הבאה:

curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ekmConnections" \
    --request "POST" \
    --header "authorization: Bearer TOKEN" \
    --header "content-type: application/json" \
    --header "x-goog-user-project: PROJECT_ID" \
    --data '{
      "name": "EKM_CONNECTION",
      "serviceResolvers": [
        {
          "serviceDirectoryService": "SERVICE_DIRECTORY_SERVICE",
          "hostname": "HOSTNAME",
          "serverCertificates": [
            {
              SERVER_CERTIFICATES
            }
          ]
        }
      ]
      "keyManagementMode": "CLOUD_KMS",
      "cryptoSpacePath": "CRYPTO_SPACE_PATH"
    }'

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

  • PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את חיבור ה-EKM.
  • LOCATION: Cloud KMS שבו רוצים ליצור את חיבור ה-EKM.
  • EKM_CONNECTION: השם שבו רוצים להשתמש לחיבור EKM.
  • SERVER_CERTIFICATES: רשימה של עד 10 אובייקטים מסוג Certificate שמייצגים אישורים של שרתים מסוג עלה.
  • HOSTNAME: שם המארח של מנהל המפתחות החיצוני.
  • CRYPTO_SPACE_PATH: הנתיב למרחב ההצפנה שסופק על ידי ספק ה-EKM.

כדי ליצור חיבור EKM למפתחות חיצוניים שמנוהלים באופן ידני, מריצים את הפקודה הבאה:

curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ekmConnections" \
    --request "POST" \
    --header "authorization: Bearer TOKEN" \
    --header "content-type: application/json" \
    --header "x-goog-user-project: PROJECT_ID" \
    --data '{
      "name": "EKM_CONNECTION",
      "serviceResolvers": [
        {
          "serviceDirectoryService": "SERVICE_DIRECTORY_SERVICE",
          "hostname": "HOSTNAME",
          "serverCertificates": [
            {
              SERVER_CERTIFICATES
            }
          ]
        }
      ]
    }'

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

  • PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את חיבור ה-EKM.
  • LOCATION: Cloud KMS שבו רוצים ליצור את חיבור ה-EKM.
  • EKM_CONNECTION: השם שבו רוצים להשתמש לחיבור EKM.
  • SERVER_CERTIFICATES: רשימה של עד 10 אובייקטים מסוג Certificate שמייצגים אישורי שרת עלים.
  • HOSTNAME: שם המארח של מנהל המפתחות החיצוני.

מידע נוסף מופיע במאמרי העזרה של EkmConnection.create API.

סטטוס האישור

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

לכל חיבור EKM יש סטטוס כללי בעמודה סטטוס האישור. אם החיבור ל-EKM הוא לא פעיל, מומלץ לעדכן את האישורים בחיבור ל-EKM.

גם לחיבורי EKM וגם לאישורים בודדים יכול להיות אחד מהסטטוסים הבאים:

  • פעיל: האישור בתוקף ולא מתקרב לתאריך התפוגה שלו.
  • התוקף יפוג תוך 30 יום: האישור תקף, אבל תאריך התפוגה שלו הוא ב-30 הימים הבאים.
  • פג תוקף: תוקף האישור פג והוא כבר לא תקף. מומלץ לעדכן אישורים שפג תוקפם.
  • Not valid yet: האישור לא פעיל. זה יכול לקרות אם תאריך ההתחלה של האישור הוא בעתיד.

אם האישור שלכם כבר לא תקף, צריך לעדכן את החיבור ל-EKM בGoogle Cloud מסוף.

המסוף

  1. נכנסים לדף KMS infrastructure במסוף Google Cloud .

    כניסה אל KMS infrastructure

  2. לוחצים על השם של חיבור ה-EKM דרך VPC עם האישור שצריך לעדכן.

  3. לוחצים על עריכת הקישור.

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

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

  6. לוחצים על עדכון החיבור כדי לעדכן את ה-EKM באמצעות חיבור VPC.

הגדרת חיבור EKM כברירת מחדל

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

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

המסוף

  1. נכנסים לדף KMS infrastructure במסוף Google Cloud .

    כניסה אל KMS infrastructure

  2. לוחצים על חיבור ה-EKM שרוצים להגדיר כברירת מחדל.

  3. לוחצים על עריכת הקישור.

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

  5. לוחצים על עדכון החיבור.

‫CLI של gcloud

gcloud kms ekm-config update
  --location=LOCATION
  --default-ekm-connection=projects/PROJECT_ID/locations/LOCATION/ekmConnections/DEFAULT_EKM_CONNECTION

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

  • LOCATION: Cloud KMS שעבורו רוצים להגדיר את חיבור EKM שמוגדר כברירת מחדל.
  • PROJECT_ID: שם הפרויקט שרוצים להגדיר לו את חיבור ה-EKM שמוגדר כברירת מחדל.
  • DEFAULT_EKM_CONNECTION: השם של חיבור ה-EKM שרוצים להגדיר כברירת מחדל למיקום הזה. המיקום של חיבור ה-EKM צריך להיות זהה למיקום שצוין ב-LOCATION.

API

כדי להגדיר את חיבור ה-EKM שמוגדר כברירת מחדל למיקום, משתמשים בשיטה EkmConfig.patch:

curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ekmConfig" \
    --request "PATCH" \
    --header "authorization: Bearer TOKEN" \
    --header "content-type: application/json" \
    --data '{"defaultEkmConnection": "projects/PROJECT_ID/locations/LOCATION/ekmConnections/DEFAULT_EKM_CONNECTION"}'

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

  • PROJECT_ID: מזהה הפרויקט שרוצים להגדיר בו חיבור EKM כברירת מחדל.
  • LOCATION: Cloud KMS שעבורו רוצים להגדיר את חיבור EKM שמוגדר כברירת מחדל.
  • DEFAULT_EKM_CONNECTION: השם של חיבור ה-EKM שרוצים להגדיר כברירת מחדל למיקום הזה. המיקום של חיבור ה-EKM צריך להיות זהה למיקום שצוין ב-LOCATION.

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

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