Access Keys¶
Access Keys מאמתים עבודת data-plane (Object Storage, Message Queues, Secrets, Image Registry, ריצה של SDK/CLI) וגם ניהול פרוגרמטי של ה-console API (Terraform / CI — Terraform).
הם לא סיסמת הקונסול. צרו אותם פעם אחת, שמרו את ה-secret בבטחה, והשתמשו בהם ב-CI ובשרתים. בקשות חתומות עם Access Key לא מבקשות MFA.
יצירת מפתח בקונסול¶
- פתחו IAM → Users → [user] → Access keys, או את המלאי IAM → Access Keys.
- לכל יוזר יש מפתח פעיל אחד. אם כבר יש מפתח, השתמשו ב-Rotate (מנפיק זוג חדש ומבטל מיד את כל המפתחות הפעילים הקודמים של אותו יוזר).
-
העתיקו פעם אחת:
-
Access Key ID — מתחיל ב-
HCAK… - Secret access key — מוצג רק ביצירה/החלפה
הטבלה מציגה משתמש, שם, נוצר, שימוש אחרון, סטטוס. ה-HCAK לא נשאר מוצג ברשימה.
ההרשאות מגיעות מ-IAM של היוזר, לא מהמפתח. מפתחות עודפים בחשבונות ישנים ממשיכים לעבוד עד שמחליפים למשתמש הזה.
אם איבדתם את ה-secret, החליפו (או בטלו) את המפתח. לא ניתן לשחזר את ה-secret.
הגדרת ה-CLI¶
הזינו Access Key ID, secret ודומיין apex כשמתבקשים. האישורים נשמרים תחת ~/.homecloud/credentials (JSON מרובה־פרופילים).
שימוש מה-SDK¶
הרשאה מינימלית (מומלץ)¶
העדיפו מדיניות מוגבלת על פני * בפרודקשן. דוגמה: לאפשר למפתח פריסה לעדכן רק bucket אחד של אתר סטטי:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["so:ListBucket", "so:PutObject", "so:DeleteObject"],
"Resource": [
"arn:holab:so:::my-website",
"arn:holab:so:::my-website/*"
]
}
]
}
צירפו מדיניות דרך IAM → Policies / Roles. ראו IAM לתפקידים, מתחילי מדיניות מנוהלת, ואיך Functions מניחים תפקידים.
התחברות לקונסול מול Access Key¶
| משימה | השתמשו ב |
|---|---|
| יצירת bucket או תור בממשק | סשן קונסול |
homecloud queues list / homecloud so ls-buckets |
homecloud login (JWT) |
homecloud so cp / so sync / mq send |
Access Key |
| פריסת אתר סטטי ב-CI | Access Key ב-secrets של GitHub Actions |
| פרוויז'ן Terraform של תורים / באקטים / סודות מ-CI | Access Key הקשור למשתמש, או GitHub OIDC (HC_ROLE_ARN) — Terraform |
| גלישה יומיומית בדפדפן | סשן קונסול + MFA |
לעיתים קרובות משתמשים בשניהם: login לרשימות ניהול, Access Key להעברות.
ל-Terraform ב-GitHub Actions העדיפו OIDC על פני HC_SECRET_ACCESS_KEY ארוך-טווח ב-GitHub Secrets. הספק מחליף JWT של GitHub ב-POST /api/v1/sts/assume-role-with-web-identity. ראו Terraform — GitHub OIDC.
לעולם אל תעלו סודות ל-git
אל תשימו secret של Access Key ב-git. השתמשו במאגר הסודות של ה-CI (GitHub Actions secrets וכו'), או דלגו על הסוד הארוך-טווח לגמרי עם GitHub OIDC ל-Terraform.
פתרון בעיות¶
| תסמין | מה לנסות |
|---|---|
401 / unauthorized ב-so / mq |
מפתח/secret שגויים, או מפתח שבוטל; הריצו מחדש homecloud configure |
403 / permission denied |
מדיניות המפתח צרה מדי; בדקו מדיניות IAM |
| עובד בקונסול אבל ה-CLI נכשל | קריאת ניהול דורשת homecloud login; קריאת data-plane דורשת Access Key |
| מפתח ישן אחרי flush ל-Redis של הפלטפורמה | מפתחות חיים במסד הנתונים; המטמון נבנה מחדש אוטומטית. אם מפתח ישן מאוד קדם להעברת הצפנה, בטלו וצרו מחדש |
קשור¶
- אימות ב-CLI
- מדריך IAM
- SDK
- Terraform (Access Key ב-SigV1 או GitHub OIDC)