ניהול משאבים ב-Contact Center AI Platform (פלטפורמת CCAI) באמצעות אילוצים בהתאמה אישית

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

השירות Organization Policy מספק מגבלות מוגדרות מראש לשירותים שונים שלGoogle Cloud . עם זאת, אם אתם רוצים שליטה מפורטת יותר בשדות הספציפיים שמוגבלים בכללי המדיניות של הארגון, אתם יכולים גם ליצור אילוצים מותאמים אישית. כדי להטמיע אילוץ מותאם אישית ב-CCAI Platform, צריך להגדיר את המופעים לגישה פרטית. ההגדרה הזו מגבילה את הגישה לאינטרנט הציבורי למופעים האלה, ולכן צריך להגדיר Private Service Connect כדי שהסוכנים, המנהלים והאדמינים של פלטפורמת CCAI יוכלו לגשת אליהם. מידע נוסף זמין במאמר בנושא הגדרת Private Service Connect.

יתרונות

מדיניות ארגונית ל-CCAI Platform מאפשרת לאדמינים לאכוף מגבלות ברמת הארגון על נתיבי רשת שלא מכוסים על ידי VPC Service Controls. Google Cloudבנוסף, כללי המדיניות הארגוניים האלה מאפשרים שליטה פרטנית בנתיבי הכניסה והיציאה על ידי חלוקת תנועת הרשת לרכיבים. מידע נוסף מופיע במאמר רכיבים.

העברה בירושה של מדיניות

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

תמחור

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

מגבלות

פלטפורמת CCAI לא משולבת עם Cloud Asset Inventory, ולכן התכונה Policy Simulator של Policy Intelligence לא זמינה למדיניות הארגון של פלטפורמת CCAI.

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

לפני שמתחילים, צריך לבצע את הפעולות הבאות:

  1. פועלים לפי השלבים במאמר הגדרת פרויקט Google Cloud ב-CCAI Platform.
  2. כדי להתקין ולהפעיל את Google Cloud ה-CLI, מבצעים את הפעולות הבאות:
    1. התקינו את ה-CLI של Google Cloud.

    2. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

    3. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

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

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

כדי לקבל את ההרשאות שדרושות לניהול מדיניות הארגון, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:

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

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

ההרשאות הנדרשות

כדי לנהל את מדיניות הארגון, נדרשות ההרשאות הבאות:

  • orgpolicy.customConstraints.get
  • orgpolicy.customConstraints.list
  • orgpolicy.customConstraints.create
  • orgpolicy.customConstraints.update
  • orgpolicy.customConstraints.delete

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

רכיבים

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

בטבלה הבאה מפורטים הרכיבים שמשמשים באילוצים בהתאמה אישית ב-CCAI Platform:

רכיב תיאור כיוון התנועה ערך לדוגמה
AGENT קבוצת כל נתיבי הרשת של התנועה הנכנסת שקשורים למשימות שמבצעים סוכן, מנהל או אדמין של פלטפורמת CCAI. תעבורת נתונים נכנסת (Ingress) AGENT
CRM תנועה יוצאת לאפליקציה לניהול קשרי לקוחות (CRM). תעבורת נתונים יוצאת (egress) CRM
MEDIA תנועת מדיה יוצאת (egress). תעבורת נתונים יוצאת (egress) MEDIA
DIRECT_ACCESS_POINT תנועת יציאה לנקודת קצה (endpoint) של גישה ישירה (DAP). תעבורת נתונים יוצאת (egress) DIRECT_ACCESS_POINT
EMAIL תנועה יוצאת (egress) של אימיילים. תעבורת נתונים יוצאת (egress) EMAIL
COBROWSE תנועת יציאה של שיתוף מסך. תעבורת נתונים יוצאת (egress) COBROWSE

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

אילוץ בהתאמה אישית מוגדר בקובץ YAML לפי המשאבים, השיטות, התנאים והפעולות שנתמכים על ידי השירות שבו אתם אוכפים את מדיניות הארגון. התנאים לאילוצים המותאמים אישית מוגדרים באמצעות Common Expression Language ‏(CEL). מידע נוסף על יצירת תנאים באילוצים מותאמים אישית באמצעות CEL זמין בקטע על CEL במאמר יצירה וניהול של אילוצים מותאמים אישית.

כדי להגדיר אילוץ בהתאמה אישית בקובץ YAML ל-CCAI Platform, מבצעים את השלבים הבאים:

  1. יוצרים קובץ טקסט שמכיל את השורות הבאות:

    name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
    resourceTypes:
    - contactcenteraiplatform.googleapis.com/ContactCenter
    methodTypes:
    - CREATE
    - UPDATE
    condition: "CONDITION"
    actionType: ACTION_TYPE
    displayName: "DISPLAY_NAME"
    description: "DESCRIPTION"
    

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

    • ORGANIZATION_ID: מזהה הארגון.

    • CONSTRAINT_NAME: השם של האילוץ המותאם אישית. אילוץ מותאם אישית צריך להתחיל בקידומת custom., ויכול לכלול רק אותיות גדולות, אותיות קטנות או מספרים – לדוגמה, custom.requirePrivateAccess. האורך המקסימלי של השדה הוא 70 תווים, לא כולל הקידומת.

    • CONDITION: תנאי CEL שנכתב על סמך ייצוג של משאב שירות נתמך – לדוגמה, resource.privateAccess.ingressSettings.exists(private_component, private_component.name == 'AGENT'). האורך המקסימלי של השדה הוא 1,000 תווים. מידע נוסף על המשאבים שאפשר לכתוב תנאים לגביהם זמין במאמר משאבים ופעולות נתמכים ב-CCAI Platform. מידע נוסף על רכיבים זמין במאמר רכיבים.

    • ACTION_TYPE: הפעולה שיש לבצע אם התנאי condition מתקיים. מציינים את ALLOW.

    • DISPLAY_NAME: שם קריא לאנשים של האילוץ. האורך המקסימלי של השדה הוא 200 תווים.

    • DESCRIPTION: תיאור ידידותי למשתמש של האילוץ, שיוצג כהודעת שגיאה אם המדיניות תופר. האורך המקסימלי של השדה הוא 2,000 תווים.

  2. שומרים את האילוץ בהתאמה אישית כקובץ YAML, למשל customconstraint.yaml. משתמשים בנתיב לקובץ הזה כערך של המשתנה CONSTRAINT_PATH במאמר הגדרת אילוץ בהתאמה אישית.

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

הגדרת אילוץ בהתאמה אישית

המסוף

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

  1. נכנסים לדף Organization policies במסוף Google Cloud .

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

  2. בבורר הפרויקטים, בוחרים את הפרויקט שרוצים להגדיר לו את מדיניות הארגון.
  3. לוחצים על Custom constraint (הגבלה מותאמת אישית).
  4. בתיבה שם לתצוגה, מזינים שם שאנשים יכולים לקרוא למגבלה. השם הזה משמש בהודעות שגיאה, ואפשר להשתמש בו לצורך זיהוי וניפוי באגים. אל תשתמשו בפרטים אישיים מזהים (PII) או בנתונים רגישים בשמות לתצוגה, כי השם הזה עלול להיחשף בהודעות שגיאה. השדה הזה יכול להכיל עד 200 תווים.
  5. בתיבה Constraint ID (מזהה ההגבלה), מזינים את המזהה שרוצים להגדיר להגבלה החדשה בהתאמה אישית. אילוץ מותאם אישית יכול להכיל רק אותיות (כולל אותיות גדולות וקטנות) או מספרים, למשל custom.requirePrivateAccess. השדה הזה יכול להכיל עד 70 תווים, לא כולל הקידומת (custom.), לדוגמה, organizations/123456789/customConstraints/custom. אל תכללו פרטים אישיים מזהים (PII) או נתונים רגישים במזהה האילוץ, כי הם עלולים להיחשף בהודעות שגיאה.
  6. בתיבה Description, מזינים תיאור של האילוץ שקל לאנשים לקרוא. התיאור הזה משמש כהודעת שגיאה כשמתרחשת הפרה של המדיניות. לכלול פרטים על הסיבה להפרת המדיניות ואיך לפתור אותה. אל תכללו בתיאור פרטים אישיים מזהים (PII) או מידע רגיש, כי הם עלולים להיחשף בהודעות שגיאה. השדה הזה יכול להכיל עד 2,000 תווים.
  7. בתיבה Resource type, בוחרים את השם של Google Cloud משאב REST שמכיל את האובייקט והשדה שרוצים להגביל – לדוגמה, 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.requirePrivateAccess. השדה הזה יכול להכיל עד 70 תווים, לא כולל הקידומת (custom.) – לדוגמה, organizations/123456789/customConstraints/custom. אל תכללו פרטים אישיים מזהים (PII) או נתונים רגישים במזהה האילוץ, כי הם עלולים להיחשף בהודעות שגיאה.
    • RESOURCE_NAME: השם המלא של המשאב Google Cloudשמכיל את האובייקט והשדה שרוצים להגביל. לדוגמה: contactcenteraiplatform.googleapis.com/ContactCenter. רוב סוגי המשאבים תומכים בעד 20 אילוצים מותאמים אישית. אם תנסו ליצור עוד אילוצים בהתאמה אישית, הפעולה תיכשל.
    • methodTypes: שיטות ה-REST שבהן האילוץ נאכף. הערך יכול להיות רק CREATE.
    • כדי לראות את השיטות הנתמכות לכל שירות, מחפשים את השירות ב שירותים שתומכים באילוצים בהתאמה אישית.

    • CONDITION: תנאי CEL שנכתב על סמך ייצוג של משאב שירות נתמך. השדה הזה יכול להכיל עד 1,000 תווים. לדוגמה: resource.privateAccess.ingressSettings.exists(private_component, private_component.name == 'AGENT').
    • מידע נוסף על המשאבים שאפשר לכתוב תנאים לגביהם זמין במאמר משאבים נתמכים.

    • 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 במזהה של משאב הארגון.

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

החלת אילוץ מותאם אישית

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

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

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

    name: projects/PROJECT_ID/policies/CONSTRAINT_NAME
    spec:
      rules:
      - enforce: true
    

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

    • PROJECT_ID: הפרויקט שבו רוצים לאכוף את ההגבלה.
    • CONSTRAINT_NAME: השם שהגדרתם לאילוץ המותאם אישית, לדוגמה custom.requirePrivateAccess.
  2. כדי לאכוף את מדיניות הארגון שמכילה את האילוץ, מריצים את הפקודה הבאה:

    gcloud org-policies set-policy POLICY_PATH
    

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

בדיקת האילוץ המותאם אישית

אילוצים מותאמים אישית, כמו שמוגדר ביצירת אילוץ מותאם אישית (עם רכיב מסוג AGENT, כמו בדוגמה בתיאור של CONDITION), אוכפים את ההתנהגויות הבאות:

יצירה ועדכון של מופע של CCAI Platform עם רכיב מסוג AGENT

כדי לבדוק יצירה ועדכון של מופע CCAI Platform עם רכיב מסוג AGENT, פועלים לפי השלבים הבאים:

  1. ליצור, להגדיר ולאכוף אילוץ מותאם אישית לפי ההוראות במסמך הזה.

  2. יוצרים מכונה לפי ההוראות במאמר יצירת מכונת CCAI Platform שמוגדרת לגישה פרטית. יצירת המופע מסתיימת בהצלחה.

  3. כדי לעדכן את המופע:

    1. בתפריט הניווט במסוף Google Cloud , לוחצים על CCAI Platform.

      מופעים של Contact Center AI Platform

      מוצג הדף CCAI Platform instances.

    2. לוחצים על השם של המכונה שיצרתם קודם בתהליך הזה.

    3. לוחצים על עריכה ואז על הגדרת פריסות.

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

מכיוון שיצרתם מופע פרטי של CCAI Platform, אתם צריכים להגדיר חיבור Private Service Connect כדי לגשת אליו.

יצירת מופע של CCAI Platform ללא רכיב מסוג AGENT

כדי לבדוק יצירה ועדכון של מופע של CCAI Platform ללא רכיב מסוג AGENT, מבצעים את השלבים הבאים:

  1. ליצור, להגדיר ולאכוף אילוץ מותאם אישית לפי ההוראות במסמך הזה.

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

עדכון מופע של CCAI Platform ללא רכיב מסוג AGENT

כפי שמוסבר במאמר יצירת מופע של CCAI Platform ללא רכיב מסוג AGENT, אי אפשר ליצור מופע ללא רכיב מסוג AGENT אחרי שמפעילים את האילוץ המותאם אישית. אם כבר הייתה לכם דוגמה כזו לפני שאכפתם את האילוץ המותאם אישית, אחרי אכיפת האילוץ, העדכונים של הדוגמה ייכשלו (אלא אם העדכונים כוללים הוספה של רכיב מהסוג AGENT – ראו את ההערה הבאה).

משאבים ופעולות נתמכים ב-CCAI Platform

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

משאב פעולה מאפיין אופרטור תנאי לדוגמה
ContactCenter יוצרים או מעדכנים מכונה. מידע נוסף זמין במאמר בנושא יצירת מכונת CCAI Platform. name מכיל resource.name.contains("us-central1/contactCenters/myContactCenter")
תואם את resource.name.matches("projects/my-project/locations/us-central1/contactCenters/myContactCenter")
startsWith resource.name.startsWith("projects/my-project")
endsWith resource.name.endsWith("myContactCenter")
privateAccess קיים resource.privateAccess.ingressSettings.exists(private_component, private_component.name == 'AGENT')

בודקים שהרכיב AGENT מופעל.

דוגמאות למדיניות מותאמת אישית של הארגון לתרחישים נפוצים

בטבלה הבאה מפורט התחביר של כמה כללי מדיניות ארגוניים בהתאמה אישית שיכולים להיות שימושיים:

תיאור תחביר של מגבלות
כל הרכיבים שצוינו הם פרטיים – במילים אחרות, AGENT).
    name: organizations/ORGANIZATION_ID/customConstraints/custom.requirePrivateAccess
    resourceTypes:
    - contactcenteraiplatform.googleapis.com/ContactCenter
    methodTypes:
    - CREATE
    - UPDATE
    condition: "resource.privateAccess.ingressSettings.exists(private_component, private_component.name == 'AGENT')"
    actionType: ALLOW
    displayName: Agents cannot connect over the internet.
    description: Internet access is disallowed for agents.
כל המקרים, חוץ מהמקרה הספציפי שצוין, צריכים להשתמש ב-AGENT הפרטי שצוין.
    name: organizations/ORGANIZATION_ID/customConstraints/custom.requirePrivateAccess
    resourceTypes:
    - contactcenteraiplatform.googleapis.com/ContactCenter
    methodTypes:
    - CREATE
    - UPDATE
    condition: "resource.privateAccess.ingressSettings.exists(private_component, private_component.name == 'AGENT' ||
    resource.name.contains('myContactCenterId')"
    actionType: ALLOW
    displayName: Restrict Internet access to AGENT for all instances except a
    single instance.
    description: Internet access for agents is restricted except for myContactcenterId CCAI Platform instances.

המאמרים הבאים