בדף הזה מוסבר איך להשתמש ב-methodGoogle Cloud signBlob כדי ליצור חתימה ממחרוזת לחתימה או ממסמך מדיניות. בבקשות מסוימות, כמו כתובות URL חתומות, חתימות משמשות כפרטי כניסה. במדריך הזה נעשה שימוש במפתחות RSA ליצירת חתימות.
לפני שמתחילים
Enable the Service Account Credentials API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.עליכם להיות בעלי ההרשאה
iam.serviceAccounts.signBlobבחשבון השירות שבו משתמשים במדריך הזה. ההרשאהiam.serviceAccounts.signBlobכלולה בתפקידroles/iam.serviceAccountTokenCreator.לחשבון השירות שבו משתמשים במדריך הזה צריכה להיות הרשאה לביצוע הבקשה המקודדת בחתימה. לדוגמה, אם משתמשים בחתימה כדי לקרוא נתוני אובייקטים מקטגוריה, לחשבון השירות צריכה להיות הרשאה לקרוא את נתוני האובייקט.
יצירת חתימה
התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת
Authorization.יוצרים קובץ JSON שמכיל את הפרטים הבאים:
{ "payload": "REQUEST_INFORMATION" }
כאשר:
-
REQUEST_INFORMATIONהוא מחרוזת לחתימה או מסמך מדיניות. בשניהם, התוכן חייב להיות בקידוד base64.
-
משתמשים ב-
cURLכדי להפעיל את IAM API באמצעות בקשתsignBlob:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/SERVICE_ACCOUNT_EMAIL:signBlob"
כאשר:
JSON_FILE_NAMEהוא שם הקובץ שיצרתם בשלב 2.SERVICE_ACCOUNT_EMAILהיא כתובת האימייל של חשבון השירות שבו רוצים להשתמש כדי ליצור את החתימה. לדוגמה,example-service-account@my-pet-project.iam.gserviceaccount.com.
אם הפעולה בוצעה ללא שגיאות, תמצית הודעה מוצפנת ב-Base64 ומוחזרת בשדה
signedBlobבתגובה.כדי להשלים את החתימה, צריך לוודא שתקציר ההודעה מפוענח בקידוד base64, ואז לקודד את תקציר ההודעה בפורמט הקסדצימלי.
המאמרים הבאים
- דף העזר לחתימה על blobs באמצעות Google Cloud CLI.
- יצירת כתובת URL חתומה באופן ידני באמצעות החתימה שיצרתם.
- יצירת כתובת URL חתומה באמצעות כלים של Google Cloud
- למידע נוסף על חסימות