בעזרת Cloud Build אפשר להגדיר מדיניות ארגונית (constraints/cloudbuild.allowedIntegrations) כדי לקבוע אילו שירותים חיצוניים יכולים להפעיל טריגרים של build. לדוגמה,
אם הטריגר מאזין לשינויים במאגר GitHub ו-GitHub
נדחה במדיניות הארגון, הטריגר לא יפעל. אתם יכולים לציין כל מספר של ערכים מותרים או אסורים לארגון או לפרויקט.
בדף הזה מוסבר איך להגדיר את מדיניות הארגון (constraints/cloudbuild.allowedIntegrations) לשילובים באמצעות מסוף Google Cloud וכלי שורת הפקודה gcloud.
לפני שמתחילים
-
אם אחד מהממשקים Cloud Build API ו-Organization Policy API לא מופעל, מפעילים אותו.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים כדי להשתמש בדוגמאות של שורת הפקודה במדריך הזה, צריך להתקין ולהגדיר את Google Cloud SDK.
כדי להגדיר, לשנות או למחוק מדיניות ארגונית, צריך להיות לכם התפקיד 'אדמין מדיניות ארגונית' (
roles/orgpolicy.policyAdmin). במאמר הוספת אדמין למדיניות הארגון מוסבר איך להוסיף את התפקיד לחשבון.
הגדרת מדיניות הארגון לשילובים מותרים
בקטע הזה מוסבר איך להגדיר את מדיניות הארגון (constraints/cloudbuild.allowedIntegrations) כדי להגדיר גרסאות build לשילובים מותרים.
המסוף
פותחים את הדף Organization policies במסוף Google Cloud .
לוחצים על השורה שמכילה את המדיניות Allowed Integrations (Cloud Build) (שילובים מותרים (Cloud Build)).
יוצג הדף פרטי המדיניות.
כדי לערוך את המדיניות, לוחצים על עריכה.
יוצג הדף עריכת מדיניות.
בקטע חל על, לוחצים על התאמה אישית כדי להגדיר את ההגדרה של המדיניות.
בקטע Policy enforcement (אכיפת המדיניות), לוחצים על Replace (החלפה) כדי להגדיר כללים משלכם למדיניות. אחרת, בוחרים באפשרות מיזוג עם משאב האב כדי לוודא שהכללים במשאב האב יחולו על ההגדרות שלכם. מידע נוסף מפורט במאמר הסבר על הערכת ההיררכיה.
בקטע כללים, לוחצים על הוספת כלל כדי להוסיף כלל חדש למדיניות.
בקטע ערכי מדיניות, בוחרים באפשרות אישור הכול כדי לאשר בנייה מכל השירותים, באפשרות דחיית הכול כדי לדחות בנייה מכל השירותים, או באפשרות התאמה אישית כדי לאשר או לדחות בנייה משירותים ספציפיים.
אם בוחרים באפשרות מותאם אישית כערך, פועלים לפי השלבים הבאים:
בקטע Policy type, בוחרים באפשרות Allow או Deny.
בקטע Custom values, מזינים את כתובת ה-URL של המארח של המופע או המאגר שרוצים לאפשר או לחסום בנייה ממנו. לדוגמה, כדי לאפשר או לדחות גרסאות build מ-GitHub, מזינים את כתובת ה-URL בתור
github.comאוwww.github.com.אפשר גם להזין כמה כתובות URL שמופרדות ברווח. לדוגמה,
github.com ghe.staging-test.com.בהתאם לאירוע, כתובת ה-URL של המארח שאתם מציינים היא אחת מהאפשרויות הבאות:
- אירוע RepoSync: המארח הוא
source.developers.google.com. - אירוע באפליקציית GitHub: המארח נגזר מהשדה
repository.html_urlבמטען הייעודי (payload) של JSON, שתמיד יהיהgithub.com. - אירוע GitHub Enterprise: המארח נגזר מהשדה
repository.html_urlבמטען הייעודי (payload) של JSON. לדוגמה,ghe.staging-test.com. - אירוע Pub/Sub: המארח נגזר מהמקור שצוין בטריגר. אם לא צוין מקור בטריגר, לא מתבצעת בדיקה של מדיניות הארגון.
- אירוע Webhook: המארח נגזר מהמקור שצוין בטריגר. אם לא צוין מקור בטריגר, לא מתבצעת בדיקה של מדיניות הארגון.
- אירוע RepoSync: המארח הוא
כדי לשמור את הכלל, לוחצים על סיום.
כדי להוסיף עוד כלל, לוחצים על הוספת כלל. אחרת, כדי לשמור את המדיניות, לוחצים על שמירה.
gcloud
פותחים חלון טרמינל.
כדי לאפשר או לדחות בנייה מכל השירותים, יוצרים קובץ YAML עם התוכן הבא:
name: projects/PROJECT_NUMBER/policies/cloudbuild.allowedIntegrations spec: inheritFromParent: INHERIT rules: - ALLOW_OR_DENY: trueכאשר:
-
PROJECT_NUMBERהוא מספר הפרויקט. -
INHERITtrueאם רוצים שהכללים של המדיניות יועברו בירושה ממשאב ההורה. אחרת,false. -
ALLOW_OR_DENYהואallowAllאם רוצים לאפשר בנייה מכל כתובות ה-URL של המארחים. אחרת,denyAll. -
HOST_URLהיא כתובת ה-URL של המארח. לדוגמה,github.com. אפשר גם לציין כתובות URL נוספות בשורות הבאות.
אם רוצים לאפשר או לחסום יצירת build משירותים נבחרים, יוצרים קובץ YAML עם התוכן הבא:
name: projects/PROJECT_NUMBER/policies/cloudbuild.allowedIntegrations spec: inheritFromParent: INHERIT rules: - values: ALLOW_OR_DENY: HOST_URL ...כאשר:
-
PROJECT_NUMBERהוא מספר הפרויקט. -
INHERITtrueאם רוצים שהכללים של המדיניות יועברו בירושה ממשאב ההורה. אחרת,false. -
ALLOW_OR_DENYהואallowedValuesאם רוצים לציין כתובות URL של מארחים שמהם מותר לבצע בנייה. אחרת,deniedValues. -
HOST_URLהיא כתובת ה-URL של המארח. לדוגמה,github.com. אפשר גם לציין כתובות URL נוספות בשורות הבאות.
-
מגדירים את מדיניות הארגון על ידי הרצת הפקודה הבאה, כאשר FILE_NAME הוא השם של קובץ ה-YAML:
gcloud org-policies set-policy FILE_NAMEכדי לוודא שהמדיניות הוגדרה, מריצים את הפקודה הבאה, כש-PROJECT_ID הוא מזהה הפרויקט:
gcloud org-policies describe cloudbuild.allowedIntegrations --effective --project PROJECT_ID
בדיקת מדיניות הארגון לגבי שילובים מותרים
בקטע הזה מוסבר איך אפשר לבדוק את מדיניות הארגון (constraints/cloudbuild.allowedIntegrations) באמצעות טריגרים של בנייה.
אם עדיין לא עשיתם זאת, צרו טריגר לפיתוח גרסת Build.
שולחים שינוי למקור.
אם המדיניות שלכם מוגדרת כך שהיא מאפשרת בנייה מהמקור, תוכלו לראות את ההפעלות של הבנייה מהטריגר בדף Build history (היסטוריית הבנייה). אחרת, הבנייה לא תתבצע. כדי לראות את ההיסטוריה של בניית תמונות שהוגבלו על ידי הגדרת המדיניות, אפשר לעיין בדף Logs Explorer כדי לראות את הסיבה למטען ה-JSON ואת הסיבה לדחייה.
המאמרים הבאים
- איך יוצרים ומנהלים טריגרים לבנייה
- איך מגבילים את הגישה לבנייה עד לאישור
- מידע נוסף על ההרשאות שנדרשות כדי לראות את יומני הבנייה
- מידע על יומני ביקורת שנוצרו על ידי Cloud Build