מעבר ל-Service Account Credentials API

הממשק Service Account Credentials API יוצר פרטי כניסה לטווח קצר לחשבונות שירות של ניהול זהויות והרשאות גישה (IAM). אפשר להשתמש ב-API הזה גם כדי לחתום על אסימוני אינטרנט מסוג JSON ‫(JWTs), וגם על אובייקטים של נתונים בינאריים (blobs) שמכילים אסימונים מסוגים אחרים.

גם הממשקים של IAM API מכילים שיטות לחתימת JWT ואובייקטים בינאריים (blobs). השיטות האלה הוצאו משימוש ב-1 ביולי 2020 ב-API ל-REST ובכל ספריות הלקוח של ה-IAM API. בנוסף, אם אתם משתמשים ב-Google Cloud CLI כדי לחתום על אסימוני JWT, יכול להיות שתצטרכו להוסיף הצהרה חדשה לקבוצת ההצהרות של JWT. אפשר להמשיך להשתמש בשיטות שהוצאו משימוש, אבל חשוב לדעת שהן לא תומכות בתכונות מתקדמות כמו קיבוץ בקשות HTTP. אנחנו ממליצים לעבור ל-Service Account Credentials API במקום זאת.

בהשוואה ל-IAM API, השיטות של Service Account Credentials API מאפשרות יותר גמישות לגבי זמן התפוגה של אסימוני JWT חתומים. בנוסף, ב-Service Account Credentials API יש כמה שיטות חדשות שמאפשרות ליצור אסימונים לצורך התחזות.

בדף הזה מוסבר איך לעדכן את הקוד הקיים כדי שישתמש ב-Service Account Credentials API. אם יש לכם משוב על השינוי הזה, תוכלו למלא את טופס המשוב. אפשר גם לשלוח לנו בקשות תמיכה או משוב מפורט לכתובת iam-sign-deprecation-public@google.com.

לפני שמתחילים

  • 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

הפעלת יומני ביקורת

אם אתם רוצים לקבל יומני ביקורת לבקשות לחתימה על אסימוני JWT ו-blobs, עליכם להפעיל את יומני בקרת הרשאות הגישה לנתונים ב-IAM API. ההפעלה של יומני בקרת הרשאות הגישה לנתונים ב-IAM API מפעילה את יומני הביקורת האלה גם ל-Service Account Credentials API.

יש כמה הבדלים חשובים בין הרשומות ביומן שכל API יוצר:

ההבדלים ברשומות ביומן הביקורת
שם ה-method

ב-IAM API

השם של ה-method‏ (protoPayload.methodName) יכול להיות אחד מהערכים הבאים:

  • google.iam.admin.v1.SignBlob
  • google.iam.admin.v1.SignJwt

ב-Service Account Credentials API

השם של ה-method יכול להיות אחד מהערכים הבאים:

  • SignBlob
  • SignJwt
סוג הבקשה

ב-IAM API

סוג הבקשה (protoPayload.request.@type) יכול להיות אחד מהערכים הבאים:

  • type.googleapis.com/google.iam.admin.v1.SignBlobRequest
  • type.googleapis.com/google.iam.admin.v1.SignJwtRequest

ב-Service Account Credentials API

סוג הבקשה יכול להיות אחד מהערכים הבאים:

  • type.googleapis.com/google.iam.credentials.v1.SignBlobRequest
  • type.googleapis.com/google.iam.credentials.v1.SignJwtRequest
שם השירות

ב-IAM API

השם של השירות (protoPayload.serviceName) הוא iam.googleapis.com.

ב-Service Account Credentials API

השם של השירות הוא iamcredentials.googleapis.com.

יומני בקרת הרשאות הגישה לנתונים נספרים כחלק מהמכסה החודשית בחינם של הטמעת נתונים ביומן. במקרה של חריגה מהמכסה, תחויבו על הטמעת הנתונים ביומן. לפרטים נוספים, ראו תמחור של Google Cloud Observability.

העברת קוד עבור חתימה על JWTs

בקטע הזה מוסבר איך להעביר את הקוד של החתימה על אסימוני JWT ל-Service Account Credentials API.

חתימה על אסימוני JWT באמצעות ה-API ל-REST

בטבלה הבאה מפורטים ההבדלים בין חתימה על אסימוני JWT באמצעות ה-API ל-REST של IAM לבין חתימה על אסימוני JWT באמצעות Service Account Credentials API. אתם צריכים לעדכן את הקוד כך שישקף את ההבדלים האלה:

ההבדלים בחתימה על אסימון JWT
נקודות הקצה ב-HTTP

ב-IAM API

ה-IAM API משתמש בשיטות ה-HTTP ובנקודות הקצה הבאות:

  • POST https://iam.googleapis.com/v1/projects/project-id/serviceAccounts/sa-email:signJwt

    בכתובת ה-URL הזו, המשתנה project-id מכיל את מזהה הפרויקט, והמשתנה sa-email מכיל את כתובת האימייל של חשבון השירות.

  • POST https://iam.googleapis.com/v1/projects/-/serviceAccounts/sa-email:signJwt

    בכתובת ה-URL הזו, התו הכללי לחיפוש - מחליף את מזהה הפרויקט, והמשתנה sa-email מכיל את כתובת האימייל של חשבון השירות.

ב-Service Account Credentials API

עליכם להשתמש רק בשיטת ה-HTTP ובנקודת הקצה הבאות. לא מחליפים את התו הכללי לחיפוש במזהה הפרויקט:

POST https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/sa-email:signJwt

בכתובת ה-URL הזו, המשתנה sa-email מכיל את כתובת האימייל של חשבון השירות.

גוף הבקשה

ב-IAM API

גוף הבקשה כולל את השדה payload. הערך שלו הוא המטען ייעודי (payload) שמכיל את אסימון ה-JWT לחתימה. המטען הייעודי חייב להיות אובייקט JSON שעבר סריאליזציה למחרוזת, ומכיל קבוצת הצהרות של JWT.

אם מציינים הצהרת זמן לתפוגה (exp), הזמן הזה לא יכול להיות ארוך מ-12 שעות בעתיד. אם משמיטים את הצהרת הזמן לתפוגה exp, היא תתווסף באופן אוטומטי עם זמן תפוגה של שעה אחת בעתיד.

ב-Service Account Credentials API

גוף הבקשה כולל את השדה payload, שמתנהג בצורה זהה ל-IAM API, למעט ההתנהגות של הצהרת זמן התפוגה (exp):

  • אם מציינים את הצהרת הזמן לתפוגה (exp), הזמן הזה לא יכול להיות ארוך מ-12 שעות בעתיד.
  • אם משמיטים את הצהרת הזמן לתפוגה exp, היא לא תתווסף באופן אוטומטי. אתם חייבים לספק את ההצהרה הזו אם אתם משתמשים באסימון ה-JWT החתום כדי לאמת מול Google APIs או מול ממשק API אחר שדורש את ההצהרה exp.
גוף התשובה

שני ממשקי ה-API משתמשים באותם שדות בגוף התשובה.

חתימה על אסימוני JWT באמצעות ספריית לקוח

ספריות הלקוח של Service Account Credentials API הן נפרדות מספריות הלקוח של IAM API.

כדי להשתמש ב-Service Account Credentials API, צריך להוסיף את ספריית הלקוח של ה-API לאפליקציה ולעדכן את הקוד כך שישתמש בספריית הלקוח החדשה:

C#

מוסיפים לאפליקציה את ספריית הלקוח של Service Account Credentials עבור #‫C. משתמשים ב-‎SignJwt() method כדי ליצור את החתימה.

בשם של חשבון השירות חייבים להשתמש בתו הכללי לחיפוש - כדי לייצג את מזהה הפרויקט:

חוקי: שם עם תו כללי לחיפוש

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

לא חוקי: שם עם מזהה הפרויקט

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

אם אתם כבר לא משתמשים בספריית הלקוח של IAM עבור #‫C, אפשר להסיר אותה מהאפליקציה.

Go

מוסיפים לאפליקציה את ספריית הלקוח של Service Account Credentials עבור Go. משתמשים ב-‎IamCredentialsClient.SignJwt() function method כדי ליצור את החתימה.

בשם של חשבון השירות חייבים להשתמש בתו הכללי לחיפוש - כדי לייצג את מזהה הפרויקט:

חוקי: שם עם תו כללי לחיפוש

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

לא חוקי: שם עם מזהה הפרויקט

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

אם אתם כבר לא משתמשים בספריית הלקוח של IAM ל-Go, אפשר להסיר אותה מהאפליקציה.

Java

מוסיפים לאפליקציה את ספריית הלקוח של Service Account Credentials עבור Java. משתמשים ב-‎IamCredentialsClient#signJwt() method כדי ליצור את החתימה.

בשם של חשבון השירות חייבים להשתמש בתו הכללי לחיפוש - כדי לייצג את מזהה הפרויקט:

חוקי: שם עם תו כללי לחיפוש

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

לא חוקי: שם עם מזהה הפרויקט

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

אם אתם כבר לא משתמשים בספריית הלקוח של IAM ל-Java, אפשר להסיר אותה מהאפליקציה.

Node.js

מוסיפים לאפליקציה את ספריית הלקוח של Service Account Credentials עבור Node.js. משתמשים ב-‎signJwt() method כדי ליצור את החתימה.

בשם של חשבון השירות חייבים להשתמש בתו הכללי לחיפוש - כדי לייצג את מזהה הפרויקט:

חוקי: שם עם תו כללי לחיפוש

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

לא חוקי: שם עם מזהה הפרויקט

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

אם אתם כבר לא משתמשים בספריית הלקוח של IAM ל-Node.js, אפשר להסיר אותה מהאפליקציה.

PHP

מוסיפים לאפליקציה את ספריית הלקוח של Service Account Credentials עבור PHP. משתמשים ב-‎signJwt() method כדי ליצור את החתימה.

בשם של חשבון השירות חייבים להשתמש בתו הכללי לחיפוש - כדי לייצג את מזהה הפרויקט:

חוקי: שם עם תו כללי לחיפוש

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

לא חוקי: שם עם מזהה הפרויקט

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

אם אתם כבר לא משתמשים בספריית הלקוח של IAM ל-PHP, אפשר להסיר אותה מהאפליקציה.

Python

מוסיפים לאפליקציה את ספריית הלקוח של Service Account Credentials עבור Python. משתמשים ב-‎sign_jwt() method כדי ליצור את החתימה.

בשם של חשבון השירות חייבים להשתמש בתו הכללי לחיפוש - כדי לייצג את מזהה הפרויקט:

חוקי: שם עם תו כללי לחיפוש

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

לא חוקי: שם עם מזהה הפרויקט

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

אם אתם כבר לא משתמשים בספריית הלקוח של iam_credentials, אפשר להסיר אותה מהאפליקציה.

Ruby

מוסיפים לאפליקציה את ספריית הלקוח של Service Account Credentials עבור Ruby. משתמשים ב-‎sign_service_account_jwt() method כדי ליצור את החתימה.

בשם של חשבון השירות חייבים להשתמש בתו הכללי לחיפוש - כדי לייצג את מזהה הפרויקט:

חוקי: שם עם תו כללי לחיפוש

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

לא חוקי: שם עם מזהה הפרויקט

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

אם אתם כבר לא משתמשים בספריית הלקוח של IAM ל-Ruby, אפשר להסיר אותה מהאפליקציה.

העברת קוד שמשמש לחתימה על אוביקטים בינאריים (blobs)

בקטע הזה מוסבר איך להעביר את הקוד של החתימה על אובייקטים בינאריים (blobs) ל-Service Account Credentials API.

חתימה על blobs בינאריים באמצעות API ל-REST

בטבלה הבאה מפורטים ההבדלים בין חתימה על blobs בינאריים באמצעות ה-API ל-REST של IAM לבין חתימה על blobs בינאריים באמצעות Service Account Credentials API. אתם צריכים לעדכן את הקוד כך שישקף את ההבדלים האלה:

הבדלים בחתימה על blob בינארי
נקודות הקצה ב-HTTP

ב-IAM API

ה-IAM API משתמש בשיטות ה-HTTP ובנקודות הקצה הבאות:

  • POST https://iam.googleapis.com/v1/projects/project-id/serviceAccounts/sa-email:signBlob

    בכתובת ה-URL הזו, המשתנה project-id מכיל את מזהה הפרויקט, והמשתנה sa-email מכיל את כתובת האימייל של חשבון השירות.

  • POST https://iam.googleapis.com/v1/projects/-/serviceAccounts/sa-email:signBlob

    בכתובת ה-URL הזו, התו הכללי לחיפוש - מחליף את מזהה הפרויקט, והמשתנה sa-email מכיל את כתובת האימייל של חשבון השירות.

ב-Service Account Credentials API

עליכם להשתמש רק בשיטת ה-HTTP ובנקודת הקצה הבאות. לא מחליפים את התו הכללי לחיפוש במזהה הפרויקט:

POST https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/sa-email:signBlob

בכתובת ה-URL הזו, המשתנה sa-email מכיל את כתובת האימייל של חשבון השירות.

גוף הבקשה

ב-IAM API

גוף הבקשה כולל את השדה bytesToSign. הערך שלו מכיל מחרוזת בקידוד base64 שמייצגת את ה-blob הבינארי לחתימה.

ב-Service Account Credentials API

גוף הבקשה כולל שדה payload שמכיל ערך זהה לשדה bytesToSign ב-IAM API.

גוף התשובה

ב-IAM API

גוף התשובה מכיל את השדה keyId שמזהה את המפתח ששימש לחתימה על ה-blob, ושדה signature שמכיל מחרוזת בקידוד base64 שמייצגת את החתימה.

ב-Service Account Credentials API

גוף התשובה מכיל את השדה keyId שמכיל ערך זהה לשדה keyId ב-IAM API, וגם שדה signedBlob שמכיל ערך זהה לשדה signature ב-IAM API.

חתימה על blobs בינאריים באמצעות ספריית לקוח

ספריות הלקוח של Service Account Credentials API הן נפרדות מספריות הלקוח של IAM API.

כדי להשתמש ב-Service Account Credentials API, צריך להוסיף את ספריית הלקוח של ה-API לאפליקציה ולעדכן את הקוד כך שישתמש בספריית הלקוח החדשה:

C++

אם אתם משתמשים בספריית הלקוח של Cloud Storage עבור ++C‎ כדי לחתום על אובייקטי blob, בין שבאופן ישיר ובין שתלות בספריית לקוח אחרת:

עליכם לשדרג את google-cloud-cpp לגרסה 0.9.0 ואילך.

אם אתם משתמשים בספריית לקוח אחרת כדי לחתום על אובייקטי blob:

עליכם לפנות לקבלת תמיכה בכתובת האימייל: iam-sign-deprecation-public@google.com.

C#

אם אתם משתמשים בספריית הלקוח של IAM עבור #‫C, בין שבאופן ישיר ובין שכתלות בספריית לקוח אחרת:

מוסיפים לאפליקציה את ספריית הלקוח של Service Account Credentials עבור #‫C. משתמשים ב-‎SignBlob() method כדי ליצור את החתימה.

בשם של חשבון השירות חייבים להשתמש בתו הכללי לחיפוש - כדי לייצג את מזהה הפרויקט:

חוקי: שם עם תו כללי לחיפוש

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

לא חוקי: שם עם מזהה הפרויקט

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

אם אתם כבר לא משתמשים בספריית הלקוח של IAM עבור #‫C, אפשר להסיר אותה מהאפליקציה.

אם משתמשים ב-SDK של Firebase Admin עבור DotNet, בין שבאופן ישיר ובין שכתלות בספריית לקוח אחרת:

עליכם לשדרג את firebase-admin-dotnet לגרסה 1.17.1 ואילך.

אם אתם משתמשים בספריית לקוח אחרת כדי לחתום על אובייקטי blob:

עליכם לפנות לקבלת תמיכה בכתובת האימייל: iam-sign-deprecation-public@google.com.

Go

אם אתם משתמשים בספריית הלקוח של IAM עבור Go, בין שבאופן ישיר ובין שכתלות בספריית לקוח אחרת:

מוסיפים לאפליקציה את ספריית הלקוח של Service Account Credentials עבור Go. משתמשים ב-‎IamCredentialsClient.SignBlob() function method כדי ליצור את החתימה.

בשם של חשבון השירות חייבים להשתמש בתו הכללי לחיפוש - כדי לייצג את מזהה הפרויקט:

חוקי: שם עם תו כללי לחיפוש

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

לא חוקי: שם עם מזהה הפרויקט

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

אם אתם כבר לא משתמשים בספריית הלקוח של IAM ל-Go, אפשר להסיר אותה מהאפליקציה.

אם משתמשים ב-SDK של Firebase Admin עבור Go, בין שבאופן ישיר ובין שכתלות בספריית לקוח אחרת:

עליכם לשדרג את firebase-admin-go לגרסה 4.1.0 ואילך.

אם אתם משתמשים בספריית לקוח אחרת כדי לחתום על אובייקטי blob:

עליכם לפנות לקבלת תמיכה בכתובת האימייל: iam-sign-deprecation-public@google.com.

Java

אם אתם משתמשים בספריית הלקוח של IAM עבור Java, בין שבאופן ישיר ובין שכתלות בספריית לקוח אחרת:

מוסיפים לאפליקציה את ספריית הלקוח של Service Account Credentials עבור Java. משתמשים ב-‎IamCredentialsClient#signBlob() method כדי ליצור את החתימה.

בשם של חשבון השירות חייבים להשתמש בתו הכללי לחיפוש - כדי לייצג את מזהה הפרויקט:

חוקי: שם עם תו כללי לחיפוש

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

לא חוקי: שם עם מזהה הפרויקט

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

אם אתם כבר לא משתמשים בספריית הלקוח של IAM ל-Java, אפשר להסיר אותה מהאפליקציה.

אם אתם משתמשים ב-Google Auth Library עבור Java, בין שבאופן ישיר ובין שכתלות בספריית לקוח אחרת:

עליכם לשדרג את google-auth-library-java לגרסה 0.14.0 ואילך.

אם משתמשים ב-SDK של Firebase Admin עבור Java, בין שבאופן ישיר ובין שכתלות בספריית לקוח אחרת:

עליכם לשדרג את firebase-admin-java לגרסה 7.0.1 ואילך.

אם אתם משתמשים בספריית לקוח אחרת כדי לחתום על אובייקטי blob:

עליכם לפנות לקבלת תמיכה בכתובת האימייל: iam-sign-deprecation-public@google.com.

Node.js

אם אתם משתמשים בספריית הלקוח של IAM עבור Node.js, בין שבאופן ישיר ובין שכתלות בספריית לקוח אחרת:

מוסיפים לאפליקציה את ספריית הלקוח של Service Account Credentials עבור Node.js. משתמשים ב-‎signBlob() method כדי ליצור את החתימה.

בשם של חשבון השירות חייבים להשתמש בתו הכללי לחיפוש - כדי לייצג את מזהה הפרויקט:

חוקי: שם עם תו כללי לחיפוש

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

לא חוקי: שם עם מזהה הפרויקט

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

אם אתם כבר לא משתמשים בספריית הלקוח של IAM ל-Node.js, אפשר להסיר אותה מהאפליקציה.

אם אתם משתמשים ב-Google Auth Library עבור Node.js בין שבאופן ישיר ובין שכתלות בספריית לקוח אחרת:

עליכם לשדרג את google-auth-library-nodejs לגרסה 6.0.0 ואילך.

אם משתמשים ב-SDK של Firebase Admin עבור Node.js, בין שבאופן ישיר ובין שכתלות בספריית לקוח אחרת:

עליכם לשדרג את firebase-admin-node לגרסה 8.13.0 ואילך.

אם אתם משתמשים בספריית לקוח אחרת כדי לחתום על אובייקטי blob:

עליכם לפנות לקבלת תמיכה בכתובת האימייל: iam-sign-deprecation-public@google.com.

PHP

אם אתם משתמשים בספריית הלקוח של IAM עבור PHP, בין שבאופן ישיר ובין שכתלות בספריית לקוח אחרת:

מוסיפים לאפליקציה את ספריית הלקוח של Service Account Credentials עבור PHP. משתמשים ב-‎signBlob() method כדי ליצור את החתימה.

בשם של חשבון השירות חייבים להשתמש בתו הכללי לחיפוש - כדי לייצג את מזהה הפרויקט:

חוקי: שם עם תו כללי לחיפוש

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

לא חוקי: שם עם מזהה הפרויקט

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

אם אתם כבר לא משתמשים בספריית הלקוח של IAM ל-PHP, אפשר להסיר אותה מהאפליקציה.

אם אתם משתמשים ב-Google Auth Library עבור PHP בין שבאופן ישיר ובין שכתלות בספריית לקוח אחרת:

עליכם לשדרג את google-auth-library-php לגרסה 1.5.0 ואילך.

אם אתם משתמשים בספריית לקוח אחרת כדי לחתום על אובייקטי blob:

עליכם לפנות לקבלת תמיכה בכתובת האימייל: iam-sign-deprecation-public@google.com.

Python

אם אתם משתמשים בספריית הלקוח של IAM עבור Python, בין שבאופן ישיר ובין שכתלות בספריית לקוח אחרת:

מוסיפים לאפליקציה את ספריית הלקוח של Service Account Credentials עבור Python. משתמשים ב-‎sign_blob() method כדי ליצור את החתימה.

בשם של חשבון השירות חייבים להשתמש בתו הכללי לחיפוש - כדי לייצג את מזהה הפרויקט:

חוקי: שם עם תו כללי לחיפוש

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

לא חוקי: שם עם מזהה הפרויקט

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

אם אתם כבר לא משתמשים בספריית הלקוח של iam_credentials, אפשר להסיר אותה מהאפליקציה.

אם אתם משתמשים ב-Google Auth Library עבור Python, בין שבאופן ישיר ובין שכתלות בספריית לקוח אחרת:

עליכם לשדרג את google-auth-library-python לגרסה 1.21.2 ואילך.

אם אתם משתמשים בלקוח Python ל-Cloud Storage, בין שבאופן ישיר ובין שכתלות בספריית לקוח אחרת:

עליכם לשדרג את python-storage לגרסה 1.30.0 ואילך.

אם אתם משתמשים בספריית לקוח אחרת כדי לחתום על אובייקטי blob:

עליכם לפנות לקבלת תמיכה בכתובת האימייל: iam-sign-deprecation-public@google.com.

Ruby

אם אתם משתמשים בספריית הלקוח של IAM עבור Ruby, בין שבאופן ישיר ובין שכתלות בספריית לקוח אחרת:

מוסיפים לאפליקציה את ספריית הלקוח של Service Account Credentials עבור Ruby. משתמשים ב-‎sign_service_account_blob() method כדי ליצור את החתימה.

בשם של חשבון השירות חייבים להשתמש בתו הכללי לחיפוש - כדי לייצג את מזהה הפרויקט:

חוקי: שם עם תו כללי לחיפוש

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

לא חוקי: שם עם מזהה הפרויקט

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

אם אתם כבר לא משתמשים בספריית הלקוח של IAM ל-Ruby, אפשר להסיר אותה מהאפליקציה.

אם אתם משתמשים בספריית לקוח אחרת כדי לחתום על אובייקטי blob:

עליכם לפנות לקבלת תמיכה בכתובת האימייל: iam-sign-deprecation-public@google.com.

העברת קוד שמשתמש ב-CLI של gcloud

הפקודות הבאות ב-Google Cloud CLI משתמשות ב-IAM API כדי לחתום על אסימוני JWT ואובייקטי blob בינאריים:

החל מ-1 ביולי 2021 או מאוחר יותר, אנחנו מעדכנים את הפקודות האלה כך שישתמשו ב-Service Account Credentials API. השינוי הזה לא ישפיע על הפקודות של חתימת blobs.

אם אתם משתמשים ב-CLI של gcloud כדי לחתום על אסימוני JWT, עליכם לבצע את הפעולות הבאות לפני 1 ביולי 2021:

  1. עליכם לבדוק אם כללתם את הצהרת הזמן לתפוגה (exp) בקבוצת ההצהרות של JWT.

    אם ההצהרה הזו כבר כלולה, אתם לא צריכים לשנות כלום. אתם יכולים לדלג על השלבים הנותרים.

    אם ההצהרה הזו לא כלולה, אתם צריכים להמשיך לשלב הבא.

  2. עליכם לבדוק אם אתם משתמשים ב-JWT החתום כדי לאמת מול Google APIs או מול ממשק API אחר שדורש את ההצהרה exp.

    ב-IAM API, אם משמיטים את הצהרת הזמן לתפוגה היא תתווסף באופן אוטומטי עם זמן תפוגה של שעה אחת בעתיד. לעומת זאת, אם משתמשים ב-Service Account Credentials API, ההצהרה הזו לא תתווסף באופן אוטומטי.

    אם אתם בטוחים שאתם לא צריכים את ההצהרה exp, אתם לא צריכים לשנות דבר. אתם יכולים לדלג על השלבים הנותרים.

    אם אתם לא בטוחים, או יודעים שאתם כן צריכים את ההצהרה exp, עליכם להמשיך לשלב הבא.

  3. מעדכנים את הקוד שיוצר אסימוני JWT כך שיוסיף את הצהרת הזמן לתפוגה exp לקבוצת ההצהרות של JWT.

    אפשר להגדיר את הזמן לתפוגה בהצהרה exp לשעה אחת בעתיד לכל היותר.

בדיקת מכסות

המכסות של Service Account Credentials API מוגדרות בנפרד מהמכסות של IAM API. אם קיבלתם בקשה להגדלת מכסת החתימה על אסימוני JWT ו-blobs באמצעות ה-IAM API, יכול להיות שתצטרכו לבקש להגדיל גם את המכסה של Service Account Credentials API.

כדי להציג את המכסות הקיימות ואת השימוש בפועל בשני ממשקי ה-API, וכדי לבקש הגדלת מכסה במקרה הצורך:

  1. נכנסים לדף Quotas במסוף Google Cloud .

    לדף Quotas

  2. בוחרים פרויקט. אתם יכולים ללחוץ על פרויקט שפתחתם לאחרונה או ללחוץ על Select Project כדי לחפש בכל הפרויקטים.

  3. בתיבת הטקסט Filter table שמעל לטבלה מזינים Sign requests per minute ובוחרים את הערך שיוצג.

  4. בתיבת הטקסט Filter table בוחרים באפשרות OR מהרשימה הנפתחת.

  5. בתיבת הטקסט Filter table כותבים Generate credentials ואז בוחרים את הערך שמופיע.

    במסוף Google Cloud תוכלו לראות את השימוש הנוכחי שלכם בחתימות על אסימוני JWT ו-blobs בדקה האחרונה. בנוסף, תוכלו לראות את השימוש המרבי לדקה ב-7 הימים האחרונים ואת המכסה הנוכחית שלכם, בעמודה Limit.

  6. עליכם להשוות את המכסות בכל שורה בטבלה, ולוודא שהמכסה שמופיעה עבור Service Account Credentials API גבוהה יותר מהשימוש המרבי לדקה ב-7 הימים האחרונים ב-IAM API.

  7. אופציונלי: אם המכסה ב-Service Account Credentials API נמוכה מדי, מסמנים את תיבת הסימון של Service Account Credentials API ולוחצים על Edit quotas. ממלאים את הטופס כדי לבקש הגדלת מכסה.

  8. חוזרים על השלבים האלה בכל פרויקט שבו אתם משתמשים ב-IAM API כדי לחתום על אסימוני JWT ו-blobs.

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