סריקה אוטומטית של חבילות Node.js
איך מפעילים סריקה אוטומטית, דוחפים קובץ אימג' של קונטיינר ב-Artifact Registry ורואים רשימה של נקודות החולשה שנמצאו בקובץ האימג'.
בכל פעם שקובץ אימג' נשלח ל-Artifact Registry, מתבצעת סריקה לאיתור נקודות חולשה באמצעות Artifact Analysis. אדמינים של פלטפורמות ומפתחי אפליקציות יכולים להשתמש בתכונת הסריקה האוטומטית הזו כדי לזהות סיכונים בצינור אספקת התוכנה שלהם.
במדריך למתחילים הזה נשתמש בחבילה פשוטה שזמינה לכולם כדי להדגים סוג אחד של סריקת חבילות. כברירת מחדל, אחרי שמפעילים את ה-API לסריקה, Artifact Analysis סורק חולשות אבטחה בכמה סוגי חבילות. סוגי החבילות הנתמכים כוללים: OS, Go, Java (Maven), Python ו-Node.js (npm).
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אנחנו ממליצים למשתמשים חדשים ב- Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init -
יוצרים או בוחרים Google Cloud פרויקט.
התפקידים שנדרשים כדי לבחור או ליצור פרויקט
- בחירת פרויקט: כדי לבחור פרויקט לא נדרש תפקיד IAM ספציפי – אתם יכולים לבחור כל פרויקט שקיבלתם בו תפקיד.
-
יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (
roles/resourcemanager.projectCreator), שכולל את ההרשאהresourcemanager.projects.create. איך מקצים תפקידים
-
יוצרים פרויקט ב- Google Cloud :
gcloud projects create PROJECT_ID
מחליפים את
PROJECT_IDבשם של פרויקט Google Cloud שיוצרים. -
בוחרים את הפרויקט שיצרתם: Google Cloud
gcloud config set project PROJECT_ID
מחליפים את
PROJECT_IDבשם הפרויקט ב- Google Cloud .
מפעילים את Artifact Registry API ואת Container Scanning API, אם הם עדיין לא מופעלים:
התפקידים שנדרשים כדי להפעיל ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםgcloud services enable containerscanning.googleapis.com
artifactregistry.googleapis.com -
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init -
יוצרים או בוחרים Google Cloud פרויקט.
התפקידים שנדרשים כדי לבחור או ליצור פרויקט
- בחירת פרויקט: כדי לבחור פרויקט לא נדרש תפקיד IAM ספציפי – אתם יכולים לבחור כל פרויקט שקיבלתם בו תפקיד.
-
יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (
roles/resourcemanager.projectCreator), שכולל את ההרשאהresourcemanager.projects.create. איך מקצים תפקידים
-
יוצרים פרויקט ב- Google Cloud :
gcloud projects create PROJECT_ID
מחליפים את
PROJECT_IDבשם של פרויקט Google Cloud שיוצרים. -
בוחרים את הפרויקט שיצרתם: Google Cloud
gcloud config set project PROJECT_ID
מחליפים את
PROJECT_IDבשם הפרויקט ב- Google Cloud .
מפעילים את Artifact Registry API ואת Container Scanning API, אם הם עדיין לא מופעלים:
התפקידים שנדרשים כדי להפעיל ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםgcloud services enable containerscanning.googleapis.com
artifactregistry.googleapis.com
יצירת מאגר Docker ב-Artifact Registry
יוצרים מאגר Docker כדי לאחסן את קובץ האימג' לדוגמה של המדריך למתחילים.
פותחים את הדף Repositories במסוף Google Cloud .
לוחצים על Create Repository (יצירת מאגר).
בדף Create Repository, מזינים את ההגדרות הבאות:
- שם:
quickstart-docker-repo - פורמט: Docker
- מצב: רגיל
- סוג המיקום: אזור
- אזור:
us-central1
- שם:
לוחצים על יצירה.
מוצג הדף Repositories (מאגרי מידע). מאגר quickstart-docker-repo נוסף לרשימת המאגרים.
הגדרת אימות
כדי לדחוף או למשוך תמונות באמצעות Artifact Registry, צריך להגדיר את Docker כך שישתמש ב-Google Cloud CLI כדי לאמת בקשות ל-Artifact Registry.
ב-Cloud Shell או במעטפת המקומית, מגדירים אימות למאגרי Docker באזור us-central1:
gcloud auth configure-docker us-central1-docker.pkg.dev
קבלת חבילה
עוברים לספרייה שבה רוצים לשמור את קובץ אימג' של קונטיינר.
מעתיקים תמונה לספרייה המקומית. לדוגמה, אפשר להשתמש ב-Docker כדי למשוך את bitnami.
docker pull bitnami/express
תיוג החבילה עם שם המאגר
כשרוצים להעביר חבילה ל-Artifact Registry, צריך להגדיר את הפקודה docker push כדי להעביר את קובץ האימג' למיקום ספציפי.
מריצים את הפקודה הבאה כדי לתייג את התמונה כ-quickstart-image:tag1:
docker tag bitnami \ us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1
כאשר:
- PROJECT הוא מזהה הפרויקט ב- Google Cloud.
אם מזהה הפרויקט מכיל נקודתיים (
:), כדאי לעיין במאמר בנושא פרויקטים בהיקף הדומיין. -
us-central1הוא האזור של מאגר Artifact Registry. -
docker.pkg.devהוא שם המארח של מאגרי Docker. -
quickstart-imageהוא שם התמונה שרוצים להשתמש בה במאגר. שם התמונה יכול להיות שונה משם התמונה המקומית. -
tag1הוא תג שמוסיפים לקובץ האימג' של Docker. אם לא ציינתם תג, Docker יחיל את תג ברירת המחדלlatest.
העברת קובץ האימג' בדחיפה ל-Artifact Registry
Artifact Analysis סורק באופן אוטומטי חבילות npm חדשות כשהן מועלות ל-Artifact Registry.
כדי להעביר את קובץ האימג' למאגר Docker ב-Artifact Registry, מריצים את הפקודה הבאה:
docker push us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1
מחליפים את PROJECT במזהה הפרויקט. Google Cloud
אם מזהה הפרויקט מכיל נקודתיים (:), כדאי לעיין במאמר בנושא פרויקטים בהיקף הדומיין.
הצגת תוצאות של סריקת נקודות חולשה
דרכים אחרות לצפייה בתוצאות
במסוף Google Cloud מוצגות עד 1,200 נקודות חולשה. אם בתמונה יש יותר מ-1,200 נקודות חולשה, צריך להשתמש ב-gcloud או ב-API כדי לראות את הרשימה המלאה.
הסרת המשאבים
כדי לא לצבור חיובים בחשבון Google Cloud על המשאבים שבהם השתמשתם בדף הזה, אתם צריכים למחוק את הפרויקט Google Cloud יחד עם המשאבים.
אם יצרתם פרויקט חדש לצורך המדריך הזה, אתם יכולים למחוק אותו עכשיו.- נכנסים לדף Manage resources במסוף Google Cloud .
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.