הקצאת תפקידים לחשבון השירות

כשמפתחים צופים בתצוגה מקדימה של אפליקציות ופורסים אותן, הם יכולים להשתמש בחשבון שירות קיים, או ש-App Design Center יכול ליצור באופן אוטומטי חשבון שירות חדש.

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

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

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

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

  1. מוסיפים קישור של מדיניות IAM לתפקיד roles/iam.serviceAccountUser של סוכן השירות לחשבון השירות:

    gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
        --member="serviceAccount:service-SERVICE_ACCOUNT_PROJECT_NUMBER@gcp-sa-designcenter.iam.gserviceaccount.com" \
        --role="roles/iam.serviceAccountUser"
    

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

    • SERVICE_ACCOUNT_EMAIL: כתובת האימייל בחשבון השירות. לדוגמה, my-service-account@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com.
    • SERVICE_ACCOUNT_PROJECT_ID: מזהה הפרויקט שמכיל את חשבון השירות.
    • SERVICE_ACCOUNT_PROJECT_NUMBER: מספר הפרויקט שמכיל את חשבון השירות.
  2. מוסיפים קישור למדיניות IAM לתפקיד roles/iam.serviceAccountUser של משתמש לחשבון השירות:

    gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
        --member="user:USER_EMAIL" \
        --role="roles/iam.serviceAccountUser"
    

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

    • SERVICE_ACCOUNT_EMAIL: כתובת האימייל בחשבון השירות. לדוגמה, my-service-account@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com.
    • USER_EMAIL: כתובת האימייל של המשתמש שמבצע את הפריסה.
  3. בפרויקט שבו נמצא חשבון השירות, מוסיפים את הקישורים למדיניות IAM עבור תפקידי סוכן השירות הנדרשים בפרויקט הניהול שמכיל את המרחב:

    gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \
        --member="serviceAccount:service-MANAGEMENT_PROJECT_NUMBER@gcp-sa-designcenter.iam.gserviceaccount.com" \
        --role="roles/apphub.editor"
    
    gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \
        --member="serviceAccount:service-MANAGEMENT_PROJECT_NUMBER@gcp-sa-designcenter.iam.gserviceaccount.com" \
        --role="roles/config.agent"
    
    gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \
        --member="serviceAccount:service-MANAGEMENT_PROJECT_NUMBER@gcp-sa-designcenter.iam.gserviceaccount.com" \
        --role="roles/serviceusage.serviceUsageAdmin"
    

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

    • SERVICE_ACCOUNT_PROJECT_ID: מזהה הפרויקט שמכיל את חשבון השירות.
    • MANAGEMENT_PROJECT_NUMBER: מספר הפרויקט של פרויקט הניהול שמכיל את המרחב.
  4. בפרויקט שבו נמצא חשבון השירות, מוודאים שהאילוץ iam.disableCrossProjectServiceAccountUsage במדיניות הארגון לא נאכף. האילוץ הזה נאכף כברירת מחדל.

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

    gcloud resource-manager org-policies disable-enforce \
       iam.disableCrossProjectServiceAccountUsage \
       --project=SERVICE_ACCOUNT_PROJECT_ID
    

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

    • SERVICE_ACCOUNT_PROJECT_ID: מזהה הפרויקט שמכיל את חשבון השירות.
  5. מקצים לחשבון השירות את התפקידים שנדרשים לפריסת משאבים בפרויקטים. התפקידים הנדרשים מוצגים כשמפתחים פורסים אפליקציות.

    לדוגמה, כדי להקצות את התפקיד roles/run.admin, מוסיפים את קישור המדיניות הבא:

    gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \
        --member="serviceAccount:service-DEPLOYMENT_PROJECT_NUMBER@gcp-sa-designcenter.iam.gserviceaccount.com" \
        --role="roles/run.admin"
    

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

    • SERVICE_ACCOUNT_PROJECT_ID: מזהה הפרויקט שמכיל את חשבון השירות.
    • DEPLOYMENT_PROJECT_NUMBER: מספר הפרויקט שבו אתם פורסים משאבים.
  6. App Design Center משתמש ב-Infrastructure Manager כדי לפרוס אפליקציות במסוף. כדי להשתמש בחשבון שירות משלכם לצורך פריסה באמצעות Infrastructure Manager, צריך לבצע את השלבים שמפורטים במאמר בנושא הענקת גישה למספר פרויקטים.

  7. אם האפליקציה שאתם פורסים מכילה רכיבים פרטיים שיובאו דרך חיבור Developer Connect, צריך לבצע את הפעולות הבאות:

    מקצים לחשבון השירות את התפקיד roles/iam.serviceAccountTokenCreator בפרויקט שבו יצרתם את חשבון השירות.

    gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
        --role="roles/iam.serviceAccountTokenCreator"
    

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

    • SERVICE_ACCOUNT_PROJECT_ID: מזהה הפרויקט שמכיל את חשבון השירות.
    • SERVICE_ACCOUNT_EMAIL: כתובת האימייל בחשבון השירות. לדוגמה, my-service-account@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com.

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