תיעוד 14
כתובות URL של תבניות אסימוני API
השתמשו בכתובות URL של תבניות כדי ליצור אסימוני API של Cloudflare עם הרשאות שהוגדרו מראש. כתובות URL של תבניות מאפשרות לשתף דרישות אסימון עם משתמשים בלי לבחור הרשאות ידנית בלוח הבקרה.
כתובות URL של תבניות משתמשות בפרמטרי שאילתה כדי למלא מראש את דף יצירת אסימון ה-API בלוח הבקרה של Cloudflare. כשמשתמש פותח כתובת URL של תבנית, לוח הבקרה מגדיר אוטומטית את ההרשאות וההגדרות שצוינו.
Cloudflare תומכת בכתובות URL של תבניות גם עבור אסימוני API של משתמש וגם עבור אסימוני API של חשבון. למידע נוסף על ההבדל בין סוגי האסימונים האלה, עיינו באסימוני API של חשבון.
הערה
כתובות URL של תבניות ממלאות מראש רק את טופס יצירת האסימון. המשתמשים עדיין צריכים להשלים את תהליך יצירת האסימון בלוח הבקרה.
#פורמט כתובת URL לאסימון משתמש
כתובות URL של תבניות לאסימון משתמש פותחות את טופס יצירת האסימון ברמת פרופיל המשתמש (/profile/api-tokens). אסימונים שנוצרים כך בבעלות המשתמש.
מבנה כתובת ה-URL הבסיסי של התבנית הוא:
https://dash.cloudflare.com/profile/api-tokens?permissionGroupKeys=[ENCODED_PERMISSIONS]&accountId=*&zoneId=all&name=[TOKEN_NAME]#רכיבי כתובת ה-URL
| פרמטר | חובה | תיאור |
|---|---|---|
permissionGroupKeys | כן | מערך JSON מקודד ל-URL של אובייקטי הרשאה |
accountId | כן | היקף חשבון (השתמשו ב-* עבור כל החשבונות) |
zoneId | כן | היקף אזור (השתמשו ב-all עבור כל האזורים) |
name | לא | שם אסימון שמולא מראש |
#פורמט כתובת URL לאסימון חשבון
כתובות URL של תבניות לאסימון חשבון פותחות את טופס יצירת האסימון ברמת החשבון. אסימונים שנוצרים כך בבעלות החשבון (אסימוני service principal) ואינם קשורים למשתמש מסוים. עיינו באסימוני API של חשבון לדרישות תפקיד והרשאה.
מבנה כתובת ה-URL הבסיסי של התבנית הוא:
https://dash.cloudflare.com/?to=/:account/api-tokens&permissionGroupKeys=[ENCODED_PERMISSIONS]&name=[TOKEN_NAME]קטע :account הוא מציין מקום. כשמשתמש פותח את כתובת ה-URL, לוח הבקרה מבקש ממנו לבחור חשבון אם יש לו גישה ליותר מחשבון אחד.
#רכיבי כתובת ה-URL
| פרמטר | חובה | תיאור |
|---|---|---|
permissionGroupKeys | כן | מערך JSON מקודד ל-URL של אובייקטי הרשאה |
name | לא | שם אסימון שמולא מראש |
הערה
כתובות URL של תבניות לאסימון חשבון אינן משתמשות בפרמטרים accountId או zoneId. היקף המשאבים לאסימוני חשבון מוגדר במהלך יצירת האסימון בלוח הבקרה.
#פורמט הרשאה
גם כתובות URL של תבניות לאסימון משתמש וגם כתובות URL של תבניות לאסימון חשבון משתמשות באותו קידוד הרשאות: מערך JSON עם המבנה הבא.
[{ "key": "permission_name", "type": "read|edit|revoke|run|purge" }]שני סוגי האסימונים פותרים את הרשומות האלה באופן שונה, כמתואר בסעיפים הבאים.
עבור כתובות URL של אסימון חשבון, כל key יכול להיות מפתח הרשאה קצר (לדוגמה, dns) או מזהה קבוצת הרשאות. השימוש במזהה קבוצת ההרשאות הוא האפשרות האמינה ביותר, כי הוא ממופה בדיוק לקבוצה אחת. עיינו בשימוש במזהי קבוצות הרשאות.
עבור כתובות URL של אסימון משתמש, כל key חייב להיות מפתח הרשאה קצר שתואם בדיוק ל-name של קבוצה, וה-type חייב להיות edit (ולא write), read, revoke, run או purge. מזהי קבוצות הרשאות אינם נתמכים, וכל רשומה שאינה תואמת מושמטת בשקט.
#סוגי הרשאות
| סוג | תיאור |
|---|---|
read | גישת קריאה בלבד |
edit | גישה מלאה (יצירה, קריאה, עדכון, מחיקה) |
revoke | הרשאות ביטול |
run | הרשאות הרצה |
purge | הרשאות ניקוי |
#שימוש במזהי קבוצות הרשאות
הערה
מזהי קבוצות הרשאות נתמכים רק בכתובות URL של אסימון חשבון. כתובות URL של אסימון משתמש חייבות להשתמש במפתחות קצרים.
כדי לפנות לכל קבוצת הרשאות בכתובת URL של אסימון חשבון, כולל קבוצות שאין להן מפתח קצר בהפניית ההרשאות, השתמשו במזהה קבוצת ההרשאות שלה בתור key:
[{ "key": "82e64a83756745bbbb1c9c2701bf816b", "type": "edit" }]מזהי קבוצות הרשאות הם המזהה היציב והקנוני של קבוצת הרשאות. אלה אותם מזהים שנקודת הקצה Create token וספק Terraform של Cloudflare מקבלים, כך שכתובת URL של תבנית יכולה לבחור מראש כל קבוצת הרשאות לפי מזהה. מכיוון שהמזהה מציין קבוצה מסוימת אחת, שדה type מתעלם כשמעבירים מזהה.
אפשר לשלב כמה מזהים באותו מערך, בדיוק כמו עם מפתחות קצרים:
[
{ "key": "e086da7e2179491d91ee5f35b3ca210a", "type": "edit" },
{ "key": "7cf72faf220841aabcfdfab81c43c4f6", "type": "read" }
]מכיוון שכתובות URL של אסימון חשבון יוצרות אסימונים בבעלות החשבון, חפשו את מזהי קבוצות ההרשאות שלהן באמצעות נקודת הקצה List permission groups בהיקף החשבון. הבקשה זקוקה לאסימון עם הרשאת החשבון API Tokens Read:
curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/tokens/permission_groups" \
--header "Authorization: Bearer <API_TOKEN>"עבור אסימוני משתמש, השתמשו במקום זאת בנקודת הקצה בהיקף המשתמש, שמחזירה את קבוצות ההרשאות הזמינות לאסימוני משתמש:
curl "https://api.cloudflare.com/client/v4/user/tokens/permission_groups" \
--header "Authorization: Bearer <API_TOKEN>"כל תוצאה כוללת את id ואת name של קבוצת ההרשאות. גם הפניית הרשאות אסימון API מפרטת את המזהים האלה.
#יצירת תבניות מותאמות
#1. זיהוי ההרשאות הנדרשות
פרטו את ההרשאות שמקרה השימוש שלכם צריך. עיינו בטבלת הפניית ההרשאות.
#2. יצירת ה-JSON של ההרשאות
עצבו את ההרשאות כמערך JSON:
[
{ "key": "dns", "type": "edit" },
{ "key": "analytics", "type": "read" }
]#3. קידוד ה-JSON ל-URL
השתמשו במקודד URL כדי להמיר את מחרוזת ה-JSON:
%5B%7B%22key%22%3A%22dns%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22analytics%22%2C%22type%22%3A%22read%22%7D%5D#4. בניית כתובת ה-URL המלאה
עבור אסימון משתמש, שלבו את כל הרכיבים לכתובת ה-URL הסופית של התבנית:
https://dash.cloudflare.com/profile/api-tokens?permissionGroupKeys=[ENCODED_JSON]&accountId=*&zoneId=all&name=Custom%20Tokenעבור אסימון חשבון, השתמשו במקום זאת בנתיב ברמת החשבון:
https://dash.cloudflare.com/?to=/:account/api-tokens&permissionGroupKeys=[ENCODED_JSON]&name=Custom%20Token#הפניית הרשאות
השתמשו בטבלה הזו כדי למצוא מפתחות הרשאה לתבניות המותאמות שלכם.
#הרשאות חשבון
| מפתח הרשאה | תיאור | מקרי שימוש נפוצים |
|---|---|---|
account_analytics | אנליטיקה של חשבון | דיווח, ניטור |
account_api_tokens | ניהול אסימוני API | אוטומציה של אסימונים |
account_settings | תצורת חשבון | ניהול חשבון |
billing | פרטי חיוב | מעקב עלויות, הפקת חשבוניות |
workers_scripts | סקריפטים של Workers | פונקציות ללא שרת |
workers_kv_storage | אחסון Workers KV | אחסון נתונים |
workers_routes | נתיבי Workers | ניתוב תעבורה |
workers_r2 | אחסון R2 | אחסון אובייקטים |
d1 | מסד נתונים D1 | מסדי נתונים של SQL |
queues | תורים | תורי הודעות |
page | Cloudflare Pages | פריסות דפים |
stream | Stream | הזרמת וידאו |
images | Images | אופטימיזציית תמונות |
account_logs | יומנים | ניהול יומנים |
#הרשאות אזור
| מפתח הרשאה | תיאור | מקרי שימוש נפוצים |
|---|---|---|
dns | רשומות DNS | ניהול דומיינים |
zone | ניהול אזור | תצורת דומיין |
zone_settings | הגדרות אזור | תצורת אזור |
analytics | אנליטיקה של אזור | ניטור ביצועים |
firewall_services | כללי חומת אש | ניהול אבטחה |
page_rules | כללי דף | בקרת תעבורה |
cache | ניקוי מטמון | עדכוני תוכן |
ssl_and_certificates | אישורי SSL/TLS | ניהול אישורים |
logs | יומנים | ניהול יומנים |
#הרשאות Access
| מפתח הרשאה | תיאור | מקרי שימוש נפוצים |
|---|---|---|
access | יישומי Access | יישומי Zero Trust |
access_acct | ארגוני Access | ניהול זהויות |
access_audit_log | יומני ביקורת של Access | תאימות, אבטחה |
access_custom_page | דפים מותאמים | מיתוג, חוויית משתמש |
teams | Zero Trust | Gateway, CASB, DLP |
#תבניות הרשאה נפוצות
השתמשו בכתובות ה-URL האלה של תבניות מוכנות לשימוש עבור תרחישים נפוצים. כל דוגמה מספקת גם כתובת URL של אסימון משתמש וגם כתובת URL של אסימון חשבון.
#ניהול DNS
צרו אסימונים לניהול רשומות DNS.
#אסימון משתמש
| מקרה שימוש | כתובת URL של תבנית |
|---|---|
| קריאה בלבד של DNS | https://dash.cloudflare.com/profile/api-tokens?permissionGroupKeys=%5B%7B%22key%22%3A%22dns%22%2C%22type%22%3A%22read%22%7D%5D&accountId=%2A&zoneId=all&name=DNS%20Read%20Token |
| קריאה וכתיבה של DNS | https://dash.cloudflare.com/profile/api-tokens?permissionGroupKeys=%5B%7B%22key%22%3A%22dns%22%2C%22type%22%3A%22edit%22%7D%5D&accountId=%2A&zoneId=all&name=DNS%20Management%20Token |
#אסימון חשבון
| מקרה שימוש | כתובת URL של תבנית |
|---|---|
| קריאה בלבד של DNS | https://dash.cloudflare.com/?to=/:account/api-tokens&permissionGroupKeys=%5B%7B%22key%22%3A%22dns%22%2C%22type%22%3A%22read%22%7D%5D&name=DNS%20Read%20Token |
| קריאה וכתיבה של DNS | https://dash.cloudflare.com/?to=/:account/api-tokens&permissionGroupKeys=%5B%7B%22key%22%3A%22dns%22%2C%22type%22%3A%22edit%22%7D%5D&name=DNS%20Management%20Token |
#פיתוח Workers
צרו אסימונים עבור Workers, אחסון KV ושירותים קשורים.
#אסימון משתמש
| מקרה שימוש | כתובת URL של תבנית |
|---|---|
| סקריפטים של Workers בלבד | https://dash.cloudflare.com/profile/api-tokens?permissionGroupKeys=%5B%7B%22key%22%3A%22workers_scripts%22%2C%22type%22%3A%22edit%22%7D%5D&accountId=%2A&zoneId=all&name=Workers%20Scripts%20Token |
| גישה מלאה ל-Workers | https://dash.cloudflare.com/profile/api-tokens?permissionGroupKeys=%5B%7B%22key%22%3A%22workers_scripts%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22workers_kv_storage%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22workers_routes%22%2C%22type%22%3A%22edit%22%7D%5D&accountId=%2A&zoneId=all&name=Workers%20Full%20Access%20Token |
#אסימון חשבון
| מקרה שימוש | כתובת URL של תבנית |
|---|---|
| סקריפטים של Workers בלבד | https://dash.cloudflare.com/?to=/:account/api-tokens&permissionGroupKeys=%5B%7B%22key%22%3A%22workers_scripts%22%2C%22type%22%3A%22edit%22%7D%5D&name=Workers%20Scripts%20Token |
| גישה מלאה ל-Workers | https://dash.cloudflare.com/?to=/:account/api-tokens&permissionGroupKeys=%5B%7B%22key%22%3A%22workers_scripts%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22workers_kv_storage%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22workers_routes%22%2C%22type%22%3A%22edit%22%7D%5D&name=Workers%20Full%20Access%20Token |
#אנליטיקה וניטור
צרו אסימונים לגישה לאנליטיקה וליומנים.
#אסימון משתמש
| מקרה שימוש | כתובת URL של תבנית |
|---|---|
| אנליטיקה של חשבון | https://dash.cloudflare.com/profile/api-tokens?permissionGroupKeys=%5B%7B%22key%22%3A%22account_analytics%22%2C%22type%22%3A%22read%22%7D%5D&accountId=%2A&zoneId=all&name=Account%20Analytics%20Token |
| אנליטיקה של אזור | https://dash.cloudflare.com/profile/api-tokens?permissionGroupKeys=%5B%7B%22key%22%3A%22analytics%22%2C%22type%22%3A%22read%22%7D%5D&accountId=%2A&zoneId=all&name=Zone%20Analytics%20Token |
#אסימון חשבון
| מקרה שימוש | כתובת URL של תבנית |
|---|---|
| אנליטיקה של חשבון | https://dash.cloudflare.com/?to=/:account/api-tokens&permissionGroupKeys=%5B%7B%22key%22%3A%22account_analytics%22%2C%22type%22%3A%22read%22%7D%5D&name=Account%20Analytics%20Token |
| אנליטיקה של אזור | https://dash.cloudflare.com/?to=/:account/api-tokens&permissionGroupKeys=%5B%7B%22key%22%3A%22analytics%22%2C%22type%22%3A%22read%22%7D%5D&name=Zone%20Analytics%20Token |
#ניהול Zero Trust
צרו אסימונים לניהול Cloudflare Zero Trust.
#אסימון משתמש
| מקרה שימוש | כתובת URL של תבנית |
|---|---|
| קריאת יישומי Access | https://dash.cloudflare.com/profile/api-tokens?permissionGroupKeys=%5B%7B%22key%22%3A%22access%22%2C%22type%22%3A%22read%22%7D%5D&accountId=%2A&zoneId=all&name=Access%20Read%20Token |
| ניהול מלא של Access | https://dash.cloudflare.com/profile/api-tokens?permissionGroupKeys=%5B%7B%22key%22%3A%22access%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22access_acct%22%2C%22type%22%3A%22edit%22%7D%5D&accountId=%2A&zoneId=all&name=Access%20Management%20Token |
#אסימון חשבון
| מקרה שימוש | כתובת URL של תבנית |
|---|---|
| קריאת יישומי Access | https://dash.cloudflare.com/?to=/:account/api-tokens&permissionGroupKeys=%5B%7B%22key%22%3A%22access%22%2C%22type%22%3A%22read%22%7D%5D&name=Access%20Read%20Token |
| ניהול מלא של Access | https://dash.cloudflare.com/?to=/:account/api-tokens&permissionGroupKeys=%5B%7B%22key%22%3A%22access%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22access_acct%22%2C%22type%22%3A%22edit%22%7D%5D&name=Access%20Management%20Token |
#שיטות עבודה מומלצות
עקבו אחר ההנחיות האלה בעת יצירה ושיתוף של כתובות URL של תבניות.
- עקרון ההרשאה המזערית: בקשו רק את ההרשאות המינימליות הנחוצות למקרה השימוש שלכם. זה מפחית סיכוני אבטחה אם אסימון נפגע.
- השתמשו בשמות אסימון תיאוריים: כללו שמות ברורים ותיאוריים בכתובות ה-URL של התבניות כדי לעזור למשתמשים להבין את מטרת האסימון.
- תעדו את השימוש באסימון: ספקו תיעוד ברור על השימוש בכל אסימון ועל אופן הביטול שלו כשאין בו עוד צורך.
- החלפת אסימונים סדירה: עודדו משתמשים להחליף אסימונים באופן סדיר ולבדוק הרשאות.
- בדיקה לפני שיתוף: תמיד בדקו כתובות URL של תבניות בסביבת staging לפני שיתוף עם משתמשים.
#פתרון בעיות
עיינו ברשימת הבעיות הנפוצות והפתרונות.
| בעיה | פתרון |
|---|---|
| כתובת ה-URL אינה ממלאת מראש הרשאות | ודאו שה-JSON מקודד כראוי ל-URL |
| הרשאות חסרות | בדקו מפתחות הרשאה מול טבלת ההפניה, או פנו לקבוצה לפי מזהה קבוצת ההרשאות שלה |
| שם האסימון אינו מופיע | ודאו שפרמטר השם מקודד ל-URL |
| שגיאת גישה נדחתה | ודאו שלמשתמש יש את ההרשאות הנדרשות בחשבון שלו |
עבור כתובות URL של אסימון חשבון, כשכתובת URL של תבנית מכילה מפתח שלא ניתן לפתור, או שערך permissionGroupKeys אינו JSON תקין, לוח הבקרה עדיין פותח את טופס יצירת האסימון עם מה שהצליח לפתור ומציג הודעה שמציינת את המפתחות שלא ניתן היה להחיל. הוא אינו מפנה בחזרה לרשימת האסימונים, כך שמפתח עם שגיאת הקלדה מופיע בטופס במקום להיכשל בשקט.
עבור כתובות URL של אסימון משתמש, רשומות שלא נפתרו מושמטות בשקט ולא מוצגת הודעה, לכן ודאו כל מפתח מול הפניית ההרשאות לפני שיתוף כתובת ה-URL.
בנוסף, עיינו ברשימת הבדיקה לפני שיתוף כתובת URL של תבנית.
- כל מפתחות ההרשאה נכונים
- תחביר ה-JSON תקין
- קידוד ה-URL תקין
- שם האסימון תיאורי
- ההרשאות עוקבות אחר עקרון ההרשאה המזערית