במסמך הזה מוסבר איך להשתמש במפתחות הצפנה בניהול הלקוח (CMEK) כדי להצפין ולשלוט בנתונים במנוחה בשירות ענן באמצעות Cloud Key Management Service. CMEK משולב עם התאמה אישית של קוד ב-Gemini Code Assist.
Gemini Code Assist לא תומך בשימוש במפתחות של Cloud EKM.
אם לא משתמשים ב-CMEK, Google מנהלת באופן אוטומטי את המפתחות שמצפינים את הנתונים כברירת מחדל. ההתנהגות הזו נקראת ברירת המחדל של Google להצפנה. כשמשתמשים בהתנהגות ברירת המחדל הזו, אין לכם שליטה על מפתחות ההצפנה.
במסמך הזה תלמדו:
- איך יוצרים 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.
בסביבת המעטפת, מריצים את הפקודה
gcloud components update
כדי לוודא שעדכנתם את כל הרכיבים המותקנים של CLI של gcloud לגרסה האחרונה. בשלב הזה אפשר להתקין ולהפעיל את ה-CLI של gcloud, או להשתמש ב-Cloud Shell.gcloud components update
יצירת CMEK והענקת הרשאות
כדי ליצור מפתח CMEK ולהקצות לחשבון השירות של Gemini Code Assist הרשאות על המפתח, מבצעים את המשימות הבאות:
בפרויקט Google Cloud שבו רוצים לנהל את המפתחות, מבצעים את הפעולות הבאות:
אפשר ליצור אוסף מפתחות ומפתח באמצעות אחת מהאפשרויות הבאות:
- יוצרים את אוסף המפתחות ואת המפתח ישירות ב-Cloud KMS.
- שימוש במפתח שמנוהל באופן חיצוני. יוצרים את המפתח החיצוני, ואז יוצרים מפתח Cloud EKM כדי שהמפתח יהיה זמין דרך Cloud KMS.
מקצים לחשבון השירות של Gemini Code Assist את תפקיד ה-IAM CryptoKey Encrypter/Decrypter (
roles/cloudkms.cryptoKeyEncrypterDecrypter
). מעניקים את ההרשאה הזו למפתח שיצרתם.המסוף
עוברים אל ניהול מפתחות.
בוחרים את המפתח שיצרתם.
מעניקים גישה לחשבון השירות של 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.
- לוחצים על שמירה.
חוזרים על השלב הקודם כדי להעניק גישה לחשבון שיוצר את האינדקס של מאגר הקוד באמצעות CMEK.
חוזרים לדף Key management ובוחרים שוב את המפתח.
בוחרים באפשרות הצגת חלונית המידע. התפקידים אמורים להופיע בעמודה תפקיד/חבר.
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
.
עכשיו אפשר ליצור אינדקס של מאגר קוד עם CMEK באמצעות ה-API, ולציין את המפתח שישמש להצפנה.
יצירת אינדקס למאגר קוד באמצעות CMEK
כדי ליצור מאגר חדש עם הגנה של CMEK, מבצעים אחת מהפעולות הבאות:
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"
מחליפים את מה שכתוב בשדות הבאים:
- CODE_REPOSITORY_INDEX_NAME: השם של האינדקס החדש של מאגר הקוד שיצרתם.
- LOCATION: מיקום המפתח.
- KEY_PROJECT_ID: מזהה הפרויקט של המפתח.
- KEYRING_NAME: שם אוסף המפתחות.
- KEY_NAME: שם המפתח.
API
יוצרים קובץ 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
.
-
התשובה מחזירה קבוצה של רשומות ביומן.
הסרת גישה למאגר CMEK
יש כמה דרכים להסיר את הגישה למאגר מוצפן באמצעות CMEK:
- מבטלים את התפקיד Cloud KMS CryptoKey Encrypter/Decrypter מחשבון השירות של Gemini Code Assist באמצעות מסוףGoogle Cloud או CLI של gcloud.
- משביתים באופן זמני את ה-CMEK.
- למחוק לתמיד את ה-CMEK.
מומלץ לבטל את ההרשאות מחשבון השירות של Gemini Code Assist לפני השבתה או השמדה של מפתח. השינויים בהרשאות מתבצעים תוך שניות, כך שאפשר לראות את ההשפעות של השבתת מפתח או השמדתו.