מקשי HMAC

בדף הזה מוסבר על מפתחות של קוד אימות הודעות (HMAC) מבוססי-גיבוב (hash), שאפשר להשתמש בהם כדי לאמת בקשות ב-Cloud Storage API בפורמט XML. מפתחות HMAC שימושיים כשרוצים להעביר נתונים בין Cloud Storage לבין ספקי שירותי אחסון בענן אחרים, כי מפתחות HMAC מאפשרים להשתמש שוב בקוד קיים כדי לגשת ל-Cloud Storage.

במאמר ניהול מפתחות HMAC לחשבונות שירות מוסבר איך יוצרים ומנהלים מפתחות HMAC.

סקירה כללית

מפתח HMAC הוא סוג של פרטי כניסה שמשויכים לחשבון, בדרך כלל לחשבון שירות. אפשר להשתמש במפתח HMAC כדי ליצור חתימות באמצעות אלגוריתם החתימה HMAC-SHA256. לאחר מכן, החתימות שאתם יוצרים נכללות בבקשות ל-API בפורמט XML של Cloud Storage. החתימות מוכיחות שבקשה מסוימת אושרה על ידי החשבון שמשויך למפתח ה-HMAC.

למפתחות HMAC יש שני חלקים עיקריים, מזהה גישה וסוד.

  • מזהה הגישה: זוהי מחרוזת אלפאנומרית שמקושרת לחשבון ספציפי.

    • כשהמחרוזת מקושרת לחשבון שירות היא תהיה באורך של 61 תווים.

    כך נראה מזהה גישה לדוגמה:

    GOOGTS7C7FUP3AIRVJTE2BCDKINBTES3HC2GY5CBFJDCQ2SYHV6A6XXVTJFSA

  • סוד: הסוד מורכב ממחרוזת בקידוד Base-64 באורך 40 תווים והוא מקושר למזהה הגישה הספציפי. הסוד הוא מפתח משותף מראש שידוע רק לכם ול-Cloud Storage. הסוד משמש ליצירת חתימות כחלק מתהליך האימות. כך נראה סוד לדוגמה:

    bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ

גם מזהה הגישה וגם הסוד משמשים בתור מזהים ייחודיים של מפתח HMAC, אבל הסוד הוא מידע רגיש הרבה יותר כי הוא משמש ליצירת חתימות.

אפשר גם להפעיל את האילוץ restrictAuthTypes במשאב, כדי להגביל את הגישה לבקשות שנחתמו על ידי מפתחות HMAC.

אחסון הסודות

כשיוצרים מפתח HMAC לחשבון שירות, מקבלים את הסוד למפתח רק פעם אחת. עליכם לאחסן את הסוד באופן מאובטח יחד עם מזהה הגישה שמשויך אליו. אם תאבדו את הסוד, לכם ול- Google Cloudלא תהיה אפשרות לאחזר אותו, ותצטרכו ליצור מפתח HMAC חדש לחשבון השירות כדי להמשיך לבצע אימות של הבקשות.

שיטות מומלצות לאחסון סודות

  • אל תשתפו את הסוד של מפתח ה-HMAC. עליכם להתייחס לסודות של מפתחות HMAC כמו לפרטי כניסה של גישה.

  • השיטה המומלצת לשמירה על האבטחה היא להחליף את המפתחות באופן קבוע כחלק מרוטציית מפתחות.

  • אם אתם חושדים שמישהו אחר משתמש במפתחות HMAC שלכם, עליכם למחוק מיד את מפתחות ה-HMAC הרלוונטיים וליצור חדשים.

  • כשאתם משנים את מפתחות ה-HMAC, צריך לעדכן את הקוד כך שישתמש במפתחות HMAC החדשים לפני שמוחקים את המפתחות הישנים. כשמוחקים מפתחות HMAC, הם הופכים ללא תקפים באופן מיידי ואי אפשר לשחזר אותם.

הגבלות

  • אפשר להשתמש במפתחות HMAC רק כדי לשלוח בקשות ל-API בפורמט XML. אי אפשר להשתמש בהם ב-API בפורמט JSON.

  • לכל חשבון שירות אפשר ליצור עד 10 מפתחות HMAC. המגבלה הזאת לא כוללת מפתחות שנמחקו.

  • אחרי שיוצרים מפתח HMAC לחשבון שירות, יכולות לחלוף עד 60 שניות לפני שאפשר יהיה להשתמש בו. אחרי שמוחקים חשבון שירות, יכול להיות שמפתחות ה-HMAC ששייכים לו ימשיכו לפעול עד 5 דקות. לעומת זאת, יכולות לעבור עד 5 דקות לפני שאפשר יהיה להשתמש שוב במפתחות HMAC אחרי ביטול המחיקה של חשבון השירות שבבעלותו הם נמצאים.

  • אם מפעילים את האילוץ restrictAuthTypes במשאב, אי אפשר יותר ליצור או להפעיל מפתחות HMAC במשאב הזה לסוג החשבון שצוין.

המאמרים הבאים