הגדרה של אשכולות מקומיים

במסמך הזה מוסבר איך להגדיר Binary Authorization לאשכולות מקומיים שנוצרו כחלק מ-Google Distributed Cloud. בהמשך נסביר איך להגדיר מדיניות לדוגמה של Binary Authorization.

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

  1. מוודאים שהאשכולות שלכם הם בגרסה נתמכת של Google Distributed Cloud. Binary Authorization תומך בסביבות הבאות.

  2. שירות Binary Authorization משתמש בכתובת IP חיצונית שאפשר לגשת אליה דרך חיבור אינטרנט רגיל. מגדירים את כללי חומת האש עבור HTTPS כדי לאפשר לאשכול המשתמשים גישה לנקודת הקצה binaryauthorization.googleapis.com.

  3. אם רוצים להשתמש ביומני ביקורת של Cloud כדי להציג רשומות ביומן הביקורת, כולל רשומות מ-Binary Authorization עבור אשכולות מחוץ ל- Google Cloud, צריך להגדיר את יומני הביקורת של Cloud בהגדרות האשכול.

    Bare metal

    מגדירים יומני ביקורת בענן ב-Google Distributed Cloud.

    VMware

    מגדירים יומני ביקורת בענן ב-Google Distributed Cloud.

  4. צריך להפעיל את Binary Authorization API באופן הבא:

    1. עוברים אל Google Cloud המסוף.

      הפעלת ממשקי API

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

הגדרת Binary Authorization

בקטע הזה מוסבר איך להגדיר Binary Authorization באשכול המקומי.

ציון משתני סביבה להתקנה

כדי לציין את משתני הסביבה:

שימוש ב-Workload Identity

  1. מציינים את פרויקט המארח של ה-Fleet:

    export PROJECT_ID=PROJECT_ID
    
  2. מגדירים את מזהה החברות ב-Fleet למזהה האשכול:

    מזהה החברות מופיע בעמודה NAME כשמריצים את הפקודה gcloud container fleet memberships list.

    export MEMBERSHIP_ID=CLUSTER_NAME
    

שימוש במפתח של חשבון שירות

  1. מציינים את פרויקט המארח של ה-Fleet:

    export PROJECT_ID=PROJECT_ID
    

    מחליפים את PROJECT_ID ב Google Cloud project בקטע gkeConnect בקובץ התצורה של אשכול המשתמשים.

  2. מציינים את הנתיב של קובץ ה-kubeconfig של אשכול המשתמשים:

    export KUBECONFIG=PATH
    

    מחליפים את PATH בנתיב של קובץ ה-kubeconfig של אשכול המשתמשים.

  3. בוחרים שם לחשבון השירות של ה-API לגישה ל-Binary Authorization:

    export SA_NAME=SERVICE_ACCOUNT_NAME
    

    מחליפים את SERVICE_ACCOUNT_NAME בשם של חשבון השירות שרוצים. מודול Binary Authorization משתמש בחשבון השירות הזה כדי לגשת אל Binary Authorization API.

  4. מציינים את הנתיב לקובץ המפתח של חשבון השירות שהורדתם בהמשך המדריך הזה:

    export SA_JSON_PATH=SA_KEY_FILE_PATH
    

    מחליפים את SA_KEY_FILE_PATH בנתיב של קובץ מפתח ה-JSON של חשבון השירות.

התקנת מודול Binary Authorization באשכול המשתמשים

כדי להתקין את מודול Binary Authorization:

שימוש ב-Workload Identity

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

  1. מקצים את התפקיד binaryauthorization.policyEvaluator לחשבון השירות של Kubernetes בפרויקט המארח של הצי:

    gcloud projects add-iam-policy-binding ${PROJECT_ID} \
        --member="serviceAccount:${PROJECT_ID}.svc.id.goog[binauthz-system/binauthz-admin]" \
        --role="roles/binaryauthorization.policyEvaluator"
    
  2. יוצרים ספריית עבודה:

    1. יוצרים ספרייה בשם binauthz.

    2. עוברים לספרייה.

  3. מורידים את הקובץ manifest-wi-0.2.6.yaml.tmpl, שמשמש להתקנת מודול Binary Authorization באשכול המשתמשים:

    Bare metal

    gcloud storage cp gs://anthos-baremetal-release/binauthz/manifest-wi-0.2.6.yaml.tmpl .
    

    VMware

    gcloud storage cp gs://gke-on-prem-release/binauthz/manifest-wi-0.2.6.yaml.tmpl .
    
  4. מחליפים את משתני הסביבה בתבנית:

    envsubst < manifest-wi-0.2.6.yaml.tmpl > manifest-0.2.6.yaml
    
  5. מתקינים את מודול Binary Authorization באשכול המשתמשים:

    kubectl apply -f manifest-0.2.6.yaml
    
  6. מוודאים שהפריסה נוצרה:

    kubectl get pod --namespace binauthz-system
    

    ה-Pod binauthz-module-deployment-* מופיע ברשימה עם Status מתוך Running ו-1/1 Pods ready, כמו בדוגמה הבאה:

    NAME                                          READY   STATUS    RESTARTS   AGE
    binauthz-module-deployment-5fddf9594f-qjprz   1/1     Running   0          11s
    

שימוש במפתח של חשבון שירות

  1. מגדירים את פרויקט ברירת המחדל ל-Google Cloud CLI:

    gcloud config set project ${PROJECT_ID}
    
  2. יוצרים חשבון שירות לגישה ל-Binary Authorization API:

    gcloud iam service-accounts create ${SA_NAME}
    
  3. מקצים את התפקיד binaryauthorization.policyEvaluator לחשבון השירות של ממשק Binary Authorization API בפרויקט המארח של הצי:

    gcloud projects add-iam-policy-binding ${PROJECT_ID}\
        --member="serviceAccount:${SA_NAME}@${PROJECT_ID}.iam.gserviceaccount.com" \
        --role="roles/binaryauthorization.policyEvaluator"
    
  4. יוצרים ספריית עבודה:

    1. יוצרים ספרייה בשם binauthz.

    2. עוברים לספרייה.

  5. מורידים את הקובץ manifest-0.2.6.yaml, שמשמש להתקנת מודול Binary Authorization באשכול המשתמשים:

    Bare metal

    gcloud storage cp gs://anthos-baremetal-release/binauthz/manifest-0.2.6.yaml .
    

    VMware

    gcloud storage cp gs://gke-on-prem-release/binauthz/manifest-0.2.6.yaml .
    
  6. יוצרים קובץ YAML למרחב השמותbinauthz-system.

    מעתיקים את הקוד הבא לקובץ שנקרא namespace.yaml:

    apiVersion: v1
    kind: Namespace
    metadata:
      labels:
        control-plane: binauthz-controller
      name: binauthz-system
    
  7. יוצרים את מרחב השמות באשכול המשתמשים: