בדף זה מוסבר איך להשתמש במפתחות API כדי לאמת ממשקים ושירותים של Google Cloud שתומכים במפתחות API.
רוב ממשקי Google Cloud API לא תומכים במפתחות API, לכן כדאי לוודא שממשק ה-API שבו תרצו להשתמש תומך במפתחות API, לפני שתשתמשו בשיטת האימות הזו.
מידע על השימוש במפתחות API לאימות הפלטפורמה של מפות Google זמין במסמכי התיעוד של הפלטפורמה של מפות Google. מידע נוסף על API Keys API זמין במסמכי התיעוד של API Keys API.
מבוא למפתחות API
מפתח API כולל את הרכיבים הבאים, שבאמצעותם אפשר לנהל את המפתח ולהשתמש בו:
- מחרוזת
- המחרוזת של מפתח API היא מחרוזת מוצפנת, כמו
AIzaSyDaGmWKa4JsXZ-HjGw7ISLn_3namBGewQe
. כשמשתמשים במפתח API לביצוע אימות, משתמשים תמיד במחרוזת של המפתח. למפתחות API לא משויך קובץ JSON. - מזהה
- בכלי הניהול של Google Cloud נעשה שימוש במזהה של מפתח API כדי לזהות את המפתח באופן ייחודי. אי אפשר להשתמש במזהה המפתח כדי לבצע אימות. תוכלו לאתר את מזהה המפתח בכתובת ה-URL של דף העריכה של המפתח, במסוף Google Cloud. אפשר לאתר את מזהה המפתח גם כשרושמים את המפתחות שבפרויקט באמצעות Google Cloud CLI.
- השם המוצג
- השם המוצג הוא שם תיאורי אופציונלי למפתח, ואפשר להגדיר אותו כשיוצרים את המפתח וכשמעדכנים אותו.
כשאתם משתמשים במפתח API כדי לאמת API, מפתח ה-API לא מזהה חשבון משתמש וגם לא מספק פרטי הרשאה. מפתח ה-API משייך את הבקשה לפרויקט ב-Google Cloud למטרות חיוב וניהול מכסות. מפתחות ה-API לא מזהים את מבצע הקריאה, לכן פעמים רבות הם משמשים לגישה למשאבים ולנתונים ציבוריים.
הרבה ממשקי Google Cloud API לא מקבלים מפתחות API לצורך ביצוע אימות. כדי לדעת אם מוצעת תמיכה למפתחות API, מומלץ לעיין במסמכי התיעוד בנושא אימות של השירות או של ה-API.
כדי לנהל מפתחות API, עליכם להיות בתפקיד אדמין של מפתחות API (roles/serviceusage.apiKeysAdmin
) בפרויקט.
יצירה של מפתח API
יש כמה דרכים ליצור מפתח API:
מסוף
נכנסים לדף Credentials במסוף Google Cloud:
לוחצים על Create credentials ובתפריט בוחרים באפשרות API key.
תיבת הדו-שיח API key created מציגה את המחרוזת של המפתח החדש שיצרתם.
gcloud
משתמשים בפקודה gcloud alpha services api-keys create כדי ליצור מפתח API.
מחליפים את DISPLAY_NAME
בשם תיאורי למפתח.
gcloud alpha services api-keys create --display-name=DISPLAY_NAME
REST
משתמשים ב-method keys.create כדי ליצור מפתח API. בעקבות הבקשה הזו מתקבלת פעולה ממושכת, וצריך לדגום את הפעולה כדי לאתר את המידע על המפתח החדש.
מחליפים את הערכים הבאים:
DISPLAY_NAME
: אופציונלי. שם תיאורי למפתח.PROJECT_ID
: השם או המזהה של הפרויקט ב-Google Cloud.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d {'"displayName" : "DISPLAY_NAME"'} \ "https://apikeys.googleapis.com/v2/projects/PROJECT/locations/global/keys"
מידע נוסף על יצירת מפתחות API באמצעות API ל-REST מופיע במאמר יצירת מפתח API במסמכי התיעוד בנושא API של מפתח API.
מעתיקים את מחרוזת המפתח ומוודאים שהיא מאובטחת. מוסיפים הגבלות לאפליקציות ולמפתחות API, אלא אם אתם משתמשים במפתח בדיקה ומתכוונים למחוק אותו מאוחר יותר.
שימוש במפתח API
אפשר להשתמש במפתחות API יחד עם בקשות ל-REST ועם ספריות לקוח שתומכות בהם.
שימוש במפתח API באמצעות REST
תוכלו להעביר את מפתח ה-API למצב קריאה ל-API ל-REST כפרמטר של שאילתה, לפי הפורמט הבא, תוך החלפת הערך API_KEY
במחרוזת המפתח של מפתח ה-API.
לדוגמה, כדי להעביר מפתח API לבקשת Cloud Natural Language API עבור documents.analyzeEntities
:
POST https://language.googleapis.com/v1/documents:analyzeEntities?key=API_KEY
לחלופין, אפשר להשתמש בכותרת x-goog-api-key
כדי להעביר את המפתח.
חייבים להשתמש בכותרת הזו יחד עם בקשות ל-gRPC.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "X-goog-api-key: API_KEY" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://translation.googleapis.com/language/translate/v2"
שימוש במפתח API באמצעות ספריות לקוח
כש-API של שירות תומך במפתחות API, ספריית הלקוח של אותו השירות בדרך כלל תומכת במפתחות API. צריך לעיין במסמכי התיעוד של ספריית הלקוח כדי לבדוק אם השיטה (method) ליצירת לקוחות מקבלת מפתח API.
אבטחה של מפתח API
בזמן השימוש במפתחות API באפליקציות שלכם, צריך לוודא שהן מאובטחות במהלך האחסון ובמהלך ההעברה. חשיפת מפתחות ה-API באופן ציבורי עלולה לגרום לחיובים לא צפויים בחשבון שלכם. כדי לוודא שמפתחות ה-API מאובטחים, כדאי לפעול לפי השיטות המומלצות הבאות:
להוסיף למפתח הגבלות על מפתחות API.
ההוספה של הגבלות מאפשרת להגביל את דרכי השימוש במפתח API, וכך לצמצם את ההשפעה של מפתח API שנמצא בסיכון.
למחוק מפתחות API שכבר לא נחוצים, כדי לצמצם את החשיפה להתקפות.
מדי פעם ליצור מחדש את מפתחות ה-API.
כדאי ליצור מדי פעם מפתחות API חדשים, למחוק את המפתחות הישנים ולעדכן את האפליקציות כך שישתמשו במפתחות ה-API החדשים.
החלת הגבלות על מפתחות API
כברירת מחדל, על מפתחות API אין הגבלות. מפתחות לא מוגבלים הם לא מאובטחים כי כולם יכולים להשתמש בהם בכל מקום. באפליקציות בסביבת ייצור מומלץ להגדיר גם הגבלות על אפליקציות וגם הגבלות על ממשקי API.
הוספת הגבלות על אפליקציות
הגבלות על אפליקציות מציינות אילו כתובות IP, אפליקציות ואתרים יכולים להשתמש במפתח API.
ניתן להחיל רק סוג אחד של הגבלה על אפליקציות בכל פעם. מומלץ לבחור את סוג ההגבלה בהתאם לסוג האפליקציה:
אפשרות | סוג האפליקציה | הערות |
---|---|---|
גורמים מפנים מסוג HTTP | אפליקציות אינטרנט | קובעת באילו אתרים אפשר להשתמש במפתח. |
כתובות IP | אפליקציות שנקראו על ידי שרתים ספציפיים | קובעת באילו שרתים או משימות cron אפשר להשתמש במפתח. |
אפליקציות ל-Android | אפליקציות ל-Android | קובעת באיזו אפליקציית Android אפשר להשתמש במפתח. |
אפליקציות ל-iOS | אפליקציות ל-iOS | קובעת באילו חבילות ל-iOS אפשר להשתמש במפתח. |
גורמים מפנים מסוג HTTP
כדי להגביל את האתרים שבהם אפשר להשתמש במפתח ה-API, צריך להוסיף הגבלה אחת או יותר של גורמים מפנים מסוג HTTP.
אפשר להחליף תת-דומיין או נתיב בתו כללי לחיפוש (*
), אבל אי אפשר להוסיף תו כללי לחיפוש באמצע כתובת ה-URL. לדוגמה, ההגבלה *.google.com
תקינה, והיא מקבלת את כל האתרים שמסתיימים ב-.google.com
. עם זאת, ההגבלה mysubdomain*.google.com
לא תקינה.
אפשר לכלול מספרי יציאות בהגבלות של הגורמים המפנים מסוג HTTP. אם כוללים מספר יציאה, מתבצעת התאמה רק לבקשות שנשלחות באמצעות אותה היציאה. אם לא מציינים מספר יציאה, מתבצעת התאמה לבקשות שנשלחות מכל מספרי היציאות.
אפשר להוסיף למפתח API עד 1,200 גורמים מפנים מסוג HTTP.
בטבלה הבאה מוצגים תרחישים לדוגמה והגבלות לדפדפנים:
תרחיש | הגבלות |
---|---|
הרשאה של כתובת URL ספציפית | צריך להוסיף כתובת URL עם נתיב מדויק, לדוגמה:www.example.com/path www.example.com/path/path |
הרשאה של כל כתובת URL באתר שלכם | צריך להגדיר שתי כתובות URL ברשימה 'allowedReferers'.
|
הרשאה של כל כתובת URL בתת-דומיין יחיד או בדומיין ללא קידומת |
צריך להגדיר שתי כתובות URL ברשימה 'allowedReferers' כדי לתת הרשאה לדומיין בשלמותו:
|
אפשר להגביל את מפתח ה-API לאתרים ספציפיים באמצעות אחת מהאפשרויות הבאות:
מסוף
נכנסים לדף Credentials במסוף Google Cloud:
לוחצים על השם של מפתח ה-API שרוצים להגביל.
בקטע Application restrictions, בוחרים באפשרות HTTP referrers.
לכל הגבלה שרוצים להוסיף, לוחצים על Add an item, מזינים את ההגבלה ולוחצים על Done.
כדי לשמור את השינויים ולחזור לרשימה של מפתחות ה-API, לוחצים על Save.
gcloud
מאתרים את המזהה של המפתח שרוצים להגביל.
המזהה הוא לא השם המוצג או מחרוזת המפתח. כדי לאתר אותו, בעזרת הפקודה
gcloud services api-keys list
תוכלו להציג את רשימת המפתחות בפרויקט.משתמשים בפקודה
gcloud alpha services api-keys update
כדי להוסיף למפתח API הגבלות על הגורמים המפנים מסוג HTTP.מחליפים את הערכים הבאים:
KEY_ID
: המזהה של המפתח שרוצים להגביל.ALLOWED_REFERRER_1
: ההגבלה על הגורמים המפנים מסוג HTTP.אפשר להוסיף כמה הגבלות שרוצים, ולהפריד ביניהן באמצעות פסיקים. עליכם לפרט בפקודת העדכון את כל ההגבלות על גורמים מפנים, והן יחליפו את כל ההגבלות הקיימות במפתח על גורמים מפנים.
gcloud alpha services api-keys update KEY_ID \ --allowed-referrers="ALLOWED_REFERRER_1"
REST
מאתרים את המזהה של המפתח שרוצים להגביל.
המזהה הוא לא השם המוצג או מחרוזת המפתח. אפשר לאתר אותו באמצעות method keys.list. המזהה מופיע בשדה
uid
של התשובה.מחליפים את
PROJECT_ID
בשם או במזהה של הפרויקט ב-Google Cloud.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
משתמשים ב-method keys.patch כדי להוסיף למפתח ה-API הגבלות על גורמים מפנים מסוג HTTP.
בעקבות הבקשה מתקבלת פעולה ממושכת, וצריך לדגום את הפעולה כדי לדעת מתי היא הושלמה ומה הסטטוס שלה.
מחליפים את הערכים הבאים:
ALLOWED_REFERRER_1
: ההגבלה על הגורמים המפנים מסוג HTTP.אפשר להוסיף כמה הגבלות שרוצים, ולהפריד ביניהן באמצעות פסיקים. עליכם לפרט בבקשה את כל ההגבלות על הגורמים המפנים, והן יחליפו את כל ההגבלות הקיימות על גורמים מפנים במפתח.
PROJECT_ID
: השם או המזהה של הפרויקט ב-Google Cloud.KEY_ID
: המזהה של המפתח שרוצים להגביל.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "restrictions" : { "browserKeyRestrictions": { "allowedReferrers": ["ALLOWED_REFERRER_1"] } } }' \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
למידע נוסף על הוספת הגבלות על גורמים מפנים מסוג HTTP למפתח באמצעות API ל-REST, תוכלו לקרוא את המאמר הוספת הגבלות על דפדפנים במסמכי התיעוד בנושא API של מפתח API.
כתובות IP
תוכלו לציין כתובת IP אחת או יותר של מבצעי הקריאות, כמו שרת אינטרנט או משימת cron, שמורשים להשתמש במפתח ה-API. אפשר לציין את כתובות ה-IP בפורמטים הבאים:
- IPv4 (
198.51.100.1
) - IPv6 (
2001:db8::1
) - תת-רשת עם סימון CIDR (
198.51.100.0/24
,2001:db8::/64
)
השימוש ב-localhost
לא נתמך כאשר קיימות הגבלות על שרתים.
אפשר להגביל את מפתח ה-API לכתובות IP ספציפיות באמצעות אחת מהאפשרויות הבאות:
מסוף
נכנסים לדף Credentials במסוף Google Cloud:
לוחצים על השם של מפתח ה-API שרוצים להגביל.
בקטע Application restrictions, בוחרים באפשרות IP addresses.
לכל כתובת IP שרוצים להוסיף, לוחצים על Add an item, מזינים את הכתובת ולוחצים על Done.
כדי לשמור את השינויים ולחזור לרשימה של מפתחות ה-API, לוחצים על Save.
gcloud
מאתרים את המזהה של המפתח שרוצים להגביל.
המזהה הוא לא השם המוצג או מחרוזת המפתח. כדי לאתר אותו, בעזרת הפקודה
gcloud services api-keys list
תוכלו להציג את רשימת המפתחות בפרויקט.משתמשים בפקודה
gcloud alpha services api-keys update
כדי להוסיף למפתח API הגבלות על שרתים (כתובת IP).מחליפים את הערכים הבאים:
KEY_ID
: המזהה של המפתח שרוצים להגביל.ALLOWED_IP_ADDR_1
: כתובת ה-IP המורשית.אפשר להוסיף כמה כתובות IP שרוצים, ולהפריד ביניהן באמצעות פסיקים.
gcloud alpha services api-keys update KEY_ID \ --allowed-ips="ALLOWED_IP_ADDR_1"
REST
מאתרים את המזהה של המפתח שרוצים להגביל.
המזהה הוא לא השם המוצג או מחרוזת המפתח. אפשר לאתר אותו באמצעות method keys.list. המזהה מופיע בשדה
uid
של התשובה.מחליפים את
PROJECT_ID
בשם או במזהה של הפרויקט ב-Google Cloud.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
משתמשים ב-method keys.patch כדי להוסיף למפתח API הגבלות על שרתים (כתובת IP).
בעקבות הבקשה מתקבלת פעולה ממושכת, וצריך לדגום את הפעולה כדי לדעת מתי היא הושלמה ומה הסטטוס שלה.
מחליפים את הערכים הבאים:
ALLOWED_IP_ADDR_1
: כתובת ה-IP המורשית.אפשר להוסיף כמה כתובות IP שרוצים, ולהפריד ביניהן באמצעות פסיקים. עליכם לפרט בבקשה את כל כתובות ה-IP, כשההגבלות על גורמים מפנים יחליפו את כל ההגבלות הקיימות כתובות IP במפתח.
PROJECT_ID
: השם או המזהה של הפרויקט ב-Google Cloud.KEY_ID
: המזהה של המפתח שרוצים להגביל.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "restrictions" : { "serverKeyRestrictions": { "allowedIps": ["ALLOWED_IP_ADDR_1"] } } }' \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
למידע נוסף על הוספת הגבלות על כתובות IP למפתח באמצעות API ל-REST, תוכלו לקרוא את המאמר הוספת הגבלות על שרתים במסמכי התיעוד בנושא API של מפתח API.
אפליקציות ל-Android
תוכלו להגביל את השימוש במפתח API לאפליקציות מסוימות ל-Android. עליכם להעביר לכל אפליקציה את שם החבילה ואת טביעת האצבע לאישור SHA-1 בגודל 20 בייטים.
כדי להגביל את מפתח ה-API לאפליקציה אחת או יותר ל-Android, תוכלו להשתמש באחת מהאפשרויות הבאות:
מסוף
נכנסים לדף Credentials במסוף Google Cloud:
לוחצים על השם של מפתח ה-API שרוצים להגביל.
בקטע Application restrictions, בוחרים באפשרות Android apps.
לכל אפליקציה ל-Android שרוצים להוסיף, לוחצים על Add an item, מזינים את שם החבילה ואת טביעת האצבע לאישור SHA-1 ולוחצים על Done.
כדי לשמור את השינויים ולחזור לרשימה של מפתחות ה-API, לוחצים על Save.
gcloud
מאתרים את המזהה של המפתח שרוצים להגביל.
המזהה הוא לא השם המוצג או מחרוזת המפתח. כדי לאתר אותו, בעזרת הפקודה
gcloud services api-keys list
תוכלו להציג את רשימת המפתחות בפרויקט.משתמשים בפקודה
gcloud alpha services api-keys update
כדי לציין את האפליקציות ל-Android שבהן אפשר להשתמש במפתח API.מחליפים את הערכים הבאים:
KEY_ID
: המזהה של המפתח שרוצים להגביל.SHA1_FINGERPRINT
ו-PACKAGE_NAME
: הפרטים של האפליקציה ל-Android שבה אפשר להשתמש במפתח.אפשר להוסיף כמה אפליקציות שרוצים, תוך שימוש בדגלי
--allowed-application
נוספים.
gcloud alpha services api-keys update KEY_ID \ --allowed-application=sha1_fingerprint=SHA1_FINGERPRINT_1,package_name=PACKAGE_NAME_1 \ --allowed-application=sha1_fingerprint=SHA1_FINGERPRINT_2,package_name=PACKAGE_NAME_2
REST
מאתרים את המזהה של המפתח שרוצים להגביל.
המזהה הוא לא השם המוצג או מחרוזת המפתח. אפשר לאתר אותו באמצעות method keys.list. המזהה מופיע בשדה
uid
של התשובה.מחליפים את
PROJECT_ID
בשם או במזהה של הפרויקט ב-Google Cloud.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
משתמשים ב-method keys.patch כדי לציין את האפליקציות ל-Android שבהן אפשר להשתמש במפתח API.
בעקבות הבקשה מתקבלת פעולה ממושכת, וצריך לדגום את הפעולה כדי לדעת מתי היא הושלמה ומה הסטטוס שלה.
מחליפים את הערכים הבאים:
SHA1_FINGERPRINT_1
ו-PACKAGE_NAME_1: הפרטים של האפליקציה ל-Android שבה אפשר להשתמש במפתח.אפשר להוסיף את המידע לכמה אפליקציות שרוצים, ולהפריד בין האובייקטים AndroidApplication באמצעות פסיקים. עליכם לפרט בבקשה את כל האפליקציות, והן יחליפו את כל האפליקציות המורשות הקיימות במפתח.
PROJECT_ID
: השם או המזהה של הפרויקט ב-Google Cloud.KEY_ID
: המזהה של המפתח שרוצים להגביל.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "restrictions" : { "androidKeyRestrictions": { "allowedApplications": [ { "sha1Fingerprint": "SHA1_FINGERPRINT_1", "packageName": "PACKAGE_NAME_1" }, ] } } }' \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
למידע נוסף על הוספת הגבלות על אפליקציות ל-Android למפתח באמצעות API ל-REST, תוכלו לקרוא את המאמר הוספת הגבלות על Android במסמכי התיעוד בנושא API של מפתח API.
אפליקציות ל-iOS
תוכלו להגביל את השימוש במפתח API לאפליקציות ספציפיות ל-iOS באמצעות מזהה החבילה של כל אפליקציה.
כדי להגביל את מפתח ה-API לאפליקציה אחת או יותר ל-iOS, תוכלו להשתמש באחת מהאפשרויות הבאות:
מסוף
נכנסים לדף Credentials במסוף Google Cloud:
לוחצים על השם של מפתח ה-API שרוצים להגביל.
בקטע Application restrictions, בוחרים באפשרות iOS apps.
לכל אפליקציה ל-iOS שרוצים להוסיף, לוחצים על Add an item, מזינים את מזהה החבילה ולוחצים על Done.
כדי לשמור את השינויים ולחזור לרשימה של מפתחות ה-API, לוחצים על Save.
gcloud
מאתרים את המזהה של המפתח שרוצים להגביל.
המזהה הוא לא השם המוצג או מחרוזת המפתח. כדי לאתר אותו, בעזרת הפקודה
gcloud services api-keys list
תוכלו להציג את רשימת המפתחות בפרויקט.משתמשים ב-method
gcloud alpha services api-keys update
כדי לציין את האפליקציות ל-iOS שבהן אפשר להשתמש במפתח.מחליפים את הערכים הבאים:
KEY_ID
: המזהה של המפתח שרוצים להגביל.ALLOWED_BUNDLE_ID
: מזהה החבילה של אפליקציה ל-iOS שבה רוצים להשתמש במפתח ה-API הזה.אפשר להוסיף כמה מזהי חבילות שרוצים, ולהפריד ביניהם באמצעות פסיקים.
gcloud alpha services api-keys update KEY_ID \ --allowed-bundle-ids=ALLOWED_BUNDLE_ID_1,ALLOWED_BUNDLE_ID_2
REST
מאתרים את המזהה של המפתח שרוצים להגביל.
המזהה הוא לא השם המוצג או מחרוזת המפתח. אפשר לאתר אותו באמצעות method keys.list. המזהה מופיע בשדה
uid
של התשובה.מחליפים את
PROJECT_ID
בשם או במזהה של הפרויקט ב-Google Cloud.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
משתמשים ב-method keys.patch כדי לציין את האפליקציות ל-iOS שבהן אפשר להשתמש במפתח API.
בעקבות הבקשה מתקבלת פעולה ממושכת, וצריך לדגום את הפעולה כדי לדעת מתי היא הושלמה ומה הסטטוס שלה.
מחליפים את הערכים הבאים:
ALLOWED_BUNDLE_ID
: מזהה החבילה של אפליקציה ל-iOS שבה אפשר להשתמש במפתח.אפשר להוסיף את המידע לכמה אפליקציות שרוצים, ולהפריד בין מזהי החבילות באמצעות פסיקים. עליכם לפרט בבקשה את כל מזהי החבילות, והם יחליפו את כל האפליקציות המורשות הקיימות במפתח.
PROJECT_ID
: השם או המזהה של הפרויקט ב-Google Cloud.KEY_ID
: המזהה של המפתח שרוצים להגביל.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "restrictions" : { "iosKeyRestrictions": { "allowedBundleIds": ["ALLOWED_BUNDLE_ID_1","ALLOWED_BUNDLE_ID_2"] } } }' \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
למידע נוסף על הוספת הגבלות על אפליקציות ל-iOS למפתח באמצעות API ל-REST, תוכלו לקרוא את המאמר הוספת הגבלות על iOS במסמכי התיעוד בנושא API של מפתח API.
הוספת הגבלות על ממשקי API
ההגבלות על ממשקי API מציינות לאילו ממשקי API אפשר לקרוא באמצעות מפתח ה-API.
אפשר להוסיף הגבלות API באמצעות אחת מהאפשרויות הבאות:
מסוף
נכנסים לדף Credentials במסוף Google Cloud:
לוחצים על השם של מפתח ה-API שרוצים להגביל.
בקטע API restrictions, לוחצים על Restrict key.
בוחרים את כל ממשקי ה-API שאפשר לגשת אליהם באמצעות מפתח ה-API שלכם.
כדי לשמור את השינויים ולחזור לרשימה של מפתחות ה-API, לוחצים על Save.
gcloud
מאתרים את המזהה של המפתח שרוצים להגביל.
המזהה הוא לא השם המוצג או מחרוזת המפתח. כדי לאתר אותו, בעזרת הפקודה
gcloud services api-keys list
תוכלו להציג את רשימת המפתחות בפרויקט.משתמשים בפקודה
gcloud alpha services api-keys update
כדי לציין את השירותים שבהם אפשר להשתמש במפתח API לביצוע אימות.מחליפים את הערכים הבאים:
KEY_ID
: המזהה של המפתח שרוצים להגביל.SERVICE_1
,SERVICE_2
: שמות השירותים של ממשקי ה-API שאפשר לגשת אליהם באמצעות המפתח.עליכם לפרט בפקודת העדכון את כל שמות השירותים, והם יחליפו את כל השירותים הקיימים במפתח.
תוכלו למצוא את שם השירות על ידי חיפוש ה-API במרכז הבקרה של ה-API. השמות של שירותים הם מחרוזות כמו
bigquery.googleapis.com
.gcloud alpha services api-keys update KEY_ID \ --api-target=service=SERVICE_1 --api-target=service=SERVICE_2
REST
מאתרים את המזהה של המפתח שרוצים להגביל.
המזהה הוא לא השם המוצג או מחרוזת המפתח. אפשר לאתר אותו באמצעות method keys.list. המזהה מופיע בשדה
uid
של התשובה.מחליפים את
PROJECT_ID
בשם או במזהה של הפרויקט ב-Google Cloud.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
משתמשים ב-method keys.patch כדי לציין את השירותים שבהם אפשר להשתמש במפתח API לביצוע אימות.
בעקבות הבקשה מתקבלת פעולה ממושכת, וצריך לדגום את הפעולה כדי לדעת מתי היא הושלמה ומה הסטטוס שלה.
מחליפים את הערכים הבאים:
SERVICE_1
,SERVICE_2
: שמות השירותים של ממשקי ה-API שאפשר לגשת אליהם באמצעות המפתח.עליכם לפרט בבקשה את כל שמות השירותים, והם יחליפו את כל השירותים הקיימים במפתח.
תוכלו למצוא את שם השירות על ידי חיפוש ה-API במרכז הבקרה של ה-API. השמות של שירותים הם מחרוזות כמו
bigquery.googleapis.com
.PROJECT_ID
: השם או המזהה של הפרויקט ב-Google Cloud.KEY_ID
: המזהה של המפתח שרוצים להגביל.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "restrictions" : { "apiTargets": [ { "service": "SERVICE_1" }, { "service" : "SERVICE_2" }, ] } }' \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
למידע נוסף על הוספת הגבלות על ממשקי API למפתח באמצעות API ל-REST, תוכלו לקרוא את המאמר הוספת הגבלות על ממשקי API במסמכי התיעוד בנושא API של מפתח API.
איתור הפרטים של פרויקט ממחרוזת של מפתח
בעזרת המחרוזת של מפתח API אפשר לדעת לאיזה פרויקט ב-Google Cloud הוא משויך.
מחליפים את הערך KEY_STRING
במחרוזת המפתח עם פרטי הפרויקט הנדרשים.
gcloud
משתמשים בפקודה gcloud alpha services api-keys lookup כדי לאתר את מזהה הפרויקט במחרוזת של מפתח.
gcloud alpha services api-keys lookup KEY_STRING
REST
משתמשים ב-method lookupKey כדי לאתר את מזהה הפרויקט במחרוזת של מפתח.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ "https://apikeys.googleapis.com/v2/keys:lookupKey?keyString=KEY_STRING"
דגימה של פעולות ממושכות
ב-methods של API של מפתח API נעשה שימוש בפעולות ממושכות. אם משתמשים ב-API ל-REST כדי ליצור ולנהל מפתחות API, מבקשת ה-method הראשונית מתקבל אובייקט פעולה. עליכם להשתמש בשם הפעולה כדי לבצע דגימה של הפעולה הממושכת. כשהתהליך הממושך של הבקשה יסתיים, תוכלו לדגום את הפעולה כדי להציג נתונים מהבקשה.
כדי לדגום פעולה ממושכת של API של מפתח API, עליכם להשתמש ב-method operations.get
.
מחליפים את OPERATION_NAME
בשם הפעולה שהתקבל מהפעולה הממושכת. למשל, operations/akmf.p7-358517206116-cd10a88a-7740-4403-a8fd-979f3bd7fe1c
.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ "https://apikeys.googleapis.com/v2/OPERATION_NAME"
מגבלות על מפתחות API
בכל פרויקט ניתן ליצור עד 300 מפתחות API. זוהי מגבלת מערכת ולא ניתן לבקש הגדלה של המכסה.
אם דרושים לכם מפתחות API נוספים, עליכם להשתמש במספר פרויקטים.