CMEK

כברירת מחדל, פלטפורמת הסוכנים של Gemini Enterprise מצפינה את תוכן הלקוחות במצב מנוחה. פלטפורמת Agent Platform מטפלת בהצפנה בשבילכם בלי שתצטרכו לבצע פעולות נוספות. האפשרות הזו נקראת הצפנה כברירת מחדל של Google.

אם אתם רוצים לשלוט במפתחות ההצפנה, אתם יכולים להשתמש במפתחות הצפנה בניהול הלקוח (CMEK) ב-Cloud KMS עם שירותים שמשולבים ב-CMEK, כולל Agent Platform. כשמשתמשים במפתחות של Cloud KMS, אפשר לשלוט ברמת ההגנה, במיקום, בלוח הזמנים של הרוטציה, בהרשאות השימוש והגישה ובגבולות הקריפטוגרפיים שלהם. באמצעות Cloud KMS אתם יכולים גם לעקוב אחרי השימוש במפתחות, לצפות ביומני הביקורת ולשלוט במחזורי החיים של המפתחות. במקום ש-Google תהיה הבעלים של מפתחות ההצפנה (KEK) הסימטריים שמגינים על הנתונים שלכם ותנהל אותם, אתם שולטים במפתחות האלה ומנהלים אותם ב-Cloud KMS.

אחרי שתגדירו את המשאבים באמצעות מפתחות CMEK, חוויית הגישה למשאבים של Agent Platform תהיה דומה לשימוש בהצפנה שמוגדרת כברירת מחדל ב-Google. מידע נוסף על אפשרויות ההצפנה מופיע במאמר מפתחות הצפנה בניהול הלקוח (CMEK).

במדריך הזה נתאר כמה יתרונות של שימוש ב-CMEK למשאבים של Gemini Enterprise Agent Platform, ונסביר איך להגדיר משימת אימון לשימוש ב-CMEK.

מידע נוסף על השימוש ב-CMEK ב-Colab Enterprise זמין בדף CMEK ב-Colab Enterprise. מידע נוסף על השימוש ב-CMEK במכונות של Gemini Enterprise Agent Platform Workbench מופיע בדף CMEK במכונות של Agent Platform Workbench.

‫CMEK למשאבים של Gemini Enterprise Agent Platform

בקטעים הבאים מתואר מידע בסיסי על CMEK למשאבים של Gemini Enterprise Agent Platform, שאתם צריכים להבין לפני שאתם מגדירים CMEK למשימות שלכם.

היתרונות של CMEK

באופן כללי, מפתחות CMEK הכי שימושיים אם אתם צריכים שליטה מלאה על המפתחות שמשמשים להצפנת הנתונים שלכם. באמצעות CMEK, אתם יכולים לנהל את המפתחות ב-Cloud Key Management Service. לדוגמה, אתם יכולים להחליף או להשבית מפתח, או להגדיר לוח זמנים להחלפה באמצעות Cloud KMS API. מידע נוסף על CMEK באופן כללי, כולל מתי ולמה להפעיל אותו, זמין במסמכי התיעוד של Cloud KMS.

כשמריצים משימת אימון בהתאמה אישית או ב-AutoML, הקוד פועל במכונה וירטואלית (VM) אחת או יותר שמנוהלת על ידי Gemini Enterprise Agent Platform. כשמפעילים CMEK למשאבים של Gemini Enterprise Agent Platform, המפתח שאתם מגדירים משמש להצפנת הנתונים בדיסקי האתחול של המכונות הווירטואליות האלה, במקום מפתח שמנוהל על ידי Google. מפתח ה-CMEK מצפין את סוגי הנתונים הבאים:

  • עותק של הקוד שלכם במכונות הווירטואליות.
  • כל הנתונים שנטענים על ידי הקוד שלכם.
  • כל נתון זמני שנשמר בדיסק המקומי על ידי הקוד שלכם.
  • מודלים שאומנו באמצעות AutoML.
  • קובצי מדיה (נתונים) שהועלו לקבוצות נתונים של מדיה.

באופן כללי, מפתח CMEK לא מצפין מטא-נתונים שמשויכים לפעולה, כמו שם המשימה והאזור שלה, או השם המוצג של מערך הנתונים. המטא-נתונים שמשויכים לפעולות תמיד מוצפנים באמצעות מנגנון ההצפנה שמוגדר כברירת מחדל ב-Google.

במערכי נתונים, כשמשתמש מייבא נתונים למערך נתונים, פריטי הנתונים וההערות מוצפנים באמצעות CMEK. השם המוצג של מערך הנתונים לא מוצפן באמצעות CMEK.

במודלים, המודלים שמאוחסנים במערכת האחסון (לדוגמה, דיסק) מוצפנים באמצעות CMEK. כל תוצאות הערכת המודל מוצפנות באמצעות CMEK.

בנקודות קצה (endpoints), כל קובצי המודל שמשמשים לפריסת המודל בנקודת הקצה מוצפנים באמצעות CMEK. הנתונים האלה לא כוללים נתונים בזיכרון.

בחיזוי באצווה, כל הקבצים הזמניים (כמו קובצי מודלים, יומנים ודיסקים של מכונות וירטואליות) שמשמשים להרצת משימת החיזוי באצווה מוצפנים באמצעות CMEK. תוצאות החיזוי באצווה נשמרות ביעד שהמשתמש סיפק. לכן, Agent Platform מכבדת את ערך ברירת המחדל של הגדרת ההצפנה של היעד. אחרת, גם התוצאות יוצפנו באמצעות CMEK.

בתיוג נתונים, כל קובצי הקלט (תמונה, טקסט, טבלה), דיונים זמניים (לדוגמה, שאלות, משוב) והפלט (תוצאת התיוג) מוצפנים באמצעות CMEK. השמות המוצגים של מפרטי ההערות לא מוצפנים באמצעות CMEK.

בנציגים, מפתח CMEK מצפין את כל קובצי המקור שמשמשים לפיתוח הנציג. בנוסף, קובצי האימג' של הקונטיינרים והמכונות שנפרסו בשביל הנציג מוצפנים גם הם באמצעות CMEK.

מפתחות חיצוניים

אתם יכולים להשתמש ב-Cloud External Key Manager‏ (Cloud EKM) כדי ליצור מפתחות חיצוניים שאתם מנהלים, כדי להצפין נתונים ב- Google Cloud.

כשאתם משתמשים במפתח Cloud EKM, ל-Google אין שליטה על הזמינות של המפתח שמנוהל באופן חיצוני. אם תבקשו גישה למשאב שמוצפן באמצעות מפתח בניהול חיצוני, והמפתח לא זמין, Gemini Enterprise Agent Platform תדחה את הבקשה. יכול להיות עיכוב של עד 10 דקות לפני שתהיה לכם גישה למשאב אחרי שהמפתח יהיה זמין.

שיקולים נוספים לשימוש במפתחות חיצוניים מפורטים במאמר Cloud EKM.

שימוש ב-CMEK עם מוצרים אחרים של Google Cloud

הגדרת CMEK למשאבים של Gemini Enterprise Agent Platform לא מגדירה באופן אוטומטי CMEK למוצרים אחרים של Google Cloud שאתם משתמשים בהם יחד עם Gemini Enterprise Agent Platform. כדי להשתמש ב-CMEK להצפנת נתונים במוצרים אחרים שלGoogle Cloud , נדרשת הגדרה נוספת. לדוגמה:

משאבים שנתמכים כרגע ב-CMEK

אלה המשאבים של Gemini Enterprise Agent Platform שנתמכים כרגע ב-CMEK. התמיכה של CMEK בתכונות בגרסת טרום-השקה (Preview) נמצאת גם היא בסטטוס גרסת טרום-השקה (Preview).

משאב חומר הלימוד מוצפן קישורים למאמרי עזרה
קבוצת נתונים
  • כל הנתונים שהמשתמשים ייבאו (לדוגמה, תוכן טקסט) ב-DataItems וב-Annotations.
  • תוכן שנוצר על ידי משתמשים, כמו AnnotationSpecs, ColumnSpecs.
מודל
  • קבצי מודלים שהועלו.
  • תוצאות ההערכה של המודל שאומן.
נקודת קצה (endpoint)
  • כל קובצי המודל שמשמשים לפריסת המודל בנקודת הקצה. הפעולה הזו לא כוללת נתונים בזיכרון, אבל פריסת המודל תבוטל באופן אוטומטי אם המפתח יושבת.
CustomJob
  • עותק של הקוד במכונות הווירטואליות שמשמשות להפעלת הפעולה.
  • כל הנתונים שנטענים על ידי הקוד שלכם.
  • כל הנתונים הזמניים שנשמרים בדיסק המקומי על ידי הקוד שלכם.
HyperparameterTuningJob
  • עותק של הקוד במכונות הווירטואליות שמשמשות להפעלת הפעולה.
  • כל הנתונים שנטענים על ידי הקוד שלכם.
  • כל הנתונים הזמניים שהקוד שומר בדיסק המקומי.
TrainingPipeline
  • עותק של הקוד במכונות הווירטואליות שמשמשות להפעלת הפעולה.
  • כל הנתונים שנטענים על ידי הקוד שלכם.
  • כל הנתונים הזמניים שהקוד שומר בדיסק המקומי.
  • מודלים שאומנו באמצעות AutoML.
‫BatchPredictionJob (לא כולל batchPrediction של תמונות AutoML)
  • כל הקבצים הזמניים (לדוגמה, קובצי מודלים, יומנים, דיסקים של מכונות וירטואליות) שמשמשים במשימה כדי להמשיך את משימת החיזוי באצווה.
  • אם התוצאות הכתובות של BatchPrediction מאוחסנות ביעד שהמשתמש סיפק, הן יתאימו להגדרת ההצפנה של ערך ברירת המחדל. אחרת, גם הוא יוצפן באמצעות CMEK.
ModelDeploymentMonitoringJob
  • כל הקבצים הזמניים (לדוגמה, קובצי מערך נתונים לאימון, יומנים, דיסקים של VM) שמשמשים במשימה לעיבוד המשימה של מעקב אחרי פריסת המודל.
  • כל הנתונים שמשמשים לזיהוי חריגות במעקב.
  • אם המפתח מושבת, משימת המעקב אחרי פריסת המודל תושהה.
PipelineJob
  • משימת צינור עיבוד הנתונים וכל משאבי המשנה שלה.
MetadataStore
  • כל התוכן במאגר המטא-נתונים.
TensorBoard
  • כל הנתונים מהיומנים שהועלו ל-TensorBoard, כולל סקלרים, היסטוגרמות, הגדרות של תרשימים, תמונות וטקסט.
מאגר פיצ'רים
  • מאגר הפיצ'רים וכל התוכן שבו.
אינדקס
  • כל קובצי הנתונים שמשמשים לאינדקסים של Vector Search שמאוחסנים ב-Cloud Storage, ב-Pub/Sub ובאחסון פנימי. צריך ליצור את Index ו-IndexEndpoint עם אותו מפתח.
IndexEndpoint
  • כל קובצי הנתונים שמשמשים לאינדקסים של Vector Search שמאוחסנים ב-Cloud Storage, ב-Pub/Sub ובאחסון פנימי. צריך ליצור את Index ו-IndexEndpoint עם אותו מפתח.
סביבת זמן ריצה ב-Colab Enterprise
  • דיסק האתחול ודיסקי הנתונים של ה-VM של סביבת זמן הריצה
‫notebook של Colab Enterprise
  • קובץ ה-Notebook והתגובות שלו
Agent Runtime
  • עותק של קובצי המקור של הסוכן, כולל קוד, סקריפטים וכל קובץ תלויות
  • קובצי האימג' של הקונטיינר שנוצרו מקובצי המקור של הנציג
  • המכונות הפועלות שנפרסו מקובצי האימג' של הקונטיינר של הנציג
ארגזי חול של Agent Platform
  • מצבי נקודות ביקורת בזיכרון ואחסון בדיסק של מכונות פעילות של ארגז חול
  • שכבות-על של קונטיינרים בהתאמה אישית והגדרות סביבה
  • תבניות ותמונות מצב שמורות של ארגז החול
ServingProfile
  • נתונים שמאוחסנים במצב מנוחה על ידי ממשקי API ללא משאבים (מבוססי-בקשות) – לדוגמה, נתונים של המשך סשן ב-Gemini Live API ואינטראקציות שמאוחסנות ב-Interactions API.

תמיכה ב-CMEK בצינורות עיבוד נתונים לכוונון של AI גנרטיבי

יש תמיכה ב-CMEK בתהליך הכוונון של המודלים הבאים:

  • BERT
  • T5
  • image-generation (GPU)

מגבלות

אין תמיכה ב-CMEK במקרים הבאים:

  • חיזוי באצווה של מודל תמונות ב-AutoML‏ (BatchPredictionJob)
  • כוונון TPU
  • ‫Agent Platform Memory Bank או Agent Platform Sessions שמוגדרים לשימוש בנקודת הקצה הגלובלית. ב-Cloud KMS, מפתחות ההצפנה צריכים להיות בתוך גבול גיאוגרפי קבוע של מיקום אחסון הנתונים. באזור הגלובלי אין גבול גיאוגרפי פיזי, ולכן אי אפשר להצפין בו משאבים אזוריים או משאבים במספר אזורים.
  • אפשר להשתמש בפרופיל CMEK להצגת מודעות ב-APIs ללא משאבים רק ב-Gemini Live API וב-Interactions API, באזורים us ו-eu במספר אזורים. האזור הגלובלי לא נתמך.

הגדרת CMEK למשאבים

בקטעים הבאים מוסבר איך ליצור אוסף מפתחות ומפתח ב-Cloud KMS, לתת הרשאות הצפנה ופענוח של Agent Platform למפתח, וליצור משאבים שמשתמשים ב-CMEK.

לפני שמתחילים

במדריך הזה אנחנו מניחים שאתם משתמשים בשני פרויקטים נפרדים ב- Google Cloud כדי להגדיר את CMEK לנתונים של Agent Platform:

  • פרויקט לניהול מפתח ההצפנה (נקרא "פרויקט Cloud KMS").
  • פרויקט שמאפשר לגשת לנתונים או לפלט של Agent Platform ב-Cloud Storage, ולקיים אינטראקציה עם מוצרי Google Cloudאחרים שנדרשים לתרחיש לדוגמה (נקרא "פרויקט פלטפורמת ה-AI").

ההגדרה המומלצת הזו תומכת בהפרדת תפקידים.

לחלופין, אתם יכולים להשתמש בפרויקט אחד ב- Google Cloud לכל המדריך. כדי לעשות את זה, צריך להשתמש באותו פרויקט לכל המשימות הבאות שמתייחסות לפרויקט ב-Cloud KMS ולמשימות שמתייחסות לפרויקט ב-AI Platform.

הגדרת הפרויקט ב-Cloud KMS

  1. נכנסים לחשבון Google Cloud . אנחנו ממליצים למשתמשים חדשים ב- Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Cloud KMS API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Cloud KMS API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

הגדרת הפרויקט ב-AI Platform

  1. נכנסים לחשבון Google Cloud . אנחנו ממליצים למשתמשים חדשים ב- Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Agent Platform API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Agent Platform API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

הגדרת Google Cloud CLI

בחלק מהשלבים במדריך הזה צריך להשתמש ב-CLI של gcloud, ובחלק מהשלבים אפשר להשתמש בו.

התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

gcloud init

אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

יצירה של אוסף מפתחות ומפתח

כדי ליצור אוסף מפתחות ומפתח, פועלים לפי המדריך של Cloud KMS ליצירת מפתחות סימטריים. כשיוצרים את אוסף המפתחות, צריך לציין אזור שתומך בפעולות של Agent Platform בתור המיקום של אוסף המפתחות. באימון של Agent Platform יש תמיכה ב-CMEK רק אם המשאב והמפתח נמצאים באותו אזור. אסור לציין מיקום בשני אזורים, במספר אזורים או מיקום גלובלי לאוסף המפתחות.

חשוב ליצור את אוסף המפתחות ואת המפתח בפרויקט Cloud KMS.

מתן הרשאות ל-Agent Platform

כדי להשתמש ב-CMEK במשאבים, צריך לתת ל-Agent Platform הרשאה להצפין ולפענח נתונים באמצעות המפתח. פלטפורמת Agent משתמשת בסוכן שירות בניהול Google כדי להריץ פעולות באמצעות המשאבים שלכם. חשבון השירות הזה מזוהה באמצעות כתובת אימייל בפורמט הבא:

service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com

כדי למצוא את חשבון השירות שמתאים לפרויקט שלכם ב-AI Platform, נכנסים לדף IAM במסוף Google Cloud ומחפשים את החבר שתואם לפורמט של כתובת האימייל הזו, עם מספר הפרויקט שלכם ב-AI Platform במקום המשתנה AI_PLATFORM_PROJECT_NUMBER. לחשבון השירות יש גם את השם Agent Platform Service Agent.

מעבר לדף IAM

שימו לב לכתובת האימייל של חשבון השירות הזה, והשתמשו בה בשלבים הבאים כדי לתת לו הרשאה להצפין ולפענח נתונים באמצעות המפתח שלכם. אפשר לתת הרשאה באמצעות מסוף Google Cloud או באמצעות Google Cloud CLI:

מסוף Google Cloud

  1. במסוף Google Cloud , לוחצים על Security ובוחרים באפשרות Key Management. כך תועברו לדף מפתחות קריפטוגרפיים, שבו תוכלו לבחור את הפרויקט ב-Cloud KMS.

    כניסה לדף Cryptographic Keys

  2. לוחצים על השם של אוסף המפתחות שיצרתם בחלק הקודם של המדריך כדי לעבור לדף Key ring details.

  3. מסמנים את התיבה של המפתח שיצרתם בחלק הקודם של המדריך. אם חלונית המידע עם שם המפתח לא פתוחה, לוחצים על Show info panel.

  4. בחלונית המידע, לוחצים על Add member כדי לפתוח את תיבת הדו-שיח Add members to "KEY_NAME". בתיבת הדו-שיח הזו, מבצעים את הפעולות הבאות:

    1. בתיבה New members, מזינים את כתובת האימייל של חשבון השירות שרשמתם בקטע הקודם: service-AI_PLATFORM_PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com
    2. ברשימה הנפתחת Select a role, לוחצים על Cloud KMS ובוחרים את התפקיד Cloud KMS CryptoKey Encrypter/Decrypter.

    3. לוחצים על Save.

gcloud

מריצים את הפקודה הבאה:

gcloud kms keys add-iam-policy-binding KEY_NAME \
  --keyring=KEY_RING_NAME \
  --location=REGION \
  --project=KMS_PROJECT_ID \
  --member=serviceAccount:service-AI_PLATFORM_PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com \
  --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

בפקודה הזו, מחליפים את ערכי ה-placeholder הבאים:

  • ‫KEY_NAME: השם של המפתח שיצרתם בחלק הקודם של המדריך.
  • ‫KEY_RING_NAME: אוסף המפתחות שיצרתם בחלק הקודם של המדריך.
  • ‫REGION: האזור שבו יצרתם את אוסף המפתחות.
  • ‫KMS_PROJECT_ID: מזהה הפרויקט ב-Cloud KMS.
  • ‫AI_PLATFORM_PROJECT_NUMBER: מספר הפרויקט שלכם ב-AI Platform, שציינתם בקטע הקודם כחלק מכתובת האימייל של חשבון השירות.

יצירת משאבים באמצעות מפתח Cloud KMS

כשיוצרים משאב חדש שתומך ב-CMEK, אפשר לציין את המפתח כאחד מהפרמטרים של היצירה.

המסוף

כשיוצרים משאב חדש שתומך ב-CMEK בקטע Agent Platform בGoogle Cloud מסוף, אפשר לבחור את המפתח בקטע של האפשרויות הכלליות או המתקדמות:

בחירת מפתח הצפנה לקטע של המשאב

‫REST ושורת הפקודה

כשיוצרים משאב נתמך, מוסיפים אובייקט encryptionSpec לבקשה ומגדירים את השדה encryptionSpec.kmsKeyName כך שיצביע על משאב המפתח.

לדוגמה, כשיוצרים משאב של dataset, צריך לציין את המפתח בגוף הבקשה:

 {
   "displayName": DATASET_NAME,
   "metadataSchemaUri": METADATA_URI,
   "encryptionSpec": {
     "kmsKeyName": "projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME"
   }
 }

Java

כשיוצרים משאב נתמך, מגדירים את EncryptionSpec כך שיצביע על המשאב של המפתח. למידע נוסף, תוכלו להיעזר במאמר ספריית הלקוח של Agent Platform ל-Java.

Node.js

כשיוצרים משאב נתמך, מגדירים את הפרמטר encryptionSpec כך שיצביע על משאב המפתח. למידע נוסף, תוכלו להיעזר במאמרים בנושא ספריית הלקוח של Agent Platform ל-Node.js.

Python

כשיוצרים משאב נתמך, מגדירים את הפרמטר encryption_spec כך שיצביע על משאב המפתח. למידע נוסף, תוכלו להיעזר במאמר Python Client for Cloud AI Platform.

שימוש ב-CMEK עם ממשקי API ללא משאבים

חלק מממשקי ה-API של Gemini Enterprise Agent Platform הם ללא משאבים (מבוססי-בקשות): הם משרתים בקשות להסקת מסקנות בלי ליצור משאב ארוך-טווח ברמה העליונה. כדי לתמוך בתכונות כמו המשכיות הסשן ושיחות עם שמירת מצב, ממשקי ה-API האלה יכולים לאחסן נתוני משתמשים במנוחה למשך זמן מוגבל. לדוגמה, Gemini Live API מאחסן נתונים להמשך הסשן למשך עד 24 שעות, ו-Interactions API מאחסן נתוני אינטראקציות עם שמירת מצב למשך עד 7 ימים. כשיוצרים את הנתונים, אין משאב לטווח ארוך שאפשר לצרף אליו מפתח. לכן, כדי להחיל CMEK על הנתונים האלה במנוחה, צריך להשתמש בפרופיל הצגה.

פרופיל להצגת מודעות הוא משאב ב-Gemini Enterprise Agent Platform שמקשר מפתח Cloud KMS לפרויקט, למיקום ולהיקף ה-API. כל עוד קיים פרופיל הצפנה לפרויקט, למיקום ולהיקף של הבקשה, Agent Platform מצפינה באופן אוטומטי את הנתונים הקבועים של אותו היקף באמצעות המפתח שלכם. הפורמט של בקשת ההסקה לא משתנה.

היתרונות של פרופילי הצגה

  • עמידה בדרישות התאימות: עמידה בקריטריונים של ביקורת שמחייבים את הלקוח לשלוט במפתח ההצפנה ובמחזור החיים של הנתונים.
  • שליטה מלאה בנתונים: אתם יכולים להשבית או לבטל את הגישה למפתחות בכל שלב כדי לחסום את הגישה לנתונים המוצפנים.
  • שקיפות, בלי שינויים בקוד: הפורמט הקיים של בקשת ההסקה לא משתנה – ההצפנה מופעלת באופן אוטומטי כל עוד קיים פרופיל הצגה.
  • שליטה פרטנית: כדי להגביל את ההשפעה במקרה של פריצה למפתח, כדאי להחיל מפתח נפרד לכל היקף של API ולפעול לפי העיקרון של הרשאות מינימליות.

איך פועלת הצפנה שקופה

  1. אתם שולחים בקשה ל-API נתמך ללא משאבים בנקודת הקצה האזורית של Agent Platform.
  2. פלטפורמת הסוכנים מזהה את פרופיל ההצגה של הפרויקט, המיקום וההיקף.
  3. נתונים קבועים בהיקף הזה מוצפנים באופן אוטומטי באמצעות המפתח שלכם, בלי לשנות את הבקשה.
  4. אם אין פרופיל הצגה לפרויקט, למיקום ולתחום הזה, Agent Platform משתמשת כברירת מחדל בהצפנה בניהול Google.

מגבלות על פרופיל הצגת המודעות

  • ממשקי API נתמכים: Gemini Live API (היקף GEMINI_LIVE) ו-Interactions API (היקף INTERACTIONS_API).
  • אזורים נתמכים: us ו-eu (מספר אזורים). האזור הגלובלי לא נתמך בגלל מגבלות של Cloud KMS ושל CMEK לאחסון באזור הגלובלי.
  • אי אפשר לשנות את מפתח ההצפנה ואת ההיקף אחרי שיוצרים אותם. אפשר לעדכן רק את השם המוצג ואת התיאור. כדי לשנות את המפתח או את ההיקף, צריך למחוק את פרופיל ההצגה וליצור פרופיל חדש עם servingProfileId אחר (ראו השבתת CMEK וחזרה להצפנה שמוגדרת כברירת מחדל).

לפני שמתחילים

  1. מפעילים בפרויקט את Cloud KMS API ואת Agent Platform API.
  2. יוצרים או מזהים מפתח Cloud KMS במיקום נתמך שכולל מספר אזורים (us או eu). אל תשתמשו באזור הגלובלי. איך יוצרים אוסף מפתחות ומפתח
  3. מקצים לסוכן השירות של Gemini Enterprise Agent Platform את התפקיד roles/cloudkms.cryptoKeyEncrypterDecrypter במפתח. איך נותנים הרשאות ל-Agent Platform
  4. מוודאים שיש לכם את ההרשאות ב-IAM לניהול פרופילי הצגה (aiplatform.servingProfiles.create,‏ get,‏ list,‏ update ו-delete).

בדוגמאות שבקטעים הבאים נעשה שימוש בערכים האלה:

  • ‫LOCATION: האזור, us או eu.
  • ‫PROJECT: מזהה הפרויקט או מספר הפרויקט.
  • API_VERSION: v1 או v1beta1.
  • ‫SERVING_PROFILE_ID: בין 1 ל-63 תווים – אותיות קטנות באנגלית, ספרות ומקפים. הוא חייב להתחיל באות ולהסתיים באות או בספרה. הערך הזה הופך לרכיב האחרון בשם המשאב.
  • ‫scope: ה-API ללא משאבים שפרופיל הצגת המודעות חל עליו. הערכים הנתמכים הם GEMINI_LIVE ו-INTERACTIONS_API.
  • המפתח של Cloud KMS מוגדר ב-cmekConfig.encryptionSpec.kmsKeyName וצריך להתאים ל-projects/*/locations/*/keyRings/*/cryptoKeys/*.

בקשות REST נשלחות לנקודת הקצה האזורית https://aiplatform.LOCATION.rep.googleapis.com ומאומתות באמצעות טוקן למוכ"ז של OAuth 2.0:

-H "Authorization: Bearer $(gcloud auth print-access-token)"
-H "Content-Type: application/json"

יצירת פרופיל הצגה

יצירת פרופיל הצגה מפעילה הגנה באמצעות CMEK על הנתונים הקבועים של ההיקף. השדות displayName,‏ scope (GEMINI_LIVE או INTERACTIONS_API) ו-cmekConfig.encryptionSpec.kmsKeyName הם שדות חובה.

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  "https://aiplatform.LOCATION.rep.googleapis.com/API_VERSION/projects/PROJECT/locations/LOCATION/servingProfiles?servingProfileId=SERVING_PROFILE_ID" \
  -d '{
    "displayName": "My CMEK serving profile",
    "description": "CMEK for Gemini Live",
    "scope": "GEMINI_LIVE",
    "cmekConfig": {
      "encryptionSpec": {
        "kmsKeyName": "projects/PROJECT/locations/LOCATION/keyRings/RING/cryptoKeys/KEY"
      }
    }
  }'

הפונקציה Create מחזירה פעולה ממושכת. דוגמים אותו בכתובת GET https://aiplatform.LOCATION.rep.googleapis.com/API_VERSION/OPERATION_NAME עד שהתשובה מכילה את "done": true. צריך להמתין עד שהפעולה תסתיים לפני שמקבלים, מעדכנים או מוחקים את פרופיל ההצגה.

אישור פרופיל הצגת המודעות

אחרי שפעולת היצירה מסתיימת, משתמשים ב-get או ב-list כדי לאשר את פרופיל הצגת המודעות:

# Get one serving profile.
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://aiplatform.LOCATION.rep.googleapis.com/API_VERSION/projects/PROJECT/locations/LOCATION/servingProfiles/SERVING_PROFILE_ID"

# List serving profiles in a location.
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://aiplatform.LOCATION.rep.googleapis.com/API_VERSION/projects/PROJECT/locations/LOCATION/servingProfiles?pageSize=50"

עדכון המטא-נתונים של פרופיל ההצגה

אפשר לעדכן רק את השדות displayName ו-description. אי אפשר לשנות את המפתח ואת ההיקף. הפרמטר updateMask הוא אופציונלי – אם משמיטים אותו, כל השדות המאוכלסים שניתנים לשינוי מתעדכנים. הקריאה הזו מחזירה את פרופיל ההצגה המעודכן.

curl -X PATCH \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  "https://aiplatform.LOCATION.rep.googleapis.com/API_VERSION/projects/PROJECT/locations/LOCATION/servingProfiles/SERVING_PROFILE_ID?updateMask=displayName,description" \
  -d '{"displayName": "Renamed profile", "description": "Updated description"}'

השבתת CMEK וחזרה להצפנה שמוגדרת כברירת מחדל

מוחקים את פרופיל ההצגה. לאחר מכן, נתונים חדשים בהיקף מוצפנים באמצעות הצפנה בניהול Google. נתונים שכבר הוצפנו באמצעות המפתח שלכם נשארים מוגנים עד שהם מגיעים ל-TTL שלהם או עד שהם נמחקים, בהתאם למדיניות שמירת הנתונים של ה-API.

curl -X DELETE \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://aiplatform.LOCATION.rep.googleapis.com/API_VERSION/projects/PROJECT/locations/LOCATION/servingProfiles/SERVING_PROFILE_ID"

אחרי שמוחקים פרופיל הצגה, ה-servingProfileId שלו נשמר למשך 30 ימים כדי שתוכלו לשחזר את המפתח וההיקף המקוריים. במהלך התקופה הזו, כדי ליצור פרופיל הצגה עם מפתח או היקף שונים, צריך להשתמש ב-servingProfileId אחר.

שחזור פרופיל הצגה שנמחק

אפשר לשחזר פרופיל הצגה שנמחק תוך 30 יום מהמחיקה. מוודאים שמפתח Cloud KMS המקורי עדיין מופעל, ושלסוכן השירות של Gemini Enterprise Agent Platform עדיין יש גישה. לאחר מכן, יוצרים פרופיל הצגה עם אותם servingProfileId, scope ומפתח. פלטפורמת הסוכן ממשיכה להגן על הנתונים הקבועים של ההיקף באמצעות המפתח שלכם, כולל נתונים שהוצפנו לפני שהפרופיל נמחק.

ביטול מפתחות

אם תשביתו את המפתח של Cloud KMS או תסירו את הגישה של סוכן השירות של Gemini Enterprise Agent Platform, יקרו הדברים הבאים:

  • ‫Agent Platform לא יכול יותר להצפין או לפענח את הנתונים הקבועים של ההיקף.
  • בקשות שצריכות לגשת לנתונים מוגנים נכשלות עם השגיאה FAILED_PRECONDITION, שמציינת שהמפתח לא זמין.

כדי לקבל שוב גישה, צריך להפעיל מחדש את המפתח או לשחזר את ההרשאה ב-IAM.

תמחור של פרופיל הצגת המודעות

אין חיוב נוסף על פרופילים להצגת מודעות. אתם משלמים את התעריפים הרגילים של פעולות המפתח ב-Cloud KMS על הצפנה ופענוח.

פתרון בעיות

  • יצירת פרופיל להצגת מודעות נכשלה או נתקעה: ודאו שלסוכן השירות של Gemini Enterprise Agent Platform יש את התפקיד roles/cloudkms.cryptoKeyEncrypterDecrypter במפתח, ושהמפתח מופעל ונמצא באזור נתמך עם מספר אזורים (us או eu, לא גלובלי).
  • ההסקה לא משתמשת ב-CMEK: ודאו שקיים פרופיל הצגה לפרויקט, למיקום ולהיקף התואמים (GEMINI_LIVE או INTERACTIONS_API).
  • ‫שגיאות FAILED_PRECONDITION: השגיאות האלה בדרך כלל מצביעות על כך שהמפתח הושבת או שהגישה בוטלה. מפעילים מחדש את המפתח או משחזרים את ההרשאה ב-IAM.

המאמרים הבאים