ב- Google Cloud, סוכני שירות נוצרים אוטומטית ברמת הפרויקט, ברמת התיקייה וברמת הארגון כשמפעילים את שירותיGoogle Cloud ומשתמשים בהם. לפעמים לסוכני השירות האלה ניתנים אוטומטית גם תפקידים שמאפשרים להם ליצור משאבים בשמכם ולהשתמש בהם.
אם צריך, אפשר גם לבקש מ- Google Cloud ליצור סוכני שירות בשביל שירות מסוים – ברמת הפרויקט, ברמת התיקייה וברמת הארגון – לפני שתשתמשו בו. כשמבקשים מ- Google Cloud ליצור סוכני שירות, אפשר לתת להם תפקידים לפני שמשתמשים בשירות עצמו. אם סוכן השירות עדיין לא נוצר, לא תוכלו להעניק לו תפקידים.
מתי כדאי להשתמש בסוכני שירות? למשל, כשאתם משתמשים באחת מהאסטרטגיות הבאות לניהול מדיניות ההרשאות:
- מסגרת (framework) הצהרתית כמו Terraform: אם ההגדרות ב-Terraform לא כוללות את התפקידים של סוכני השירות, התפקידים האלה יבוטלו כשתיישמו את ההגדרות. אבל אם תיצרו סוכני שירות ותיתנו להם תפקידים בהגדרות של Terraform, התפקידים האלה לא יבוטלו.
- מערכת של כללי מדיניות בקוד, או במילים אחרות, שמירת עותקים של כללי המדיניות הקיימים במאגר של קודים: אם תאפשרו ל- Google Cloud לתת לסוכני שירות תפקידים באופן אוטומטי, התפקידים יופיעו במדיניות ההרשאות בפועל, אבל לא בעותקים של מדיניות ההרשאה שתשמרו בקודים. אם תטפלו בחוסר העקביות הזה, אתם עלולים לבטל את התפקידים האלה בטעות. אבל אם תיצרו סוכני שירות ותיתנו להם תפקידים באופן יזום, תוכלו למנוע הבדלים בין מאגר הקודים שלכם לבין מדיניות ההרשאות בפועל.
כשיוצרים סוכני שירות צריך לתת להם ידנית את התפקידים שהם מקבלים בדרך כלל אוטומטית. אחרת, יכול להיות שחלק מהשירותים לא יפעלו כמו שצריך, כי אותם סוכני שירות לא יקבלו את התפקידים.
לפני שמתחילים
Enable the Resource Manager 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. אבל צריך הרשאות ספציפיות ב-IAM למשימות אחרות שמפורטות כאן:
-
כדי לקבל את ההרשאה שנדרשת להצגת הרשימה של השירותים הזמינים ונקודות הקצה שלהם, צריך לבקש מהאדמין את התפקיד צפייה בשימוש בשירות (
roles/serviceusage.serviceUsageViewer) ב-IAM ברמת הפרויקט, התיקייה או הארגון, בהתאם. להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.התפקיד שמוגדר מראש מכיל את ההרשאה
serviceusage.services.list, שנדרשת כדי להציג את רשימת השירותים הזמינים ונקודות הקצה שלהם.יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים אחרים שמוגדרים מראש.
-
כדי לקבל את ההרשאות שנדרשות בשביל לתת לסוכני שירות גישה, צריך לבקש מהאדמין את תפקידי ה-IAM הבאים ברמת הפרויקט, התיקייה או הארגון, בהתאם:
-
כדי לתת לסוכני שירות גישה לפרויקט:
אדמין IAM של פרויקט (
roles/resourcemanager.projectIamAdmin) -
כדי לתת לסוכני שירות גישה לתיקייה:
אדמין תיקיות (
roles/resourcemanager.folderAdmin) -
כדי לתת לסוכני שירות גישה לפרויקטים, לתיקיות ולארגונים:
אדמין של ארגון (
roles/resourcemanager.organizationAdmin)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקידים המוגדרים מראש מכילים את ההרשאות שנדרשות כדי לתת לסוכני השירות גישה. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי לתת לסוכני השירות גישה, נדרשות ההרשאות הבאות:
-
כדי לתת לסוכני השירות גישה לפרויקט:
-
resourcemanager.projects.getIamPolicy -
resourcemanager.projects.setIamPolicy
-
-
כדי לתת לסוכני השירות גישה לתיקייה:
-
resourcemanager.folders.getIamPolicy -
resourcemanager.folders.setIamPolicy
-
-
כדי לתת לסוכני השירות גישה לארגון:
-
resourcemanager.organizations.getIamPolicy -
resourcemanager.organizations.setIamPolicy
-
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
-
כדי לתת לסוכני שירות גישה לפרויקט:
אדמין IAM של פרויקט (
איך מזהים את סוכני השירות שרוצים ליצור
כדי לזהות את סוכני השירות שרוצים לבקש מ- Google Cloud ליצור ברמת הפרויקט, התיקייה והארגון, מבצעים את הפעולות הבאות:
מכינים את רשימת השירותים שבהם משתמשים ואת נקודות הקצה שלהם ל-API. תוכלו להשתמש באחת מהדרכים הבאות כדי לראות את כל השירותים הזמינים ואת נקודות הקצה שלהם:
המסוף
נכנסים לדף API Library במסוף Google Cloud .
נקודת הקצה ב-API היא Service name בקטע Additional details.
gcloud
הפקודה
gcloud services listמציגה רשימה של כל השירותים שזמינים לפרויקט.לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
-
EXPRESSION: אופציונלי. ביטוי לסינון התוצאות. לדוגמה, אפשר לסנן את כל השירותים שהשמות שלהם מכילים אתgoogleapis.comאבל לא מכילים אתsandbox:name ~ googleapis.com AND name !~ sandbox
כאן תוכלו לראות את רשימת ביטויי הסינון:
gcloud topic filters. -
LIMIT: אופציונלי. המספר המקסימלי של תוצאות בכל רשימה. ערך ברירת המחדל הואunlimited.
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud services list --available --filter='EXPRESSION' --limit=LIMIT
Windows (PowerShell)
gcloud services list --available --filter='EXPRESSION' --limit=LIMIT
Windows (cmd.exe)
gcloud services list --available --filter='EXPRESSION' --limit=LIMIT
התשובה כוללת את השמות והכותרות של כל השירותים הזמינים. נקודת הקצה ב-API היא הערך בשדה
NAME.REST
באמצעות השיטה
services.listב-Service Usage API אפשר לראות את רשימת כל השירותים שזמינים לפרויקט.לפני שמשתמשים בנתוני הבקשה, צריך להחליף את המשתנים הבאים בערכים:
-
RESOURCE_TYPE: סוג המשאב שלגביו רוצים להציג את השירותים הזמינים. אפשר להשתמש ב-projects, ב-foldersאו ב-organizations. -
RESOURCE_ID: המזהה של Google Cloud הפרויקט, התיקייה או הארגון שלגביהם רוצים לראות את רשימת השירותים הזמינים. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמוmy-project. מזהי תיקיות וארגונים מכילים רק ספרות, למשל123456789012. -
PAGE_SIZE: אופציונלי. מספר השירותים שאפשר לכלול בתשובה. ערך ברירת המחדל הוא 50. הערך המקסימלי הוא 200. אם יש יותר שירותים מהגודל של הדף, התשובה תכיל אסימון חלוקה לדפים שבו אפשר להשתמש כדי לטעון את דף התוצאות הבא. -
NEXT_PAGE_TOKEN: אופציונלי. אסימון החלוקה לדפים שהוחזר בתשובה הקודמת בשיטה הזו. אם יש אסימון כזה, רשימת השירותים תתחיל מהמקום שבו הסתיימה הבקשה הקודמת.
שיטת ה-HTTP וכתובת ה-URL:
GET https://serviceusage.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/services?pageSize=PAGE_SIZE&pageToken=NEXT_PAGE_TOKEN
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
התשובה תכיל את השמות והכותרות של כל השירותים שזמינים למשאב. אם יש יותר שירותים מהגודל של הדף, התשובה תכיל אסימון חלוקה לדפים.נקודת הקצה ב-API היא הערך בשדה
name.-
בדף service agent reference, מחפשים את כל נקודות הקצה ל-API.
אם נקודת הקצה מופיעה בטבלה, מאתרים את כל סוכני השירות שלה. אפשר להתעלם מסוכני שירות שכתובת האימייל שלהם מכילה את ה-placeholder של
IDENTIFIER– סוכני השירות האלה מיועדים למשאבים ספציפיים לשירות, ולא לפרויקטים, לתיקיות או לארגונים.מתעדים את הפרטים הבאים לכל סוכן שירות ברמת הפרויקט, התיקייה והארגון:
- הפורמט של כתובת האימייל של סוכן השירות.
- התפקיד שסוכן השירות יקבל, אם יש כזה.
איך יוצרים סוכני שירות
אחרי שהבנתם אילו סוכני שירות צריך ליצור, תוכלו לבקש מ-Google Cloud ליצור אותם.
כשמבקשים מ- Google Cloud ליצור סוכני שירות צריך לתת להם שירות ומשאב. לאחר מכן,הפקודה Google Cloud יוצרת את כל סוכני השירות לאותו שירות ומשאב.
gcloud
מבצעים את הפעולות הבאות לכל שירות שבשבילו רוצים ליצור סוכני שירות:
בודקים את כתובות האימייל של סוכן השירות שרוצים ליצור לשירות. בעזרת ה-placeholders בכתובות האימייל תוכלו לקבוע לאילו משאבים צריך ליצור סוכני שירות:
Placeholder איפה יוצרים סוכני שירות? PROJECT_NUMBERבכל פרויקט שבו משתמשים בשירות FOLDER_NUMBERבכל תיקייה שבה משתמשים בשירות ORGANIZATION_NUMBERבכל ארגון שבו משתמשים בשירות יוצרים סוכני שירות לכל משאב.
משתמשים בפקודה
gcloud beta services identity createכדי ליצור את כל סוכני השירות ל-API ולמשאב שצוינו.לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
-
ENDPOINT: נקודת הקצה ב-API שבשבילה רוצים ליצור סוכן שירות, לדוגמהaiplatform.googleapis.com. -
RESOURCE_TYPE: סוג המשאב שבשבילו רוצים ליצור סוכן שירות. אפשר להשתמש ב-project, ב-folderאו ב-organization. -
RESOURCE_ID: המזהה של Google Cloud הפרויקט, התיקייה או הארגון שבשבילם רוצים ליצור סוכן שירות. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמוmy-project. מזהי תיקיות וארגונים מכילים רק ספרות, למשל123456789012.אפשר ליצור סוכני שירות למשאב אחד בכל פעם. כדי ליצור סוכני שירות למספר משאבים, צריך להריץ את הפקודה לכל משאב בנפרד.
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud beta services identity create --service=ENDPOINT \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud beta services identity create --service=ENDPOINT ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud beta services identity create --service=ENDPOINT ^ --RESOURCE_TYPE=RESOURCE_ID
התשובה תכיל את כתובת האימייל של הסוכן הראשי של השירות. כתובת האימייל הזו כוללת את מספר הפרויקט, התיקייה או הארגון שיצרתם להם סוכני שירות.
אם אין לשירות סוכן ראשי, התשובה לא תכיל כתובת אימייל.
הדוגמה הבאה היא של תשובה לשירות עם סוכן ראשי.
Service identity created: service-232332569935@gcp-sa-aiplatform.iam.gserviceaccount.com
-
אם רוצים, שומרים את כתובת האימייל של סוכן השירות בתשובה. כתובת האימייל הזו מזהה את סוכן השירות הראשי. אפשר להשתמש במזהה הזה כדי לתת תפקידים לסוכן השירות הראשי.
Terraform
במאמר פקודות בסיסיות ב-Terraform מוסבר איך מוסיפים או מסירים הגדרות אישיות ב-Terraform. תוכלו להיעזר גם במשאבי העזרה של ספק ה-Terraform.
מבצעים את הפעולות הבאות לכל שירות שבשבילו רוצים ליצור סוכני שירות:
בודקים את כתובות האימייל של סוכן השירות שרוצים ליצור לשירות. בעזרת ה-placeholders בכתובות האימייל תוכלו לקבוע לאילו משאבים צריך ליצור סוכני שירות:
Placeholder איפה יוצרים סוכני שירות? PROJECT_NUMBERבכל פרויקט שבו משתמשים בשירות FOLDER_NUMBERבכל תיקייה שבה משתמשים בשירות ORGANIZATION_NUMBERבכל ארגון שבו משתמשים בשירות יוצרים סוכני שירות לכל משאב. לדוגמה, הקוד הבא יוצר את כל סוכני השירות ברמת הפרויקט ל-AI Platform:
REST
מבצעים את הפעולות הבאות לכל שירות שבשבילו רוצים ליצור סוכני שירות:
בודקים את כתובות האימייל של סוכן השירות שרוצים ליצור לשירות. בעזרת ה-placeholders בכתובות האימייל תוכלו לקבוע לאילו משאבים צריך ליצור סוכני שירות:
Placeholder איפה יוצרים סוכני שירות? PROJECT_NUMBERבכל פרויקט שבו משתמשים בשירות FOLDER_NUMBERבכל תיקייה שבה משתמשים בשירות ORGANIZATION_NUMBERבכל ארגון שבו משתמשים בשירות יוצרים סוכני שירות לכל משאב.
באמצעות
services.generateServiceIdentityב-Service Usage API אפשר ליצור את כל סוכני השירות ל-API ולמשאב שצוינו.לפני שמשתמשים בנתוני הבקשה, צריך להחליף את המשתנים הבאים בערכים:
-
RESOURCE_TYPE: סוג המשאב שבשבילו רוצים ליצור סוכן שירות. אפשר להשתמש ב-projects, ב-foldersאו ב-organizations. -
RESOURCE_ID: המזהה של Google Cloud הפרויקט, התיקייה או הארגון שבשבילם רוצים ליצור סוכני שירות. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמוmy-project. מזהי תיקיות וארגונים מכילים רק ספרות, למשל123456789012.אפשר ליצור סוכני שירות למשאב אחד בכל פעם. כדי ליצור סוכני שירות למספר משאבים, צריך לשלוח בקשה לכל משאב בנפרד.
-
ENDPOINT: נקודת הקצה ב-API שבשבילה רוצים ליצור סוכן שירות, לדוגמהaiplatform.googleapis.com.
שיטת ה-HTTP וכתובת ה-URL:
POST https://serviceusage.googleapis.com/v1beta1/RESOURCE_TYPE/RESOURCE_ID/services/ENDPOINT:generateServiceIdentity
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
התשובה מכילהOperationשמוסר את סטטוס הבקשה שלכם. כדי לבדוק את סטטוס הפעולה, אפשר להשתמש בשיטהoperations.get.הפעולות שהסתיימו כוללות את כתובת האימייל של הסוכן הראשי של השירות. כתובת האימייל הזו כוללת את מספר הפרויקט, התיקייה או הארגון שיצרתם להם סוכני שירות.
אם אין לשירות סוכן ראשי, התשובה לא תכיל כתובת אימייל.
הדוגמה הבאה היא לפעולה שהסתיימה, ונוצר סוכן ראשי לשירות.
{ "name": "operations/finished.DONE_OPERATION", "done": true, "response": { "@type": "type.googleapis.com/google.api.serviceusage.v1beta1.ServiceIdentity", "email": "service-232332569935@gcp-sa-aiplatform.iam.gserviceaccount.com", "uniqueId": "112245693826560101651" } }-
אם רוצים, שומרים את כתובת האימייל של סוכן השירות בתשובה. כתובת האימייל הזו מזהה את סוכן השירות הראשי. אפשר להשתמש במזהה הזה כדי לתת תפקידים לסוכן השירות הראשי.
איך נותנים תפקידים לסוכני שירות
אחרי ש- Google Cloud יוצר את סוכני השירות הנדרשים לפרויקטים, לתיקיות ולארגונים, תוכלו לתת להם תפקידים באמצעות כתובת האימייל שלהם.
אם ביקשתם מ- Google Cloud ליצור סוכני שירות, עליכם להקצות תפקידים שבדרך כלל מוקצים באופן אוטומטי. אם לא תעשו זאת, ייתכן שחלק מהשירותים לא יפעלו כראוי. הסיבה לכך היא שסוכני שירות שנוצרים לבקשת משתמש לא מקבלים תפקידים באופן אוטומטי.
התפקידים שניתנים אוטומטית מוסברים בחלק איך מזהים את סוכני השירות שרוצים ליצור.
איך מוצאים את כתובת האימייל של סוכן השירות
כדי למצוא את כתובת האימייל של סוכן שירות:
gcloud
אם עדיין לא עשיתם זאת, מחפשים את הפורמט של כתובת האימייל של סוכן השירות. הפורמט הזה מופיע בחומר העזר של סוכן השירות.
מחליפים את ה-placeholders שבכתובת האימייל במספר הפרויקט, התיקייה או הארגון המתאימים.
לחלופין, אם מדובר בסוכן שירות ראשי, תוכלו להפעיל את תהליך היצירה שלו בשביל השירות כדי לקבל את כתובת האימייל. הפקודה להפעלת היצירה מחזירה את כתובת האימייל של סוכן השירות הראשי.
Terraform
במאמר פקודות בסיסיות ב-Terraform מוסבר איך מוסיפים או מסירים הגדרות אישיות ב-Terraform. תוכלו להיעזר גם במשאבי העזרה של ספק ה-Terraform.
אם עדיין לא עשיתם זאת, מחפשים את הפורמט של כתובת האימייל של סוכן השירות. הפורמט הזה מופיע בחומר העזר של סוכן השירות.
מחליפים את ה-placeholders שבכתובת האימייל בביטויים שמפנים למספר הפרויקט, התיקייה או הארגון המתאימים.
נניח, לדוגמה, את הדברים הבאים:
- הפורמט של כתובת האימייל הוא
service-PROJECT_NUMBER@gcp-sa-aiplatform-cc.iam.gserviceaccount.com - סוכן השירות מיועד לפרויקט עם התווית
default
במקרה כזה, כתובת האימייל של סוכן השירות תהיה:
service-${data.google_project.default.number}@gcp-sa-aiplatform-cc.iam.gserviceaccount.com- הפורמט של כתובת האימייל הוא
לחלופין, אם מדובר בסוכן השירות הראשי, תוכלו לקבל את כתובת האימייל שלו מהמאפיין email של המשאב google_project_service_identity.
לדוגמה, אם יש לכם בלוק google_project_service_identity שמסומן בתווית default, תוכלו לקבל את כתובת האימייל של סוכן השירות הראשי באמצעות הביטוי הבא:
${google_project_service_identity.default.email}
REST
אם עדיין לא עשיתם זאת, מחפשים את הפורמט של כתובת האימייל של סוכן השירות. הפורמט הזה מופיע בחומר העזר של סוכן השירות.
מחליפים את ה-placeholders שבכתובת האימייל במספר הפרויקט, התיקייה או הארגון המתאימים.
לחלופין, אם מדובר בסוכן שירות ראשי, תוכלו להפעיל את תהליך היצירה שלו בשביל השירות כדי לקבל את כתובת האימייל. הפקודה להפעלת היצירה מחזירה את כתובת האימייל של סוכן השירות הראשי.
איך נותנים תפקיד לסוכן השירות
אחרי שתמצאו את כתובת האימייל של סוכן השירות, תוכלו לתת לו את התפקיד בדיוק כמו שנותנים תפקידים לכל חשבון משתמש אחר.
המסוף
נכנסים לדף IAM במסוף Google Cloud .
בוחרים פרויקט, תיקייה או ארגון.
לוחצים על Grant Access וממלאים את כתובת האימייל של סוכן השירות.
לוחצים על Select a role (בחירת תפקיד) ומחפשים את התפקיד שרוצים להקצות לפי ההנחיות הבאות:
- שם התפקיד
- המוצר Google Cloud שרוצים להעניק לו גישה
- ההרשאה שרוצים לתת
- התפקיד לביצוע
אם רוצים, מוסיפים תנאי לתפקיד.
לוחצים על Save. לסוכן השירות יינתן התפקיד במשאב.
gcloud
הפקודה add-iam-policy-binding מאפשרת להקצות תפקיד לישות מורשית במהירות.
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
-
RESOURCE_TYPE: סוג המשאב שרוצים לנהל את הגישה אליו. אפשר להשתמש ב-projects, ב-resource-manager foldersאו ב-organizations. -
RESOURCE_ID: מזהה הפרויקט, התיקייה או הארגון ב- Google Cloud . מזהי פרויקטים מכילים אותיות וספרות, למשלmy-project. מזהי תיקיות וארגונים מכילים רק ספרות, למשל123456789012. -
PRINCIPAL: מזהה של חשבון המשתמש או המנוי, שבדרך כלל נראה כך:PRINCIPAL_TYPE:ID. לדוגמה,user:my-user@example.comאוprincipalSet://iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.com. רשימה מלאה של הערכים שיכולים להיות ל-PRINCIPALמופיעה במאמר מזהים של חשבונות משתמשים.בסוג חשבון המשתמש
user, שם הדומיין במזהה צריך להיות של Google Workspace או של Cloud Identity. למידע על הגדרת דומיין ב-Cloud Identity, אפשר לעיין בסקירה כללית של Cloud Identity -
ROLE_NAME: שם התפקיד שרוצים לבטל. צריך להשתמש באחד מהפורמטים הבאים:- תפקידים מוגדרים מראש:
roles/SERVICE.IDENTIFIER - תפקידים בהתאמה אישית ברמת הפרויקט:
projects/PROJECT_ID/roles/IDENTIFIER - תפקידים בהתאמה אישית ברמת הארגון:
organizations/ORG_ID/roles/IDENTIFIER
רשימה של תפקידים מוגדרים מראש מופיעה במאמר הסבר על תפקידים.
- תפקידים מוגדרים מראש:
-
CONDITION: התנאי שרוצים להוסיף לקישור התפקידים. אם לא רוצים להוסיף תנאי, אפשר להשתמש בערךNone. מידע נוסף על התנאים מופיע במאמר סקירה כללית של התנאים.
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud RESOURCE_TYPE add-iam-policy-binding RESOURCE_ID \ --member=PRINCIPAL --role=ROLE_NAME \ --condition=CONDITION
Windows (PowerShell)
gcloud RESOURCE_TYPE add-iam-policy-binding RESOURCE_ID ` --member=PRINCIPAL --role=ROLE_NAME ` --condition=CONDITION
Windows (cmd.exe)
gcloud RESOURCE_TYPE add-iam-policy-binding RESOURCE_ID ^ --member=PRINCIPAL --role=ROLE_NAME ^ --condition=CONDITION
התשובה תכלול את המדיניות המעודכנת של IAM.
Terraform
במאמר פקודות בסיסיות ב-Terraform מוסבר איך מוסיפים או מסירים הגדרות אישיות ב-Terraform. למידע נוסף, ראו את מאמרי העזרה לספקים של Terraform.
REST
כדי לתת תפקיד עם API ל-REST, צריך להשתמש בתבנית read-modify-write:
חשוב לקרוא את מדיניות ההרשאות הנוכחית באמצעות הפקודה
getIamPolicy().באמצעות
getIamPolicyב-Resource Manager API אפשר לקבל את מדיניות ההרשאות של הפרויקט, התיקייה או הארגון.לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
API_VERSION: גרסת ה-API שבה ייעשה שימוש. לפרויקטים ולארגונים, צריך להשתמש ב-v1. לתיקיות, צריך להשתמש ב-v2. -
RESOURCE_TYPE: סוג המשאב שאת המדיניות שלו רוצים לנהל. אפשר להשתמש ב-projects, ב-foldersאו ב-organizations. -
RESOURCE_ID: מזהה הפרויקט, הארגון או התיקייה ב- Google Cloud. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמוmy-project. מזהי תיקיות וארגונים מכילים רק ספרות, למשל123456789012. -
POLICY_VERSION: הגרסה של המדיניות שתוחזר. בבקשות צריך לציין את הגרסה הכי עדכנית של המדיניות (3). פרטים נוספים מופיעים במאמר ציון גרסת מדיניות בזמן אחזור מדיניות.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://cloudresourcemanager.googleapis.com/API_VERSION/RESOURCE_TYPE/RESOURCE_ID:getIamPolicy
תוכן בקשת JSON:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
התשובה תכיל את מדיניות ההרשאות של המשאב. לדוגמה:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/owner", "members": [ "user:my-user@example.com" ] } ] }-
עורכים את מדיניות ההרשאות של המשאב באמצעות כלי לעריכת טקסט או באמצעות תוכנה לעריכת קוד, כדי להוסיף או להסיר חשבונות משתמשים או קישורים בין תפקידים. לדוגמה, תוכלו להוסיף קישור חדש בין תפקידים, להסיר קישורים קיימים ולהוסיף או להסיר חשבונות משתמשים מקישורים קיימים.
מעדכנים את מדיניות ההרשאות החדשה באמצעות הפקודה
setIamPolicy().השיטה
setIamPolicyשל Resource Manager API מגדירה את המדיניות בבקשה כמדיניות ההרשאה החדשה של הפרויקט, התיקייה או הארגון.לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
API_VERSION: גרסת ה-API שבה ייעשה שימוש. לפרויקטים ולארגונים, צריך להשתמש ב-v1. לתיקיות, צריך להשתמש ב-v2. -
RESOURCE_TYPE: סוג המשאב שאת המדיניות שלו רוצים לנהל. אפשר להשתמש ב-projects, ב-foldersאו ב-organizations. -
RESOURCE_ID: מזהה הפרויקט, הארגון או התיקייה ב- Google Cloud. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמוmy-project. מזהי תיקיות וארגונים מכילים רק ספרות, למשל123456789012. -
POLICY: ייצוג ב-JSON של המדיניות שרוצים להגדיר. מידע נוסף על הפורמט של מדיניות מופיע במאמרי העזרה בנושא מדיניות.
שיטת ה-HTTP וכתובת ה-URL:
POST https://cloudresourcemanager.googleapis.com/API_VERSION/RESOURCE_TYPE/RESOURCE_ID:setIamPolicy
תוכן בקשת JSON:
{ "policy": POLICY }כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
התגובה מכילה את מדיניות ההרשאה המעודכנת.
-
המאמרים הבאים
- לצפייה ברשימה של כל נציגי השירות.
- דרכים נוספות שבהן אפשר לתת תפקידים לחשבונות משתמשים
- איך יוצרים חשבונות שירות שהמשתמשים מנהלים, ויכולים לשמש בתור זהויות לעומסי עבודה (workloads).
- שיטות מומלצות לשימוש ב-Terraform ב-Google Cloud
- Google Cloud כל הדוגמאות של Terraform