אחסון מטא-נתונים של ארטיפקטים בקבצים מצורפים

בדף הזה מוסבר איך לאחסן מטא-נתונים שקשורים לארטיפקט שמאוחסן ב-Artifact Registry כקובץ מצורף.

המטא-נתונים שמאוחסנים בקבצים המצורפים יכולים לכלול מידע על נקודות חולשה בארטיפקטים, על אישור המקור של Build, על תוכן החבילה, על אישורים, על הערכת נקודות חולשה, על רשימת חומרים (SBOM) ועוד. מערכות מדיניות יכולות להשתמש במידע שמאוחסן בקבצים המצורפים של Artifact Registry, ומשתמשים יכולים לבדוק את המידע כדי לוודא שהוא עומד בדרישות.

מידע נוסף על עבודה עם קבצים מצורפים זמין במאמר ניהול מטא-נתונים באמצעות קבצים מצורפים.

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

  1. אם עדיין אין לכם מאגר, צרו מאגר במצב רגיל.
  2. (אופציונלי) הגדרת ערכי ברירת מחדל לפקודות של Google Cloud CLI.

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

כדי לקבל את ההרשאות שנדרשות ליצירת קבצים מצורפים, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM‏ Artifact Registry Writer (roles/artifactregistry.writer) במאגר. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

יצירת קובץ מצורף

במאגרי Docker, הקבצים המצורפים צריכים להיות פריטי OCI. בכל הפורמטים מלבד Docker, הקבצים המצורפים יכולים להיות מכל סוג.

כדי ליצור קובץ מצורף:

‫gcloud (כל הפורמטים)

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

  • ATTACHMENT: השם המוגדר במלואו של הקובץ המצורף, למשל projects/my-project/locations/us-west1/repositories/my-repo/attachments/my-attachment. אפשרות אחרת היא לציין רק את מזהה הקובץ המצורף ולהשתמש בדגלים --location ו---repository.
  • TARGET: שם הגרסה המלא. רק לגבי קובצי אימג' של Docker, אפשר גם להשתמש ב-URI של Artifact Registry של הארטיפקט שאליו מתייחס הקובץ המצורף. ב-URI, אפשר להשתמש בערך הגיבוב או בתג של קובץ האימג' של Docker. לדוגמה: us-west1-docker.pkg.dev/my-project/my-repo/my-image:tag1.
  • TYPE: מאפיין type הקובץ המצורף. בתמונות Docker, הערך של type צריך לעמוד בדרישות של OCI לגבי המאפיין artifactType.
  • ATTACHMENT_NAMESPACE: משתנה ספציפי לקבצים מצורפים שמזהה את מקור הנתונים של הקובץ המצורף, כמו example.com.
  • FILES: רשימה מופרדת בפסיקים של קבצים מקומיים שרוצים לכלול בקובץ המצורף.
    • מריצים את הפקודה הבאה:

      ‫Linux,‏ macOS או Cloud Shell

      gcloud artifacts attachments create ATTACHMENT \
          --target=TARGET \
          --attachment-type=TYPE \
          --attachment-namespace=ATTACHMENT_NAMESPACE \
          --files=FILES

      ‏Windows (PowerShell)

      gcloud artifacts attachments create ATTACHMENT `
          --target=TARGET `
          --attachment-type=TYPE `
          --attachment-namespace=ATTACHMENT_NAMESPACE `
          --files=FILES

      Windows‏ (cmd.exe)

      gcloud artifacts attachments create ATTACHMENT ^
          --target=TARGET ^
          --attachment-type=TYPE ^
          --attachment-namespace=ATTACHMENT_NAMESPACE ^
          --files=FILES
      מידע נוסף זמין במאמר על הפקודה gcloud artifacts attachments create.

‫Oras (Docker בלבד)

כשיוצרים קובץ מצורף באמצעות Oras, ‏ Artifact Registry יוצר מזהה ייחודי אוניברסלי (UUID) אקראי לשימוש כשם הקובץ המצורף.

לפני שמשתמשים ב-Oras, צריך לבצע את השלבים הבאים:

  1. מתקינים את Oras 1.2 ואילך. כדי לוודא את הגרסה, מריצים את הפקודה oras version.

  2. מגדירים את Oras לאימות באמצעות Artifact Registry.

לפני שמריצים את הפקודה, מחליפים את המשתנים הבאים בערכים:

  • ARTIFACT_TYPE: artifactType הקובץ המצורף.

  • IMAGE_URI: ה-URI של קונטיינר התמונה שאליו מתייחס הקובץ המצורף.

  • FILE: קובץ מקומי שרוצים לכלול כמטא-נתונים בקובץ המצורף.

  • MEDIA_TYPE: ה-mediaType של השכבה.

  oras attach --artifact-type ARTIFACT_TYPE IMAGE_URI FILE:MEDIA_TYPE

בדוגמה הבאה נוצר קובץ מצורף שמורכב מקובץ, hello-world.txt, שמפנה לקובץ אימג' של קונטיינר, my-image, שמזוהה על ידי ה-URI והתג שלה:

  oras attach --artifact-type doc/example \
  us-west1-docker.pkg.dev/my-project/my-repo/my-image:tag1 \
  hello-world.txt:application/vnd.me.hi

כאשר:

  • התג doc/example מגדיר את המאפיין artifactType של הקובץ המצורף.

  • us-west1-docker.pkg.dev/my-project/my-repo/my-image:tag1 הוא ה-URI שכולל את התג של גרסת תמונת הקונטיינר שהקובץ המצורף יפנה אליה.

  • hello-world.txt הוא הקובץ המקומי שהנתונים שלו יישמרו בקובץ המצורף.

  • application/vnd.me.hi מגדיר את mediaType של השכבה.

מדריך מלא ודוגמאות נוספות זמינים במאמרי העזרה בנושא oras attach.

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

קבצים מצורפים למאגר Docker, כולל אישור המקור של Build, נמחקים כשפריטים שהם מצורפים אליהם נמחקים. אם אתם משתמשים במדיניות ניקוי כדי למחוק תמונות מהמאגר, אז כברירת מחדל, גם הקבצים המצורפים לתמונות האלה יימחקו.

כדי לוודא שמדיניות הניקוי לא תמחק בטעות קבצים מצורפים שרוצים לשמור, אפשר להקצות תג לתמונה שמצורפים אליה קבצים שרוצים לשמור. לאחר מכן, תוכלו להגדיר מדיניות ניקוי כדי לשמור תמונות עם התגים האלה. לדוגמה, אפשר להקצות תג production-signed לתמונות עם אישור המקור של Build מצורף.

מה השלב הבא