בעזרת Agent Retrieval (לשעבר חיפוש וקטורי 2.0) אפשר להגן על הנתונים במנוחה באמצעות מפתחות קריפטוגרפיים שמנוהלים דרך Cloud Key Management Service. השילוב הזה מאפשר שליטה במפתחות שמשמשים להצפנת תוכן הליבה של הלקוח, כולל היכולת לבצע רוטציה של המפתחות ולבטל אותם.
כברירת מחדל, הנתונים מוצפנים באמצעות הגדרות ברירת מחדל של הפלטפורמה שמנוהלות על ידי Google. מפתחות הצפנה בניהול הלקוח (CMEK) מאפשרים לכם שליטה ישירה במפתחות ההצפנה.
מידע נוסף זמין במאמר בנושא מפתחות הצפנה בניהול הלקוח (CMEK).
דרישות מוקדמות ומגבלות
כדי להשתמש ב-CMEK עם קולקציות, צריך לעמוד בדרישות המוקדמות ובמגבלות הבאות:
מפתח Cloud KMS צריך להיות באותו Google Cloud אזור שבו נמצא האוסף שהוא מגן עליו. לדוגמה, אם אוסף נמצא באזור
us-central1, הוא חייב להשתמש במפתח KMS שנמצא באזורus-central1.אתם צריכים להקצות לחשבון השירות שלכם ב-P4 את התפקיד
cryptoKeyEncrypterDecrypterבמפתח ה-KMS. חשבון השירות של P4SA הוא בפורמט הבא:service-${CONSUMER_PROJECT_NUMBER}@gcp-sa-vectorsearch.iam.gserviceaccount.com
יצירת אוסף שמוגן באמצעות CMEK
אחרי שמוודאים שכל התנאים המוקדמים מתקיימים, אפשר להשתמש ב-CLI של gcloud, ב-API בארכיטקטורת REST או ב-Python SDK כדי ליצור אוסף חדש עם הפעלה של CMEK.
שימוש ב-CLI של gcloud
מציינים את מזהה המשאב המוגדר במלואו של מפתח ה-KMS באמצעות הארגומנט --kms-key:
gcloud vector-search collections create [COLLECTION_ID] \
--kms-key projects/[KMS_PROJECT_ID]/locations/[REGION]/keyRings/[KEY_RING]/cryptoKeys/[KEY]
שימוש ב-API בארכיטקטורת REST
בגוף הבקשה POST, כוללים את encryption_spec:
{
"encryption_spec": {
"crypto_key_name": "projects/[PROJECT_ID]/locations/[REGION]/keyRings/[KEY_RING]/cryptoKeys/[KEY]"
}
}
שימוש ב-Python SDK
שימוש ב-Python SDK:
request = vectorsearch_v1beta.CreateCollectionRequest(
parent=f"projects/{PROJECT_ID}/locations/{LOCATION}",
collection_id=collection_id,
collection={
"data_schema": {...},
"vector_schema": {...},
# Specifies the customer-managed encryption key spec for a Collection
"encryption_spec": {
"crypto_key_name": f"projects/{PROJECT_ID}/locations/{LOCATION}/keyRings/{KEY_RING}/cryptoKeys/{KEY}"
}
},
)
operation = vector_search_service_client.create_collection(request=request)
operation.result()
העברת אובייקטים של נתונים מאוסף שלא מופעל בו CMEK לאוסף שמופעל בו CMEK
אי אפשר להפעיל CMEK באוספים קיימים. במקום זאת, צריך להעביר את אובייקטי הנתונים לאוסף חדש עם הפעלת CMEK.
כדי לעשות את זה:
ייצוא של אובייקטים של נתונים מאוסף קיים לקטגוריה של Cloud Storage.
יוצרים אוסף חדש עם CMEK מופעל.
מייבאים את אובייקטי הנתונים אל האוסף.
רוטציית מפתחות
כשמבצעים רוטציה למפתח ב-KMS, נתונים חדשים מוצפנים באמצעות גרסת המפתח הראשית, ואילו נתונים קיימים נשארים מוצפנים באמצעות הגרסה הקודמת. פרטים נוספים זמינים במאמר בנושא רוטציית מפתחות.
ביטול מפתח
ביטול או השבתה של מפתח משביתים מיד את האוסף. האינדקסים המשויכים של ANN מבוטלים באופן אוטומטי, והנתונים בזיכרון נמחקים. פעולות קריאה, כתיבה וחיפוש באוסף ייכשלו.
אם המפתח משוחזר, האוספים לא מופעלים מחדש באופן אוטומטי.
משאבים שתומכים בהצפנה באמצעות מפתח משויך (CMEK)
אלה משאבי Vertex AI הנוכחיים שמכוסים על ידי CMEK. גם התמיכה ב-CMEK לתכונות בגרסת טרום-השקה (Preview) היא בסטטוס Preview.
| משאב | חומר הלימוד מוצפן | קישורים למאמרי עזרה |
|---|---|---|
| מערך נתונים | כל הנתונים המיובאים של המשתמש (לדוגמה, תוכן טקסט) עבור DataItems ו-Annotations.
תוכן שנוצר על ידי משתמשים, כמו AnnotationSpecs, ColumnSpecs. |
יצירת מערך נתונים לאימון מודלים של סיווג ורגרסיה
יצירת מערך נתונים לאימון מודלים של תחזיות |
| Index | כל קובצי הנתונים שמשמשים לאינדקסים של חיפוש וקטורי שמאוחסנים ב-Cloud Storage, ב-Pub/Sub ובאחסון פנימי. צריך ליצור את Index ואת IndexEndpoint עם אותו מפתח.
כל האינדקסים באוסף צריכים להיווצר עם אותו מפתח. |
ניהול אינדקסים ב-חיפוש וקטורי: ניהול אינדקסים ב-חיפוש וקטורי 2 |
| אוספים | אוספים משמשים לאחסון של אובייקטים קשורים של נתונים. | ניהול אוספים ב-חיפוש וקטורי 2 |
| DataObjects | הנתונים בקולקציות מאוחסנים כאובייקטים נפרדים של JSON שנקראים אובייקטי נתונים. | ניהול אובייקטים של נתונים ב-Vector Search 2 |