הגדרת אימות מנוהל של זהויות לעומסי עבודה ב-Compute Engine

כדי ליצור חיבורי Mutual TLS ‏(mTLS) בין עומסי עבודה ב-Compute Engine, אתם יכולים להשתמש ב-CLI של gcloud כדי להגדיר ניהול זהויות ב-Workload Identity ולהגדיר הקצאה אוטומטית וניהול מחזור חיים של אישורים. כדי להנפיק אישורים, אתם יכולים להשתמש ברשות אישורים (CA) שמוגדרת כברירת מחדל ומנוהלת על ידי Google, או ברשות אישורים בניהול עצמי עם שירות רשות האישורים.

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

  1. יוצרים או בוחרים פרויקט ב- Google Cloud .

    התפקידים שנדרשים כדי לבחור או ליצור פרויקט

    • בחירת פרויקט: כדי לבחור פרויקט לא נדרש תפקיד IAM ספציפי – אתם יכולים לבחור כל פרויקט שקיבלתם בו תפקיד.
    • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד "יצירת פרויקטים" (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים?
    • יוצרים פרויקט ב- Google Cloud :

      gcloud projects create PROJECT_ID

      מחליפים את PROJECT_ID בשם של הפרויקט ב- Google Cloud שאתם יוצרים.

    • בוחרים את הפרויקט שיצרתם ב- Google Cloud :

      gcloud config set project PROJECT_ID

      מחליפים את PROJECT_ID בשם הפרויקט ב- Google Cloud .

  2. הסבר על ניהול זהויות ב-Workload Identity

  3. מידע על הנפקת אישורים באמצעות Certificate Authority Service

  4. איך מאמתים עומסי עבודה ב-Compute Engine באמצעות זהויות מנוהלות של עומסי עבודה

  5. מפעילים את ממשקי ה-API של IAM ושל Certificate Authority Service, אם הם עדיין לא מופעלים:

    התפקידים שנדרשים כדי להפעיל ממשקי API

    כדי להפעיל ממשקי API, צריך את ההרשאה serviceusage.services.enable. אם אתם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    gcloud services enable iam.googleapis.com privateca.googleapis.com

  6. מגדירים את Google Cloud CLI כך שישתמש בפרויקט לצורכי חיוב ומכסות.

    gcloud config set billing/quota_project PROJECT_ID
    

    מחליפים את PROJECT_ID במזהה הפרויקט.

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

כדי לקבל את ההרשאות שדרושות ליצירת זהויות מנוהלות של עומסי עבודה ולהקצאת אישורים לזהויות מנוהלות של עומסי עבודה, בקשו מהאדמין לתת לכם את התפקידים הבאים ב-IAM ברמת הפרויקט:

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

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

לחלופין, התפקיד הבסיסי "בעלים" ב-IAM (roles/owner) כולל גם הרשאות להגדרה של ניהול זהויות ב-Workload Identity. בסביבת ייצור לא מומלץ להקצות תפקידים בסיסיים, אבל אפשר להעניק אותם בסביבת פיתוח או בסביבת בדיקה.

סקירה כללית

כדי להשתמש בניהול זהויות ב-Workload Identity באפליקציות, צריך לבצע את הפעולות הבאות:

  1. אדמין אבטחה:

  2. אדמין של Compute:

    מפעילים את ניהול הזהויות ב-Workload Identity לעומסי עבודה שפועלים ב-Compute Engine:

יצירת מאגר זהויות של עומסי עבודה

  1. כדי להגדיר ניהול זהויות ב-Workload Identity, צריך ליצור מאגר במצב TRUST_DOMAIN.

    gcloud iam workload-identity-pools create POOL_ID \
      --location="global" \
      --mode="TRUST_DOMAIN"
    

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

  2. כדי לוודא שמאגר הזהויות של עומסי העבודה נוצר במצב TRUST_DOMAIN, מריצים את הפקודה workload-identity-pools describe.

    gcloud iam workload-identity-pools describe POOL_ID \
      --location="global"
    

    הפלט אמור להיראות כך:

    mode: TRUST_DOMAIN
    name: projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID
    state: ACTIVE
    

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

בחירת אפשרות של רשות אישורים (CA)

כדי לחתום על אישורי עומס העבודה, בוחרים את האפשרות של רשות האישורים (CA) שהכי מתאימה לתרחיש לדוגמה:

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

  • רשות אישורים בהתאמה אישית: אתם יכולים להשתמש באפשרות הזו כדי להגדיר תשתית של מפתח ציבורי (PKI) משלכם באמצעות Certificate Authority Service. האפשרות הזו מתאימה אם אתם צריכים שורש אמון (root of trust) בהתאמה אישית, או אם אתם צריכים לאחסן מפתחות חתימה במודול אבטחה לחומרה (HSM) כדי לעמוד בדרישות התאימות. החיוב על Certificate Authority Service מתבצע בנפרד מהחיוב על ניהול זהויות ב-Workload Identity. מידע נוסף זמין במאמר התמחור של שירות CA.

הגדרת רשות אישורים (CA)

רשות אישורים שמוגדרת כברירת מחדל

כדי לקשר את ה-CA שמוגדר כברירת מחדל למאגר הזהויות של עומסי העבודה, מעדכנים את מאגר הזהויות של עומסי העבודה באמצעות הדגל use-default-shared-ca.

gcloud iam workload-identity-pools update TRUST_DOMAIN_NAME \
    --location="global" \
    --use-default-shared-ca \
    --project=PROJECT_ID

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

  • ‫TRUST_DOMAIN_NAME: השם של מתחם האמון.
  • ‫PROJECT_ID: מזהה הפרויקט.

רשות אישורים (CA) בהתאמה אישית

כדי להגדיר ניהול זהויות ב-Workload Identity באמצעות רשות אישורים בהתאמה אישית, מבצעים את השלבים הבאים:

  1. הגדרת שירות CA להנפקת אישורים לזהויות מנוהלות של עומסי עבודה.
  2. מקשרים את רשויות ה-CA למאגר הזהויות של עומסי העבודה.
  3. נותנים הרשאה לזהויות המנוהלות ב-Workload Identity לבקש אישורים ממאגר ה-CA.

הגדרת שירות CA להנפקת אישורים לזהויות מנוהלות של עומסי עבודה

ליצור את ההגדרות המומלצות לרשויות אישורים (CA) ברמה הבסיסית וברמה המשנית, באמצעות מאגרים של Certificate Authority Service. מאגר רשויות האישורים המשניות מנפיק למכונות הווירטואליות את אישורי הזהות של עומסי העבודה מסוג X.509.

מאגרי ה-CA שמוגדרים להנפיק אישורים למכונות וירטואליות של Compute Engine באמצעות ניהול זהויות ב-Workload Identity חייבים להיות באותו אזור שבו נמצאת המכונה הווירטואלית. אם אתם רוצים לתכנן ארכיטקטורה במספר אזורים כדי להבטיח עמידות בפני הפסקות חשמל אזוריות, מומלץ להגדיר מאגר משני של רשויות להנפקת אישורים (CA) ב-Certificate Authority Service לכל אחד מהאזורים של עומס העבודה. כך כל אחת מהמכונות הווירטואליות של Compute Engine יכולה להפנות למאגר CA משני של Certificate Authority Service באזור.

אחרי שמגדירים את מאגרי ה-CA, נותנים הרשאה לזהויות המנוהלות של עומסי העבודה לבקש ולקבל את האישורים החתומים ממאגרי ה-CA.

הגדרת מאגר רשויות השורש להנפקת אישורים (CA)

משתמשים בממשק של Google Cloud CLI לשירות Certificate Authority Service כדי להגדיר מאגר של רשויות אישורים ברמה הבסיסית (root).

אחרי שיוצרים מאגר CA, אי אפשר להעביר או לייצא אותו.

  1. מריצים את הפקודה gcloud privateca pools create כדי ליצור את מאגר רשויות להנפקת אישורים (CA) ברמת Enterprise. רמת Enterprise מיועדת להנפקת אישורים לטווח ארוך ובנפח נמוך.

    gcloud privateca pools create ROOT_CA_POOL_ID \
       --location=REGION \
       --tier=enterprise
    

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

    • ‫ROOT_CA_POOL_ID: מזהה ייחודי של מאגר רשויות להנפקת אישורים (CA). המזהה יכול להכיל עד 64 תווים, ורק תווים אלפאנומריים קטנים וגדולים, קווים תחתונים או מקפים. מזהה המאגר חייב להיות ייחודי באזור.
    • ‫REGION: האזור שבו נמצא מאגר ה-CA ברמה הבסיסית (root).

    למידע נוסף, קראו את המאמר יצירת מאגרי CA.

  2. מריצים את הפקודה gcloud privateca roots create כדי ליצור רשות אישורי בסיס במאגר רשויות להנפקת אישורים (CA). יכול להיות שתתבקשו להפעיל את רשות האישורים ברמה הבסיסית אם זו רשות האישורים היחידה במאגר רשויות להנפקת אישורים (CA) ברמה הבסיסית.

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

    gcloud privateca roots create ROOT_CA_ID \
       --pool=ROOT_CA_POOL_ID \
       --subject "CN=ROOT_CA_CN, O=ROOT_CA_ORGANIZATION" \
       --key-algorithm="ec-p256-sha256" \
       --max-chain-length=1 \
       --location=REGION
    

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

    • ‫ROOT_CA_ID: שם ייחודי לרשות אישורים בסיסית. השם של ה-CA יכול להיות באורך של עד 64 תווים, והוא יכול להכיל רק תווים אלפאנומריים באותיות קטנות וגדולות, קווים תחתונים או מקפים. השם של ה-CA חייב להיות ייחודי באזור.
    • ‫ROOT_CA_POOL_ID: המזהה של מאגר רשויות להנפקת אישורים (CA) ברמה הבסיסית.
    • ‫ROOT_CA_CN: השם הנפוץ של ה-CA ברמה הבסיסית (root).
    • ‫ROOT_CA_ORGANIZATION: הארגון של רשות האישורים הבסיסית.
    • ‫REGION: האזור שבו נמצא מאגר ה-CA ברמה הבסיסית (root).

    למידע נוסף, קראו את המאמר יצירת רשות אישורי בסיס. למידע נוסף על השדות של subject ב-CA, קראו את המאמר נושא.

  3. אופציונלי: חוזרים על השלבים הקודמים כדי ליצור עוד רשות אישורי בסיס במאגר רשויות להנפקת אישורים (CA). זה יכול להיות שימושי לרוטציה של רשות אישורים בסיסית.

הגדרת רשויות האישורים המשניות

משתמשים בממשק של Google Cloud CLI ל-Certificate Authority Service כדי ליצור מאגר רשויות להנפקת אישורים (CA) משניות ורשות אישורים משנית.

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

משתמשים בפקודה gcloud privateca pools create כדי ליצור מאגר רשויות אישורים משניות.

  1. יוצרים את מאגר רשויות האישורים המשניות ברמת DevOps. הרמה הזו מיועדת להנפקת אישורים לטווח קצר ובנפח גבוה.

    gcloud privateca pools create SUBORDINATE_CA_POOL_ID \
      --location=REGION \
      --tier=devops
    

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

    • SUBORDINATE_CA_POOL_ID: מזהה ייחודי של מאגר רשויות להנפקת אישורים (CA) משניות. המזהה יכול להכיל עד 64 תווים, והוא חייב להכיל רק תווים אלפאנומריים קטנים וגדולים, קווים תחתונים או מקפים. מזהה המאגר חייב להיות ייחודי באזור.
    • ‫REGION: האזור שבו יוצרים את מאגר רשויות האישורים המשניות.

    למידע נוסף, קראו את המאמר יצירת מאגרי CA.

  2. מריצים את הפקודה gcloud privateca subordinates create כדי ליצור רשות אישורים משנית במאגר של רשויות האישורים המשניות. לא משנים את ברירת המחדל של מצב ההנפקה שמבוסס על הגדרות אישיות.

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

    gcloud privateca subordinates create SUBORDINATE_CA_ID \
      --pool=SUBORDINATE_CA_POOL_ID \
      --location=REGION \
      --issuer-pool=ROOT_CA_POOL_ID \
      --issuer-location=REGION \
      --subject="CN=SUBORDINATE_CA_CN, O=SUBORDINATE_CA_ORGANIZATION" \
      --key-algorithm="ec-p256-sha256" \
      --use-preset-profile=subordinate_mtls_pathlen_0
    

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

    • ‫SUBORDINATE_CA_ID: שם ייחודי לרשות האישורים המשנית. השם יכול להכיל עד 64 תווים, ורק תווים אלפאנומריים באותיות קטנות וגדולות, קווים תחתונים או מקפים. השם של ה-CA חייב להיות ייחודי באזור.
    • ‫SUBORDINATE_CA_POOL_ID: השם של מאגר רשויות האישורים המשניות.
    • ‫REGION: האזור שבו נמצא מאגר רשויות להנפקת אישורים (CA) המשניות.
    • ‫ROOT_CA_POOL_ID: המזהה של מאגר רשויות להנפקת אישורים (CA) ברמה הבסיסית (root).
    • ‫REGION: האזור של מאגר רשויות להנפקת אישורים (CA) של הבסיס.
    • ‫SUBORDINATE_CA_CN: השם הנפוץ של רשות האישורים המשנית.
    • ‫SUBORDINATE_CA_ORGANIZATION: שם הארגון שמנפיק את רשות האישורים המשנית.

    למידע נוסף, קראו את המאמר יצירת מאגרי CA. למידע נוסף על השדות של subject ב-CA, קראו את המאמר נושא.

קישור של רשויות האישורים למאגר הזהויות של עומסי העבודה

אחרי שיוצרים את היררכיית ה-CA, מקשרים את ה-CAs למאגר הזהויות של עומסי העבודה. כדי לעשות את זה, מעדכנים את המאגר עם הגדרת הנפקת האישורים של כל אחד מה-CAs.

  1. יוצרים קובץ issuance-config.yaml עם התוכן הבא:

    inlineCertificateIssuanceConfig:
    caPools:
    REGION: projects/PROJECT_ID/locations/REGION/caPools/SUBORDINATE_CA_POOL_ID
    keyAlgorithm: RSA_2048
    lifetime: 86400s
    rotationWindowPercentage: 50

    מחליפים את הערכים הבאים בקובץ:

    • ‫REGION: האזור שבו נמצא מאגר רשויות האישורים המשניות.
    • ‫PROJECT_ID: מזהה הפרויקט שמכיל את מאגר רשויות האישורים המשניות.
    • ‫SUBORDINATE_CA_POOL_ID: המזהה של מאגר ה-CA המשני.
  2. מריצים את הפקודה הבאה כדי לעדכן את מאגר הזהויות של עומסי העבודה:

    gcloud iam workload-identity-pools update POOL_ID \
       --location="global" \
       --inline-certificate-issuance-config-file=ISSUANCE_CONFIG_FILE
    

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

    • ‫POOL_ID: המזהה הייחודי של המאגר.
    • ‫ISSUANCE_CONFIG_FILE: הנתיב לקובץ issuance-config.yaml.

אישור לניהול זהויות ב-Workload Identity לבקש אישורים ממאגר רשויות להנפקת אישורים (CA)

זהויות עומסי העבודה המנוהלות צריכות הרשאות כדי לבקש אישורים משירות ה-CA ולקבל את האישורים הציבוריים.

  1. מקצים את תפקיד ה-IAM מבקש אישור עומס עבודה של שירות CA‏ (roles/privateca.workloadCertificateRequester) בכל מאגר משני של רשויות להנפקת אישורים (CA) לניהול הזהויות ב-Workload Identity. הפקודה הבאה של gcloud privateca pools add-iam-policy-binding מאשרת לניהול זהויות ב-Workload Identity לבקש אישורים משרשראות האישורים של שירות CA.

    gcloud privateca pools add-iam-policy-binding SUBORDINATE_CA_POOL_ID \
      --location=REGION \
      --role=roles/privateca.workloadCertificateRequester \
      --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/name/locations/global/workloadIdentityPools/POOL_ID/*"
    

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

    • SUBORDINATE_CA_POOL_ID: המזהה של מאגר רשויות להנפקת אישורים (CA) המשניות.
    • ‫REGION: האזור של מאגר רשויות האישורים המשניות.
    • ‫PROJECT_NUMBER: מספר הפרויקט שמכיל את מאגר הזהויות של עומסי העבודה.
    • ‫POOL_ID: המזהה של מאגר הזהויות של עומסי העבודה.
  2. מקצים את התפקיד CA Service Pool Reader (roles/privateca.poolReader) ב-IAM במאגרי רשויות האישורים המשניות לניהול הזהויות ב-Workload Identity. כך מאשרים לזהות המנוהלת ב-Workload Identity לקבל את אישורי ה-X.509 החתומים משרשראות האישורים של ה-CA.

    gcloud privateca pools add-iam-policy-binding SUBORDINATE_CA_POOL_ID \
      --location=REGION \
      --role=roles/privateca.poolReader \
      --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/name/locations/global/workloadIdentityPools/POOL_ID/*"
    

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

    • SUBORDINATE_CA_POOL_ID: המזהה של מאגר רשויות להנפקת אישורים (CA) המשניות.
    • ‫REGION: האזור של מאגר רשויות האישורים המשניות.
    • ‫PROJECT_NUMBER: מספר הפרויקט שמכיל את מאגר הזהויות של עומסי העבודה.
    • ‫POOL_ID: המזהה של מאגר הזהויות של עומסי העבודה.

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

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

יצירת מרחב שמות

הפקודה workload-identity-pools namespaces create מאפשרת ליצור מרחב שמות במאגר זהויות של עומסי עבודה.

gcloud iam workload-identity-pools namespaces create NAMESPACE_ID \
    --workload-identity-pool="POOL_ID" \
    --location="global"

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

  • ‫NAMESPACE_ID: המזהה הייחודי של מרחב השמות. המזהה צריך להיות באורך של בין 2 ל-63 תווים, להכיל רק תווים אלפאנומריים קטנים ומקפים, ולהתחיל ולהסתיים בתו אלפאנומרי. אחרי שיוצרים מרחב שמות, אי אפשר לשנות את המזהה שלו.
  • ‫POOL_ID: המזהה של מאגר הזהויות של עומסי העבודה שיצרתם קודם.

יצירת ניהול זהויות ב-Workload Identity

הפקודה workload-identity-pools managed-identities create מאפשרת ליצור זהות מנוהלת של עומס עבודה במרחב השמות של מאגר הזהויות של עומסי העבודה.

gcloud iam workload-identity-pools managed-identities create MANAGED_IDENTITY_ID \
    --namespace="NAMESPACE_ID" \
    --workload-identity-pool="POOL_ID" \
    --location="global"

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

  • ‫MANAGED_IDENTITY_ID: המזהה הייחודי של הזהות המנוהלת. המזהה צריך להיות באורך של 2 עד 63 תווים, להכיל רק תווים אלפאנומריים קטנים ומקפים, ולהתחיל ולהסתיים בתו אלפאנומרי. אחרי שיוצרים זהות מנוהלת של עומס עבודה, אי אפשר לשנות את המזהה שלה.
  • ‫NAMESPACE_ID: המזהה של מרחב השמות שיצרתם קודם.
  • ‫POOL_ID: המזהה של מאגר הזהויות של עומסי העבודה שיצרתם קודם.

המזהה של ניהול הזהויות ב-Workload Identity הוא מזהה SPIFFE, בפורמט הבא:

spiffe://POOL_ID.global.PROJECT_NUMBER.workload.id.goog/ns/NAMESPACE_ID/sa/MANAGED_IDENTITY_ID

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

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

האימות מבוסס על אחד מהמאפיינים הבאים של עומס העבודה:

  • כתובת האימייל של חשבון השירות המצורף
  • מזהה ייחודי של חשבון השירות המצורף
  • שם המכונה הווירטואלית
  • מזהה המכונה הווירטואלית

הגדרת מדיניות אימות של עומס עבודה באמצעות כללי אימות

כדי ליצור מדיניות אימות שמאפשרת לעומס העבודה להשתמש בזהות המנוהלת:

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

  2. יוצרים קובץ מדיניות אימות בפורמט JSON.

    1. אופציונלי: כדי לקבל פרטי כניסה מסוג X.509 במכונה של Compute Engine, צריך להפעיל חשבון שירות מצורף. מומלץ לצרף חשבון שירות חדש לעומס העבודה. קודם צריך ליצור אותו באמצעות הפקודה הבאה:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
      

      מחליפים את SERVICE_ACCOUNT_NAME בשם של חשבון השירות.

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

      כתובת אימייל של חשבון שירות

      כדי ליצור קובץ מדיניות אימות שמבצע אימות על סמך כתובת האימייל של חשבון השירות, יוצרים קובץ עם התוכן הבא:

      {
         "attestationRules": [
            {
               "googleCloudResource": "//compute.googleapis.com/projects/WORKLOAD_PROJECT_NUMBER/type/Instance/attached_service_account.email/SERVICE_ACCOUNT_EMAIL"
            }
         ],
      }
      

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

      • ‫WORKLOAD_PROJECT_NUMBER: מספר הפרויקט שמכיל את המכונה הווירטואלית או את חשבון השירות

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

        gcloud projects describe $(gcloud config get-value project) \
          --format="value(projectNumber)"
        
      • ‫SERVICE_ACCOUNT_EMAIL: כתובת האימייל של חשבון השירות שמחובר למכונה הווירטואלית

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

      כדי ליצור קובץ מדיניות אימות שמבצע אימות על סמך ה-UID של חשבון השירות, יוצרים קובץ עם התוכן הבא:

      {
         "attestationRules": [
            {
               "googleCloudResource": "//compute.googleapis.com/projects/WORKLOAD_PROJECT_NUMBER/type/Instance/attached_service_account.uid/SERVICE_ACCOUNT_UID"
            }
         ],
      }
      

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

      • ‫WORKLOAD_PROJECT_NUMBER: מספר הפרויקט שמכיל את המכונה הווירטואלית או את חשבון השירות

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

        gcloud projects describe $(gcloud config get-value project) \
          --format="value(projectNumber)"
        
      • ‫SERVICE_ACCOUNT_UID: המזהה הייחודי של חשבון השירות שמחובר למכונה הווירטואלית

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

         gcloud iam service-accounts describe SERVICE_ACCOUNT_EMAIL\
            --format="value(uniqueId)"
      

      שם המכונה

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

      {
         "attestationRules": [
            {
               "googleCloudResource": "//compute.googleapis.com/projects/WORKLOAD_PROJECT_NUMBER/name/zones/ZONE/instances/INSTANCE_NAME"
            }
         ],
      }
      

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

      • ‫WORKLOAD_PROJECT_NUMBER: מספר הפרויקט שמכיל את המכונה הווירטואלית או את חשבון השירות

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

        gcloud projects describe $(gcloud config get-value project) \
          --format="value(projectNumber)"
        
      • ‫ZONE: האזור של המכונה הווירטואלית ב-Compute Engine

      • ‫INSTANCE_NAME: השם של מכונה וירטואלית חדשה או קיימת ב-Compute Engine

      מזהה מופע

      כדי ליצור קובץ מדיניות אימות שמבצע אימות על סמך מזהה המכונה, יוצרים קובץ עם התוכן הבא:

      {
         "attestationRules": [
            {
               "googleCloudResource": "//compute.googleapis.com/projects/WORKLOAD_PROJECT_NUMBER/uid/zones/ZONE/instances/INSTANCE_ID"
            }
         ],
      }
      

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

      • ‫WORKLOAD_PROJECT_NUMBER: מספר הפרויקט שמכיל את המכונה הווירטואלית או את חשבון השירות

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

        gcloud projects describe $(gcloud config get-value project) \
          --format="value(projectNumber)"
        
      • ‫INSTANCE_ID: מזהה המכונה הווירטואלית של Compute Engine

        הערך של מזהה המכונה חייב להיות של מכונה קיימת ב-Compute Engine. כדי לקבל את מזהה המכונה, מריצים את הפקודה הבאה:

        gcloud compute instances describe INSTANCE_NAME --zone=ZONE --format="get(id)"
        
      • ‫INSTANCE_NAME: השם של המכונה הווירטואלית ב-Compute Engine

      • ‫ZONE: האזור של המכונה הווירטואלית ב-Compute Engine

  3. יוצרים את מדיניות האימות באמצעות קובץ ה-JSON של המדיניות שיצרתם קודם לכן במסמך הזה:

    gcloud iam workload-identity-pools managed-identities set-attestation-rules MANAGED_IDENTITY_ID \
       --namespace=NAMESPACE_ID \
       --workload-identity-pool=POOL_ID \
       --policy-file=PATH_TO_POLICY_JSON_FILE \
       --location=global
    

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

    • ‫MANAGED_IDENTITY_ID: המזהה הייחודי של הזהות המנוהלת. המזהה צריך להיות באורך של 2 עד 63 תווים, להכיל רק תווים אלפאנומריים קטנים ומקפים, ולהתחיל ולהסתיים בתו אלפאנומרי. אחרי שיוצרים זהות מנוהלת של עומס עבודה, אי אפשר לשנות את המזהה שלה.
    • ‫NAMESPACE_ID: המזהה של מרחב השמות שיצרתם קודם.
    • ‫POOL_ID: המזהה של מאגר הזהויות של עומסי העבודה שיצרתם קודם.
    • ‫PATH_TO_POLICY_JSON_FILE: הנתיב לקובץ ה-JSON שמייצג את מדיניות האימות שיצרתם קודם.

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

    gcloud iam workload-identity-pools managed-identities add-attestation-rule MANAGED_IDENTITY_ID \
       --namespace=NAMESPACE_ID \
       --workload-identity-pool=POOL_ID \
       --google-cloud-resource='//compute.googleapis.com/projects/WORKLOAD_PROJECT_NUMBER/type/Instance/attached_service_account.uid/SERVICE_ACCOUNT_UID' \
       --location=global
    
  4. כדי לראות איך מציגים או מסירים את כללי האימות, מריצים את הפקודות הבאות:

    gcloud iam workload-identity-pools managed-identities list-attestation-rules --help
    gcloud iam workload-identity-pools managed-identities remove-attestation-rule --help
    

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

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

  1. יוצרים קובץ trust-config.yaml עם התוכן הבא:

    inlineTrustConfig:
    additionalTrustBundles:
      POOL_ID.global.PROJECT_NUMBER.workload.id.goog:
         trustAnchors:
         - pemCertificate: "-----BEGIN CERTIFICATE-----\nPEM_ENCODED_CERTIFICATE\n-----END CERTIFICATE-----"

    מחליפים את הערכים הבאים בקובץ:

    • ‫POOL_ID: המזהה של מאגר הזהויות של עומסי העבודה שאיתו רוצים ליצור איחוד.
    • ‫PROJECT_NUMBER: מספר הפרויקט של מאגר הזהויות של עומסי העבודה שרוצים לאחד איתו.
    • ‫PEM_ENCODED_CERTIFICATE: אישור ה-CA הבסיסי בקידוד PEM של מאגר הזהויות של עומסי העבודה שרוצים ליצור איתו איחוד.
  2. כדי לעדכן את מאגר הזהויות של עומסי העבודה באמצעות הגדרת האמון, מריצים את הפקודה הבאה:

    gcloud iam workload-identity-pools update POOL_ID \
      --location="global" \
      --inline-trust-config-file=TRUST_CONFIG_FILE
    

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

    • ‫POOL_ID: המזהה הייחודי של המאגר.
    • ‫TRUST_CONFIG_FILE: הנתיב לקובץ trust-config.yaml.

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

נסו בעצמכם

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

מתחילים לעבוד בלי לשלם