בדף הזה מוסבר איך להעניק תפקידים במערכת לניהול הזהויות והרשאות הגישה (IAM) לחשבונות משתמשים במשאבים של Secure Source Manager. מידע על הקצאת תפקידים למשאבים אחרים של Google Cloud זמין במאמר ניהול הגישה לפרויקטים, לתיקיות ולארגונים.
למאגרים ולמופעים של Secure Source Manager יש תפקידים משלהם. בפעם הראשונה שאתם מקצים תפקידים למכונה בפרויקט, אתם צריכים להשתמש בכלי ה-CLI של gcloud או ב-API בארכיטקטורת REST. אפשר להקצות תפקידים במאגר באמצעות ה-CLI של gcloud, API בארכיטקטורת REST או ממשק האינטרנט של Secure Source Manager.
אחרי שמקצים תפקיד ב-Secure Source Manager באמצעות ה-CLI של gcloud, ממשק האינטרנט או API בארכיטקטורת REST, התפקיד מופיע בפרויקט במסוף Google Cloud .
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות לעדכון מדיניות ה-IAM במכונה או במאגר, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
-
מקצים תפקידים ב-IAM למופע:
בעלים של מופע Secure Source Manager (
roles/securesourcemanager.instanceOwner) במופע Secure Source Manager -
הקצאת תפקידי IAM במאגר:
Secure Source Manager Repo Admin (
roles/securesourcemanager.repoAdmin) במאגר
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
במאמרים בקרת גישה באמצעות IAM והענקת גישה של משתמשים למופע מוסבר איך נותנים תפקידים ב-Secure Source Manager.
ציון של גורמים מרכזיים
חשבון משתמש מייצג זהות שיכולה לגשת למשאב. לכל חשבון משתמש יש מזהה משלו. מזהי החשבונות הראשיים מופיעים בפורמט הבא:
PRINCIPAL-TYPE:ID
לדוגמה, user:my-user@example.com. מידע נוסף על חשבונות משתמשים זמין במאמר איך IAM עובד.
בסוג חשבון המשתמש user, שם הדומיין במזהה חייב להיות דומיין של Google Workspace או דומיין של Cloud Identity, אלא אם אתם משתמשים באיחוד זהויות של כוח העבודה. במאמר סקירה כללית על Cloud Identity מוסבר איך מגדירים דומיין ב-Cloud Identity.
גורמים ראשיים באיחוד שירותי אימות הזהות של כוח העבודה
אם משתמשים באיחוד שירותי אימות הזהות של כוח העבודה כדי לגשת ל-Secure Source Manager, חשבונות המשתמשים מיוצגים בצורה שונה. מידע נוסף על מתן גישה לחשבונות משתמש שמייצגים קבוצות של זהויות זמין במאמר ייצוג משתמשים במאגר זהויות של כוח העבודה בכללי המדיניות של IAM.
לדוגמה, הפקודה הבאה מעניקה למשתמש user@example.com את התפקיד Instance Accessor (roles/securesourcemanager.instanceAccessor) במאגר כוח האדם my-pool במופע my-instance בפרויקט my-project באזור us-central1:
gcloud source-manager instances add-iam-policy-binding my-instance \
--project=my-project \
--region=us-central1 \
--member=principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/user@example.com \
--role=roles/securesourcemanager.instanceAccessor
אתם יכולים להעניק הרשאות למשתמשים או לקבוצות במאגר הזהויות של כוח העבודה על סמך המאפיינים של ספק הזהויות (IdP), או להשתמש ב-Common Expression Language (CEL) כדי למפות את מאפייני ה-OIDC למאפיינים מותאמים אישית, וכך להגדיר אסטרטגיית הרשאות במדיניות IAM. מידע נוסף על מיפוי מאפיינים זמין במאמר מיפוי מאפיינים.
הענקה או ביטול של תפקידים במופע
כדי להעניק או לבטל תפקידים של ישויות מורשות במופע, משתמשים ב-CLI של gcloud או ב-Secure Source Manager API.
gcloud
כדי להקצות תפקיד לחשבון ראשי במופע, מריצים את הפקודה הבאה:
gcloud source-manager instances add-iam-policy-binding INSTANCE_ID \ --project=PROJECT_ID \ --region=REGION \ --member=PRINCIPAL \ --role=ROLE_NAMEמחליפים את מה שכתוב בשדות הבאים:
INSTANCE_IDבמזהה המופע.-
PROJECT_IDבמזהה הפרויקט או במספר הפרויקט של המופע. REGIONעם האזור שבו נמצאת המכונה. במאמרי העזרה בנושא מיקומים מפורטים האזורים שבהם Secure Source Manager זמין.-
PRINCIPALעם החשבון הראשי שרוצים להקצות לו את התפקיד. לדוגמה,user:my-user@example.com. -
ROLE_NAMEבשם התפקיד שרוצים להעניק. לדוגמה,roles/securesourcemanager.instanceOwner.
כדי לבטל תפקיד שניתן לחשבון ראשי במופע, מריצים את הפקודה הבאה:
gcloud source-manager instances remove-iam-policy-binding INSTANCE_ID \ --project=PROJECT_ID \ --region=REGION \ --member=PRINCIPAL \ --role=ROLE_NAMEמחליפים את מה שכתוב בשדות הבאים:
INSTANCE_IDבמזהה המופע.-
PROJECT_IDבמזהה הפרויקט או במספר הפרויקט של המופע. REGIONעם האזור שבו נמצאת המכונה.-
PRINCIPALעם החשבון הראשי שרוצים לבטל את התפקיד שלו. לדוגמה,user:my-user@example.com. -
ROLE_NAMEבשם התפקיד שרוצים לבטל. לדוגמה,roles/securesourcemanager.instanceOwner.
API
מריצים את הפקודה הבאה
instances.getIamPolicyכדי לקרוא את המדיניות הנוכחית:curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://securesourcemanager.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_ID:getIamPolicy > /tmp/instance.jsonמחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_IDמזהה הפרויקט או מספר הפרויקט של המופע. REGIONהאזור שבו המופע נמצא. במאמרי העזרה בנושא מיקומים מפורטים האזורים שבהם Secure Source Manager זמין.INSTANCE_IDמזהה המופע.
הפלט יכלול את כל הקישורים הקיימים, או, אם אין קישורים כאלה, את הערך
etagבדומה לזה:{ "etag": "BwUjHYKJUiQ=" }-
באופן פרוגרמטי או באמצעות כלי לעריכת טקסט, משנים את העותק המקומי של מדיניות ההרשאה של המופע כך שישקף את התפקידים שרוצים להקצות או לבטל.
כדי לוודא שאתם לא דורסים שינויים אחרים שנעשו, אל תערכו או תסירו את השדה
etagבמדיניות ההרשאות. השדהetagמשמש לזיהוי המצב הנוכחי של מדיניות ההרשאות. כשמגדירים את מדיניות ההרשאות המעודכנת, מתבצעת השוואה של הערך שלetagמהבקשה ב-IAM לערך הקיים שלetag. מדיניות ההרשאות תיכתב רק אם הערכים תואמים.כדי לערוך את התפקידים שהמדיניות מאפשרת, צריך לערוך את קישור התפקידים במדיניות ההרשאה. קישורי התפקידים מופיעים בפורמט הבא:
{ "role": "ROLE_NAME", "members": [ "PRINCIPAL_1", "PRINCIPAL_2", ... "PRINCIPAL_N" ] }מחליפים את ה-placeholders בערכים הבאים:
ROLE_NAME: שם התפקיד שרוצים לתת. צריך להשתמש בפורמט הבא:roles/securesourcemanager.IDENTIFIER
PRINCIPAL_1, PRINCIPAL_2ו-...PRINCIPAL_N: מזהי החשבונות הראשיים שאתם רוצים לתת להם את התפקיד.
לדוגמה, המדיניות הבאה מעניקה את התפקיד
instanceOwnerל-user1@gmail.com, ואת התפקידinstanceManagerלמשתמשיםuser2@gmail.comו-user3@gmail.comולחשבון השירותmy-other-app@appspot.gserviceaccount.com.{ "policy": { "etag": "BwUjHYKJUiQ=", "bindings": [ { "role": "roles/securesourcemanager.instanceOwner", "members": [ "user:user1@gmail.com" ] }, { "role": "roles/resourcemanager.instanceManager", "members": [ "user:user2@gmail.com", "user:user3@gmail.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] } ] } }אחרי שמשנים את מדיניות ההרשאות ונותנים או מבטלים את התפקידים הרצויים, צריך לבצע קריאה אל
instances.setIamPolicy()כדי שהשינויים יתעדכנו.משתמשים בפקודה
instances.setIamPolicyהבאה כדי להגדיר את המדיניות החדשה במופע.curl \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://securesourcemanager.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_ID:setIamPolicy \ -d @/tmp/instance.jsonמחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_IDמזהה הפרויקט או מספר הפרויקט של המופע. REGIONהאזור שבו נמצא המופע. במאמרי העזרה בנושא מיקומים מפורטים האזורים שבהם Secure Source Manager זמין.INSTANCE_IDמזהה המופע.
-
איך נותנים או מבטלים תפקידים במאגר
כדי להעניק או לבטל תפקידים במאגר למשתמשים ולחשבונות שירות, אפשר להקצות אותם מממשק האינטרנט של Secure Source Manager, או להשתמש ב-API של Secure Source Manager כדי לעדכן את מדיניות ההרשאות של המאגר. כדי להקצות תפקידים במאגר לקבוצות, צריך להשתמש ב-Secure Source Manager API.
צריך להקצות למשתמשים תפקיד במופע לפני שאפשר להקצות להם תפקידים במאגר. מידע על הקצאת תפקידים למופעים מופיע במאמר הקצאה או ביטול של תפקידים למופעים.
ממשק אינטרנט
כדי להעניק למשתמשים או לחשבונות שירות תפקידים ברמת המאגר באמצעות ממשק האינטרנט:
- עוברים אל כתובת ה-URL של המכונה שסופקה על ידי איש הקשר שלכם ב-Google.
- בדף My repositories (המאגרים שלי), בוחרים את המאגר הרצוי.
- לוחצים על הכרטיסייה Permissions.
- בקטע People and permissions (אנשים והרשאות), לוחצים על Add users (הוספת משתמשים).
- בשדה Add principal, מזינים את כתובת האימייל של המשתמש או של חשבון השירות שרוצים להעניק לו את התפקיד.
- בתפריט הקצאת תפקיד, בוחרים את התפקיד שרוצים להקצות.
- לוחצים על Save.
כדי להוסיף עוד תפקידים, לוחצים על סמל העריכה Edit ומוסיפים את התפקידים באמצעות התפריט Assign a role.
API
ה-method repositories.getIamPolicy של Secure Source Manager API מחזירה את מדיניות ההרשאות של המאגר.
- מריצים את הפקודה
repositories.getIamPolicyהבאה כדי לקרוא את המדיניות הנוכחית ולשמור אותה ב-/tmp/repository.json:
curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://securesourcemanager.googleapis.com/v1/projects/REPOSITORY_PROJECT/locations/REGION/repositories/REPOSITORY_ID:getIamPolicy > /tmp/repository.json
מחליפים את מה שכתוב בשדות הבאים:
-
REPOSITORY_PROJECTמזהה הפרויקט או מספר הפרויקט של המאגר. -
REGIONהאזור שבו נמצא המאגר. REPOSITORY_IDמזהה המאגר.
הפלט יכלול את כל הקישורים הקיימים, או, אם אין קישורים כאלה, את הערך etag
בדומה לזה:
{
"etag": "BwUjHYKJUiQ="
}
כדי להקצות או לבטל תפקידים, עורכים את העותק המקומי של מדיניות ההרשאות של המאגר ששמור ב-
/tmp/repository.jsonבאמצעות עורך טקסט או באופן פרוגרמטי.כדי לוודא שאתם לא דורסים שינויים אחרים שנעשו, אל תערכו או תסירו את השדה
etagבמדיניות ההרשאות. השדהetagמשמש לזיהוי המצב הנוכחי של מדיניות ההרשאות. כשמגדירים את מדיניות ההרשאות המעודכנת, מתבצעת השוואה של הערך שלetagמהבקשה ב-IAM לערך הקיים שלetag. מדיניות ההרשאות תיכתב רק אם הערכים תואמים.כדי לערוך את התפקידים שהמדיניות מאפשרת, צריך לערוך את קישור התפקידים במדיניות ההרשאה. קישורי התפקידים מופיעים בפורמט הבא:
{ "role": "ROLE_NAME", "members": [ "PRINCIPAL_1", "PRINCIPAL_2", ... "PRINCIPAL_N" ] }מחליפים את ה-placeholders בערכים הבאים:
ROLE_NAME: שם התפקיד שרוצים לתת. צריך להשתמש בפורמט הבא:roles/securesourcemanager.<var>IDENTIFIER</var>
PRINCIPAL_1, PRINCIPAL_2ו-...PRINCIPAL_N: מזהי החשבונות הראשיים שאתם רוצים לתת להם את התפקיד.
בדוגמה הבאה, התפקיד
repoAdminמוקצה למשתמשemail1@gmail.com, והתפקידrepoWriterמוקצה למשתמשיםemail2@gmail.com, group1@gmail.comולחשבון השירותmy-other-app@appspot.gserviceaccount.com.{ "policy": { "etag": "BwUjHYKJUiQ=", "bindings": [ { "role": "roles/securesourcemanager.repoAdmin", "members": [ "user:email1@gmail.com" ] }, { "role": "roles/resourcemanager.repoWriter", "members": [ "user:email2@gmail.com", "group:group1@gmail.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] } ] } }שומרים את קובץ ה-
/tmp/repository.jsonהערוך.מגדירים את המדיניות החדשה באמצעות הפקודה
setIamPolicy:curl \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://securesourcemanager.googleapis.com/v1/projects/REPOSITORY_PROJECT/locations/REGION/repositories/REPOSITORY_ID:setIamPolicy \ -d @/tmp/repository.jsonמחליפים את מה שכתוב בשדות הבאים:
-
REPOSITORY_PROJECTמזהה הפרויקט או מספר הפרויקט של המאגר. -
REGIONהאזור שבו נמצא המאגר. במאמרי העזרה בנושא מיקומים מפורטים האזורים שבהם Secure Source Manager זמין. REPOSITORY_IDמזהה המאגר.
-