במאמר הזה מוסבר איך להשתמש ב-מאגר משאבי ענן כדי לעקוב אחרי הסודות שלכם, לייצא נתונים לצורך ניתוח ולהריץ שאילתות מתקדמות כדי לקבל את התובנות שאתם צריכים.
סקירה כללית
מאגר משאבי ענן מנתח את הסביבה שלכם ומתעד את כל השינויים במשאבי הענן, כמו מכונות וירטואליות, מסדי נתונים, קטגוריות אחסון, ובהקשר הזה, סודות ב-Secret Manager. Google Cloud השילוב בין Secret Manager לבין מאגר משאבי ענן מאפשר לכם:
-
הפעלת שאילתות: חיפוש סודות ספציפיים או זיהוי דפוסים בסודות.
-
הגדרת התראות: הגדרת מאגר משאבי ענן לשליחת התראות ל-Pub/Sub כשמתרחשים אירועים ספציפיים, כמו יצירה, שינוי או מחיקה של סודות.
-
ייצוא נתונים: ייצוא של מלאי הסודות ל-BigQuery לניתוח מעמיק וליצירת דוחות.
-
ניהול וניתוח של סודות: אפשר לראות את כל הסודות במקום אחד (בכל הפרויקטים ובארגון כולו) ולזהות סודות שאולי לא הוגדרו בצורה נכונה או שמפירים את מדיניות האבטחה של הארגון. לדוגמה, אפשר למצוא סודות שלא מתבצעת להם רוטציה באופן קבוע או שחסרות להם בקרות גישה מתאימות.
זוהי משימה מתקדמת למשתמשי Secret Manager. לפני שקוראים את הדף הזה, מומלץ לקרוא את המאמרים הבאים:
-
סקירה כללית של Secret Manager כדי להבין את המושגים והתכונות העיקריים של Secret Manager
-
סקירה כללית על מאגר משאבי הענן כדי להבין מהו מאגר משאבי הענן ולראות את התכונות המקיפות שלו לניהול נכסים
שאילתות ב-Secret Manager
כדי לנתח את הסודות באמצעות שאילתות דמויות SQL, מומלץ לייצא את הסודות ואת הגרסאות שלהם ל-BigQuery. Secret Manager לא משולב עם חיפוש נכסים או עם כלי ניתוח המדיניות. השאילתות האלה משתמשות ב-Google Cloud CLI וב-BigQuery כדי לחפש את הנכסים שלכם.
מגבלות
יש מגבלה אחת בניתוח משאבים של Secret Manager באמצעות מאגר משאבי הענן:
-
מאגר משאבי הענן תומך בייצוא ובהצגת תמונות מצב רק מהחמשת השבועות האחרונים.
מעקב אחרי שינויים בנכסים
מאגר משאבי הענן עוקב אחרי עדכונים בזמן אמת ותומך במעקב אחרי השינויים האלה. אתם יכולים להגדיר פידים לשליחת התראות לקבוצה של נושאי Pub/Sub שהוגדרו בכל פעם שמתבצע שינוי במשאבים שלכם. בנוסף, מאגר משאבי הענן תומך בהגדרת תנאים בפידים, כך שתוכלו לעקוב אחרי שינויים ספציפיים בסוגים מסוימים של נכסים. במסמכי Pub/Sub מוסבר איך להפעיל תהליכי עבודה כשמתבצעים שינויים בנכסים.
ייצוא נכסים ל-BigQuery
ייצוא הסודות והגרסאות שלהם ל-BigQuery מאפשר להריץ שאילתות דומות ל-SQL על כמויות גדולות של נתונים, ולקבל תובנות משמעותיות לגבי הנכסים שלכם. לפני שמייצאים את הנכסים, צריך לוודא שמערך הנתונים וחשבונות השירות מוגדרים בצורה נכונה.
כדי לייצא את הנכסים, מריצים את הפקודה הבאה:
gcloud
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- CONTENT_TYPE: סוג התוכן של הנכס (
RESOURCE). - PROJECT_ID: מזהה הפרויקט שמכיל את הסודות שרוצים לנתח.
- SNAPSHOT_TIME: השעה שבה יצולמו תמונות ה-snapshot של המשאבים. התאריך הזה יכול להיות בין השעה הנוכחית לבין תאריך שחל לפני 5 שבועות.
- BIGQUERY_PROJECT_ID: מזהה הפרויקט שבו נמצאת הטבלה ב-BigQuery.
- DATASET_ID: המזהה של מערך הנתונים ב-BigQuery.
- TABLE_NAME: הטבלה שאליה מייצאים את המטא-נתונים. אם הוא לא קיים, הוא נוצר.
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud asset export \ --content-type=CONTENT_TYPE \ --project=PROJECT_ID \ --snapshot-time=SNAPSHOT_TIME \ --bigquery-table=projects/BIGQUERY_PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \ --output-bigquery-force
Windows (PowerShell)
gcloud asset export ` --content-type=CONTENT_TYPE ` --project=PROJECT_ID ` --snapshot-time=SNAPSHOT_TIME ` --bigquery-table=projects/BIGQUERY_PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME ` --output-bigquery-force
Windows (cmd.exe)
gcloud asset export ^ --content-type=CONTENT_TYPE ^ --project=PROJECT_ID ^ --snapshot-time=SNAPSHOT_TIME ^ --bigquery-table=projects/BIGQUERY_PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME ^ --output-bigquery-force
מידע נוסף זמין במאמר בנושא ייצוא ל-BigQuery.
שאילתות לדוגמה
אפשר להשתמש בשאילתות לדוגמה האלה כדי למצוא סודות וגרסאות של סודות עם מאפיינים ספציפיים.
סודות שנוצרו בשבועיים האחרונים
חיפוש סודות (והמאפיינים שלהם) שנוספו לארגון בשבועיים האחרונים.
BigQuery
SELECT name, FROM BIGQUERY_TABLE WHERE asset_type='secretmanager.googleapis.com/Secret' AND DATE(JSON_VALUE(resource.data, '$.createTime')) > DATE_SUB(CURRENT_DATE(), INTERVAL 2 WEEK);
מחליפים את BIGQUERY_TABLE בנתיב המלא לטבלת BigQuery שאליה ייצאתם את כל הנכסים בקטע ייצוא נכסים ל-BigQuery במאמר הזה.
gcloud
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ"