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

מידע על גישה לזהויות מנוהלות של עומסי עבודה ב-Compute Engine זמין בדף בקשת הגישה.

בדף הזה מוסבר איך להגדיר זהויות מנוהלות של עומסי עבודה ל-Compute Engine באמצעות ה-CLI של gcloud.

בדף הזה מוסבר גם איך להגדיר הקצאת הרשאות אוטומטית וניהול מחזור חיים של זהויות מנוהלות של עומסי עבודה ב-Compute Engine. אתם מגדירים מאגרי רשויות אישורים (CA) כדי להנפיק אישורים באמצעות Certificate Authority Service. שירות CA הוא שירות עם זמינות גבוהה ועם יכולת התאמה לעומס (auto-scaling) Google Cloud , שמפשט ומבצע אוטומציה של הפריסה, הניהול והאבטחה של שירותי CA. אתם יכולים ליצור מופעים של מכונות וירטואליות (VM) שמוקצים להם אישורי X.509 ממאגר רשויות האישורים שהגדרתם. אחר כך אפשר להשתמש בפרטי הכניסה האלה כדי ליצור חיבורי mTLS בין עומסי עבודה.

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

  1. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  2. שליחת בקשה לגישה לגרסת Preview של זהויות מנוהלות של עומסי עבודה ב-Compute Engine

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

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

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

  6. Enable the IAM and Certificate Authority Service APIs:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

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

  7. מגדירים את Google Cloud CLI כך שישתמש בפרויקט שנוסף לרשימת ההיתרים לחיוב ולמכסות.

    gcloud config set billing/quota_project PROJECT_ID
    

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

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

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

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

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

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

סקירה כללית

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

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

  2. אדמין של Compute:

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

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

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

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

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

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

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

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

כדי לוודא שמאגר הזהויות של עומסי העבודה נוצר במצב 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 לא מופיע ב<ph name="command_output">פלט הפקודה</ph>, צריך לוודא שהפרויקט שלכם נוסף ל<ph name="allowlist">רשימת ההיתרים</ph> של התכונה 'תצוגה מקדימה של <ph name="managed_workload_identity">זהויות עומסי עבודה מנוהלות</ph>' ושהגדרתם נכון את <ph name="gcloud_cli">ה-CLI של gcloud</ph> כך שישתמש בפרויקט הנכון לחיוב ול<ph name="quota">מכסה</ph>. יכול להיות שתצטרכו לעדכן לגרסה חדשה יותר של ה-CLI של gcloud.

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

הפקודה 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-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: מזהה מאגר הזהויות של עומסי העבודה שיצרתם קודם.

המזהה של הזהות המנוהלת של עומס העבודה הוא מזהה SPIFFE, והוא מעוצב באופן הבא:

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

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

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

  • מזהה מופע של מכונת VM
  • כתובת האימייל של חשבון השירות המצורף
  • מזהה UID של חשבון השירות המצורף

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

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

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

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

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

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
      

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

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

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

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

      {
         "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 של חשבון שירות

      כדי ליצור קובץ מדיניות אימות שמאמת על סמך ה-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: ה-UID של חשבון השירות שמצורף למכונה הווירטואלית

      מזהה מופע

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

      {
         "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
    

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

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

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

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

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

gcloud

יוצרים את מאגר רשויות האישורים (CA) העליונות.

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

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

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

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

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

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

    לדוגמה, אפשר להשתמש בפקודה שדומה לפקודה הבאה כדי ליצור רשות אישורים (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: המזהה של מאגר רשויות האישורים הבסיסיות.
    • ROOT_CA_CN: השם הנפוץ של רשות האישורים הבסיסית.
    • ROOT_CA_ORGANIZATION: הארגון של רשות האישורים הבסיסית.
    • REGION: האזור שבו נמצא מאגר רשויות האישורים הבסיסיות.

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

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

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

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

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

gcloud

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

  1. יוצרים את מאגר ה-CA המשני ברמה 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. לא לשנות את מצב ההנפקה מבוסס-ההגדרות שמוגדר כברירת מחדל.

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

    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 תווים, והוא חייב להכיל רק תווים אלפאנומריים, אותיות קטנות וגדולות, קווים תחתונים או מקפים. השם של המאגר חייב להיות ייחודי באזור.
    • SUBORDINATE_CA_POOL_ID: השם של מאגר רשויות האישורים המשניות.
    • REGION: האזור שבו נמצא מאגר CA המשני.
    • ROOT_CA_POOL_ID: המזהה של מאגר רשויות האישורים הבסיסיות.
    • REGION: האזור של מאגר רשויות האישורים הבסיסיות.
    • SUBORDINATE_CA_CN: השם הנפוץ של רשות האישורים המשנית.
    • SUBORDINATE_CA_ORGANIZATION: השם של הארגון המנפיק של רשות אישורים משנית.

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

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

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

gcloud

  1. מקצים את תפקיד ה-IAM‏ CA Service Workload Certificate Requester (roles/privateca.workloadCertificateRequester) לזהות העומס המנוהלת בכל מאגר CA משני. הפקודה 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/locations/global/workloadIdentityPools/POOL_ID/*"
    

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

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

    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/locations/global/workloadIdentityPools/POOL_ID/*"
    

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

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

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

משתמשים במידע הזה כדי ליצור קובץ JSON שמועלה כנתוני שותף כשיוצרים מכונה וירטואלית.

הגדרת התצורה של הנפקת האישור

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

{
  "primary_certificate_authority_config": {
    "certificate_authority_config": {
      "ca_pool": "projects/SUBORDINATE_CA_POOL_PROJECT_ID/locations/REGION/caPools/SUBORDINATE_CA_POOL_ID"
    }
  },
  "key_algorithm": "ALGORITHM",
  "workload_certificate_lifetime_seconds": DURATION,
  "rotation_window_percentage": ROTATION_WINDOW_PERCENTAGE
}

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

  • SUBORDINATE_CA_POOL_PROJECT_ID: המזהה של הפרויקט שמכיל את מאגר ה-CA המשני.
  • REGION: האזור שבו נמצא מאגר רשויות האישורים המשניות.
  • SUBORDINATE_CA_POOL_ID: השם של מאגר רשויות אישורים משניות
  • ALGORITHM: אלגוריתם ההצפנה ששימש ליצירת המפתח הפרטי. הערכים התקפים הם rsa-2048 (ברירת מחדל), rsa-3072, ‏ rsa-4096,‏ ecdsa-p256 ו-ecdsa-p384.
  • DURATION: אופציונלי: משך התוקף של אישור הקצה, בשניות. הערך צריך להיות בין 3,600 ל-315,360,000. אם לא מציינים ערך, נעשה שימוש בערך ברירת המחדל 86,400. תוקף האישור בפועל תלוי גם ב-CA המנפיק, כי הוא עשוי להגביל את משך החיים של האישור שהונפק.
  • ROTATION_WINDOW_PERCENTAGE: אופציונלי: אחוז משך החיים של האישור שבו מופעל חידוש. הערך צריך להיות בין 50 ל-80. ערך ברירת המחדל הוא 50%. צריך להגדיר את אחוז חלון הרוטציה ביחס לתקופת התוקף של האישור, כך שחידוש האישור יתרחש לפחות 7 ימים אחרי הנפקת האישור ולפחות 7 ימים לפני שהוא יפוג.

הגדרת תצורת ההרשאות

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

  • מזהי URI של משאבים של מאגר CA מהימן: קבוצה של מזהי URI של משאבים של מאגר CA שמהימנים בהנפקת אישורים באותו דומיין מהימן שאליו שייכות המכונות הווירטואליות.
  • אישורי CA בפורמט PEM: קבוצה של אישורי CA בפורמט PEM שמהימנים להנפקת אישורים באותו דומיין מהימן שאליו שייכות מכונות ה-VM.
{
  "POOL_ID.global.PROJECT_NUMBER.workload.id.goog": {
    "trust_anchors": [
      {
        "ca_pool": "projects/SUBORDINATE_CA_POOL_PROJECT_ID/locations/REGION/caPools/SUBORDINATE_CA_POOL_ID"
      },
      {
        "pem_certificate": "PEM_ENCODED_CERTIFICATE"
      }
    ]
  }
}

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

  • POOL_ID: מזהה מאגר הזהויות של עומסי העבודה
  • PROJECT_NUMBER: מספר הפרויקט שמכיל את מאגר הזהויות של עומסי העבודה
  • SUBORDINATE_CA_POOL_PROJECT_ID: המזהה של הפרויקט שמכיל את מאגר ה-CA המשני.
  • REGION: האזור שבו נמצא מאגר רשויות האישורים המשניות
  • SUBORDINATE_CA_POOL_ID: המזהה של מאגר רשויות האישורים המשניות
  • PEM_ENCODED_CERTIFICATE: אופציונלי: קבוצה של אישורי CA נוספים בפורמט PEM, שמהימנים להנפקת אישורים באותו דומיין מהימן שאליו שייכות מכונות ה-VM. האישורים האלה יתווספו לרשימת נקודות הבסיס לאמון של מאגר רשויות האישורים המשניות. אפשר להשתמש בפקודה הבאה כדי לקודד קובץ trust-anchor.pem בפורמט PEM למחרוזת בשורה אחת:

    cat trust-anchor.pem | sed 's/^[ ]*//g' | sed -z '$ s/\n$//' | tr '\n' $ | sed 's/\$/\\n/g'
    

יצירת קובץ תצורה להעלאת המטא-נתונים של השותף למכונת VM

יוצרים קובץ JSON שמכיל את הפרטים הבאים:

שומרים את הקובץ בפורמט CONFIGS.json. הקובץ הזה משמש ליצירת מכונות וירטואליות להרצת אפליקציות שמשתמשות בזהויות מנוהלות של עומסי עבודה.

קובץ CONFIGS.json צריך להיות דומה לזה:

  {
  "wc.compute.googleapis.com": {
     "entries": {
        "certificate-issuance-config": {
           "primary_certificate_authority_config": {
              "certificate_authority_config": {
                 "ca_pool": "projects/PROJECT_ID/locations/REGION/caPools/SUBORDINATE_CA_POOL_ID"
              }
           },
           "key_algorithm": "ALGORITHM"
        },
        "trust-config": {
           "POOL_ID.global.PROJECT_NUMBER.workload.id.goog": {
               "trust_anchors": [{
                  "ca_pool": "projects/PROJECT_ID/locations/REGION/caPools/SUBORDINATE_CA_POOL_ID"
                }]
           }
     }
  }
  },
  "iam.googleapis.com": {
     "entries": {
        "workload-identity": "spiffe://POOL_ID.global.PROJECT_NUMBER.workload.id.goog/ns/NAMESPACE_ID/sa/MANAGED_IDENTITY_ID"
     }
  }
  }
  

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

נסו בעצמכם

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

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