בדף הזה מוסבר איך להגדיר את Cloud External Key Manager (Cloud EKM) כדי להתחבר לספק של ניהול המפתחות החיצוני (EKM) דרך רשת ענן וירטואלי פרטי (VPC).
אתם יכולים להשתמש במפתחות חיצוניים דרך VPC במיקומים של Cloud KMS שתומכים ב-EKM דרך VPC. מידע נוסף זמין בדף מיקומים ב-Cloud KMS.
אם אתם מעבירים מפתחות EXTERNAL קיימים לרמת ההגנה EXTERNAL_VPC (גרסת טרום-השקה (Preview)), קודם אתם צריכים לבצע את שלבי ההגדרה האלה.
הסברים על המונחים
חיבור EKM
המשאב של Cloud KMS שמשמש להגדרת החיבור למנהל המפתחות החיצוני. במסוף Google Cloud , החיבור הזה נקרא חיבור EKM באמצעות VPC.
פרויקט VPC
הפרויקט שמכיל את משאב ה-VPC שמשמש להתחברות למנהל המפתחות החיצוני.
פרויקטים מרכזיים
הפרויקטים שכוללים משאבים של חיבורי EKM ומפתחות Cloud EKM ב-Cloud KMS. פרויקט המפתחות יכול להיות זהה לפרויקט VPC, אבל זו לא חובה.
תחום המטבעות הווירטואליים
מאגר למשאבים שלכם בשותף החיצוני לניהול מפתחות. מרחב הקריפטו שלכם מזוהה באמצעות נתיב ייחודי. הפורמט של הנתיב למרחב הקריפטוגרפי משתנה בהתאם לשותף החיצוני לניהול מפתחות, לדוגמה
v0/cryptospaces/YOUR_UNIQUE_PATH.
לפני שמתחילים
אחרי שתשלימו את השלבים הבאים, תוכלו להתחיל להשתמש במפתחות Cloud EKM כדי להגן על הנתונים שלכם.
יצירת פרויקט חדש
במסוף Google Cloud , נכנסים לדף Manage resources.
יוצרים פרויקט חדש ב- Google Cloud או בוחרים פרויקט קיים.
הפעלת Cloud KMS
מפעילים בפרויקט את Cloud Key Management Service API.
רושמים את חשבון השירות של Cloud EKM בפרויקט. בדוגמה הבאה, מחליפים את
PROJECT_NUMBERבGoogle Cloud מספר הפרויקט. המידע הזה מופיע גם בכל פעם שמשתמשים במסוף Google Cloud כדי ליצור מפתח Cloud EKM.service-PROJECT_NUMBER@gcp-sa-ekms.iam.gserviceaccount.com
מוודאים שהגרסה של ה-CLI של gcloud עדכנית {: class="hide-from-toc"}
אם אתם משתמשים ב-Google Cloud CLI, ודאו שהוא מעודכן באמצעות הפקודה הבאה:
gcloud
gcloud components update
הכנה של רשת VPC
יש שתי אפשרויות להגדרת רשת VPC:
כברירת מחדל, פרויקטים חדשים מכילים רשת VPC במצב אוטומטי שמאוכלסת מראש בכללי חומת אש. אם לא תשתמשו ברשת ה-VPC למטרות ייצור, רשת ה-VPC שמוגדרת כברירת מחדל במצב אוטומטי היא הדרך המהירה ביותר להתחיל.
אם מנהל המפתחות החיצוני פועל באופן מקומי ואתם מתחברים אליו באמצעות קישוריות היברידית, כדאי להשתמש ברשת VPC במצב מותאם אישית כי היא מספקת שליטה על טווחי כתובות ה-IP של רשת המשנה.
כדי להגדיר את ה-VPC:
הפעלת גישה פרטית לשירותי Google
מנהל המפתחות החיצוני חייב לאמת את אסימון ה-OIDC שכלול בכל בקשה. כדי לאמת את האסימון, מנהל המפתחות החיצוני צריך לאחזר את המפתח הציבורי של OAuth2 משם הדומיין
www.googleapis.com. אם מנהל המפתחות החיצוני פועל ב- Google Cloud ואין לו גישה לאינטרנט (למשל, מכונה וירטואלית ללא כתובת IP חיצונית או מכונה וירטואלית שחומת אש חוסמת אותה), פועלים לפי ההוראות להגדרת גישה פרטית ל-Google.הגדרת חומת אש לטווח כתובות ה-IP
35.199.192.0/19בקשות מ-Cloud EKM יגיעו מהטווח הזה. יוצרים כללי חומת אש שמאפשרים תעבורת נתונים נכנסת ויוצאת ב-TCP, ליציאה שבה מנהל המפתחות החיצוני מאזין.
הגדרת קישוריות היברידית
אם מנהל המפתחות החיצוני פועל באופן מקומי, צריך להשתמש בפתרון קישוריות היברידי כדי לחבר את ה-VPC לרשת המקומית. אחרי שמגדירים את הקישוריות, פועלים לפי השלבים הנוספים הבאים:
הפעלת גישה פרטית ל-Google
מנהל המפתחות החיצוני חייב לאמת את אסימון ה-OIDC שכלול בכל בקשה. כדי לאמת את האסימון, מנהל המפתחות החיצוני צריך לאחזר את המפתח הציבורי של OAuth2 משם הדומיין
www.googleapis.com. אם מנהל המפתחות החיצוני פועל באופן מקומי ואין לו גישה דרך האינטרנט, פועלים לפי ההוראות להגדרת גישה פרטית ל-Google למארחים מקומיים.הגדרת חומת אש לטווח כתובות ה-IP
35.199.192.0/19בקשות מ-Cloud EKM מגיעות מהטווח הזה. מגדירים את חומת האש של הרשת המקומית או ציוד דומה כדי לאפשר תעבורת נתונים ב-TCP ביציאה שבה מנהל המפתחות החיצוני מאזין.
מוודאים של-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 גישה למרחב הקריפטוגרפי ולמפתחות שנוצרו בו.
הגדירו מדיניות של הצדקות לגישה למפתחות כדי לקבוע אילו הצדקות לגישה יאושרו או יידחו.
התהליך המדויק של כל אחד מהשלבים האלה תלוי ב-EKM שלכם. מידע נוסף זמין במסמכי התיעוד של ספק ה-EKM.
יצירת נקודת קצה של שירות ב-Service Directory
יוצרים ומגדירים נקודת קצה של שירות ב-Service Directory בפרויקט ה-VPC, שמפנה לכתובת ה-IP הפרטית וליציאה של מנהל המפתחות החיצוני. אם אתם משתמשים במאזן עומסים לפני כמה רפליקות של EKM, השתמשו בכתובת ה-IP וביציאה של מאזן העומסים. מוודאים שהשדה network של נקודת הקצה של השירות ב-Service Directory מאוכלס.
איך נותנים ל-Cloud EKM הרשאת גישה ל-VPC
בכל פרויקט מפתחות, צריך לתת ל-Cloud EKM הרשאה לגשת ל-VPC בשם הפרויקט, גם אם פרויקט המפתחות ופרויקט ה-VPC הם אותו פרויקט. כשנותנים הרשאת גישה, המפתחות בפרויקט המפתחות יכולים להשתמש ב-VPC בפרויקט ה-VPC.
משתמשים ב-CLI של gcloud כדי לוודא שקיים בפרויקט חשבון שירות של Cloud EKM.
gcloud beta services identity create \ --service=cloudkms.googleapis.com \ --project=KEY_PROJECT_IDמשתמשים ב-CLI של gcloud כדי להקצות את התפקידים
servicedirectory.viewerו-servicedirectory.pscAuthorizedServiceבפרויקט VPC ל-service-KEY_PROJECT_NUMBER@gcp-sa-ekms.iam.gserviceaccount.com. אם אתם צריכים עזרה באיתור מזהה הפרויקט ומספר הפרויקט, קראו את המאמר יצירה וניהול של פרויקטים.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 בפרויקט המפתחות.
המסוף
נכנסים לדף KMS infrastructure במסוף Google Cloud .
לוחצים על Create connection.
בקטע Connection name, נותנים שם לחיבור.
בקטע Region, בוחרים מיקום לחיבור ה-EKM. כל מפתחות Cloud KMS שמשויכים לחיבור הזה צריכים להיות באותו מיקום של החיבור.
בשדה Service resource ID (self_link), מזינים את הערך של השירות ב-Service Directory שיצרתם בקטע יצירת נקודת קצה של שירות ב-Service Directory. השירות של ספריית השירותים צריך להיות באותו מיקום של החיבור.
בשדה שם מארח, מוסיפים את שם המארח של מנהל המפתחות החיצוני.
בקטע Certificates, לוחצים על Add certificate כדי להעלות אישור שרת X.509 אחד או יותר למנהל המפתחות החיצוני. האישורים צריכים להיות בפורמט DER.
בקטע EKM management mode, בוחרים באפשרות Manual כדי להשתמש בחיבור ל-EKM למפתחות חיצוניים שמנוהלים באופן ידני, או באפשרות Cloud KMS כדי להשתמש בחיבור ל-EKM למפתחות חיצוניים מתואמים.
אם בחרתם באפשרות Cloud KMS בשדה EKM management mode, בשדה Crypto space path הזינו את הנתיב של מרחב ההצפנה שקיבלתם מה-EKM.
זה שינוי אופציונלי. כדי להגדיר את חיבור ה-EKM כחיבור ברירת המחדל לפרויקט ולמיקום הזה, מסמנים את התיבה Set connection as the default. אם חיבור EKM אחר מוגדר כרגע כחיבור ברירת המחדל לפרויקט ולמיקום הזה, חיבור ה-EKM הזה יחליף את ברירת המחדל הקיימת.
לוחצים על יצירה.
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: שם המארח של מנהל המפתחות החיצוני.
מידע נוסף זמין במאמרי העזרה של ה-API של EkmConnection.create.
סטטוס האישור
אחרי שמעלים אישור לחיבור ל-EKM, אפשר לבדוק את סטטוס האישור הכולל של החיבור ל-EKM ואת הסטטוס של כל אישור בדף התשתית של KMS.
לחיבורי EKM יש סטטוס כללי בעמודה Certificate status של כל חיבור. אם לחיבור EKM יש סטטוס שונה מ-Active, מומלץ לעדכן את האישורים בחיבור ה-EKM.
גם לחיבורי EKM וגם לאישורים ספציפיים יכולים להיות הסטטוסים הבאים:
- פעיל: האישור תקף ותאריך התפוגה שלו לא קרוב.
- Expiring within 30 days: האישור תקף, אבל תאריך התפוגה שלו יחול ב-30 הימים הקרובים.
- Expired: תוקף האישור פג והוא כבר לא תקף. מומלץ לעדכן את כל האישורים שפג תוקפם.
- עדיין לא בתוקף: האישור לא פעיל. זה יכול לקרות אם תאריך ההתחלה של האישור הוא בעתיד.
אם האישור כבר לא תקף, צריך לעדכן את חיבור ה-EKM ב-Google Cloud מסוף.
המסוף
נכנסים לדף KMS infrastructure במסוף Google Cloud .
לוחצים על השם של החיבור של EKM over VPC עם האישור שצריך לעדכן.
לוחצים על עריכת החיבור.
לוחצים על Add certificate כדי להעלות אישור שרת X.509 אחד או יותר למנהל המפתחות החיצוני. האישורים צריכים להיות בפורמט DER.
מסירים את האישורים שפג תוקפם. מעבירים את העכבר מעל האישור שפג תוקפו ולוחצים על סמל המחיקה בצד שמאל.
לוחצים על Update connection כדי לעדכן את החיבור של ה-EKM דרך VPC.
הגדרת חיבור EKM כברירת מחדל
אתם יכולים להגדיר חיבור EKM כחיבור ברירת המחדל לפרויקט ולמיקום מסוימים. כשמגדירים חיבור EKM כברירת מחדל לפרויקט ולמיקום, מפתחות חדשים של Cloud EKM by VPC שנוצרים באוספי מפתחות במיקום הזה משתמשים בחיבור ה-EKM שצוין, אלא אם נבחר חיבור EKM אחר.
כדי להגדיר חיבור EKM כברירת המחדל לפרויקט ולמיקום שלו, מבצעים את השלבים הבאים:
המסוף
נכנסים לדף KMS infrastructure במסוף Google Cloud .
לוחצים על חיבור ה-EKM שרוצים להגדיר כברירת מחדל.
לוחצים על עריכת החיבור.
בקטע Default connection, מסמנים את התיבה Set connection as the default for LOCATION.
לוחצים על עדכון החיבור.
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.
REST
כדי להגדיר את חיבור ה-EKM שמוגדר כברירת מחדל למיקום מסוים, משתמשים ב-method 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 יכול להיות מוגדר כברירת מחדל.
המאמרים הבאים
- יצירת מפתח חיצוני.
- אפשר גם [להעביר מפתחות חיצוניים][migrate] (גרסת טרום-השקה (Preview)).