בדף הזה מוסבר איך להעלות קובץ של רשימת חומרים (SBOM) של תוכנה ל-Cloud Storage כדי לעקוב אחרי הרכיבים של קובצי אימג' של קונטיינרים שמאוחסנים ב-Artifact Registry ולאמת אותם.
מידע על התמחור של Cloud Storage זמין במאמר תמחור.
לפני שמתחילים
-
נכנסים לחשבון Google.
אם עדיין אין חשבון, יוצרים חשבון חדש.
-
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 Artifact Registry, Container Analysis APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init -
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 Artifact Registry, Container Analysis APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init - יש לכם מאגר Docker ב-Artifact Registry עם קובץ האימג' של הקונטיינר שמתואר ב-SBOM. אם אתם לא מכירים את Artifact Registry, כדאי לעיין במדריך למתחילים ל-Docker.
- מוודאים שיש קובץ SBOM שמוכן להעלאה באחד הפורמטים הנתמכים.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות ליצירה ולניהול של קטגוריות Cloud Storage וקבצי SBOM, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:
-
אם אתם משתמשים בקטגוריה של Cloud Storage המוגדרת כברירת מחדל, כדי לנהל קטגוריות אחסון:
אדמין אחסון(
roles/storage.admin) -
אם מציינים קטגוריה של Cloud Storage, כדי לנהל קטגוריות של אחסון:
אדמין של אובייקט אחסון(
roles/storage.objectAdmin) -
אם כבר קיימת הערה להפניה ל-SBOM:
צירוף מופעי Container Analysis להערות (
roles/containeranalysis.notes.attacher) -
כדי ליצור הערה חדשה לגבי מופעים של הפניה ל-SBOM בפרויקט הנוכחי:
Container Analysis Notes Editor(
(roles/containeranalysis.notes.editor) -
כדי ליצור מופע הפניה של SBOM:
Container Analysis Occurrences Editor(
roles/containeranalysis.occurrences.editor)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
פורמטים נתמכים
קובץ ה-SBOM צריך להיות קובץ JSON באחד מהפורמטים הבאים:
- Software Package Data Exchange (SPDX) גרסה 2.2 או 2.3
- גרסה 1.4 או 1.5 של CycloneDX
העלאת ה-SBOM
כדי להעלות את ה-SBOM, משתמשים בפקודה הבאה:
gcloud artifacts sbom load /
--source SOURCE /
--uri URI
כאשר:
- SOURCE: הנתיב לקובץ ה-SBOM שרוצים להעלות.
- URI: ה-URI של קובץ אימג' של Docker שקובץ ה-SBOM מתאר. התמונות יכולות להיות בפורמט תג או בפורמט תקציר. תמונות שסופקו בפורמט תג יעברו המרה לפורמט תקציר.
דגלים אופציונליים
-
--destination: מציין קטגוריה של Cloud Storage לשימוש במקום קטגוריית ברירת המחדל. -
--kms-key-version: מספק גרסת מפתח לחתימה על מטען הייעודי (payload) של מופע הפניה ל-SBOM. אפשר להשתמש במפתח הזה כדי לאמת את המקור של ה-SBOM.
לדוגמה, הפקודה הבאה מעלה קובץ JSON my-sbom.bom.json שנוצר מהתמונה המתויגת us-east1-docker.pkg.dev/my-image-repo/my-image, וחותמת על ההפניה ל-SBOM עם גרסת מפתח KMS שמסתיימת ב-my-key/cryptoKeyVersions/1.
gcloud artifacts sbom load /
--source=my-sbom.bom.json
--uri=us-east1-docker.pkg.dev/my-image-repo/my-image
--kms-key-version=projects/my-project/locations/us/keyRings/my-key-ring/cryptoKeys/my-key/cryptoKeyVersions/1
הפקודה הבאה מעלה קובץ JSON my-sbom.spdx.json שמשויך ל-digest של התמונה my-local-image@sha256:abcxyz, ומאחסנת את הקובץ בקטגוריה של Cloud Storage gs://my-sbom-bucket.
gcloud artifacts sbom load /
--source=my-sbom.spdx.json /
--uri=my-local-image@sha256:abcxyz /
--destination=gs://my-sbom-bucket
הכלי Artifact Analysis מעלה את ה-SBOM שלכם ל-Cloud Storage ויוצר מופע הפניה של ה-SBOM.
אפשר לראות את ה-SBOM באמצעות מסוף Google Cloud או ה-CLI של gcloud. אם אתם רוצים לאתר את קטגוריית Cloud Storage שמכילה את ה-SBOM שלכם, אתם צריכים לחפש SBOM באמצעות gcloud CLI.