הגבלת זהויות באמצעות שיתוף מוגבל לדומיין

הגבלת השיתוף בדומיין מאפשרת לכם להגביל את שיתוף המשאבים על סמך משאב של דומיין או ארגון. כשהשיתוף מוגבל לדומיין פעיל, אפשר להעניק תפקידי IAM בארגון Google Cloud רק לחשבונות ראשיים ששייכים לדומיינים או לארגונים מורשים.

יש שלושה סוגים של מדיניות ארגונית שבהם אפשר להשתמש כדי להגביל זהויות לפי דומיין:

  • האילוץ המנוהל iam.managed.allowedPolicyMembers
  • מדיניות ארגונית מותאמת אישית שמפנה אל iam.googleapis.com/AllowPolicy המשאב
  • האילוץ המנוהל מהדור הקודם iam.allowedPolicyMemberDomains

לפני שמתחילים

בוחרים באיזו שיטה להשתמש כדי להטמיע שיתוף מוגבל לדומיין. מידע נוסף על היתרונות והחסרונות של כל שיטה זמין במאמר שיטות להגבלת השיתוף לפי דומיין.

התפקידים הנדרשים

כדי לקבל את ההרשאות שדרושות בשביל לאכוף שיתוף מוגבל לדומיין, אתם צריכים לבקש מהאדמין לתת לכם את תפקיד ה-IAM Organization policy administrator (אדמין מדיניות ארגונית) ‏(roles/orgpolicy.policyAdmin) בארגון. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

שימוש באילוץ iam.managed.allowedPolicyMembers כדי להטמיע שיתוף מוגבל לדומיין

המסוף

  1. במסוף Google Cloud , נכנסים לדף מדיניות הארגון.

    מעבר למדיניות הארגון

  2. בכלי לבחירת פרויקטים, בוחרים את הפרויקט, התיקייה או הארגון שרוצים לערוך את מדיניות הארגון שלהם. בדף Organization policies שמופיע מוצגת רשימה שניתנת לסינון של אילוצים של מדיניות הארגון שזמינים למשאב הזה.

  3. מהרשימה, בוחרים באילוץ המנוהל Restrict allowed policy members in IAM allow policies.

  4. בדף פרטי המדיניות, לוחצים על ניהול המדיניות.

  5. בדף עריכת מדיניות, בוחרים באפשרות במקום המדיניות של המשאב הראשי.

  6. בוחרים באפשרות הוספת כלל ומעדכנים את כלל מדיניות הארגון.

  7. בקטע אכיפה, בוחרים באפשרות מופעל.

  8. אופציונלי: כדי להגדיר את מדיניות הארגון כתלויה בתג, לוחצים על הוספת תנאי. אם מוסיפים כלל מותנה למדיניות הארגון, צריך להוסיף לפחות כלל אחד לא מותנה, אחרת אי אפשר לשמור את המדיניות. פרטים נוספים זמינים במאמר הגדרת היקף של מדיניות ארגונית באמצעות תגים.

  9. בקטע Parameters, מגדירים את חברי הקבוצה ואת קבוצות החשבונות הראשיים שרוצים להקצות להם תפקידים בארגון, ואז לוחצים על Save.

  10. אופציונלי: כדי לראות תצוגה מקדימה של ההשפעה של השינוי במדיניות הארגון לפני שהוא נאכף, לוחצים על בדיקת שינויים. למידע נוסף על בדיקת שינויים במדיניות הארגון, אפשר לעיין במאמר בדיקת שינויים במדיניות הארגון באמצעות סימולטור המדיניות.

  11. כדי לאכוף את המדיניות של הארגון במצב הרצת בדיקה, לוחצים על הגדרת מדיניות להרצת בדיקה. מידע נוסף זמין במאמר בנושא בדיקת מדיניות הארגון.

  12. אחרי שמוודאים שמדיניות הארגון במצב הרצה יבשה פועלת כמו שרוצים, לוחצים על הגדרת מדיניות כדי להגדיר את המדיניות הפעילה.

gcloud

  1. יוצרים קובץ 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. אם מוסיפים כלל מותנה למדיניות הארגון, צריך להוסיף לפחות כלל אחד לא מותנה, אחרת אי אפשר לשמור את המדיניות. פרטים נוספים זמינים במאמר הגדרת היקף של מדיניות ארגונית באמצעות תגים.

  2. מגדירים את המדיניות באמצעות הפקודה org-policies set-policy והדגל spec:

    gcloud org-policies set-policy POLICY_PATH \
      --update-mask=spec
    

    מחליפים את POLICY_PATH בנתיב המלא לקובץ ה-YAML של מדיניות הארגון.

כדי ללמוד איך לבדוק את המדיניות במצב הרצה יבשה לפני שמחילים אותה, אפשר לעיין במאמר בנושא בדיקה של מדיניות ארגונית.

כדי ללמוד איך לבצע סימולציה של המדיניות לפני שמחילים אותה, אפשר לעיין במאמר בדיקת שינויים במדיניות הארגון באמצעות סימולטור המדיניות.

REST

כדי להגדיר את מדיניות הארגון, משתמשים בשיטה 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. אם מוסיפים כלל מותנה למדיניות הארגון, צריך להוסיף לפחות כלל אחד לא מותנה, אחרת אי אפשר לשמור את המדיניות. פרטים נוספים זמינים במאמר הגדרת היקף של מדיניות ארגונית באמצעות תגים.

כדי ללמוד איך לבדוק את המדיניות במצב הרצה יבשה לפני שמחילים אותה, אפשר לעיין במאמר בנושא בדיקה של מדיניות ארגונית.

כדי ללמוד איך לבצע סימולציה של המדיניות לפני שמחילים אותה, אפשר לעיין במאמר בדיקת שינויים במדיניות הארגון באמצעות סימולטור המדיניות.

שימוש במדיניות ארגונית מותאמת אישית להטמעה של שיתוף מוגבל לדומיין

  1. יצירת אילוץ מותאם אישית שמגביל את חשבונות המשתמשים שיכולים לקבל תפקידים בארגון:

    1. משתמשים בפונקציה memberInPrincipalSet CEL כדי להגדיר את חשבון המשתמש של הארגון ולהגביל את הקצאת התפקידים לחברים בארגון. מידע על איתור מזהה הארגון מופיע במאמר אחזור של קבוצת משתמשים ראשיים בארגון.

      לדוגמה, ההגבלה הבאה מגבילה את הענקת התפקידים לחברים בארגון:

      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
      
    2. אפשר גם להוסיף פונקציות נוספות של 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
      
  2. מגדירים את האילוץ המותאם אישית:

    המסוף

    כדי ליצור אילוץ בהתאמה אישית:

    1. במסוף Google Cloud , נכנסים לדף מדיניות הארגון.

      מעבר למדיניות הארגון

    2. בכלי לבחירת פרויקטים, בוחרים את הפרויקט שרוצים להגדיר לו את מדיניות הארגון.
    3. לוחצים על Custom constraint (הגבלה מותאמת אישית).
    4. בתיבה שם לתצוגה, מזינים שם שאנשים יכולים לקרוא למגבלה. השם הזה משמש בהודעות שגיאה, ואפשר להשתמש בו לצורך זיהוי וניפוי באגים. אל תשתמשו בפרטים אישיים מזהים (PII) או במידע אישי רגיש בשמות לתצוגה, כי השם הזה עלול להיחשף בהודעות שגיאה. השדה הזה יכול להכיל עד 200 תווים.
    5. בתיבה Constraint ID (מזהה ההגבלה), מזינים את המזהה שרוצים להגדיר להגבלה החדשה בהתאמה אישית. אילוץ מותאם אישית יכול להכיל רק אותיות (כולל אותיות גדולות וקטנות) או מספרים, למשל custom.allowInternalIdentitiesOnly. השדה הזה יכול להכיל עד 70 תווים, לא כולל הקידומת (custom.), לדוגמה, organizations/123456789/customConstraints/custom. אל תכללו פרטים אישיים מזהים (PII) או נתונים רגישים במזהה האילוץ, כי הם עלולים להיחשף בהודעות שגיאה.
    6. בתיבה Description, מזינים תיאור של האילוץ שכתוב בצורה שקריאה לאנשים. התיאור הזה משמש כהודעת שגיאה כשמתבצעת הפרה של המדיניות. לכלול פרטים על הסיבה להפרת המדיניות ואיך לפתור אותה. אל תכללו בתיאור פרטים אישיים מזהים (PII) או מידע אישי רגיש, כי הם עלולים להיחשף בהודעות שגיאה. השדה הזה יכול להכיל עד 2,000 תווים.
    7. בתיבה Resource type, בוחרים את השם של משאב REST‏ Google Cloud שמכיל את האובייקט והשדה שרוצים להגביל – לדוגמה, container.googleapis.com/NodePool. רוב סוגי המשאבים תומכים בעד 20 אילוצים מותאמים אישית. אם תנסו ליצור עוד אילוצים בהתאמה אישית, הפעולה תיכשל.
    8. אפשר לאכוף את ההגבלה הזו רק בשיטת REST‏ CREATE.
    9. כדי לראות את השיטות הנתמכות לכל שירות, מחפשים את השירות בקטע שירותים שתומכים באילוצים בהתאמה אישית.

    10. כדי להגדיר תנאי, לוחצים על Edit condition.
      1. בחלונית Add condition, יוצרים תנאי CEL שמתייחס למשאב שירות נתמך, לדוגמה, resource.management.autoUpgrade == false. השדה הזה יכול להכיל עד 1,000 תווים. פרטים על השימוש ב-CEL זמינים במאמר בנושא Common Expression Language. מידע נוסף על משאבי השירות שאפשר להשתמש בהם באילוצים בהתאמה אישית זמין במאמר שירותים שתומכים באילוצים בהתאמה אישית.
      2. לוחצים על Save.
    11. בקטע פעולה, בוחרים אם לאשר או לדחות את השיטה שנבדקה אם התנאי מתקיים.
    12. הפעולה deny (דחייה) פירושה שהפעולה ליצירה או לעדכון של המשאב נחסמת אם התנאי מוערך כ-True.

      הפעולה allow (אישור) אומרת שהפעולה ליצירה או לעדכון של המשאב מותרת רק אם התנאי מחזיר את הערך true. כל מקרה אחר, מלבד אלה שמפורטים במפורש בתנאי, נחסם.

    13. לוחצים על יצירת אילוץ.
    14. אחרי שמזינים ערך בכל שדה, מופיעה משמאל הגדרת ה-YAML המקבילה לאילוץ המותאם אישית הזה.

    gcloud

    1. כדי ליצור אילוץ בהתאמה אישית, יוצרים קובץ YAML בפורמט הבא:
    2. name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
      resourceTypes: RESOURCE_NAME
      methodTypes:
        - CREATE
      condition: "CONDITION"
      actionType: ACTION
      displayName: DISPLAY_NAME
      description: DESCRIPTION

      מחליפים את מה שכתוב בשדות הבאים:

      • 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.
      • הפעולה allow (אישור) אומרת שאם התנאי מקבל את הערך True, הפעולה ליצירה או לעדכון של המשאב מותרת. המשמעות היא שכל מקרה אחר, חוץ מהמקרה שמופיע במפורש בתנאי, ייחסם.

      • DISPLAY_NAME: שם קריא לאנשים של האילוץ. השם הזה מופיע בהודעות שגיאה ויכול לשמש לזיהוי ולניפוי באגים. אל תשתמשו בפרטים אישיים מזהים (PII) או במידע אישי רגיש בשמות המוצגים, כי השם הזה עלול להיחשף בהודעות שגיאה. השדה הזה יכול להכיל עד 200 תווים.
      • DESCRIPTION: תיאור ידידותי למשתמש של האילוץ שיוצג כהודעת שגיאה אם המדיניות תופר. השדה הזה יכול להכיל עד 2,000 תווים.
    3. אחרי שיוצרים קובץ YAML לאילוץ חדש בהתאמה אישית, צריך להגדיר אותו כדי שיהיה זמין למדיניות הארגון בארגון. כדי להגדיר אילוץ בהתאמה אישית, משתמשים בפקודה gcloud org-policies set-custom-constraint:
    4. gcloud org-policies set-custom-constraint CONSTRAINT_PATH

      מחליפים את CONSTRAINT_PATH בנתיב המלא לקובץ האילוצים המותאמים אישית. לדוגמה, /home/user/customconstraint.yaml.

      אחרי שהפעולה הזו תושלם, האילוצים המותאמים אישית יהיו זמינים כמדיניות ארגונית ברשימת Google Cloud מדיניות הארגון.

    5. כדי לוודא שהאילוץ המותאם אישית קיים, משתמשים בפקודה gcloud org-policies list-custom-constraints:
    6. gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID

      מחליפים את ORGANIZATION_ID במזהה של משאב הארגון.

      מידע נוסף זמין במאמר בנושא צפייה במדיניות הארגון.

  3. אכיפת מדיניות הארגון המותאמת אישית:

    כדי לאכוף אילוץ, יוצרים מדיניות ארגון שמפנה אליו, ואז מחילים את מדיניות הארגון הזו על משאב Google Cloud .

    המסוף

    1. במסוף Google Cloud , נכנסים לדף מדיניות הארגון.

      מעבר למדיניות הארגון

    2. מכלי לבחירת פרויקטים, בוחרים את הפרויקט שרוצים להגדיר לו את מדיניות הארגון.
    3. מהרשימה בדף מדיניות הארגון, בוחרים את האילוץ כדי לראות את הדף פרטי המדיניות של האילוץ הזה.
    4. כדי להגדיר את מדיניות הארגון עבור המשאב הזה, לוחצים על ניהול מדיניות.
    5. בדף עריכת מדיניות, בוחרים באפשרות במקום המדיניות של המשאב הראשי.
    6. לוחצים על Add a rule.
    7. בקטע Enforcement (אכיפה), בוחרים אם מדיניות הארגון הזו נאכפת או לא.
    8. אופציונלי: כדי להגדיר את מדיניות הארגון כתלויה בתג, לוחצים על הוספת תנאי. הערה: אם מוסיפים כלל מותנה למדיניות ארגון, צריך להוסיף לפחות כלל לא מותנה אחד, אחרת אי אפשר לשמור את המדיניות. מידע נוסף על מדיניות ארגונית עם תגים
    9. לוחצים על בדיקת שינויים כדי לדמות את ההשפעה של מדיניות הארגון. מידע נוסף זמין במאמר בדיקת שינויים במדיניות הארגון באמצעות סימולטור המדיניות.
    10. כדי לאכוף את המדיניות של הארגון במצב פרימטר לבדיקות, לוחצים על הגדרת המדיניות להרצת בדיקה. מידע נוסף זמין במאמר בנושא בדיקת מדיניות הארגון.
    11. אחרי שמוודאים שמדיניות הארגון במצב הרצה יבשה פועלת כמו שרוצים, לוחצים על הגדרת מדיניות כדי להגדיר את המדיניות הפעילה.

    gcloud

    1. כדי ליצור מדיניות ארגונית עם כללים בוליאניים, יוצרים קובץ YAML של מדיניות שמפנה לאילוץ:
    2. name: projects/PROJECT_ID/policies/CONSTRAINT_NAME
      spec:
        rules:
        - enforce: true
      
      dryRunSpec:
        rules:
        - enforce: true

      מחליפים את מה שכתוב בשדות הבאים:

      • PROJECT_ID: הפרויקט שבו רוצים לאכוף את האילוץ.
      • CONSTRAINT_NAME: השם שהגדרתם לאילוץ המותאם אישית. לדוגמה, custom.allowInternalIdentitiesOnly.
    3. כדי לאכוף את מדיניות הארגון במצב הרצה יבשה, מריצים את הפקודה הבאה עם הדגל dryRunSpec:
    4. gcloud org-policies set-policy POLICY_PATH --update-mask=dryRunSpec

      מחליפים את POLICY_PATH בנתיב המלא לקובץ ה-YAML של מדיניות הארגון. יחלפו עד 15 דקות לפני שהמדיניות תיכנס לתוקף.

    5. אחרי שמוודאים שמדיניות הארגון במצב הרצה יבשה פועלת כמו שרוצים, מגדירים את המדיניות הפעילה באמצעות הפקודה org-policies set-policy והדגל spec:
    6. 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.

המסוף

כדי להגדיר מדיניות ארגון שכוללת אילוץ הגבלה לפי דומיין, מבצעים את הפעולות הבאות:

  1. במסוף Google Cloud , נכנסים לדף מדיניות הארגון.

    מעבר למדיניות הארגון

  2. בכלי לבחירת פרויקטים, בוחרים את משאב הארגון שרוצים להגדיר בו את מדיניות הארגון.

  3. בדף Organization policies (מדיניות הארגון), בוחרים באילוץ Domain Restricted Sharing (שיתוף מוגבל לדומיין) מתוך רשימת האילוצים.

  4. בדף פרטי המדיניות, לוחצים על ניהול המדיניות.

  5. בקטע חל על, בוחרים באפשרות במקום המדיניות של המשאב הראשי.

  6. לוחצים על Add a rule.

  7. בקטע Policy values (ערכי מדיניות), בוחרים באפשרות custom (מותאם אישית).

  8. בקטע סוג המדיניות, בוחרים באפשרות אישור.

  9. בקטע ערכים מותאמים אישית, מזינים קבוצת משתמשים ראשיים בארגון או מזהה לקוח ב-Google Workspace בשדה.

  10. אם רוצים להוסיף כמה מזהים, לוחצים על ערך מדיניות חדש כדי ליצור שדה נוסף.

  11. לוחצים על סיום.

  12. אופציונלי: כדי להגדיר את האילוץ של הגבלת הדומיין כתנאי לתג, לוחצים על הוספת תנאי.

    1. בשדה Title, מזינים שם לתנאי.

    2. בשדה תיאור, כותבים תיאור לתנאי. התיאור מספק הקשר לגבי התגים הנדרשים וההשפעה שלהם על המשאבים.

    3. אתם יכולים להשתמש בכלי ליצירת תנאים כדי ליצור תנאי שדורש תג מסוים כדי שההגבלה תיכנס לתוקף.

      1. בתפריט Condition type (סוג התנאי) בכרטיסייה Condition builder (כלי ליצירת תנאים), בוחרים באפשרות Tag (תג).

      2. בוחרים את האופרטור לתנאי. כדי להתאים תג שלם, משתמשים באופרטור matches. כדי להתאים מפתח תג וערך תג, משתמשים באופרטור matches ID.

      3. אם בחרתם באופרטור matches, מזינים את הערך של שם התג במרחב השמות. אם בחרתם באופרטור תואם למזהה, מזינים את מזהה המפתח ואת מזהה הערך.

      4. כדי ליצור כמה תנאים, לוחצים על הוספה. אם מוסיפים עוד תנאי, אפשר להגדיר את הלוגיקה של התנאי כך שכל התנאים יתקיימו. כדי לעשות את זה, מעבירים את המתג And למצב מופעל. אפשר להגדיר את הלוגיקה של התנאים כך שרק אחד מהתנאים יצטרך להתקיים. כדי לעשות את זה, לוחצים על המתג או.

      5. כדי למחוק ביטוי, לוחצים על X הגדול משמאל לשדות של התנאי.

      6. כשמסיימים לערוך את התנאים, לוחצים על שמירה.

  13. כדי לאכוף את המדיניות, לוחצים על הגדרת מדיניות.

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

מחליפים את מה שכתוב בשדות הבאים:

אחרי שמדיניות הארגון הזו תיאכף, רק זהויות שמצוינות ברשימה של 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,‏ Google Cloud CLI או Cloud Resource Manager API. Google Cloud

console

כדי למצוא את מזהה משאב הארגון באמצעות מסוף Google Cloud , מבצעים את הפעולות הבאות:

  1. נכנסים למסוף Google Cloud :

    כניסה ל Google Cloud מסוף

  2. בתפריט לבחירת פרויקטים בחלק העליון של הדף, בוחרים את משאב הארגון.
  3. בצד שמאל, לוחצים על סמל האפשרויות הנוספות ואז על הגדרות.

בדף הגדרות מוצג מזהה משאב הארגון.

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, אתם יכולים לעבור אל מסמכי התיעוד של שיטת ה-API‏ Customers: get וללחוץ על Execute. אחרי ההרשאה, בתגובה יופיע מספר הלקוח שלכם.

אפשרות נוספת היא להשתמש בלקוח API:

  1. מקבלים אסימון גישה ל-OAuth עבור היקף ההרשאות https://www.googleapis.com/auth/admin.directory.customer.readonly.
  2. מריצים את הפקודה הבאה כדי לשלוח שאילתה ל-Google Workspace Directory API:

    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, צריך ליצור מדיניות ארגונית מותאמת אישית מותנית שמבוססת על תגי משאבים.

  1. יוצרים מפתח תג במשאב הארגון.

    gcloud resource-manager tags keys create allUsersIngress \
      --parent=organizations/ORGANIZATION_ID
    

    מחליפים את ORGANIZATION_ID במזהה הארגון.

  2. יוצרים ערך תג למפתח התג שיצרתם.

    gcloud resource-manager tags values create True \
    --parent=ORGANIZATION_ID/allUsersIngress \
    --description="Allow allUsers to access internal Cloud Run services"
    
  3. מצרפים את התג למשאבים שרוצים לשתף עם הציבור.

  4. יוצרים אילוץ מותאם אישית באמצעות פונקציית ה-CEL‏ memberSubjectMatches בביטוי התנאי של האילוץ.

    לדוגמה, ביטוי התנאי הבא מגביל את הקצאת התפקידים לחברים בארגון, 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
    
  5. יוצרים מדיניות ארגון שאוכפת את האילוץ המותאם אישית.

    name: organizations/ORGANIZATION_ID/policies/iam.allowedPolicyMemberDomains
    spec:
      rules:
      - allowAll: true
        condition:
          expression: resource.matchTag("ORGANIZATION_ID/allUsersIngress", "True")
          title: allowAllUsersIngress
    
  6. אוכפים את מדיניות הארגון.

    gcloud org-policies set-policy POLICY_PATH
    

    מחליפים את POLICY_PATH בנתיב ובשם הקובץ של מדיניות הארגון.

מדיניות הארגון המותנית מאפשרת להעניק הרשאות לזהות allUsers במשאבים שתויגו בתג allUsersIngress: true.

כפיית גישה לחשבון

אם אתם צריכים לאלץ גישה לחשבון בפרויקט שמפר את ההגבלות של הדומיין:

  1. מסירים את מדיניות הארגון שמכילה את אילוץ ההגבלה לפי הדומיין.

  2. מעניקים גישה לחשבון לפרויקט.

  3. מטמיעים מחדש את מדיניות הארגון עם אילוץ ההגבלה לפי הדומיין.

לחלופין, אפשר להעניק גישה לקבוצת Google שמכילה את חשבונות השירות הרלוונטיים:

  1. יוצרים קבוצת Google בדומיין המותר.

  2. משתמשים במרכז האדמינים של Google Workspace כדי להשבית את הגבלת הדומיין עבור הקבוצה הזו.

  3. מוסיפים את חשבון השירות לקבוצה.

  4. נותנים לקבוצה ב-Google גישה במדיניות ההרשאות.