Secrets¶
Secrets מאחסנים ערכים רגישים (טוקני API, סיסמאות DB, מפתחות webhook) כרשומות בשם עם מפת שטוחה של מפתח/ערך (string → string). אפליקציות, Functions ומפעילים שולפים אותם בלי להקשיח סודות במקור.
| פריט | ערך |
|---|---|
| Console | Secrets → /console/secrets |
| Data plane | secrets.{apex} (Access Key) |
| אחסון | Kubernetes Opaque Secret ב-namespace של החשבון (הצפנת etcd + TLS). מטא־נתונים ב-control plane; ערכים לא נשמרים כטקסט גלוי ב-Postgres. |
הליכה בקונסול¶
יצירה¶
- פתחו Secrets → Create.
- בחרו שם (מזהה יציב שהאפליקציה תפנה אליו).
- אופציונלי: הגדירו זוגות מפתח/ערך ראשוניים.
- שמרו.
לשונית Values¶
משטח אחד לצפייה ולעריכה:
- פתחו את הסוד → Values.
- Reveal הוא מתג: הפעלה טוענת ומציגה ערכים (למשך הסשן בלבד).
- Edit עובד גם בלי Reveal — הקונסול שולף את המפה כחלק מהעריכה.
- עורך ברירת המחדל הוא Table (שורות מפתח/ערך כמו קודם). רחפו בין שורות ל־
+להוספה. - Source מחליף לטקסט JSON / ENV / YAML על אותה מפה שטוחה (מבנים מקוננים ומפתחות כפולים נדחים).
- Save new version מחליף את כל המפה. הסרת מפתחות דורשת אישור.
Settings לתיאור ומחיקה. דוגמאות API/SDK בתיעוד וב-CLI — לא בלשונית בפרטי הסוד.
מחיקה¶
מחקו סודות שאינם בשימוש כדי להפחית חשיפה. עדכנו צרכנים קודם כדי שפריסות לא יישברו.
פורמטים (JSON / ENV / YAML)¶
כל המשטחים חולקים מודל אחד: מפה שטוחה של מחרוזות.
| פורמט | דוגמה |
|---|---|
| JSON | { "API_KEY": "…", "DATABASE_URL": "…" } |
| ENV | API_KEY=… |
| YAML | API_KEY: … |
נדחים: אובייקטים/מערכים מקוננים, ערכי JSON שאינם מחרוזת, מפתחות כפולים.
CLI¶
homecloud secrets create my-secret
homecloud secrets create my-secret API_KEY=test DB_HOST=db.internal
homecloud secrets create my-secret --format env --file .env
homecloud secrets get my-secret
homecloud secrets get my-secret --format env
homecloud secrets put my-secret --format env --file .env
homecloud secrets set my-secret API_KEY=rotated
create דורש Access Key (homecloud configure). get / put / set דורשים Access Key. put מחליף את כל הסוד. ראו secrets CLI.
Access Keys ומדיניות¶
קריאה בזמן ריצה דרך ה-data plane דורשת Access Key (או תפקיד) עם פעולות secrets:…. הגבילו מדיניות ל-ARNs ספציפיים כשאפשר. ראו IAM.
SDK¶
from homecloud import HomeCloud
client = HomeCloud.from_env()
print(client.secrets.list())
client.secrets.create("my-secret", API_KEY="test")
print(client.secrets.get_value("my-secret"))
print(client.secrets.get_value("my-secret", "API_KEY"))
client.secrets.put_value("my-secret", {"API_KEY": "rotated"}) # החלפת כל המפה
client.secrets.put_value("my-secret", API_KEY="test", merge=True) # upsert שדות
print(client.secrets.get_value("my-secret", format="env"))
client.secrets.put_value("my-secret", "API_KEY=x", format="env", merge=True)
קודקים (json | env | yaml) דרך format= ב-get_value / put_value (כמו --format ב-CLI). סטרינג בלי ירידת שורה בסוף תקין.
טיפים¶
- לעולם אל תעלו ערכי סוד ל-git או תשימו אותם בקבצי מקור של Function.
- השתמשו בסוד אחד לכל אינטגרציה כדי שסיבוב יהיה מוגבל.
- אחרי סיבוב סיסמת DB ב-MDB, עדכנו את ה-Secret שהאפליקציה קוראת.
קשור¶
- CLI secrets
- IAM
- Databases
- Functions
- Applications
- Terraform (
homecloud_secret)