בדף הזה מוסבר איך מסננים סודות וגרסאות של סודות ב-Secret Manager. בסביבות עם סודות רבים, סינון עוזר לזהות במהירות סודות או גרסאות ספציפיים בלי לגלול ידנית בכל הרשימה. אפשר לסנן לפי קריטריונים כמו תוויות, תאריכי יצירה או דפוסים ספציפיים בשמות של סודות, וכך לנהל בצורה ממוקדת קבוצות ספציפיות של סודות.
ב-Secret Manager, אפשר לסנן סודות וגרסאות של סודות באמצעות האפשרות Filter במסוף Cloud de Confiance או על ידי ציון קריטריוני סינון בקריאה ל-API. ב-Google Cloud CLI, אפשר לסנן סודות וגרסאות של סודות על ידי הוספת מחרוזת filter כשמציגים את רשימת הסודות.
סינון סודות
כדי לסנן סוד, משתמשים באחת מהשיטות הבאות:
המסוף
-
נכנסים לדף Secret Manager במסוף Cloud de Confiance .
-
בדף Secret Manager (ניהול סודות), לוחצים על הכרטיסייה Regional secrets (סודות אזוריים).
-
בטבלה Regional secrets (סודות אזוריים), לוחצים על השדה Filter (מסנן).
-
בוחרים מאפיין של מסנן ואת הערך המתאים לו, לדוגמה
Location:asia-east1.הטבלה מסוננת אוטומטית על סמך הערכים שהוזנו. התוצאות ממוינות לפי שם בסדר עולה.
gcloud
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- LOCATION: Cloud de Confiance by S3NS המיקום של הסוד.
- FILTER: מחרוזת המסנן, לדוגמה
name:asecret OR name:bsecret. ב-CLI של gcloud יש גם תמיכה בביטויים רגולריים, למשלname ~ "secret_ab.*".
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud secrets list --location=LOCATION --filter="FILTER"
Windows (PowerShell)
gcloud secrets list --location=LOCATION --filter="FILTER"
Windows (cmd.exe)
gcloud secrets list --location=LOCATION --filter="FILTER"
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- LOCATION: Cloud de Confiance by S3NS המיקום של הסוד.
- PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance by S3NS .
- FILTER: מחרוזת המסנן. המסננים מוגדרים כפרמטר של מחרוזת השאילתה
filterוחייבים להיות מקודדים בכתובת ה-URL. לדוגמה, המסנןname:asecret OR name:bsecretיקודד לכתובת URL כ-name%3Aasecret+OR+name%3Absecret. אין תמיכה בביטויים רגולריים ב-API.
ה-method של ה-HTTP וכתובת ה-URL:
GET https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?filter=FILTER
גוף בקשת JSON:
{}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
curl
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
curl -X GET \
-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?filter=FILTER"
PowerShell
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-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?filter=FILTER" | Select-Object -Expand Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"secrets": [
{
"name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID",
"createTime": "2024-09-02T07:14:00.281541Z",
"etag": "\"16211dd90b37e7\""
}
]
}
Go
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Go ולהתקין את Secret Manager Go SDK. ב-Compute Engine או ב-GKE, צריך לעבור אימות באמצעות ההיקף cloud-platform.
Java
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח ב-Java ולהתקין את Secret Manager Java SDK. ב-Compute Engine או ב-GKE, צריך לעבור אימות באמצעות ההיקף cloud-platform.
Python
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח בשפת Python ולהתקין את Secret Manager Python SDK. ב-Compute Engine או ב-GKE, צריך לעבור אימות באמצעות ההיקף cloud-platform.
סינון גרסה של סוד
כדי לסנן גרסה של סוד:
-
במסוף Cloud de Confiance , בוחרים סוד כדי לגשת לגרסאות שלו, ואז משתמשים באפשרות Filter בטבלה Versions.
-
אם אתם משתמשים ב-Google Cloud CLI או ב-Secret Manager API, צריך לכלול מחרוזת
filterכשמציגים רשימה של גרסאות סודות.
דוגמאות למסננים
| תרחיש שימוש | מסנן |
|---|---|
סודות שהשם שלהם מכיל את מחרוזת המשנה mysecret |
name:mysecret |
| סודות עם תווית ספציפית | labels.environment=production |
| סודות שנוצרו בטווח תאריכים ושעות | create_time<2021-01-01T06:00:00Z AND create_time>2021-01-01T01:00:00Z |
| סודות עם שכפול אוטומטי | replication.automatic:* |
| סודות עם שכפול בניהול המשתמש, אבל לא מאוחסנים באף אחד מהאזורים שצוינו | replication.user_managed.replicas.location:* AND NOT replication.user_managed.replicas.location:(us-central1 OR us-east1) |
| סודות שמוצפנים באמצעות מפתחות CMEK | replication.user_managed.replicas.customerManagedEncryption:* |
| סודות שמוצפנים באמצעות מפתח CMEK ספציפי | replication.user_managed.replicas.customerManagedEncryption.kmsKeyName=projects/p/locations/us-central1/keyRings/kr/cryptoKeys/my-cmek-key |
| סודות ללא תקופת רוטציה | NOT rotation.next_rotation_time:* |
| סודות עם תקופת רוטציה של יותר מ-30 ימים | rotation.rotation_period>259200s |
| סודות עם תפוגה מוגדרת | expire_time:* |
| סודות שתוקף שלהם יפוג לפני תאריך מסוים | expire_time<2021-07-31 |
| גרסאות שמופעלות או מושבתות | state:(ENABLED OR DISABLED) |
| גרסאות שהושמדו, הושמדו אחרי תאריך | state:DESTROYED AND destroy_time>2021-01-01 |
תחביר של מסננים
תחביר המסנן מורכב מביטוי בשדה אחד או יותר של האובייקטים שמסננים.
אפשר להשתמש באופרטורים הבאים של ביטויים.
| אופרטור | תיאור |
|---|---|
= |
שוויון. |
> |
גדול מ-. |
< |
פחות מ. |
>= |
גדול מ- או שווה ל- |
<= |
קטן מ- או שווה ל-. |
!=-NOT |
אי-שוויון. הביטויים הבאים שקולים:name!="topsecret"-name="topsecret"NOT name="topsecret"
|
: |
בלימה. זוהי התאמה של מחרוזת משנה שלא תלויה באותיות רישיות.
לדוגמה, |
AND |
פעולת AND לוגית.
מרחב שווה ערך ל- |
OR |
או לוגי. |
* |
תו כללי לחיפוש.
אפשר להשתמש בו כערך עצמאי, כאשר |
בדומה ל-Cloud Search API, פעולות OR מוערכות לפני פעולות AND, אלא אם משתמשים בסוגריים כדי להגדיר במפורש סדר שונה.
כשמסננים לפי ערכים של time, צריך לקודד את השעה כמחרוזת בפורמט RFC 3399, כמו 2020-10-15T01:30:15Z.
כשניגשים לשדה משנה, משתמשים בתחביר נקודה. לדוגמה, משאב Secret עשוי לכלול את השדה labels שהערך שלו הוא צמד מפתח/ערך map.
אם משתמשים בתווית color, אפשר לסנן את התוצאות Secret בשדה המשנה labels.color באופן הבא:
labels.color=red
אם רוצים להציג רק סודות עם התווית color, משתמשים בתו כללי:
labels.color:*
מחרוזת שתחומה במירכאות מתפרשת כערך יחיד ולא כרצף של ערכים.
שדות מסנן
אפשר לסנן לפי כל שדה של אובייקט Secret או SecretVersion.
| שיטת הרשימה | קישור לשדות שאפשר לסנן |
|---|---|
projects.secrets.list
|
שדות סודיים |
projects.secrets.versions.list
|
שדות SecretVersion |
מספר התוצאות הכולל
אם הערךfilter מוגדר בבקשת רשימה, בתגובה לא מצוין המספר הכולל של התוצאות (total_size=0 בתגובה).