בדף הזה מוסבר איך ליצור סוד אזורי. סוד מכיל גרסה אחת או יותר של הסוד, וגם מטא-נתונים כמו תוויות והערות. התוכן בפועל של סוד מאוחסן בגרסת סוד.
לפני שמתחילים
-
מגדירים אימות.
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים Google Cloud ולממשקי ה-API, לא צריך להגדיר אימות.
gcloud
מפעילים את Cloud Shell במסוף Google Cloud .
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud.
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות ליצירת סוד, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM Secret Manager Admin (roles/secretmanager.admin) בפרויקט, בתיקייה או בארגון.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
יצירת סוד אזורי
אפשר ליצור סודות באמצעות מסוף Google Cloud , Google Cloud CLI, Secret Manager API או ספריות הלקוח של Secret Manager.
המסוף
-
נכנסים לדף Secret Manager במסוף Google Cloud .
-
בדף Secret Manager, לוחצים על הכרטיסייה Regional secrets ואז על Create regional secret.
-
בדף Create regional secret, מזינים שם ל-Secret בשדה Name. שם הסוד יכול להכיל אותיות רישיות וקטנות, ספרות, מקפים וקווים תחתונים. האורך המקסימלי של שם הוא 255 תווים.
-
(אופציונלי) (תצוגה מקדימה) בוחרים את סוג הסוד. אתם יכולים להשתמש בסוגי סודות כדי לסווג את הסודות.
אלה הסוגים האזוריים של סודות שזמינים:
- פרטי הכניסה למסד נתונים ב-Cloud SQL: משמשים לתכונת הרוטציה המנוהלת של Cloud SQL.
- פרטי כניסה אחרים למסד נתונים: לסודות שמכילים פרטי כניסה למסד נתונים.
- מפתח גישה: לסודות שמכילים מפתח גישה.
- אישור: לסודות שמכילים אישור.
- אחר: לסודות שלא מתאימים לקטגוריות אחרות.
-
מזינים ערך לסוד (לדוגמה,
abcd1234). ערך הסוד יכול להיות בכל פורמט, אבל הוא לא יכול להיות גדול מ-64KiB. אפשר גם להעלות קובץ טקסט שמכיל את ערך הסוד באמצעות האפשרות העלאת קובץ. הפעולה הזו יוצרת באופן אוטומטי את הגרסה הסודית. -
בוחרים את המיקום שבו רוצים לאחסן את הסוד האזורי. בוחרים באחת מהאפשרויות הבאות:
- Region: הסוד נשמר באזור אחד כדי לצמצם את זמן האחזור.
- מספר אזורים: משכפל את הסודות במספר מיקומים כדי להבטיח זמינות גבוהה. מידע נוסף מופיע במאמר אזורים מרובים זמינים.
-
לוחצים על יצירת סוד.
gcloud
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- SECRET_ID: המזהה של הסוד.
- LOCATION: Google Cloud המיקום של הסוד.
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud secrets create SECRET_ID \ --location=LOCATION
Windows (PowerShell)
gcloud secrets create SECRET_ID ` --location=LOCATION
Windows (cmd.exe)
gcloud secrets create SECRET_ID ^ --location=LOCATION
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- LOCATION: Google Cloud המיקום של הסוד.
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- SECRET_ID: המזהה של הסוד.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID
גוף בקשת JSON:
{}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
curl
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID"
PowerShell
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID" | Select-Object -Expand Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID",
"createTime": "2024-03-25T08:24:13.153705Z",
"etag": "\"161477e6071da9\""
}
Go
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Go ולהתקין את Secret Manager Go SDK. ב-Compute Engine או ב-GKE, צריך להזדהות באמצעות ההיקף cloud-platform.
Java
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח ב-Java ולהתקין את Secret Manager Java SDK. ב-Compute Engine או ב-GKE, צריך לבצע אימות באמצעות ההיקף cloud-platform.
Node.js
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Node.js ולהתקין את Secret Manager Node.js SDK. ב-Compute Engine או ב-GKE, צריך לבצע אימות באמצעות ההיקף cloud-platform.
Python
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח בשפת Python ולהתקין את Secret Manager Python SDK. ב-Compute Engine או ב-GKE, צריך להזדהות באמצעות ההיקף cloud-platform.
הוספת גרסה של סוד
הכלי Secret Manager יוצר באופן אוטומטי גרסאות של נתוני סודות באמצעות גרסאות של סודות. פעולות שקשורות למפתחות, כמו גישה, השמדה, השבתה והפעלה, חלות על גרסאות ספציפיות של סודות. ב-Secret Manager אפשר לשייך סודות לגרסאות ספציפיות כמו 42 או לכינויים דינמיים כמו latest. מידע נוסף מופיע במאמר בנושא הוספת גרסה של סוד.
גישה לגרסה של סוד
כדי לגשת לנתונים הסודיים מגרסה סודית מסוימת לצורך אימות מוצלח, אפשר לעיין במאמר בנושא גישה לגרסה סודית אזורית.
המאמרים הבאים
- כאן אפשר לבדוק את המכסות ואת מגבלות הקצב לסוגים שונים של בקשות API (גישה, קריאה וכתיבה) לכל פרויקט.
- הוספת הצפנת CMEK לסודות אזוריים
- הוספת גרסה אזורית של סוד