בדף הזה מוסבר איך להגדיר תאריך תפוגה לסוד חדש או קיים, איך לשנות את תאריך התפוגה של סוד קיים ואיך להסיר תאריך תפוגה שהוגדר בעבר מסוד.
סקירה כללית
כברירת מחדל, סודות שמאוחסנים ב-Secret Manager קיימים עד שמשתמש מוחק אותם. אם צריך לאחסן סוד רק למשך פרק זמן מוגבל וידוע, אפשר לצרף לו תאריך תפוגה. אם מגדירים זמן תפוגה לסוד, הוא נמחק אוטומטית.
אם אין לכם דרישות למחיקת הסוד, כדאי להשתמש בתנאי IAM או במצב הגרסה Disabled כדי לבטל את הגישה בצורה בטוחה.
אפשר להזין את תאריך התפוגה כחותמת זמן או כמשך זמן. כשמאחזרים מטא-נתונים של סוד, תאריך התפוגה תמיד מוחזר כחותמת זמן, בלי קשר לאופן שבו הוא ניתן.
אפשר להוסיף תאריך תפוגה לסוד, לעדכן אותו או להסיר אותו בכל שלב.
מגבלות
-
תוקף הסוד לא יכול להיות פחות מ-60 שניות או יותר מ-100 שנים.
שימוש בטוח בסודות שתוקפם פג
כשסוד פג תוקף ב-Secret Manager, הוא נמחק באופן סופי. הדרך הכי טובה לזהות סודות שעומדים לפוג היא באמצעות תנאי IAM להסרת הרשאות מהחשבונות שמשתמשים בסוד לפני שהוא פג.
כדי לנהל את הגישה לסודות בצורה יעילה, צריך להגדיר תנאי מבוסס-זמן להרשאות שניתנות.
-
הגדרת תאריך תפוגה: תוקף ההרשאות צריך לפוג זמן קצר לפני שתוקף הסוד עצמו פג. כך תוכלו לזהות תהליכי עבודה או תהליכים שאולי עדיין משתמשים בסוד באופן לא צפוי.
-
מעקב אחרי שיבושים: אם זרימות עבודה מסוימות מפסיקות לפעול אחרי ביטול ההרשאות, אפשר לשחזר במהירות את הגישה כדי למזער את ההשפעה.
-
מבצעים שינויים לפי הצורך: אם אתם צריכים יותר זמן, אתם יכולים להאריך את תאריך התפוגה של הסוד או אפילו להסיר אותו לגמרי אם הוא כבר לא נחוץ.
בנוסף, אפשר ליצור התראות על סמך יומנים שמזהירים מפני סודות שתוקפם יפוג בקרוב. מידע נוסף זמין בקטע רישום ביומן של תפוגה במסמך הזה.
הגדרה של חותמות זמן ומשכי זמן
-
ערכי חותמת הזמן צריכים להיות בפורמט RFC 3339, לדוגמה
2100-01-01T09:00:00-05:00. -
ערכי משך הזמן צריכים להיות בפורמט של מספר השניות, כולל הסיומת s למשל
86400s.
הגדרת תאריך תפוגה לסוד
אפשר להגדיר תאריך ושעה לתפוגה של סוד באמצעות מסוף Google Cloud , Google Cloud CLI או Secret Manager API.
המסוף
-
נכנסים לדף Secret Manager במסוף Google Cloud .
-
בדף Secret Manager, לוחצים על Create secret.
-
בדף יצירת Secret, מזינים שם ל-Secret בשדה שם.
-
מזינים ערך לסוד (לדוגמה,
abcd1234). אפשר גם להעלות קובץ טקסט שמכיל את ערך הסוד באמצעות האפשרות העלאת קובץ. הפעולה הזו יוצרת באופן אוטומטי את גרסת הסוד. -
עוברים אל תפוגה ומסמנים את תיבת הסימון הגדרת תאריך תפוגה.
-
מזינים את תאריך ושעת התפוגה בפורמט Month/Day/Year, Hour:Minute AM/PM, לדוגמה,
7/31/20, 1:00 AM. אפשר גם להשתמש בכלי לבחירת תאריך ושעה כדי להזין את תאריך ושעת התפוגה. -
לוחצים על Create secret (יצירת סוד).
gcloud
יצירת סוד עם תוקף באמצעות חותמת זמן
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- SECRET_ID: מזהה הסוד
- TIMESTAMP: תאריך התפוגה בפורמט RFC 3339, לדוגמה
2100-01-01T09:00:00-05:00
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud secrets create SECRET_ID \ --replication-policy "automatic" \ --expire-time "TIMESTAMP"
Windows (PowerShell)
gcloud secrets create SECRET_ID ` --replication-policy "automatic" ` --expire-time "TIMESTAMP"
Windows (cmd.exe)
gcloud secrets create SECRET_ID ^ --replication-policy "automatic" ^ --expire-time "TIMESTAMP"
יצירת סוד עם תוקף מוגבל באמצעות משך זמן
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- SECRET_ID: מזהה הסוד
- DURATION: משך התפוגה בשניות, לדוגמה
86400s
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud secrets create SECRET_ID \ --replication-policy "automatic" \ --ttl "DURATION"
Windows (PowerShell)
gcloud secrets create SECRET_ID ` --replication-policy "automatic" ` --ttl "DURATION"
Windows (cmd.exe)
gcloud secrets create SECRET_ID ^ --replication-policy "automatic" ^ --ttl "DURATION"
REST
יצירת סוד עם תוקף באמצעות חותמת זמן
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט Google Cloud
- SECRET_ID: מזהה הסוד
- TIMESTAMP: תאריך התפוגה בפורמט RFC 3339, לדוגמה
2100-01-01T09:00:00-05:00
ה-method של ה-HTTP וכתובת ה-URL:
POST https://secretmanager.googleapis.com/v1/projects/$PROJECT_ID/secrets?secretId=$SECRET_ID
גוף בקשת JSON:
{
"replication": {"automatic": {}},
"expire_time": "TIMESTAMP"
}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
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.googleapis.com/v1/projects/$PROJECT_ID/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.googleapis.com/v1/projects/$PROJECT_ID/secrets?secretId=$SECRET_ID" | Select-Object -Expand Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID",
"createTime": "2024-09-04T03:58:38.200877Z",
"expireTime": "2024-09-04T09:25:39Z",
"etag": "\"162143305d282d\""
}
יצירת סוד עם תוקף מוגבל באמצעות משך זמן
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט Google Cloud
- SECRET_ID: מזהה הסוד
- DURATION: משך התפוגה בשניות, לדוגמה
86400s
ה-method של ה-HTTP וכתובת ה-URL:
POST https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets?secretId=SECRET_ID
גוף בקשת JSON:
{
"replication": {"automatic": {}},
"ttl": "DURATION"
}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
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.googleapis.com/v1/projects/PROJECT_ID/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.googleapis.com/v1/projects/PROJECT_ID/secrets?secretId=SECRET_ID" | Select-Object -Expand Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID",
"createTime": "2024-09-04T03:58:38.200877Z",
"expireTime": "2024-09-04T09:25:39Z",
"etag": "\"162143305d282d\""
}
עדכון תאריך התפוגה של סוד
כדי לעדכן את תאריך ושעת התפוגה של הסוד, משתמשים באחת מהשיטות הבאות:
המסוף
-
נכנסים לדף Secret Manager במסוף Google Cloud .
-
כדי לערוך Secret, מאתרים את ה-Secret ברשימה ולוחצים על התפריט פעולות שמשויך ל-Secret הזה. בתפריט פעולות, לוחצים על עריכה.
-
עוברים לקטע תפוגה. מעדכנים את תאריך ושעת התפוגה ולוחצים על עדכון הסוד.
gcloud
עדכון התפוגה של סוד באמצעות חותמת זמן
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- SECRET_ID: מזהה הסוד
- TIMESTAMP: תאריך התפוגה בפורמט RFC 3339, לדוגמה
2100-01-01T09:00:00-05:00
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud secrets update SECRET_ID \ --expire-time "TIMESTAMP"
Windows (PowerShell)
gcloud secrets update SECRET_ID ` --expire-time "TIMESTAMP"
Windows (cmd.exe)
gcloud secrets update SECRET_ID ^ --expire-time "TIMESTAMP"
עדכון תפוגה של סוד באמצעות משך זמן
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- SECRET_ID: מזהה הסוד
- DURATION: משך התפוגה בשניות, לדוגמה
86400s
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud secrets update SECRET_ID \ --ttl "DURATION"
Windows (PowerShell)
gcloud secrets update SECRET_ID ` --ttl "DURATION"
Windows (cmd.exe)
gcloud secrets update SECRET_ID ^ --ttl "DURATION"
REST
עדכון התפוגה של סוד באמצעות חותמת זמן
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט Google Cloud
- SECRET_ID: מזהה הסוד
- TOKEN: טוקן גישה משלכם מסוג Oauth2.0
- TIMESTAMP: תאריך התפוגה בפורמט RFC 3339, לדוגמה
2100-01-01T09:00:00-05:00
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=expire_time
גוף בקשת JSON:
{"expire_time": "TIMESTAMP"}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
curl
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
curl -X PATCH \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=expire_time"
PowerShell
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
$headers = @{ "Authorization" = "Bearer TOKEN" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=expire_time" | Select-Object -Expand Contentאתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID",
"createTime": "2024-09-04T03:58:38.200877Z",
"expireTime": "2024-09-04T09:25:39Z",
"etag": "\"162143305d282d\""
}
עדכון תפוגה של סוד באמצעות משך זמן
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט Google Cloud
- SECRET_ID: מזהה הסוד
- DURATION: משך התפוגה בשניות, לדוגמה
86400s
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=ttl
גוף בקשת JSON:
{"ttl": "DURATION"}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
curl
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
curl -X PATCH \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=ttl"
PowerShell
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
$headers = @{ "Authorization" = "Bearer TOKEN" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=ttl" | Select-Object -Expand Contentאתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID",
"createTime": "2024-09-04T03:58:38.200877Z",
"expireTime": "2024-09-04T09:25:39Z",
"etag": "\"162143305d282d\""
}
הסרת תאריך התפוגה של סוד
כדי להסיר את תאריך התפוגה ואת השעה של הסוד, משתמשים באחת מהשיטות הבאות:
המסוף
-
נכנסים לדף Secret Manager במסוף Google Cloud .
-
כדי לערוך Secret, מאתרים את ה-Secret ברשימה ולוחצים על התפריט פעולות שמשויך ל-Secret הזה. בתפריט פעולות, לוחצים על עריכה.
-
עוברים לקטע תפוגה. מבטלים את הסימון בתיבת הסימון הגדרת תאריך תפוגה ואז לוחצים על עדכון הסוד.
gcloud
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- SECRET_ID: מזהה הסוד
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud secrets update SECRET_ID \ --remove-expiration
Windows (PowerShell)
gcloud secrets update SECRET_ID ` --remove-expiration
Windows (cmd.exe)
gcloud secrets update SECRET_ID ^ --remove-expiration
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט Google Cloud
- SECRET_ID: מזהה הסוד
- TOKEN: טוקן גישה משלכם מסוג Oauth2.0
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=expire_time
גוף בקשת JSON:
{}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
curl
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
curl -X PATCH \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=expire_time"
PowerShell
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
$headers = @{ "Authorization" = "Bearer TOKEN" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=expire_time" | Select-Object -Expand Contentאתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID",
"createTime": "2024-09-04T03:58:38.200877Z",
"etag": "\"162143305d282d\""
}
רישום ביומן של תפוגה
יומני ביקורת בענן לא נוצרים כשסוד פג באופן אוטומטי. במקום זאת, Secret Manager כותב יומנים אל משאב הסוד של Secret Manager במרווחי זמן ספציפיים עד לתפוגה של סוד.
| תזמון הרישום ביומן | סוג אירוע סודי |
|---|---|
| 30 ימים לפני תאריך התפוגה | EXPIRES_IN_30_DAYS |
| 7 ימים לפני תאריך התפוגה | EXPIRES_IN_7_DAYS |
| יום לפני התפוגה | EXPIRES_IN_1_DAY |
| 6 שעות לפני תאריך התפוגה | EXPIRES_IN_6_HOURS |
| שעה לפני תאריך התפוגה | EXPIRES_IN_1_HOUR |
| במועד התפוגה | EXPIRED |
במדריך למתחילים בנושא רישום ביומן מוסבר איך לצפות ביומנים האלה. אתם יכולים ליצור מדדים מבוססי-יומן ולהשתמש בהם כדי ליצור התראות על תפוגה קרובה.