יצירה ושמירה של SBOM

במאמר הזה מוסבר איך ליצור ולאחסן רשימת חומרים לתוכנה (SBOM) שמפרטת את יחסי התלות בקובצי האימג' של הקונטיינרים.

כשמאחסנים קובצי אימג' של קונטיינרים ב-Artifact Registry וסורקים אותם כדי לזהות נקודות חולשה באמצעות Artifact Analysis, אפשר ליצור SBOM באמצעות Google Cloud CLI.

למידע על השימוש בסריקת נקודות חולשה, קראו את המאמרים סריקה אוטומטית ותמחור.

‫Artifact Analysis מאחסן את ה-SBOM ב-Cloud Storage. מידע נוסף על עלויות ב-Cloud Storage זמין במאמר תמחור.

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

  1. 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

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

  3. Enable the Artifact Registry, Container Analysis, Container Scanning APIs, if any are 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 APIs

  4. Install the Google Cloud CLI.

  5. Configure the gcloud CLI to use your federated identity.

    For more information, see Sign in to the gcloud CLI with your federated identity.

  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. יוצרים מאגר Docker ב-Artifact Registry ומעבירים אליו קובץ אימג' של קונטיינר. אם אתם לא מכירים את Artifact Registry, כדאי לעיין במדריך למתחילים של Docker.

התפקידים הנדרשים

כדי לקבל את ההרשאות שנדרשות לניהול קטגוריות של Cloud Storage ולהעלאת קובצי SBOM, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM אדמין לניהול אחסון (roles/storage.admin) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

יצירת קובץ SBOM

כדי ליצור קובץ SBOM, משתמשים בפקודה הבאה:

gcloud artifacts sbom export --uri=LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE_NAME

כאשר:

  • ‫LOCATION הוא המיקום של מאגר Artifact Registry.
  • ‫PROJECT_ID הוא מזהה הפרויקט שמכיל את מאגר Artifact Registry.
  • ‫REPOSITORY הוא שם המאגר ב-Artifact Registry שמכיל את התמונה.
  • ‫IMAGE_NAME הוא שם התמונה. התמונות יכולות להיות בפורמט תג או בפורמט תקציר. תמונות שסופקו בפורמט תג יעברו המרה לפורמט תקציר.

ב-Artifact Analysis, ה-SBOM שלכם מאוחסן ב-Cloud Storage. אם עדיין אין לכם קטגוריה של Cloud Storage באותו אזור שבו נמצאת התמונה, מערכת Cloud Storage תיצור קטגוריה בשבילכם בשם artifactanalysis-<var>REGION</var>-<var>PROJECT_NUMBER</var> ותשלח את ה-SBOM לקטגוריה הזו. ‫SBOM נוספים באזור הזה נשלחים לאותו מאגר.

אפשר לראות את ה-SBOM באמצעות מסוף Google Cloud או ה-CLI של gcloud. אם אתם רוצים לאתר את קטגוריית Cloud Storage שמכילה את ה-SBOM שלכם, אתם צריכים לחפש SBOM באמצעות gcloud CLI.

יצירת SBOM ללא סריקת נקודות חולשה

אם אתם רוצים ליצור SBOM, אבל לא רוצים סריקה מתמשכת של נקודות חולשה בפרויקט, אתם עדיין יכולים לייצא SBOM אם תפעילו את Container Scanning API לפני שתעבירו את קובץ האימג' ל-Artifact Registry. אחרי שקובץ האימג' נדחף ל-Artifact Registry וייצאתם את ה-SBOM, אתם צריכים להשבית את Container Scanning API כדי שלא תחויבו על סריקות נוספות לאיתור נקודות חולשה.

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