הגבלת השיתוף לפי דומיין מאפשרת להגביל את שיתוף המשאבים בהתאם למשאב הארגון או הדומיין. כשהגדרת השיתוף מוגבלת לדומיין, רק חשבונות ראשיים ששייכים לדומיינים או לארגונים מורשים יכולים לקבל תפקידי IAM בארגון Google Cloud .
יש שלושה סוגים של כללי מדיניות של הארגון שבהם אפשר להשתמש כדי להגביל זהויות לפי דומיין:
- האילוץ המנוהל
iam.managed.allowedPolicyMembers - כללי מדיניות מותאמים אישית של הארגון שמפנים למשאב
iam.googleapis.com/AllowPolicy - האילוץ המנוהל הקודם
iam.allowedPolicyMemberDomains
לפני שמתחילים
בוחרים את השיטה שבה רוצים להטמיע את הגבלת השיתוף בדומיין. למידע נוסף על היתרונות והחסרונות של כל שיטה, קראו את המאמר שיטות להגבלת השיתוף לפי דומיין.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות לאכיפת שיתוף שמוגבל לדומיין, אתם צריכים לבקש מהאדמין לתת לכם את התפקיד אדמין של מדיניות הארגון (roles/orgpolicy.policyAdmin) ב-IAM ברמת הארגון.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
שימוש באילוץ iam.managed.allowedPolicyMembers כדי להטמיע שיתוף עם הגבלות על דומיינים
המסוף
במסוף Google Cloud , נכנסים לדף מדיניות הארגון.
בכלי לבחירת פרויקטים, בוחרים את הפרויקט, התיקייה או הארגון שבהם רוצים לערוך את מדיניות הארגון. בדף Organization policies שמופיע מוצגת רשימה של אילוצים של מדיניות הארגון שזמינים למשאב הזה, ואפשר לסנן אותה.
ברשימה, בוחרים את האילוץ המנוהל Restrict allowed policy members in IAM allow policies.
בדף פרטי המדיניות, לוחצים על ניהול המדיניות.
בדף עריכת המדיניות, בוחרים באפשרות במקום המדיניות של המשאב הראשי.
לוחצים על הוספת כלל ואז מעדכנים את הכלל של מדיניות הארגון.
בקטע אכיפה, בוחרים באפשרות מופעל.
אם רוצים להגדיר את מדיניות הארגון בהתאם לתג, לוחצים על Add condition. אם מוסיפים כלל מותנה למדיניות הארגון, צריך להוסיף לפחות כלל אחד לא מותנה, אחרת אי אפשר לשמור את המדיניות. לפרטים נוספים, קראו את המאמר הגדרת ההיקף של מדיניות הארגון באמצעות תגים.
בקטע Parameters, מגדירים את החברים ואת קבוצות החשבונות הראשיים שרוצים לתת להם תפקידים בארגון, ולוחצים על Save.
אם רוצים לראות תצוגה מקדימה של ההשפעה של השינוי במדיניות הארגון לפני שהוא נאכף, לוחצים על Test changes. למידע נוסף על בדיקת שינויים במדיניות הארגון, קראו את המאמר בדיקת שינויים במדיניות הארגון באמצעות סימולטור המדיניות.
כדי לאכוף את מדיניות הארגון במצב פרימטר לבדיקות, לוחצים על Set dry run policy. איך בודקים את מדיניות הארגון
אחרי שמוודאים שמדיניות הארגון במצב פרימטר לבדיקות פועלת כמו שצריך, לוחצים על Set policy כדי להגדיר את המדיניות הפעילה.
gcloud
יוצרים קובץ YAML כדי להגדיר את מדיניות הארגון:
name: organizations/ORG_ID/policies/iam.managed.allowedPolicyMembers spec: rules: - enforce: true parameters: allowedMemberSubjects: - ALLOWED_MEMBER_1 - ALLOWED_MEMBER_2 allowedPrincipalSets: - ALLOWED_PRINCIPAL_SET_1 - ALLOWED_PRINCIPAL_SET_2מחליפים את מה שכתוב בשדות הבאים:
ORG_ID: המזהה המספרי של הארגון ב- Google Cloud.
ALLOWED_MEMBER_1, ALLOWED_MEMBER_2: החברים שאתם רוצים לתת להם תפקידים בארגון, לדוגמהuser:example-user@example.com.
ALLOWED_PRINCIPAL_SET_1,ALLOWED_PRINCIPAL_SET_2: קבוצות החשבונות הראשיים שאתם רוצים לתת להם תפקידים בארגון. לדוגמה://cloudresourcemanager.googleapis.com/organizations/0123456789012.
אם רוצים להוסיף למדיניות הארגון תנאי שקשור לתג, מוסיפים בלוק
conditionל-rules. אם מוסיפים כלל מותנה למדיניות הארגון, צריך להוסיף לפחות כלל אחד לא מותנה, אחרת אי אפשר לשמור את המדיניות. לפרטים נוספים, קראו את המאמר הגדרת ההיקף של מדיניות הארגון באמצעות תגים.מגדירים את המדיניות באמצעות הפקודה
org-policies set-policyוהדגלspec:gcloud org-policies set-policy POLICY_PATH \ --update-mask=specמחליפים את
POLICY_PATHבנתיב המלא לקובץ ה-YAML של מדיניות הארגון.
במאמר בדיקת מדיניות הארגון מוסבר איך לבדוק את המדיניות במצב פרימטר לבדיקות לפני שמחילים אותה.
כדי ללמוד איך לדמות את המדיניות לפני שאוכפים אותה, קראו את המאמר בדיקת שינויים במדיניות הארגון באמצעות סימולטור המדיניות.
REST
כדי להגדיר את מדיניות הארגון, משתמשים ב-method organizations.policies.create.
POST https://orgpolicy.googleapis.com/v2/{parent=organizations/ORGANIZATION_ID}/policies
גוף בקשת ה-JSON מכיל את ההגדרה של מדיניות הארגון.
אם האילוץ הזה לא תומך בפרמטרים, צריך להשמיט את הבלוק parameters מתחת ל-rules.
{
"name": "organizations/ORG_ID/policies/CONSTRAINT_NAME",
"spec": {
"rules": [
{
"enforce": true,
"parameters": {
"allowedMemberSubjects": [
"ALLOWED_MEMBER_1",
"ALLOWED_MEMBER_2"
],
"allowedPrincipalSets": [
"ALLOWED_PRINCIPAL_SET_1",
"ALLOWED_PRINCIPAL_SET_2"
]
}
}
]
}
}
מחליפים את מה שכתוב בשדות הבאים:
ORG_ID: המזהה המספרי של הארגון ב- Google Cloud.
CONSTRAINT_NAME: שם האילוץ שרוצים להגדיר.
ALLOWED_MEMBER_1, ALLOWED_MEMBER_2: החברים שאתם רוצים לתת להם תפקידים בארגון, לדוגמהuser:example-user@example.com.
ALLOWED_PRINCIPAL_SET_1,ALLOWED_PRINCIPAL_SET_2: קבוצות החשבונות הראשיים שאתם רוצים לתת להם תפקידים בארגון. לדוגמה://cloudresourcemanager.googleapis.com/organizations/0123456789012.
אם רוצים להוסיף למדיניות הארגון תנאי שקשור לתג, מוסיפים בלוק condition ל-rules. אם מוסיפים כלל מותנה למדיניות הארגון, צריך להוסיף לפחות כלל אחד לא מותנה, אחרת אי אפשר לשמור את המדיניות. לפרטים נוספים, קראו את המאמר הגדרת ההיקף של מדיניות הארגון באמצעות תגים.
במאמר בדיקת מדיניות הארגון מוסבר איך לבדוק את המדיניות במצב פרימטר לבדיקות לפני שמחילים אותה.
כדי ללמוד איך לדמות את המדיניות לפני שאוכפים אותה, קראו את המאמר בדיקת שינויים במדיניות הארגון באמצעות סימולטור המדיניות.
שימוש במדיניות ארגונית בהתאמה אישית כדי להטמיע שיתוף שמוגבל לדומיין
יוצרים אילוץ בהתאמה אישית שמגביל את חשבונות המשתמשים שאפשר להקצות להם תפקידים בארגון:
משתמשים בפונקציית CEL
memberInPrincipalSetעם חשבון המשתמש של הארגון כדי להגביל את הקצאת התפקידים לחברים בארגון. במאמר אחזור של קבוצת חשבונות משתמשים בארגון מוסבר איך למצוא את מזהה הארגון.לדוגמה, האילוץ הבא מגביל את הקצאת התפקידים לחברים בארגון:
name: organizations/ORG_ID/customConstraints/custom.allowInternalIdentitiesOnly resourceTypes: iam.googleapis.com/AllowPolicy methodTypes: - CREATE - UPDATE condition: "resource.bindings.all( binding, binding.members.all(member, MemberInPrincipalSet(member, ['//cloudresourcemanager.googleapis.com/organizations/ORG_ID']) ) )" actionType: ALLOW displayName: Only allow organization members to be granted rolesאם רוצים, אפשר לשפר את האילוץ על ידי הוספת פונקציות CEL, שמחוברות באמצעות אופרטורים לוגיים (
&&,||או!). אפשר להוסיף כל אחת מהפונקציות הבאות:לדוגמה, האילוץ הבא מגביל את הקצאת התפקידים לחברים בארגון ול-
admin@example.com:name: organizations/ORG_ID/customConstraints/custom.allowInternalIdentitiesOnly resourceTypes: iam.googleapis.com/AllowPolicy methodTypes: - CREATE - UPDATE condition: "resource.bindings.all( binding, binding.members.all(member, ( MemberInPrincipalSet(member, ['//cloudresourcemanager.googleapis.com/organizations/ORG_ID']) || MemberSubjectMatches(member, ['user:admin@example.com']) ) ) )" actionType: ALLOW displayName: Only allow organization members and service agents to be granted roles
מגדירים את האילוץ בהתאמה אישית:
המסוף
כדי ליצור אילוץ בהתאמה אישית:
- במסוף Google Cloud , נכנסים לדף מדיניות הארגון.
- בכלי לבחירת פרויקטים, בוחרים את הפרויקט שרוצים להגדיר לו את מדיניות הארגון.
- לוחצים על Custom constraint.
- בתיבה Display name, מזינים שם לאילוץ שיהיה קריא לאנשים. השם הזה מופיע בהודעות שגיאה ואפשר להשתמש בו לזיהוי ולניפוי באגים. אל תשתמשו בפרטים אישיים מזהים (PII) או במידע רגיש בשמות לתצוגה, כי השם הזה עלול להיחשף בהודעות שגיאה. השדה הזה יכול להכיל עד 200 תווים.
-
בתיבה Constraint ID, מזינים את המזהה שרוצים לתת לאילוץ החדש בהתאמה אישית. אילוץ בהתאמה אישית יכול להכיל רק אותיות (כולל אותיות רישיות וקטנות) או מספרים, לדוגמה
custom.allowInternalIdentitiesOnly. השדה הזה יכול להכיל עד 70 תווים, לא כולל הקידומת (custom.), לדוגמה,organizations/123456789/customConstraints/custom. אל תכללו פרטים אישיים מזהים או מידע רגיש במזהה האילוץ, כי הם עלולים להיחשף בהודעות שגיאה. - בתיבה Description, מזינים תיאור קריא לאנשים של האילוץ. התיאור הזה משמש כהודעת שגיאה כשיש הפרה של המדיניות. ציינו פרטים על הסיבה להפרת המדיניות ואיך לפתור את הבעיה. אל תכללו פרטים אישיים מזהים או מידע רגיש בתיאור, כי הם עלולים להיחשף בהודעות שגיאה. השדה הזה יכול להכיל עד 2,000 תווים.
-
בתיבה Resource type, בוחרים את השם של משאב ה- Google Cloud REST שמכיל את האובייקט והשדה שרוצים להגביל, לדוגמה
container.googleapis.com/Cluster. רוב סוגי המשאבים תומכים בעד 20 אילוצים בהתאמה אישית. אם תנסו ליצור יותר אילוצים בהתאמה אישית, הפעולה תיכשל. -
אפשר לאכוף את האילוץ הזה רק ב-REST
CREATE. - כדי להגדיר תנאי, לוחצים על עריכת התנאי.
-
בחלונית Add condition, יוצרים תנאי CEL שמתייחס למשאב שירות נתמך, לדוגמה
resource.management.autoUpgrade == false. השדה הזה יכול להכיל עד 1,000 תווים. לפרטים על השימוש ב-CEL, קראו את המאמר Common Expression Language. מידע נוסף על משאבי השירות שבהם אפשר להשתמש באילוצים המותאמים אישית מופיע במאמר שירותים שנתמכים באילוצים מותאמים אישית. - לוחצים על Save.
- בקטע Action, בוחרים אם לאשר או לדחות את השיטה שנבדקה אם התנאי מתקיים.
- לוחצים על Create constraint.
כדי לראות את השיטות הנתמכות לכל שירות, חפשו את השירות במאמר שירותים שתומכים באילוצים בהתאמה אישית.
פעולת הדחייה פירושה שהפעולה ליצירה או לעדכון של המשאב נחסמת אם התנאי מקבל את הערך true.
פעולת ההרשאה מאפשרת ליצור או לעדכן את המשאב רק אם התנאי מתקיים. כל מקרה אחר, מלבד אלה שרשומים במפורש בתנאי, נחסם.
אחרי שמזינים ערך בכל שדה, הגדרת ה-YAML המקבילה לאילוץ המותאם אישית הזה מופיעה בצד שמאל.
gcloud
- כדי ליצור אילוץ בהתאמה אישית, יוצרים קובץ YAML בפורמט הבא:
-
ORGANIZATION_ID: מזהה הארגון, למשל123456789. -
CONSTRAINT_NAME: השם שרוצים לתת לאילוץ החדש בהתאמה אישית. אילוץ בהתאמה אישית יכול להכיל רק אותיות (כולל אותיות רישיות וקטנות) או מספרים, לדוגמה,custom.allowInternalIdentitiesOnly. השדה הזה יכול להכיל עד 70 תווים, לא כולל הקידומת (custom.) – לדוגמה,organizations/123456789/customConstraints/custom. אל תכללו פרטים אישיים מזהים (PII) או מידע רגיש במזהה האילוץ, כי הם עלולים להיחשף בהודעות שגיאה. -
RESOURCE_NAME: השם המלא של המשאב ב- Google Cloudשמכיל את האובייקט והשדה שרוצים להגביל. לדוגמה,iam.googleapis.com/AllowPolicy. רוב סוגי המשאבים תומכים בעד 20 אילוצים בהתאמה אישית. אם תנסו ליצור יותר אילוצים בהתאמה אישית, הפעולה תיכשל. -
methodTypes: שיטות ה-REST שעליהן נאכף האילוץ. הערך יכול להיות רקCREATE. -
CONDITION: תנאי CEL שנכתב כנגד ייצוג של משאב שירות נתמך. השדה הזה יכול להכיל עד 1,000 תווים. לדוגמה,"resource.bindings.all( binding, binding.members.all(member, MemberInPrincipalSet(member, ['//cloudresourcemanager.googleapis.com/organizations/ORG_ID']) ) )". -
ACTION: הפעולה שצריך לבצע אם התנאיconditionמתקיים. הערך יכול להיות רקALLOW. -
DISPLAY_NAME: שם קריא לאנשים של האילוץ. השם הזה מופיע בהודעות שגיאה ואפשר להשתמש בו לזיהוי ולניפוי באגים. אל תשתמשו בפרטים אישיים מזהים (PII) או במידע רגיש בשמות המוצגים, כי השם הזה עלול להיחשף בהודעות שגיאה. השדה הזה יכול להכיל עד 200 תווים. -
DESCRIPTION: תיאור ידידותי למשתמש של האילוץ, שיוצג כהודעת שגיאה במקרה של הפרת המדיניות. השדה הזה יכול להכיל עד 2,000 תווים. -
אחרי שיוצרים את קובץ ה-YAML לאילוץ חדש בהתאמה אישית, צריך להגדיר אותו כדי שיהיה זמין למדיניות הארגון. כדי להגדיר אילוץ בהתאמה אישית, משתמשים בפקודה
gcloud org-policies set-custom-constraint: -
כדי לוודא שהאילוץ המותאם אישית קיים, משתמשים בפקודה
gcloud org-policies list-custom-constraints:
name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME resourceTypes: RESOURCE_NAME methodTypes: - CREATE condition: "CONDITION" actionType: ACTION displayName: DISPLAY_NAME description: DESCRIPTION
מחליפים את מה שכתוב בשדות הבאים:
כדי לראות את השיטות הנתמכות בכל שירות, חפשו את השירות במאמר שירותים שתומכים באילוצים בהתאמה אישית.
למידע נוסף על המשאבים הזמינים לכתיבת תנאים, ראו משאבים נתמכים.
הפעולה allow פירושה שאם התנאי מקבל את הערך true, מותר ליצור או לעדכן את המשאב. זה גם אומר שכל מקרה אחר, מלבד המקרה שמופיע במפורש בתנאי, חסום.
gcloud org-policies set-custom-constraint CONSTRAINT_PATH
מחליפים את
CONSTRAINT_PATHבנתיב המלא לקובץ האילוץ בהתאמה אישית. לדוגמה,/home/user/customconstraint.yaml.בסיום הפעולה, האילוצים המותאמים אישית יהיו זמינים כמדיניות של הארגון ברשימת Google Cloud כללי המדיניות של הארגון.
gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
מחליפים את
ORGANIZATION_IDבמזהה של משאב הארגון.למידע נוסף, קראו את המאמר הצגת מדיניות הארגון.
אכיפת מדיניות הארגון בהתאמה אישית:
כדי לאכוף אילוץ, אתם יכולים ליצור מדיניות ארגון שמפנה אליו, ואז להחיל את מדיניות הארגון על משאב ב- Google Cloud .המסוף
- במסוף Google Cloud , נכנסים לדף מדיניות הארגון.
- בכלי לבחירת פרויקטים, בוחרים את הפרויקט שרוצים להגדיר לו את מדיניות הארגון.
- ברשימה שבדף מדיניות הארגון, בוחרים את האילוץ כדי להציג את הדף Policy details של אותו אילוץ.
- כדי להגדיר את מדיניות הארגון למשאב הזה, לוחצים על ניהול המדיניות.
- בדף עריכת המדיניות, בוחרים באפשרות במקום המדיניות של המשאב הראשי.
- לוחצים על Add a rule.
- בקטע Enforcement, בוחרים אם לאכוף את מדיניות הארגון הזו או לא.
- אופציונלי: כדי להוסיף תנאי למדיניות הארגון על סמך תג, לוחצים על Add condition. שימו לב: אם מוסיפים כלל מותנה למדיניות הארגון, צריך להוסיף לפחות כלל אחד לא מותנה, אחרת אי אפשר לשמור את המדיניות. מידע נוסף מופיע במאמר הגדרת ההיקף של מדיניות הארגון באמצעות תגים.
- לוחצים על בדיקת השינויים כדי לדמות את ההשפעה של מדיניות הארגון. למידע נוסף, קראו את המאמר בדיקת שינויים במדיניות הארגון באמצעות סימולטור המדיניות.
- כדי לאכוף את מדיניות הארגון במצב פרימטר לבדיקות, לוחצים על הגדרת המדיניות להרצת בדיקה. למידע נוסף, קראו את המאמר בדיקת כללי מדיניות של הארגון.
- אחרי שמוודאים שמדיניות הארגון במצב פרימטר לבדיקות פועלת כמו שצריך, לוחצים על Set policy כדי להגדיר את המדיניות הפעילה.
gcloud
- כדי ליצור מדיניות ארגונית עם כללים בוליאניים, יוצרים קובץ YAML של מדיניות שמפנה לאילוץ:
-
PROJECT_ID: הפרויקט שבו רוצים לאכוף את האילוץ. -
CONSTRAINT_NAME: השם שהגדרתם לאילוץ המותאם אישית. לדוגמה,custom.allowInternalIdentitiesOnly. -
כדי לאכוף את מדיניות הארגון במצב פרימטר לבדיקות, מריצים את הפקודה הבאה עם הדגל
dryRunSpec: -
אחרי שמוודאים שמדיניות הארגון במצב פרימטר לבדיקות פועלת כמצופה, מגדירים את המדיניות הפעילה באמצעות הפקודה
org-policies set-policyוהדגלspec:
name: projects/PROJECT_ID/policies/CONSTRAINT_NAME spec: rules: - enforce: true dryRunSpec: rules: - enforce: true
מחליפים את מה שכתוב בשדות הבאים:
gcloud org-policies set-policy POLICY_PATH --update-mask=dryRunSpec
מחליפים את
POLICY_PATHבנתיב המלא לקובץ ה-YAML של מדיניות הארגון. המדיניות תיכנס לתוקף תוך 15 דקות לכל היותר.gcloud org-policies set-policy POLICY_PATH --update-mask=spec
מחליפים את
POLICY_PATHבנתיב המלא לקובץ ה-YAML של מדיניות הארגון. המדיניות תיכנס לתוקף תוך 15 דקות לכל היותר.
שימוש באילוץ iam.allowedPolicyMemberDomains כדי להטמיע שיתוף עם הגבלות על דומיינים
האילוץ של הגבלה לפי דומיין הוא אילוץ מנוהל מדור קודם עם הרשימה constraint_type.
אתם יכולים לציין קבוצת חשבונות משתמשים של הארגון או מזהה לקוח ב-Google Workspace ברשימה allowed_values של אילוץ הגבלה לפי דומיין. מידע נוסף זמין במאמר קבוצת חשבונות המשתמשים של הארגון לעומת מזהה הלקוח ב-Google Workspace.
קבוצת חשבונות המשתמשים של הארגון ומזהה Google Workspace לא מקבלים הרשאה באופן אוטומטי. כדי לאפשר לחשבונות משתמשים בארגון לגשת למשאבים בארגון, צריך לכלול את קבוצת חשבונות המשתמשים של הארגון או את המזהה של Google Workspace כקבוצת חשבונות משתמשים מורשית.
האילוץ של הגבלה לפי דומיין לא תומך בדחיית ערכים, ואי אפשר לשמור מדיניות ארגון עם מזהים ברשימה denied_values.
אתם יכולים להגדיר כלל מדיניות של הארגון שאוכף את אילוץ ההגבלה לפי דומיין, בהתאם לכל משאב שנכלל ברשימת המשאבים הנתמכים. לדוגמה, קטגוריות של Cloud Storage, מערכי נתונים של BigQuery או מכונות וירטואליות של Compute Engine.
המסוף
כדי להגדיר מדיניות ארגונית שכוללת אילוץ של הגבלה לפי דומיין:
במסוף Google Cloud , נכנסים לדף מדיניות הארגון.
בכלי לבחירת פרויקטים, בוחרים את המשאב של הארגון שבו רוצים להגדיר את מדיניות הארגון.
בדף מדיניות הארגון, בוחרים באפשרות הגבלה לפי דומיין מרשימת האילוצים.
בדף פרטי המדיניות, לוחצים על ניהול המדיניות.
בקטע ההגדרה חלה על, בוחרים באפשרות במקום המדיניות של המשאב הראשי.
לוחצים על Add a rule.
בקטע ערכי מדיניות, בוחרים באפשרות "בהתאמה אישית".
בקטע סוג המדיניות, בוחרים באפשרות אישור.
בקטע Custom values, מזינים בשדה קבוצת חשבונות משתמשים של הארגון או מזהה לקוח ב-Google Workspace.
אם רוצים להוסיף כמה מזהים, לוחצים על ערך מדיניות חדש כדי ליצור שדה נוסף.
לוחצים על סיום.
אם רוצים להגדיר את אילוץ ההגבלה לפי דומיין כתנאי לתג, לוחצים על Add condition.
בשדה Title, נותנים שם לתנאי.
בשדה תיאור, נותנים תיאור לתנאי. התיאור מספק הקשר לגבי התגים הנדרשים ואיך הם משפיעים על המשאבים.
אתם יכולים להשתמש בכלי להגדרת תנאים כדי ליצור תנאי שדורש תג מסוים כדי שהאילוץ ייכנס לתוקף.
בתפריט Condition type (סוג התנאי) בכרטיסייה Condition builder (הכלי להגדרת תנאים), בוחרים באפשרות Tag (תג).
בוחרים את האופרטור של התנאי. כדי להתאים תג שלם, משתמשים באופרטור matches. כדי להתאים בין מפתח תג לערך תג, משתמשים באופרטור matches ID.
אם בחרתם באופרטור matches, הזינו את השם של ערך התג במרחב השמות. אם בחרתם באופרטור מזהה תואם, הזינו את מזהי המפתח והערך.
כדי ליצור כמה תנאים, לוחצים על הוספה. אם מוסיפים עוד תנאי, אפשר להגדיר את הלוגיקה המותנית כך שכל התנאים יידרשו על ידי החלפת המצב של וגם. כדי להגדיר שהלוגיקה המותנית תדרוש שרק אחד מהתנאים יתקיים, מעבירים את המתג למצב או.
כדי למחוק ביטוי, לוחצים על הסמל X הגדול שמשמאל לשדות התנאי.
כשמסיימים לערוך את התנאים, לוחצים על שמירה.
כדי לאכוף את המדיניות, לוחצים על הגדרת מדיניות.
gcloud
אפשר להגדיר כללי מדיניות באמצעות Google Cloud CLI. כדי ליצור מדיניות שכוללת את אילוץ ההגבלה לפי דומיין, מריצים את הפקודה הבאה:
כדי להגדיר מדיניות ארגון שכוללת את אילוץ ההגבלה לפי דומיין, מריצים את הפקודה הבאה:
gcloud org-policies set-policy POLICY_PATH
כאשר POLICY_PATH הוא הנתיב המלא לקובץ ה-YAML של מדיניות הארגון, שאמור להיראות כך:
name: organizations/ORGANIZATION_ID/policies/iam.allowedPolicyMemberDomains
spec:
rules:
- condition: # This condition applies to the values block.
expression: "resource.matchTag('ORGANIZATION_ID/environment', 'dev')"
values:
allowedValues:
- PRINCIPAL_SET
- values:
allowedValues:
- PRINCIPAL_SET
מחליפים את מה שכתוב בשדות הבאים:
- ORGANIZATION_ID במזהה של משאב הארגון שבו רוצים להגדיר את המדיניות.
- PRINCIPAL_SET למזהים של חשבונות המשתמשים שרוצים לאשר.
אפשר לכלול קבוצות של חשבונות משתמשים בארגון או מזהי לקוחות ב-Google Workspace. לדוגמה,
is:principalSet://cloudresourcemanager.googleapis.com/organizations/01234567890123אוis:C03g5e3bc
אחרי אכיפת מדיניות הארגון הזו, רק זהויות שצוינו ברשימה של allowed_values יורשו במדיניות ההרשאה. כדי לאפשר גישה, החשבונות הראשיים צריכים להיות בקבוצת החשבונות הראשיים של הארגון שצוין, או להיות חלק מדומיין Google Workspace שצוין.
לדוגמה, אם יצרתם מדיניות ארגונית שמאפשרת רק את מזהה הלקוח של הדומיין של החברה שלכם ב-Google Workspace, אז רק חשבונות משתמשים שמשויכים לדומיין הזה יוכלו להתווסף למדיניות ההרשאות מאותו רגע ואילך.
הודעת שגיאה לדוגמה
אם מנסים להוסיף חשבון משתמש שלא נכלל ברשימה allowed_values, האילוץ המנוהל הקודם iam.allowedPolicyMemberDomains מופר, הפעולה נכשלת ומוצגת הודעת שגיאה.
המסוף

gcloud
ERROR: (gcloud.projects.set-iam-policy) FAILED_PRECONDITION: One or more users named in the policy do not belong to a permitted customer.
אחזור קבוצת חשבונות משתמשים של ארגון
אפשר לקבל את מזהה המשאב של הארגון באמצעות מסוף Google Cloud , ה-CLI של gcloud או Cloud Resource Manager API.
console
כדי לקבל את מזהה המשאב של הארגון באמצעות מסוף Google Cloud :
- נכנסים למסוף Google Cloud :
- בכלי לבחירת פרויקטים שבחלק העליון של הדף, בוחרים את משאב הארגון.
- בצד שמאל, לוחצים על סמל האפשרויות הנוספות ואז על הגדרות.

בדף Settings מוצג מזהה המשאב של הארגון.
gcloud
כדי למצוא את מזהה המשאב של הארגון, מריצים את הפקודה הבאה:
gcloud organizations list
הפקודה הזו מציגה את כל משאבי הארגון שאתם שייכים אליהם, ואת המזהים התואמים של משאבי הארגון.
API
כדי למצוא את מזהה המשאב של הארגון באמצעות Cloud Resource Manager API, משתמשים ב-method organizations.search(), כולל שאילתה לדומיין. לדוגמה:
GET https://cloudresourcemanager.googleapis.com/v3/organizations:search{query=domain:altostrat.com}
התשובה מכילה את המטא-נתונים של משאב הארגון ששייך ל-altostrat.com, כולל המזהה של משאב הארגון.
אחרי שמקבלים את מזהה המשאב של הארגון, צריך להשתמש במזהה הנכון של קבוצת החשבונות ששייכים לו. לדוגמה:
principalSet://iam.googleapis.com/organizations/01234567890123
אם תזינו את קבוצת חשבונות המשתמשים של הארגון, תוכלו להקצות תפקידים בארגון לחשבונות המשתמשים הבאים:
- כל מאגרי הזהויות של כוח העבודה בארגון
- כל חשבונות השירות ומאגרי הזהויות של עומסי העבודה בכל פרויקט בארגון
- כל סוכני השירות שמשויכים למשאבים בארגון.
מידע נוסף על מזהי חשבונות משתמשים ב-IAM מופיע במאמר מזהים של חשבונות משתמשים.
אחזור של מספר לקוח ב-Google Workspace
הזנת מספר הלקוח ב-Google Workspace מאפשרת להקצות תפקידים בארגון לחשבונות המשתמשים הבאים:
- כל הזהויות בכל הדומיינים שמשויכים למספר הלקוח שלכם ב-Google Workspace
- כל מאגרי הזהויות של כוח העבודה בארגון
- כל חשבונות השירות ומאגרי הזהויות של עומסי העבודה בכל פרויקט בארגון
- כל סוכני השירות שמשויכים למשאבים בארגון.
יש שתי דרכים לקבל את מזהה הלקוח ב-Google Workspace שמשמש לאילוץ הגבלת הדומיין:
gcloud
אפשר להשתמש בפקודה gcloud organizations list כדי לראות את כל הארגונים שיש לכם בהם את ההרשאה resourcemanager.organizations.get:
gcloud organizations list
הפקודה הזו תחזיר את הערכים DISPLAY_NAME, ID (מזהה הארגון) ו-DIRECTORY_CUSTOMER_ID. מספר הלקוח ב-Google Workspace הוא DIRECTORY_CUSTOMER_ID.
API
אפשר להשתמש ב-Google Workspace Directory API כדי לאחזר את מספר הלקוח ב-Google Workspace.
כשאתם מחוברים כאדמינים ב-Google Workspace, אתם יכולים להיכנס למסמכי התיעוד של השיטה (method) Customers: get ב-API וללחוץ על Execute. אחרי ההרשאה, התגובה תציג את מספר הלקוח שלכם.
לחלופין, אפשר להשתמש בלקוח API:
- מקבלים טוקן גישה מסוג OAuth להיקף ההרשאות
https://www.googleapis.com/auth/admin.directory.customer.readonly. מריצים את הפקודה הבאה כדי לשלוח שאילתה ל-Directory API של Google Workspace:
curl -# -X GET "https://www.googleapis.com/admin/directory/v1/customers/customerKey" \ -H "Authorization: Bearer $access_token" -H "Content-Type: application/json"
הפקודה הזו תחזיר תגובת JSON שכוללת את פרטי הלקוח. מספר הלקוח ב-Google Workspace הוא id.
הגדרת חריגים לשיתוף עם הגבלות על דומיינים
בחלק משירותי Google Cloud נעשה שימוש בחשבונות שירות, בסוכני שירות ובחשבונות אחרים כדי לבצע פעולות בשמכם. שיתוף עם הגבלה לפי דומיין יכול למנוע מהחשבונות האלה לקבל באופן אוטומטי את התפקידים ב-IAM שהם צריכים, מה שעלול לגרום לפעולות מסוימות להיכשל.
בטבלה הבאה מפורטות פעולות ב- Google Cloud שעשויות להיות מושפעות משיתוף שמוגבל לדומיין. בנוסף, מפורטים החשבונות שצריך להקצות להם תפקידים באופן אוטומטי כדי שהפעולות האלה יצליחו.
אם אתם משתמשים במדיניות ארגונית בהתאמה אישית או באילוץ המנוהל iam.managed.allowedPolicyMembers כדי להטמיע הגבלה לפי דומיין, כדאי להוסיף את החשבונות האלה כחריגים לאילוץ של הגבלה לפי דומיין. כדי להוסיף חשבון כחריג, מוסיפים את מזהה החשבון לרשימת החברים המורשים.
אם אתם משתמשים באילוץ המנוהל המדור קודם iam.allowedPolicyMemberDomains כדי להטמיע הגבלה לפי דומיין, יכול להיות שתצטרכו לאלץ גישה לחשבון בשביל החשבונות האלה כדי לבצע את הפעולות שרשומות.
| פעולה | מזהה של חשבון משתמש |
|---|---|
| הפעלת sink ביומן של BigQuery בחשבון לחיוב | serviceAccount:bUNIQUE_ID@gcp-sa-logging.iam.gserviceaccount.com |
| הפעלת רישום ביומן של גישה לאחסון | serviceAccount:cloud-storage-analytics@google.com |
| איך משתמשים ב-Pub/Sub כנקודת קצה לאפליקציה ל-Google Chat | serviceAccount:chat-api-push@system.gserviceaccount.com |
| שימוש ב-Pub/Sub כדי לקבל התראות בזמן אמת למפתחים מ-Google Play | serviceAccount:google-play-developer-notifications@system.gserviceaccount.com |
| שימוש ב-Pub/Sub כדי לקבל התראות לגבי תקציבים בחיוב ב-Cloud | serviceAccount:billing-budget-alert@system.gserviceaccount.com |
| שימוש ב-Pub/Sub כדי לקבל התראות על חריגות בעלויות החיוב ב-Cloud | serviceAccount:cloud-billing-finops-alert@system.gserviceaccount.com |
| שימוש בכתובת URL חתומה עם Cloud CDN | serviceAccount:service-PROJECT_NUMBER@cloud-cdn-fill.iam.gserviceaccount.com |
| אימות מקור פרטי באמצעות Cloud CDN | serviceAccount:service-PROJECT_NUMBER@https-lb.iam.gserviceaccount.com |
שירותים ציבוריים ב-Cloud Run
ב-Cloud Run אפשר להפוך שירותים לציבוריים. עם זאת, אם תטמיעו שיתוף מוגבל לדומיין, משתמשים מחוץ לארגון לא יוכלו לגשת לשירותי Cloud Run ציבוריים.
כדי לאפשר למשתמשים לגשת לשירותי Cloud Run ציבוריים, צריך להשבית את בדיקת ה-IAM של Cloud Run Invoker בשירותי Cloud Run. מידע נוסף מופיע במאמר השבתת Cloud Run Invoker לשירותים.
שיתוף נתונים אחרים באופן ציבורי
אם אתם משתמשים במדיניות ארגונית מותאמת אישית כדי להטמיע הגבלה לפי דומיין, אתם יכולים להוסיף חריגה למדיניות הארגון כדי לאפשר שיתוף נתונים באופן ציבורי.
שיתוף נתונים באופן ציבורי כולל את חשבונות המשתמשים המיוחדים allUsers ו-allAuthenticatedUsers. אם אתם צריכים לשתף נתונים באופן ציבורי בזמן שאתם משתמשים בשיתוף מוגבל לדומיין, תצטרכו להוסיף חריגה לחשבונות המשתמשים האלה.
אפשר להוסיף חריגים רק אם משתמשים במדיניות הארגון המותאמת אישית כדי להטמיע הגבלה לפי דומיין.
כדי להוסיף חריגה ל-allUsers ול-allAuthenticatedUsers, צריך ליצור מדיניות ארגונית מותאמת אישית ומותנית שמבוססת על תגי משאבים.
יוצרים מפתח תג במשאב הארגון.
gcloud resource-manager tags keys create allUsersIngress \ --parent=organizations/ORGANIZATION_IDמחליפים את
ORGANIZATION_IDבמזהה הארגון.יוצרים ערך תג למפתח התג שיצרתם.
gcloud resource-manager tags values create True \ --parent=ORGANIZATION_ID/allUsersIngress \ --description="Allow allUsers to access internal Cloud Run services"מצרפים את התג למשאבים שרוצים לשתף באופן ציבורי.
יוצרים אילוץ בהתאמה אישית באמצעות הפונקציה
memberSubjectMatchesשל CEL בביטוי התנאי של האילוץ.לדוגמה, ביטוי התנאי הבא מגביל את הקצאת התפקידים לחברים בארגון,
allUsersו-allAuthenticatedUsers:name: organizations/ORGANIZATION_ID/customConstraints/custom.allowInternalAndSpecialIdentitiesOnly resourceTypes: iam.googleapis.com/AllowPolicy methodTypes: - CREATE - UPDATE condition: "resource.bindings.all( binding, binding.members.all(member, ( MemberInPrincipalSet(member, ['//cloudresourcemanager.googleapis.com/organizations/ORG_ID']) || MemberSubjectMatches(member, ['allUsers', 'allAuthenticatedUsers']) ) ) )" actionType: ALLOW displayName: Only allow organization members, allusers, and allAuthenticatedUsers to be granted rolesיוצרים מדיניות ארגון שאוכפת את האילוץ בהתאמה אישית.
name: organizations/ORGANIZATION_ID/policies/iam.allowedPolicyMemberDomains spec: rules: - allowAll: true condition: expression: resource.matchTag("ORGANIZATION_ID/allUsersIngress", "True") title: allowAllUsersIngressאוכפים את מדיניות הארגון.
gcloud org-policies set-policy POLICY_PATHמחליפים את
POLICY_PATHבנתיב ובשם הקובץ של מדיניות הארגון.
מדיניות הארגון המותנית מאפשרת לכם לתת הרשאות לזהות allUsers במשאבים שמתויגים בתג allUsersIngress: true.
אילוץ גישה לחשבון
אם אתם צריכים לאלץ גישה לחשבון בפרויקט שמפר את ההגבלות לפי דומיין:
מסירים את מדיניות הארגון שמכילה את אילוץ ההגבלה לפי הדומיין.
נותנים לחשבון גישה לפרויקט.
מטמיעים מחדש את מדיניות הארגון עם אילוץ ההגבלה לפי הדומיין.
לחלופין, אפשר לתת גישה לקבוצת Google שמכילה את חשבונות השירות הרלוונטיים:
יוצרים קבוצה ב-Google בדומיין המורשה.
משתמשים בחלונית האדמין ב-Google Workspace כדי להשבית את הגבלה לפי דומיין של הקבוצה.
מוסיפים את חשבון השירות לקבוצה.
נותנים לקבוצה ב-Google גישה במדיניות ההרשאות.