במסמך הזה מוסבר איך להגדיר Binary Authorization לאשכולות מקומיים שנוצרו כחלק מ-Google Distributed Cloud. בהמשך נסביר איך להגדיר מדיניות לדוגמה של Binary Authorization.
לפני שמתחילים
מוודאים שהאשכולות שלכם הם בגרסה נתמכת של Google Distributed Cloud. Binary Authorization תומך בסביבות הבאות.
Bare metal
Google Distributed Cloud 1.14 או 1.15. בגרסה 1.16 ואילך, אפשר להגדיר את Binary Authorization במהלך יצירה או עדכון של אשכול.
VMware
Distributed Cloud for VMware (Google Distributed Cloud) מגרסה 1.4 ואילך.
שירות Binary Authorization משתמש בכתובת IP חיצונית שאפשר לגשת אליה דרך חיבור אינטרנט רגיל. מגדירים את כללי חומת האש עבור HTTPS כדי לאפשר לאשכול המשתמשים גישה לנקודת הקצה
binaryauthorization.googleapis.com.Bare metal
VMware
אם רוצים להשתמש ביומני ביקורת של Cloud כדי להציג רשומות ביומן הביקורת, כולל רשומות מ-Binary Authorization עבור אשכולות מחוץ ל- Google Cloud, צריך להגדיר את יומני הביקורת של Cloud בהגדרות האשכול.
Bare metal
מגדירים יומני ביקורת בענן ב-Google Distributed Cloud.
VMware
מגדירים יומני ביקורת בענן ב-Google Distributed Cloud.
צריך להפעיל את Binary Authorization API באופן הבא:
עוברים אל Google Cloud המסוף.
ברשימה הנפתחת של הפרויקטים, בוחרים את פרויקט המארח של ה-Fleet. אפשר למצוא את זה בקטע
gkeConnectבקובץ ההגדרות של אשכול המשתמשים. זהו Google Cloud הפרויקט שמקשר את אשכול המשתמשים אל Google Cloud.
הגדרת Binary Authorization
בקטע הזה מוסבר איך להגדיר Binary Authorization באשכול המקומי.
ציון משתני סביבה להתקנה
כדי לציין את משתני הסביבה:
שימוש ב-Workload Identity
מציינים את פרויקט המארח של ה-Fleet:
export PROJECT_ID=PROJECT_IDמגדירים את מזהה החברות ב-Fleet למזהה האשכול:
מזהה החברות מופיע בעמודה
NAMEכשמריצים את הפקודהgcloud container fleet memberships list.export MEMBERSHIP_ID=CLUSTER_NAME
שימוש במפתח של חשבון שירות
מציינים את פרויקט המארח של ה-Fleet:
export PROJECT_ID=PROJECT_IDמחליפים את PROJECT_ID ב Google Cloud project בקטע
gkeConnectבקובץ התצורה של אשכול המשתמשים.מציינים את הנתיב של קובץ ה-kubeconfig של אשכול המשתמשים:
export KUBECONFIG=PATHמחליפים את PATH בנתיב של קובץ ה-kubeconfig של אשכול המשתמשים.
בוחרים שם לחשבון השירות של ה-API לגישה ל-Binary Authorization:
export SA_NAME=SERVICE_ACCOUNT_NAMEמחליפים את SERVICE_ACCOUNT_NAME בשם של חשבון השירות שרוצים. מודול Binary Authorization משתמש בחשבון השירות הזה כדי לגשת אל Binary Authorization API.
מציינים את הנתיב לקובץ המפתח של חשבון השירות שהורדתם בהמשך המדריך הזה:
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 ועל היתרונות של השימוש בו.
מקצים את התפקיד
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"יוצרים ספריית עבודה:
יוצרים ספרייה בשם
binauthz.עוברים לספרייה.
מורידים את הקובץ
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 .מחליפים את משתני הסביבה בתבנית:
envsubst < manifest-wi-0.2.6.yaml.tmpl > manifest-0.2.6.yamlמתקינים את מודול Binary Authorization באשכול המשתמשים:
kubectl apply -f manifest-0.2.6.yamlמוודאים שהפריסה נוצרה:
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
שימוש במפתח של חשבון שירות
מגדירים את פרויקט ברירת המחדל ל-Google Cloud CLI:
gcloud config set project ${PROJECT_ID}יוצרים חשבון שירות לגישה ל-Binary Authorization API:
gcloud iam service-accounts create ${SA_NAME}מקצים את התפקיד
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"יוצרים ספריית עבודה:
יוצרים ספרייה בשם
binauthz.עוברים לספרייה.
מורידים את הקובץ
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 .יוצרים קובץ YAML למרחב השמות
binauthz-system.מעתיקים את הקוד הבא לקובץ שנקרא
namespace.yaml:apiVersion: v1 kind: Namespace metadata: labels: control-plane: binauthz-controller name: binauthz-systemיוצרים את מרחב השמות באשכול המשתמשים: