אפשר ליצור מכונה וירטואלית חסויה כחלק מיצירת מכונה וירטואלית חדשה ב-Compute Engine.
לפני שמתחילים
לפני שיוצרים מכונת VM חסויה, צריך להגדיר את הסביבה באופן הבא:
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. 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.-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. 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.- אופציונלי: כדי להשתמש בדוגמאות ל-CLI של gcloud במדריך הזה:
- מתקינים או מעדכנים את הגרסה העדכנית של ה-CLI של gcloud.
- מגדירים אזור ואזור ברירת מחדל ללקוח עם תמיכה במכונה וירטואלית חסויה.
- אופציונלי: כדי להשתמש בדוגמאות ל-API במדריך הזה, צריך להגדיר אימות לבקשות. מידע נוסף על OAuth 2.0
יצירת מופע
המסוף
כדי ליצור מכונה וירטואלית חסויה באמצעות מסוף Google Cloud :
נכנסים לדף VM instances במסוף Google Cloud .
לוחצים על Create instance.
בחלונית Machine configuration:
בוחרים אזור ותחום נתמכים.
בוחרים אחת ממשפחות המכונות הבאות:
מטרה כללית
אופטימיזציה של מחשוב
GPUs
אם בחרתם במשפחת GPUs, בוחרים את סוג ה-GPU המתאים ואת מספר ה-GPU על סמך סוג המכונה הנתמך.
בוחרים סוג מכונה נתמך לטכנולוגיית Confidential Computing שרוצים להשתמש בה.
בתפריט הניווט, לוחצים על אבטחה.
בקטע Confidential VM service (שירות מכונות וירטואליות חסויות), לוחצים על Enable (הפעלה).
בתיבה Select a type (בחירת סוג), בוחרים באחד מהסוגים הבאים של טכנולוגיית Confidential Computing:
AMD SEV
AMD SEV-SNP
Intel TDX
בתיבת הדו-שיח Enable Confidential Computing, בודקים את רשימת ההגדרות שמתעדכנות כשמפעילים את השירות. הם יכולים לכלול את השדות הבאים, אם הם הוגדרו לערכים לא תואמים.
סדרה וסוג מכונה. מידע נוסף זמין במאמר סוגי מכונות, מעבדים ותחומים.
אזור ותחום. מידע נוסף זמין במאמר סוגי מכונות, מעבדים ותחומים.
קובץ אימג' של דיסק אתחול. מידע נוסף זמין במאמר בנושא מערכות הפעלה.
תחזוקה במארח. מידע נוסף זמין במאמר בנושא הגדרת מדיניות תחזוקה של מארח של מכונה וירטואלית.
כרטיס רשת. מידע נוסף מופיע במאמר בנושא שימוש ב-Google Virtual NIC.
לוחצים על אישור ואז על יצירה.
אחרי שלוחצים על יצירה, נפתח הדף מכונות וירטואליות. בדף הזה אפשר לראות את הסטטוס והפרטים של המופע החדש. כשמופיע הסמל
זמין בעמודה סטטוס של מופע Confidential VM, הוא מוכן לשימוש.
gcloud
כדי ליצור מכונה וירטואלית חסויה באמצעות ה-CLI של gcloud, משתמשים בפקודת המשנה instances create עם הדגל --confidential-compute-type.
gcloud compute instances create INSTANCE_NAME \
--confidential-compute-type=CONFIDENTIAL_COMPUTING_TECHNOLOGY \
--machine-type=MACHINE_TYPE_NAME \
--min-cpu-platform="CPU_PLATFORM" \
--maintenance-policy=MAINTENANCE_POLICY \
--zone=ZONE_NAME \
--image-project=IMAGE_PROJECT \
--image-family=IMAGE_FAMILY_NAME \
--project=PROJECT_ID
מספקים את הערכים הבאים:
INSTANCE_NAME: השם של המופע החדש של המכונה הווירטואלית.CONFIDENTIAL_COMPUTING_TECHNOLOGY: סוג הטכנולוגיה של Confidential Computing שרוצים להשתמש בה. בוחרים אחד מהערכים הבאים:SEVSEV_SNPTDX
MACHINE_TYPE_NAME: סוג המכונה הווירטואלית, לדוגמה,n2d-standard-2. סוגי מכונות תקפים למופעי Confidential VM נקבעים על ידי טכנולוגיית Confidential Computing שבחרתם. סוגי מכונות, מעבדים ותחומים
CPU_PLATFORM: בוחרים אחד מהערכים הבאים:AMD SEV:
AMD Milan(סוגי מכונות C2D או N2D),AMD Genoa(סוגי מכונות C3D) אוAMD Turin(סוגי מכונות C4D).AMD SEV-SNP:
AMD Milan(סוגי מכונות N2D).Intel TDX: מסירים את הדגל הזה.
MAINTENANCE_POLICY: עבור סוגי מכונות N2D ו-C3D שמשתמשים ב-SEV, צריך להגדיר את הערך הזה ל-MIGRATEכדי לתמוך במיגרציה פעילה. לכל שאר סוגי המכונות, צריך להגדיר את הערך הזה כ-TERMINATE, כי אין תמיכה במיגרציה פעילה.
ZONE_NAME: האזור שבו יש תמיכה ב-Confidential VM שבו רוצים ליצור את המכונה.
IMAGE_PROJECT: הפרויקט שמכיל את קובץ אימג' של המערכת הנתמכת.
IMAGE_FAMILY_NAME: המשפחה של קובץ אימג' של המערכת שנתמכת על ידי Confidential VM. אם לא מציינים בנוסף את--image, הגרסה האחרונה של התמונה נבחרת.
PROJECT_ID: אופציונלי. מזהה הפרויקט שבו רוצים ליצור את המכונה הווירטואלית.
דוגמה
מריצים את הפקודה הבאה כדי ליצור מכונת n2d-standard-2 שנקראת my-instance באזור us-central1-a, באמצעות AMD SEV-SNP:
gcloud compute instances create my-instance \
--machine-type=n2d-standard-2 \
--min-cpu-platform="AMD Milan" \
--zone=us-central1-a \
--confidential-compute-type=SEV_SNP \
--maintenance-policy=TERMINATE \
--image-project=ubuntu-os-cloud \
--image-family=ubuntu-2404-lts-amd64
תשובה
תגובה לבקשת יצירה נראית בערך כך:
Created [https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/my-instance].
NAME: my-instance
ZONE: us-central1-a
MACHINE_TYPE: n2d-standard-2
PREEMPTIBLE:
INTERNAL_IP: 0.0.0.0
EXTERNAL_IP: 0.0.0.0
STATUS: RUNNING
REST
כדי ליצור מכונה וירטואלית חסויה, צריך לשלוח בקשת POST עם תוכן הבקשה המתאים.
שיטת ה-HTTP וכתובת ה-URL:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/instances
תוכן בקשת JSON:
{
"name": "INSTANCE_NAME",
"confidentialInstanceConfig": {
"confidentialInstanceType": "CONFIDENTIAL_COMPUTING_TECHNOLOGY"
},
"machineType": "zones/ZONE_NAME/machineTypes/MACHINE_TYPE_NAME",
"minCpuPlatform": "CPU_PLATFORM",
"scheduling": {
"automaticRestart": true,
"nodeAffinities": [],
"onHostMaintenance": "MAINTENANCE_POLICY",
"preemptible": false
},
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY_NAME"
}
}
],
"networkInterfaces": [
{
"nicType": "gVNIC"
}
]
}
מספקים את הערכים הבאים:
PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את המכונה הווירטואלית.
ZONE_NAME: האזור שבו יש תמיכה ב-Confidential VM שבו רוצים ליצור את המכונה.
INSTANCE_NAME: השם של המופע החדש של המכונה הווירטואלית.CONFIDENTIAL_COMPUTING_TECHNOLOGY: סוג הטכנולוגיה של Confidential Computing שרוצים להשתמש בה. בוחרים אחד מהערכים הבאים:SEVSEV_SNPTDX
MACHINE_TYPE_NAME: סוג המכונה הווירטואלית, לדוגמה,n2d-standard-2. סוגי מכונות תקפים למופעי Confidential VM נקבעים על ידי טכנולוגיית Confidential Computing שבחרתם. סוגי מכונות, מעבדים ותחומים
CPU_PLATFORM: בוחרים אחד מהערכים הבאים:AMD SEV:
AMD Milan(סוגי מכונות C2D או N2D),AMD Genoa(סוגי מכונות C3D) אוAMD Turin(סוגי מכונות C4D).AMD SEV-SNP:
AMD Milan(סוגי מכונות N2D).ב-Intel TDX: מסירים את צמד המפתח/ערך הזה.
MAINTENANCE_POLICY: עבור סוגי מכונות N2D שמשתמשים ב-SEV, צריך להגדיר את הערך הזה ל-MIGRATEכדי לתמוך במיגרציה פעילה. לכל שאר סוגי המכונות, צריך להגדיר את הערך הזה כ-TERMINATE, כי הן לא תומכות במיגרציה פעילה.
IMAGE_PROJECT: הפרויקט שמכיל את קובץ אימג' של המערכת הנתמכת.
IMAGE_FAMILY_NAME: המשפחה של קובץ אימג' של המערכת שנתמכת על ידי Confidential VM. אם לא מציינים בנוסף את--image, הגרסה האחרונה של התמונה נבחרת.
דוגמה
מריצים אחת מהפקודות הבאות כדי ליצור מופע n2d-standard-2 בשם my-instance באזור us-central1-a, בפרויקט my-project, באמצעות AMD SEV-SNP:
Curl (Linux, macOS או Cloud Shell)
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "my-instance",
"confidentialInstanceConfig": {
"confidentialInstanceType": "SEV_SNP"
},
"machineType": "zones/us-central1-a/machineTypes/n2d-standard-2",
"minCpuPlatform": "AMD Milan",
"scheduling": {
"automaticRestart": true,
"nodeAffinities": [],
"onHostMaintenance": "TERMINATE",
"preemptible": false
},
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/ubuntu-os-cloud/global/images/family/ubuntu-2404-lts-amd64"
}
}
],
"networkInterfaces": [
{
"nicType": "gVNIC"
}
]
}' \
https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instancesPowerShell (Windows)
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
$body = @"
{
"name": "my-instance",
"confidentialInstanceConfig": {
"confidentialInstanceType": "SEV_SNP"
},
"machineType": "zones/us-central1-a/machineTypes/n2d-standard-2",
"minCpuPlatform": "AMD Milan",
"scheduling": {
"automaticRestart": true,
"nodeAffinities": [],
"onHostMaintenance": "TERMINATE",
"preemptible": false
}
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/ubuntu-os-cloud/global/images/family/ubuntu-2404-lts-amd64"
}
}
],
"networkInterfaces": [
{
"nicType": "gVNIC"
}
]
}
"@
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-Body $body `
-Uri "https://compute.googleapis.com/compute/projects/my-project/zones/us-central1-a/instances" | Select-Object -Expand Contentתשובה
תגובה לבקשת יצירה נראית בערך כך:
{
"kind": "compute#operation",
"id": "0000000000000000000",
"name": "operation-0000000000000-0000000000000-00000000-00000000",
"zone": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a",
"operationType": "insert",
"targetLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/my-instance",
"targetId": "0000000000000000000",
"status": "RUNNING",
"user": "alex@example.com",
"progress": 0,
"insertTime": "2024-09-29T18:06:52.174-07:00",
"startTime": "2024-09-29T18:06:52.175-07:00",
"selfLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/operations/operation-0000000000000-0000000000000-00000000-00000000"
}
כדי לבדוק את התקדמות יצירת המכונה הווירטואלית, שולחים GETבקשה אל
selfLink:
GET https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/operations/OPERATION_ID
הפעלת רוחב פס גבוה יותר ברשת לסוגי מכונות ספציפיים
סוגי מכונות גדולים יותר תומכים ברשתות עם רוחב פס גבוה. כשבוחרים הגדרת רוחב פס של רשת Tier_1, רוחב הפס של העברת הנתונים היוצאים גדל מ-32 Gbps (ברירת המחדל) ל-50 עד 200 Gbps, בהתאם לסוג המכונה. כדי להשיג את מהירויות רוחב הפס הגבוהות יותר של Tier_1, המופע צריך להריץ את מנהל ההתקן של הרשת הווירטואלית gVNIC. מידע נוסף על הגדרת מכונה וירטואלית עם רוחב פס גבוה יותר
המאמרים הבאים
איך משתמשים ב-Cloud Monitoring כדי לאמת את מופעי Confidential VM