במסמך הזה מוסבר איך להשתמש במפתחות הצפנה בניהול הלקוח (CMEK) כדי להצפין נתונים במנוחה בשירות ענן ולשלוט בהם באמצעות Cloud Key Management Service. CMEK משולב עם התאמה אישית של קוד ב-Gemini Code Assist. Gemini Code Assist לא תומך בשימוש במפתחות Cloud EKM.
במסמך הזה תלמדו:
- איך יוצרים מפתח CMEK
- נותנים הרשאות לחשבון השירות של Gemini Code Assist.
- יצירת אינדקס של מאגר קוד עם CMEK.
- הסרת הגישה למאגר CMEK.
כברירת מחדל, Gemini for Google Cloud מצפין את התוכן של הלקוחות במנוחה. Gemini מטפל בהצפנה בשבילכם בלי שתצטרכו לבצע פעולות נוספות. האפשרות הזו נקראת הצפנת ברירת המחדל של Google.
אם רוצים לשלוט במפתחות ההצפנה, אפשר להשתמש במפתחות הצפנה בניהול הלקוח (CMEK) ב-Cloud KMS עם שירותים שמשולבים עם CMEK, כולל Gemini. שימוש במפתחות של Cloud KMS מאפשר לכם לשלוט ברמת ההגנה, במיקום, בלוח הזמנים של הרוטציה, בשימוש ובהרשאות הגישה, ובגבולות הקריפטוגרפיים. בנוסף, באמצעות Cloud KMS תוכלו לצפות ביומני ביקורת ולשלוט במחזורי החיים של המפתחות. במקום ש-Google תהיה הבעלים של מפתחות ההצפנה (KEK) הסימטריים שמגנים על הנתונים שלכם ותנהל אותם, אתם שולטים במפתחות האלה ומנהלים אותם ב-Cloud KMS.
אחרי שמגדירים את המשאבים באמצעות CMEK, חוויית הגישה למשאבי Gemini דומה לשימוש בהצפנה שמוגדרת כברירת מחדל ב-Google. מידע נוסף על אפשרויות ההצפנה זמין במאמר מפתחות הצפנה בניהול הלקוח (CMEK).
לפני שמתחילים
-
In the Google Cloud console, activate Cloud Shell.
בסביבת הפיתוח שבה הגדרתם את ה-CLI של gcloud, מריצים את הפקודה
gcloud components updateכדי לוודא שעדכנתם את כל הרכיבים המותקנים של ה-CLI של gcloud לגרסה העדכנית.gcloud components updateבפרויקט Google Cloud שבו רוצים לנהל את המפתחות, מבצעים את הפעולות הבאות:
יוצרים את אוסף המפתחות ואת המפתח ישירות ב-Cloud KMS.
מקצים את תפקיד ה-IAM CryptoKey Encrypter/Decrypter (
roles/cloudkms.cryptoKeyEncrypterDecrypter) לחשבון השירות של Gemini Code Assist. צריך לתת את ההרשאה הזו למפתח שיצרתם.המסוף
עוברים אל ניהול מפתחות.
בוחרים את המפתח שיצרתם.
נותנים גישה לחשבון השירות של Gemini Code Assist:
- לוחצים על Add principal.
- מוסיפים את חשבון השירות של Gemini Code Assist. חשבון השירות הוא
service-PROJECT_NUMBER@gcp-sa-cloudaicompanions.iam.gserviceaccount.com, כאשר PROJECT_NUMBER הוא מספר הפרויקט של הפרויקט Google Cloud שבו מופעל Gemini Code Assist. - ברשימת התפקידים Select a role בוחרים באפשרות Cloud KMS > Cloud KMS CryptoKey Encrypter/Decrypter.
- לוחצים על Save.
חוזרים על השלב הקודם כדי להעניק גישה לחשבון שייצור את אינדקס מאגר הקוד באמצעות CMEK.
חוזרים לדף ניהול מפתחות ובוחרים שוב את המפתח.
בוחרים באפשרות הצגת חלונית המידע. התפקידים אמורים להופיע בעמודה תפקיד/חבר.
CLI של gcloud
כדי להעניק גישה לחשבון השירות של Gemini Code Assist, משתמשים בפקודה
kms keys add-iam-policy-bindingבסביבת מעטפת:gcloud kms keys add-iam-policy-binding KEY_NAME \ --project=PROJECT_ID \ --location=LOCATION \ --keyring=KEYRING_NAME \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-cloudaicompanion.iam.gserviceaccount.com" \ --role="roles/cloudkms.cryptoKeyEncrypterDecrypter"מחליפים את מה שכתוב בשדות הבאים:
- KEY_NAME: שם המפתח.
- PROJECT_ID: מזהה הפרויקט שמכיל את המפתח.
- LOCATION: המיקום של המפתח.
- KEYRING_NAME: השם של אוסף המפתחות.
- PROJECT_NUMBER: מספר הפרויקט של פרויקט Google Cloud שבו מופעל Gemini Code Assist.
חוזרים על השלב הקודם כדי להעניק גישה לחשבון שייצור את אינדקס מאגר הקוד באמצעות CMEK.
מידע נוסף על הפקודה הזו זמין במאמרי העזרה בנושא
gcloud kms keys add-iam-policy-binding.- CODE_REPOSITORY_INDEX_NAME: השם של אינדקס מאגר הקוד החדש שייווצר.
- LOCATION: המיקום של המפתח.
- KEY_PROJECT_ID: מזהה הפרויקט של המפתח.
- KEYRING_NAME: השם של אוסף המפתחות.
- KEY_NAME: שם המפתח.
יוצרים קובץ JSON שמכיל את הפרטים הבאים:
{ "kmsKey": "projects/KEY_PROJECT_ID/locations/KEY_LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME" }מחליפים את מה שכתוב בשדות הבאים:
-
KEY_PROJECT_ID: מזהה הפרויקט של המפתח -
KEY_LOCATION: המיקום של המפתח -
KEYRING_NAME: השם של אוסף המפתחות -
KEY_NAME: שם המפתח
-
משתמשים בפקודה
cURLכדי לקרוא לשיטהprojects.locations.codeRepositoryIndexes.create:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://cloudaicompanion.googleapis.com/v1/projects/PROJECT_ID/locations/KEY_LOCATION/codeRepositoryIndexes?codeRepositoryIndexId=CODE_REPOSITORY_INDEX_NAME"מחליפים את מה שכתוב בשדות הבאים:
-
JSON_FILE_NAME: הנתיב לקובץ JSON שיצרתם בשלב הקודם. -
PROJECT_ID: המזהה של הפרויקט שבו רוצים ליצור את המאגר. -
KEY_LOCATION: המיקום שבו רוצים ליצור את המאגר, שצריך להיות זהה למיקום שבו קיים מפתח ה-CMEK. -
CODE_REPOSITORY_INDEX_NAME: השם של אינדקס מאגר הקוד החדש שתיצרו. לדוגמה,zg-btf-0001.
-
- מבטלים את התפקיד Cloud KMS CryptoKey Encrypter/Decrypter מחשבון השירות של Gemini Code Assist באמצעות מסוףGoogle Cloud או ה-CLI של gcloud.
- השבתה זמנית של CMEK.
- השמדה סופית של מפתח ה-CMEK.
יצירה של מפתח CMEK והענקת הרשאות
כדי ליצור מפתח CMEK ולהעניק לחשבון השירות של Gemini Code Assist הרשאות למפתח, מבצעים את המשימות הבאות:
מעכשיו אפשר ליצור אינדקס של מאגר קוד עם CMEK באמצעות ה-API, ולציין את המפתח שבו רוצים להשתמש להצפנה.
יצירת אינדקס של מאגר קוד באמצעות CMEK
כדי ליצור מאגר חדש עם הגנה באמצעות CMEK, מבצעים אחת מהפעולות הבאות:
CLI של gcloud
משתמשים בפקודה gemini code-repository-indexes create:
gcloud gemini code-repository-indexes create CODE_REPOSITORY_INDEX_NAME \
--location=LOCATION \
--kms-key="projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME"
מחליפים את מה שכתוב בשדות הבאים:
API
התשובה מחזירה קבוצה של רשומות ביומן.
הסרת הגישה למאגר CMEK
יש כמה דרכים להסיר גישה למאגר מוצפן באמצעות CMEK:
מומלץ לבטל את ההרשאות מחשבון השירות של Gemini Code Assist לפני השבתה או מחיקה של מפתח. השינויים בהרשאות מתעדכנים תוך שניות, כך שאפשר לראות את ההשפעות של השבתה או מחיקה של מפתח.