בקרת גישה באמצעות חשבון שירות של מרחב שמות

בדף הזה מוסבר איך להגדיר חשבון שירות של ניהול זהויות והרשאות גישה (IAM) למרחב שמות במכונת Cloud Data Fusion.

מידע על מרחבי שמות ב-Cloud Data Fusion

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

בקרת גישה באמצעות חשבון שירות של מרחב שמות

כדי לשלוט בגישה למשאבים, מרחבי שמות ב-Cloud Data Fusion משתמשים בסוכן שירות של Cloud Data Fusion API כברירת מחדל. Google Cloud

כדי לשפר את הבידוד של הנתונים, אפשר לשייך לכל מרחב שמות חשבון שירות מותאם אישית של IAM (שנקרא חשבון שירות לכל מרחב שמות). חשבון השירות המותאם אישית של IAM, שיכול להיות שונה עבור מרחבי שמות שונים, מאפשר לכם לשלוט בגישה למשאביGoogle Cloud בין מרחבי שמות לפעולות בזמן עיצוב צינורות ב-Cloud Data Fusion, כמו תצוגה מקדימה של צינורות, Wrangler ואימות צינורות.

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

  • חשבונות שירות לכל מרחב שמות נתמכים במופעים עם RBAC ב-Cloud Data Fusion בגרסה 6.10.0 ואילך.
  • חשבונות שירות לכל מרחב שמות משמשים לשליטה בגישה למשאבים ב- Google Cloud ולניהול שלה.

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

כדי לקבל את ההרשאות שנדרשות להתאמה אישית של חשבונות שירות במרחב שמות ולמתן הרשאות משתמשים במרחב שמות, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM‏ Cloud Data Fusion Admin (roles/datafusion.admin) במופע Cloud Data Fusion בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

ניהול הרשאות של משתמשים במרחב שמות

כדי לתת למשתמשים את ההרשאות שהם צריכים במרחב שמות, צריך להקצות להם תפקידים מוגדרים מראש ב-Cloud Data Fusion. מידע נוסף זמין במאמר בנושא תפקידים מוגדרים מראש ב-Cloud Data Fusion שזמינים למשתמשים במופעים עם RBAC.

הגדרת חשבון שירות של מרחב שמות

המסוף

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

  1. אם אין לכם חשבון שירות קיים למרחב השמות, צריך ליצור חשבון שירות.
  2. במסוף Google Cloud , עוברים לדף Instances של Cloud Data Fusion ופותחים מכונה בממשק האינטרנט של Cloud Data Fusion.

    כניסה לדף Instances

  3. לוחצים על System admin > Configuration > Namespaces (ניהול מערכת > הגדרה > מרחבי שמות).

  4. לוחצים על מרחב השמות שרוצים להגדיר.

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

    כפתור להוספת חשבון שירות.

  6. מקצים את התפקיד 'משתמש ב-Workload Identity' (roles/iam.workloadIdentityUser).

    כדי להקצות את התפקיד:

    1. בשדה Pipeline design service account, מזינים את כתובת האימייל בחשבון השירות – לדוגמה, SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com.
    2. פועלים לפי ההוראות בתיבת הדו-שיח שמופיעה.
  7. כדי להשלים את ההגדרה של חשבון השירות, חוזרים למרחב השמות של מכונת Cloud Data Fusion ולוחצים על שמירה.

  8. חוזרים על השלבים כדי להגדיר חשבון שירות לכל מרחב שמות.

‫API בארכיטקטורת REST

  1. מקצים את התפקיד 'משתמש ב-Workload Identity' (roles/iam.workloadIdentityUser).

    כדי להקצות את התפקיד:

    1. מגדירים את משתני הסביבה הבאים:

      export TENANT_PROJECT_ID=TENANT_PROJECT
      export GSA_PROJECT_ID=SERVICE_ACCOUNT_PROJECT
      

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

      • TENANT_PROJECT: מזהה הפרויקט של הדייר. כדי למצוא אותו, עוברים לדף Instances ולוחצים על שם המכונה. המזהה מופיע בדף Instance details.

        כניסה לדף Instances

      • SERVICE_ACCOUNT_PROJECT:Google Cloud מזהה הפרויקט שבו נמצא חשבון השירות ב-IAM.

    2. מקצים את התפקיד Workload Identity User:

      gcloud iam service-accounts add-iam-policy-binding \
          --role roles/iam.workloadIdentityUser
          --member "serviceAccount:${TENANT_PROJECT_ID}.svc.id.goog[default/NAMESPACE_IDENTITY]" SERVICE_ACCOUNT_EMAIL \
          --project ${GSA_PROJECT_ID}
      

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

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

      • SERVICE_ACCOUNT_EMAIL: כתובת האימייל של חשבון השירות – לדוגמה, SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com.

  2. מאמתים את כתובת האימייל בחשבון השירות של מרחב השמות מהשלב הקודם. מגדירים את environment variables ואז מריצים את הפקודה הבאה:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity/validate -X POST -d '{"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}'
    

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

    • NAMESPACE_NAME: מזהה מרחב השמות.
    • SERVICE_ACCOUNT_EMAIL: כתובת האימייל בחשבון השירות ב-IAM שרוצים להגדיר במרחב השמות.
  3. מגדירים את חשבון השירות של מרחב השמות. מגדירים את environment variables ואז מריצים את הפקודה הבאה:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"
     ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity -X PUT -d '{"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}'
    

עריכה של חשבון שירות במרחב שמות

המסוף

כדי לערוך חשבון שירות של מרחב שמות:

  1. במופע של Cloud Data Fusion, לוחצים על System admin (אדמין מערכת) > Configuration (הגדרה) > Namespaces (מרחבי שמות).
  2. לוחצים על מרחב השמות שכולל את חשבון השירות שרוצים לערוך.
  3. כדי לערוך את חשבון השירות, עוברים לכרטיסייה Service accounts. לצד השם של חשבון השירות, לוחצים על תפריט > עריכה.
  4. פועלים לפי השלבים להגדרת חשבון שירות של מרחב שמות.

‫API בארכיטקטורת REST

כדי לערוך חשבון שירות של מרחב שמות:

  1. מגדירים את environment variables ואז מריצים את הפקודה הבאה:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"
     ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity -X PUT -d '{"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}'
    

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

    • NAMESPACE_NAME: מזהה מרחב השמות.
    • SERVICE_ACCOUNT_EMAIL: כתובת האימייל בחשבון השירות ב-IAM שרוצים להגדיר במרחב השמות.

מחיקה של חשבון שירות במרחב שמות

המסוף

כדי למחוק חשבון שירות של מרחב שמות ממרחב שמות:

  1. במופע של Cloud Data Fusion, לוחצים על System admin (אדמין מערכת) > Configuration (הגדרה) > Namespaces (מרחבי שמות).
  2. לוחצים על מרחב השמות שכולל את חשבון השירות שרוצים למחוק.
  3. כדי להסיר את חשבון השירות, עוברים לכרטיסייה Service accounts. לצד השם של חשבון השירות, לוחצים על תפריט > מחיקה.

‫API בארכיטקטורת REST

כדי למחוק חשבון שירות של מרחב שמות ממרחב שמות:

  1. מגדירים את environment variables ואז מריצים את הפקודה הבאה:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity -X DELETE
    

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

    • NAMESPACE_NAME: מזהה מרחב השמות.

קבלת חשבון השירות של מרחב השמות

המסוף

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

  1. במסוף Google Cloud , עוברים לדף Instances של Cloud Data Fusion ופותחים מכונה בממשק האינטרנט של Cloud Data Fusion.

    כניסה לדף Instances

  2. לוחצים על System admin > Configuration > Namespaces (ניהול מערכת > הגדרה > מרחבי שמות).

  3. לוחצים על שם מרחב השמות כדי לראות את פרטי חשבון השירות.

‫API בארכיטקטורת REST

כדי לקבל את שם חשבון השירות של מרחב השמות:

  1. מגדירים את environment variables ואז מריצים את הפקודה הבאה:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity -X GET
    

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

    • NAMESPACE_NAME: מזהה מרחב השמות.

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

    Response: {"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}
    

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