המינוי Assured Open Source Software (Assured OSS) Premium מאפשר לכם לשפר את אבטחת הקוד באמצעות חבילות ה-OSS ש-Google משתמשת בהן בתהליכי העבודה של המפתחים שלה. כשמשתמשים ב-Assured OSS, המפתחים יכולים ליהנות מהמומחיות והניסיון של Google באבטחה, שמוחלים על אבטחת התלויות של Google בקוד פתוח.
כשמשלבים את Assured OSS עם Security Command Center, אפשר לבצע את הפעולות הבאות:
- אפשר לבחור מתוך אלפי חבילות Java, Python ו-Go שאצורות ופופולריות, כולל פרויקטים נפוצים של למידת מכונה ובינה מלאכותית כמו TensorFlow, Pandas ו-Scikit-learn.
- מגדירים פרוקסי מאובטח להורדת כל חבילות Java, Python, Go ו-JavaScript עם אישורים מ-Assured OSS, כך ש-Google הופכת לספק מוכר ומהימן.
- כדי לקבל מידע נוסף על הרכיבים שלכם, אתם יכולים להשתמש ב-SBOM וב-VEX ב-Assured OSS, שזמינים בפורמטים סטנדרטיים בתעשייה כמו SPDX ו-CycloneDX.
- הגברת הביטחון בתקינות החבילות שבהן אתם משתמשים באמצעות מקור חתום שמוכיח שהחבילות לא שונו על ידי Google.
- הפחתת הסיכון לאבטחה כי Google סורקת באופן פעיל חבילות שנבחרו בקפידה, מוצאת נקודות חולשה חדשות ומתקנת אותן.
לפני שמתחילים
צריך להשלים את המשימות האלה לפני שממשיכים למשימות הנותרות בדף הזה.
הפעלת רמת השירות Security Command Center Enterprise
מוודאים שרמת Security Command Center Enterprise מופעלת ברמת הארגון.
הגדרת הרשאות ברמת הארגון
צריך להגדיר הרשאות ברמת הארגון וברמת הפרויקט.
-
Make sure that you have the following role or roles on the organization: Security Center Admin, Organization Admin
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the organization.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
כניסה לדף IAM - בוחרים את הארגון.
- לוחצים על Grant access.
-
בשדה New principals, מזינים את מזהה המשתמש. בדרך כלל מזהה המשתמש הוא כתובת האימייל של חשבון Google.
- לוחצים על בחירת תפקיד ומחפשים את התפקיד.
- כדי לתת עוד תפקידים, לוחצים על Add another role ומוסיפים את כולם.
- לוחצים על Save.
הגדרת הרשאות ברמת הפרויקט
-
Make sure that you have the following role or roles on the project: Service Usage Admin, Service Account Admin, Project IAM Admin
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
כניסה לדף IAM - בוחרים את הפרויקט.
- לוחצים על Grant access.
-
בשדה New principals, מזינים את מזהה המשתמש. בדרך כלל מזהה המשתמש הוא כתובת האימייל של חשבון Google.
- לוחצים על בחירת תפקיד ומחפשים את התפקיד.
- כדי לתת עוד תפקידים, לוחצים על Add another role ומוסיפים את כולם.
- לוחצים על Save.
הגדרת Google Cloud CLI
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
הגדרת Assured OSS
המסוף
נכנסים אל מדריך ההגדרה של Security Command Center במסוף Google Cloud .
מוודאים שאתם צופים בארגון שבו הפעלתם את מהדורת Security Command Center Enterprise.
מרחיבים את החלונית Review security capabilities summary (סקירה של סיכום יכולות האבטחה).
לוחצים על אבטחת קוד > הגדרה.
בחלונית הגדרת אבטחת קוד, לוחצים על הגדרת AOSS.
בוחרים חשבון שירות חדש או בוחרים את חשבונות השירות הקיימים שרוצים להוסיף להם את ההרשאות של Assured Open Source Software.
בוחרים את הפרויקט Google Cloud שבו רוצים לאתר את משאבי Assured OSS.
לוחצים על הגדרת Assured OSS.
תהליך ההגדרה משלים באופן אוטומטי את הפעולות הבאות:
- אם בוחרים באפשרות הזו, נוצר חשבון שירות חדש
assuredoss@PROJECT_ID.gservicesaccount.com. - מקצים את התפקיד Assured OSS User לחשבון השירות המיועד לשימוש ב-Assured OSS.
- מקצה לחשבון המשתמש המחובר את התפקיד 'אדמין של Assured OSS' כדי שהחשבון יוכל להגדיר את השירות.
- הפעלה של Assured Open Source Software API, ואם הוא לא מופעל כבר, גם של Artifact Registry API.
- מגדיר את שירות ה-proxy של Assured OSS במופע של Artifact Registry בפרויקט שבחרתם. מאגר מוקצה לכל שפה (Java, Python, Go ו-JavaScript). אפשר להגדיר מאגרי מידע כאלה כך שימשכו חבילות באופן אוטומטי מהפורטפוליו שנבחר. אם חבילה מסוימת לא זמינה כחלק מהפורטפוליו שנבחר, המאגרים מפנים את הבקשה למאגרים הקנוניים. שירות ה-Proxy תומך רק באזור ארה"ב. מידע נוסף זמין במאמר בנושא אפשרויות מאגר Assured OSS.
- התפקיד הזה מעניק לכם ולחשבון השירות הרשאות גישה למטא-נתונים של חבילות ולהתראות מפרויקטים בבעלות Google.
- אם בוחרים באפשרות הזו, נוצר חשבון שירות חדש
יוצרים מפתח של חשבון שירות לכל חשבון שירות ייעודי של Assured OSS ומורידים את המפתח בפורמט JSON.
בשורת הפקודה במחשב המקומי, מריצים את הפקודה הבאה בקובץ המפתח שהורד כדי לקבל את המחרוזת בקידוד base64:
base64 KEY_FILENAME.json
מחליפים את
KEY_FILENAME.jsonבשם של מפתח חשבון השירות שהורדתם.תצטרכו את המחרוזת בקידוד Base64 כשמגדירים מאגר מרוחק ל-Assured OSS.
כדי להוריד את החבילות, משתמשים בנקודות הקצה ש-Assured OSS מספק לכל שפה. כדאי לרשום את נקודות הקצה האלה לשימוש בהמשך.
- Java:
https://us-maven.pkg.dev/PROJECT_ID/assuredoss-java
- Python:
https://us-python.pkg.dev/
PROJECT_ID/assuredoss-python - JavaScript:
https://us-npm.pkg.dev/
PROJECT_ID/assuredoss-javascript - עוברים אל:
https://us-go.pkg.dev/
PROJECT_ID/assuredoss-go
מחליפים את
PROJECT_IDבמזהה הפרויקט שבחרתם כשמגדירים את Assured OSS.- Java:
לוחצים על הבא. הגדרת Assured OSS באמצעות כלי לניהול מאגר ארטיפקטים של הארגון, כמו JFrog Artifactory או Sonatype Nexus.
gcloud
מתבצע אימות ל- Google Cloud באמצעות חשבון משתמש שרוצים להשתמש בו כדי להפעיל Assured OSS:
gcloud auth revoke gcloud auth application-default revoke gcloud auth login
מחפשים את הפרויקט שבו רוצים לאתר את משאבי Assured OSS:
gcloud alpha projects search --query="displayName=PROJECT_NAME"
מחליפים את
PROJECT_NAMEבשם הפרויקט.מגדירים את הפרויקט שבו רוצים למקם את המשאבים של Assured OSS:
gcloud config set project PROJECT_ID
מחליפים את
PROJECT_IDבמזהה הפרויקט.כדי להגדיר את Assured OSS, צריך להקצות תפקידים לחשבון המשתמש:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=user:email@domain.com \ --role=roles/assuredoss.admin gcloud projects add-iam-policy-binding PROJECT_ID \ --member=user:email@domain.com \ --role=roles/serviceusage.serviceUsageAdmin gcloud projects add-iam-policy-binding PROJECT_ID \ --member=user:email@domain.com \ --role=roles/iam.serviceAccountAdmin
כאשר
email@domain.comהיא כתובת האימייל של חשבון המשתמש.מפעילים את Assured OSS בפרויקט. ההפעלה של Assured OSS מפעילה גם את Artifact Registry API.
gcloud services enable assuredoss.googleapis.com
כדי ליצור חשבון שירות חדש ל-Assured OSS במקום להשתמש בחשבונות שירות קיימים, צריך לבצע את הפעולות הבאות:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \ --description="Service account for using Assured OSS" --display-name="Assured OSS service account"
מחליפים את
SERVICE_ACCOUNT_NAMEבשם של חשבון השירות (לדוגמה,assuredoss).מגדירים את חשבונות השירות עבור Assured OSS:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \ --role roles/assuredoss.user
מחליפים את מה שכתוב בשדות הבאים:
-
SERVICE_ACCOUNT_NAME: השם של חשבון השירות (לדוגמה,assuredoss). -
PROJECT_ID: מזהה הפרויקט.
-
- כדי לגשת למאגר מטא-נתונים של אבטחה אחרי שמגדירים את Assured OSS Premium באמצעות gcloud, צריך לשלוח אימייל אל customer-support-aoss@google.com עם חשבונות השירות שהפעלתם עבור Assured OSS.
מגדירים את שירות ה-proxy של Assured OSS במופע של Artifact Registry על ידי יצירת מאגרי Assured OSS. צריך ליצור מאגרי מידע לכל השפות. שירות ה-proxy של Assured OSS שמקצה את המאגרים תומך רק באזור ארה"ב.
alias gcurlj='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -X' gcurlj POST https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories\?repositoryId\=assuredoss-java -d '{"format": "MAVEN", "mode": "AOSS_REPOSITORY"}' gcurlj POST https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories\?repositoryId\=assuredoss-javascript -d '{"format": "NPM", "mode": "AOSS_REPOSITORY"}' gcurlj POST https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories\?repositoryId\=assuredoss-python -d '{"format": "PYTHON", "mode": "AOSS_REPOSITORY"}' gcurlj POST https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories\?repositoryId\=assuredoss-go -d '{"format": "GO", "mode": "AOSS_REPOSITORY"}'מחליפים את
PROJECT_IDבמזהה הפרויקט שבחרתם כשמגדירים את Assured OSS.אפשר להגדיר את המאגרים האלה כך שימשכו חבילות באופן אוטומטי מהפורטפוליו שנבחר בקפידה. אם חבילה מסוימת לא זמינה כחלק מהפורטפוליו שנבחר, הבקשה מועברת אוטומטית למאגרים הקנוניים.
יוצרים מפתח לחשבון שירות לכל חשבון שירות של Assured OSS ומורידים את המפתח בפורמט JSON.
בשורת הפקודה, מריצים את הפקודה הבאה בקובץ המפתח שהורד כדי לקבל את המחרוזת בקידוד base64:
base64 KEY_FILENAME.json
מחליפים את
KEY_FILENAME.jsonבשם של מפתח חשבון השירות שהורדתם.תצטרכו את המחרוזת בקידוד Base64 כשמגדירים מאגר מרוחק ל-Assured OSS.
כדי להוריד את החבילות, משתמשים בנקודות הקצה שהוקצו על ידי Assured OSS לכל שפה. חשוב לשים לב לנקודות הקצה הבאות:
- Java:
https://us-maven.pkg.dev/PROJECT_ID/assuredoss-java
- Python:
https://us-python.pkg.dev/
PROJECT_ID/assuredoss-python - JavaScript:
https://us-npm.pkg.dev/
PROJECT_ID/assuredoss-javascript - עוברים אל:
https://us-go.pkg.dev/
PROJECT_ID/assuredoss-go
מחליפים את
PROJECT_IDבמזהה הפרויקט שבחרתם כשמגדירים את Assured OSS.- Java:
מגדירים את Assured OSS כדי להוריד חבילות באמצעות מנהל מאגרי הארטיפקטים של הארגון, כמו JFrog Artifactory או Sonatype Nexus.
אפשר גם להציג את חבילות Java, Python, Go ו-JavaScript שזמינות:
gcloud auth revoke gcloud auth application-default revoke gcloud auth login --cred-file=KEY_FILENAME.json
מחליפים את
KEY_FILENAME.jsonבשם של מפתח חשבון השירות שהורדתם.export GOOGLE_APPLICATION_CREDENTIALS=KEY_FILENAME.json
מחליפים את
KEY_FILENAME.jsonבשם של מפתח חשבון השירות שהורדתם.gcurlj GET "https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-java/packages" gcurlj GET "https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-python/packages" gcurlj GET "https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-javascript/packages" gcurlj GET "https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-go/packages"
מחליפים את
PROJECT_IDבמזהה הפרויקט שבחרתם כשמגדירים את Assured OSS.
המאמרים הבאים
- הגדרת תמיכה ב-VPC Service Controls
- אימות החיבור
- הורדת חבילות Go
- הורדת חבילות Java
- הורדת חבילות Python
- הגדרת מאגר מרוחק
- אימות מטא-נתוני האבטחה
- הגדרת התראות לעדכוני חבילות
-
-