במסמך הזה מוסבר איך להשתמש במפתחות הצפנה בניהול הלקוח (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, חוויית הגישה למשאבי Gemini דומה לשימוש בהצפנה שמוגדרת כברירת מחדל ב-Google. מידע נוסף על אפשרויות ההצפנה זמין במאמר בנושא מפתחות הצפנה בניהול הלקוח (CMEK).
לפני שמתחילים
מגדירים את ה-CLI של gcloud באחת מסביבות הפיתוח הבאות:
Cloud Shell: כדי להשתמש בטרמינל אונליין שבו כבר מוגדר ה-CLI של gcloud, צריך להפעיל את Cloud Shell Editor.
מעטפת מקומית: כדי להשתמש בסביבת פיתוח מקומית צריך להתקין ולהפעיל את ה-CLI של gcloud.
אם אתם משתמשים בספק זהויות חיצוני (IdP), אתם צריכים קודם להיכנס ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.
בסביבת הפיתוח שבה הגדרתם את ה-CLI של gcloud, מריצים את הפקודה
gcloud components update
כדי לוודא שעדכנתם את כל הרכיבים המותקנים של gcloud לגרסה האחרונה.gcloud components update
יצירה של מפתח CMEK והענקת הרשאות
כדי ליצור מפתח CMEK ולהעניק לחשבון השירות של Gemini Code Assist הרשאות למפתח, מבצעים את המשימות הבאות:
בפרויקט ב-Google Cloud שבו רוצים לנהל את המפתחות, מבצעים את הפעולות הבאות:
יוצרים את אוסף המפתחות ואת המפתח ישירות ב-Cloud KMS.
מקצים את תפקיד ה-IAM של מצפין/מפענח של מפתח הצפנה (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) לחשבון השירות של Gemini Code Assist. צריך לתת את ההרשאה הזו למפתח שיצרתם.המסוף
עוברים אל ניהול מפתחות.
בוחרים את המפתח שיצרתם.
נותנים גישה לחשבון השירות של Gemini Code Assist:
- לוחצים על Add principal.
- מוסיפים את חשבון השירות של Gemini Code Assist. חשבון השירות הוא
service-PROJECT_NUMBER@gcp-sa-cloudaicompanions.
, כאשר PROJECT_NUMBER הוא מספר הפרויקט של פרויקט Google Cloud שבו מופעל Gemini Code Assist. - ברשימת התפקידים Select a role בוחרים באפשרות Cloud KMS > Cloud KMS CryptoKey Encrypter/Decrypter.
- לוחצים על שמירה.
חוזרים על השלב הקודם כדי להעניק גישה לחשבון שייצור את האינדקס של מאגר הקוד באמצעות CMEK.
חוזרים לדף ניהול מפתחות ובוחרים שוב את המפתח.
בוחרים באפשרות הצגת חלונית המידע. התפקידים אמורים להופיע בעמודה תפקיד/חבר.
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." \ --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 באמצעות API Console או gcloud.
- השבתה זמנית של CMEK.
- להשמיד באופן סופי את מפתח ה-CMEK.
מומלץ לבטל את ההרשאות מחשבון השירות של Gemini Code Assist לפני שמשביתים או משמידים מפתח. השינויים בהרשאות מתעדכנים תוך שניות, כך שאפשר לראות את ההשפעות של השבתה או מחיקה של מפתח.