שילוב של Secret Manager עם Google SecOps
במאמר הזה מוסבר איך לשלב את Secret Manager עם Google Security Operations.
תרחישים לדוגמה
השילוב של Secret Manager משתמש ביכולות של Google SecOps כדי לתמוך בתרחישים הבאים:
- ניהול פרטי כניסה מרוכז: אתם יכולים לאחסן, לבדוק ולנהל את פרטי הכניסה של האפליקציה באופן מרוכז ב- Google Cloud, במקום להטמיע אותם בקוד של קובצי התצורה והסקריפטים של Google SecOps.
- סנכרון פרמטרים: אוטומציה של ניהול ההגדרות באמצעות משימת סנכרון ברקע, כדי לאחזר רשומות מ- Google Cloud Secret Manager ולעדכן מופעי שילוב, מחברים ומשימות.
לפני שמתחילים
לפני שמגדירים את השילוב בפלטפורמת Google SecOps, צריך לוודא שהסביבה מוגדרת לפי השלבים הבאים:
- יוצרים חשבון שירות.
- מפעילים את ממשקי ה-API הנדרשים בפרויקט.
- בוחרים אחת משיטות האימות הבאות ומגדירים אותה:
- אפשרות 1: מפתח JSON: השיטה הזו מסתמכת על קובץ מפתח סודי סטטי לטווח ארוך. השתמשו בשיטה הזו רק אם אי אפשר להשתמש ב-Workload Identity בסביבה שלכם.
- אפשרות 2: Workload Identity (מומלץ): בשיטה הזו משתמשים בטוקני גישה זמניים לטווח קצר באמצעות התחזות לחשבון שירות, וכך לא צריך לאחסן סודות.
יצירה של חשבון שירות
כדי ליצור חשבון שירות לשילוב, מבצעים את השלבים הבאים:
במסוף Google Cloud , נכנסים לדף IAM & Admin > Service Accounts ובוחרים את הפרויקט.
לוחצים על Create service account.
מזינים שם ותיאור ולוחצים על סיום כדי ליצור את החשבון.
נותנים לחשבון השירות את הרשאות ה-IAM הנדרשות, בהתאם לשיטת האימות שבחרתם:
- לאימות באמצעות מפתח של חשבון שירות, מקצים את התפקידים הבאים:
- Secret Manager Secret Accessor (
roles/secretmanager.secretAccessor), מאפשרת לשילוב לגשת למטענים ייעודיים (payloads) של סודות. - צפייה ב-Secret Manager (
roles/secretmanager.viewer), *מספקת את ההרשאהsecretmanager.secrets.listשנדרשת לפעולת Ping כדי לבדוק את הקישוריות*.
- Secret Manager Secret Accessor (
- לאימות של Workload Identity:
- מקצים לחשבון השירות המיועד להתחזות את התפקידים מנהל סודות עם גישה לסודות (
roles/secretmanager.secretAccessor) וצפייה במנהל הסודות (roles/secretmanager.viewer). - מוודאים שלזהות של סביבת זמן הריצה יש את התפקיד יצירת אסימונים בחשבון שירות (
roles/iam.serviceAccountTokenCreator).
- מקצים לחשבון השירות המיועד להתחזות את התפקידים מנהל סודות עם גישה לסודות (
- לאימות באמצעות מפתח של חשבון שירות, מקצים את התפקידים הבאים:
הפעלת ממשקי ה-API הנדרשים בפרויקט
במסוף Google Cloud , נכנסים לדף APIs & Services.
לוחצים על Enable APIs and Services.
מחפשים את Secret Manager API ומפעילים אותו בפרויקט.
הגדרת מפתח JSON
אתם יכולים לאמת את השילוב באמצעות קובץ מפתח JSON סטטי או באמצעות Workload Identity. כדי למקסם את אבטחת הסביבה, השתמשו בשיטה Workload Identity. השתמשו בשיטת מפתח ה-JSON רק אם התשתית שלכם לא תומכת ב-Workload Identity, כי מפתחות סטטיים דורשים רוטציה ידנית ומגבירים את הסיכון לחשיפת פרטי הכניסה.
כדי ליצור את קובץ מפתח ה-JSON שנדרש לאימות השילוב, מבצעים את השלבים הבאים:
במסוף Google Cloud , נכנסים לדף IAM & Admin > Service Accounts ובוחרים את חשבון השירות שיצרתם.
עוברים לכרטיסייה Keys.
לוחצים על Add key.
לוחצים על Create new key.
בוחרים באפשרות JSON בתור סוג המפתח ולוחצים על Create. קובץ ה-JSON יורד למחשב.
מעתיקים את כל התוכן של הקובץ הזה ומדביקים אותו ב-
Service Account JSONבמהלך הגדרת השילוב.
הגדרת ההרשאות של Secret Manager
כדי להעניק את הרשאות האדמין שהשילוב דורש כדי לגשת לחומרים סודיים ולאמת את הקישוריות בפרויקט ב- Google Cloud :
- במסוף Google Cloud , נכנסים לדף IAM & Admin > IAM.
- ברשימת חשבונות המשתמשים, מאתרים את חשבון השירות שיצרתם ולוחצים על עריכה עריכת חשבון המשתמש.
- לוחצים על הוספת תפקיד.
- בשדה לבחירת תפקיד, מחפשים ובוחרים את התפקידים הבאים:
- לוחצים על Save.
הגדרת פרטי הכניסה של Workload Identity
כדי לאמת את השילוב, אפשר לבחור בשיטה הזו או בשיטת מפתח ה-JSON. השיטה המומלצת והמאובטחת יותר היא Workload Identity, כי היא משתמשת בטוקני גישה זמניים לטווח קצר באמצעות התחזות לחשבון שירות, וכך ממזערת את הסיכונים לחשיפת סודות של פרטי כניסה לטווח ארוך.
זיהוי המופע הייחודי של הזהות
כדי להשתמש ב-Workload Identity, אתם צריכים לתת למכונה של Google SecOps הרשאה להתחזות לחשבון השירות שלכם. השלב הזה מאפשר למכונה לגשת באופן מאובטח למשאבים של Google Cloud .
ב-Google SecOps, עוברים אל Content Hub > Response Integrations.
בוחרים את השילוב שרוצים להגדיר ומזינים את כתובת האימייל של חשבון השירות בשדה
Workload Identity Email.לוחצים על שמירה > בדיקה. הבדיקה צפויה להיכשל.
לוחצים על close_small משמאל ל-Test ומחפשים בהודעת השגיאה את כתובת האימייל של הזהות שמתחילה ב-
gke-init-python@...או ב-soar-python@....מעתיקים את כתובת האימייל הייחודית הזו.
אישור זהות המכונה ב- Google Cloud
אחרי שמאחזרים את הזהות הייחודית של המכונה של Google SecOps, צריך לתת לה הרשאה לגשת למשאבים של Google Cloud . השלב הזה מאפשר התחזות לחשבון שירות, כך שהפלטפורמה יכולה ליצור אסימונים לטווח קצר ולפעול בשמכם בלי צורך במפתחות סטטיים.
במסוף Google Cloud , נכנסים לדף IAM & Admin > Service Accounts.
בוחרים את חשבון השירות הרצוי ועוברים אל Permissions > Grant Access.
מדביקים את כתובת האימייל הייחודית בשדה New principals ומקצים את התפקיד Service Account Token Creator (
roles/iam.serviceAccountTokenCreator).
פרמטרים של שילוב
כדי לשלב את Secret Manager, צריך להגדיר את הפרמטרים הבאים:
| פרמטר | תיאור |
|---|---|
Service Account JSON |
זה שינוי אופציונלי. התוכן של קובץ ה-JSON של מפתח חשבון השירות שמשמש לאימות מול Secret Manager. אפשר להגדיר את הפרמטר הזה או את Workload Identity Email. |
Project ID |
זה שינוי אופציונלי. מזהה הפרויקט ב- Google Cloud שבו מאוחסנים הסודות. אם לא מציינים ערך, המערכת מנסה להסיק אותו מהשדה |
Workload Identity Email |
זה שינוי אופציונלי. כתובת האימייל של חשבון השירות שמתחזים אליו כשמבצעים אימות באמצעות Workload Identity (Application Default Credentials). משתמשים בהגדרה הזו במקום ב- |
Verify SSL |
חובה. אם בוחרים באפשרות הזו, השילוב מאמת את אישור ה-SSL כשנוצר חיבור ל-Secret Manager. מופעלת כברירת מחדל ( |
איך מגדירים שילובים ב-Google SecOps
אם צריך, אפשר לבצע שינויים בשלב מאוחר יותר. אחרי שמגדירים מופע של אינטגרציה, אפשר להשתמש בו בפלייבוקים. במאמר תמיכה במספר מופעים מוסבר איך להגדיר מספר מופעים ולתמוך בהם.
פעולות
מידע נוסף על פעולות זמין במאמרים מענה לפעולות בהמתנה משולחן העבודה והפעלה ידנית של פעולה בבקשת התמיכה.
פינג
משתמשים בפעולה Ping כדי לאמת את הקישוריות ואת פרמטרי ההגדרה מול המכונה של Secret Manager.
הפעולה הזו משמשת בעיקר לבדיקת חיבור מיידית מדף הגדרת השילוב ב-Content Hub, והיא לא מופעלת על ישויות Google Cloud נפרדות.
קלט של הפעולה
לא נדרשים פרמטרים של קלט לפעולה הזו.
ערכי פלט של פעולות
הפעולה פינג מספקת את הפלטים הבאים:
| סוג הפלט של הפעולה | זמינות |
|---|---|
| חיבור לקיר של המארז | לא זמין |
| קישור ללוח הפניות | לא זמין |
| שולחן קונסולה צמוד לקיר | לא זמין |
| טבלת העשרה | לא זמין |
| תוצאת JSON | לא זמין |
| הודעות פלט | יש גישה |
| תוצאת הסקריפט | יש גישה |
הודעות פלט
הפעולה Ping יכולה להחזיר את הודעות הפלט הבאות:
| הודעת פלט | תיאור ההודעה |
|---|---|
|
הפעולה הצליחה ופרטי הכניסה תקינים. |
Failed to connect to Secret Manager! Error is
ERROR_REASON |
הפעולה נכשלה. בודקים את פרטי הכניסה לאימות, את הגדרת מזהה הפרויקט, את הרשאות ה-IAM או את החיבור לרשת. מוודאים שלחשבון השירות יש את ההרשאה |
תוצאת הסקריפט
בטבלה הבאה מפורטים הערכים של פלט הסקריפט כשמשתמשים בפעולה פינג:
| שם תוצאת הסקריפט | ערך |
|---|---|
is_success |
true או false |
תעסוקה
מידע נוסף על משימות זמין במאמרים הגדרת משימה חדשה ו תזמון מתקדם.
משימת סנכרון של פרטי כניסה לשילוב
אפשר להשתמש ב-Secret Manager – משימת סנכרון של פרטי כניסה לשילוב כדי לסנכרן באופן שיטתי את הפרמטרים של ההגדרות מרשומות של Secret Manager, ולעדכן באופן אוטומטי את המופעים של השילובים בפלטפורמה, את המחברים ואת ההגדרות של משימות הרקע.
משימת הסנכרון ברקע פועלת באופן גלובלי ולא על ישויות ספציפיות.
התנהגות המשימה
המשימה מנתחת אובייקט הגדרה מובנה כדי לשלוח שאילתות להגדרות של סודות, ומטפלת בשני סגנונות של הפניות לגרסאות:
- סימון משתמע: בפורמט
projects/<project_id>/secrets/<secret_name>. משימת הסנכרון פותרת באופן דינמי את הגרסה הפעילה האחרונה מ-Secret Manager ומאחזרת אותה במהלך העיבוד. - סימון מפורש: בפורמט
projects/<project_id>/secrets/<secret_name>/versions/<version_id>. משימת הסנכרון מאחזרת את הרשומה המדויקת של הגרסה המוצמדת, גם אם המצב שלה מסומן כלא פעיל ב- Google Cloud.
כל נתיב סודי מטורגט ב-Secret Manager חייב להכיל מחרוזת אובייקט JSON תקינה שממפה את מפתחות הפרמטרים ישירות לערכי פרטי הכניסה שלהם.
הגדרה לדוגמה של מיפוי פרטי כניסה
{
"integration_instances": {
"AzureActiveDirectory_1": {
"Client ID": "projects/154371241292/secrets/AzureActiveDirectory"
}
},
"connectors": {
"Crowdstrike - Alerts Connector": {
"Client Secret": "projects/154371241292/secrets/CrowdstrikeConnectorSecret",
"Client ID": "projects/154371241292/secrets/CrowdstrikeConnectorID"
},
"Microsoft Graph Mail Connector": {
"Client Secret": "projects/154371241292/secrets/GraphConnectorSecret",
"Client ID": "projects/154371241292/secrets/GraphConnectorID/versions/3"
}
},
"jobs": {
"Sync Incidents": {
"API Root": "projects/154371241292/secrets/API_Root/versions/2"
}
}
}
קלט של המשימה
כדי להפעיל את Sync Integration Credentials Job, צריך להגדיר את הפרמטרים הבאים:
| פרמטר | תיאור |
|---|---|
Environment Name |
חובה. שם ההקשר של הסביבה שבה רוצים לשלוח שאילתה לגבי הגדרות היעד. ערך ברירת המחדל הוא |
Credential Mapping |
חובה. מחרוזת JSON תקינה שמגדירה את מיקומי היעד שבהם מופעי האינטגרציה, המחברים והמשימות ממופים לקואורדינטות המשאבים המפורשות שלהם ב-Secret Manager. |
Service Account JSON |
זה שינוי אופציונלי. תוכן ה-JSON של מפתח חשבון השירות שמוקדש לאישור משימת הסנכרון הזו ברקע. |
Project ID |
זה שינוי אופציונלי. היקף ברירת המחדל של מזהה הפרויקט ב- Google Cloud שמארח את משאבי היעד. |
Workload Identity Email |
זה שינוי אופציונלי. כתובת האימייל של חשבון השירות של פרטי הכניסה שמוגדרים כברירת מחדל לאפליקציה, שצריך להתחזות אליו אם מריצים בתוך תשתיות Google Cloud עם Workload Identity פעיל. |
Verify SSL |
חובה. מאמת את נקודות הקצה של אישורי SSL במהלך משימות סנכרון. מופעלת כברירת מחדל ( |
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.