השילוב בין Secret Manager לבין Google Kubernetes Engine (GKE) מאפשר לכם לאחסן נתונים רגישים כמו סיסמאות ואישורים שמשמשים אשכולות GKE כסודות ב-Secret Manager.
בדף הזה מוסבר איך אפשר להשתמש בתוסף Secret Manager כדי לגשת לסודות שמאוחסנים ב-Secret Manager כנפחים שמוצמדים ל-Pods של Kubernetes.
התהליך הזה כולל את השלבים הבאים:
- מפעילים את התוסף Secret Manager באשכול GKE חדש או קיים.
- הגדרת אפליקציות לאימות ב-Secret Manager API.
- מגדירים אילו סודות לטעון לקבוצות Pod ב-Kubernetes באמצעות קובץ
SecretProviderClassYAML. תוסף Secret Manager תומך בסודות גלובליים ואזוריים. - יוצרים נפח אחסון שבו יותקנו הסודות. אחרי שמצרפים את אמצעי האחסון, אפליקציות במאגר יכולות לגשת לנתונים במערכת הקבצים של המאגר.
התוסף Secret Manager מבוסס על Kubernetes Secrets Store CSI Driver בקוד פתוח ועל Google Secret Manager provider. אם אתם משתמשים ב-Secrets Store CSI Driver בקוד פתוח כדי לגשת לסודות, אתם יכולים לעבור לתוסף Secret Manager. מידע נוסף זמין במאמר בנושא העברה מ-Secrets Store CSI Driver הקיים.
יתרונות
התוסף Secret Manager מספק את היתרונות הבאים:
- אתם יכולים להשתמש בפתרון מנוהל ונתמך באופן מלא כדי לגשת לסודות של Secret Manager מתוך GKE בלי תקורה תפעולית.
- לא צריך לכתוב קוד בהתאמה אישית כדי לגשת לסודות שמאוחסנים ב-Secret Manager.
- אתם יכולים לאחסן ולנהל את כל הסודות שלכם באופן מרכזי ב-Secret Manager ולגשת לסודות באופן סלקטיבי מ-pods של GKE באמצעות התוסף Secret Manager. כך תוכלו להשתמש בתכונות שמציע Secret Manager, כמו הצפנת CMEK, בקרת גישה פרטנית, רוטציה מנוהלת, ניהול מחזור חיים ויומני ביקורת, וגם בתכונות של Kubernetes, כמו העברת סודות למאגרי מידע בצורה של אמצעי אחסון מוצמדים.
- התוסף Secret Manager נתמך באשכולות רגילים ובאשכולות Autopilot.
- התוסף Secret Manager תומך בצמתים שמשתמשים בקובצי אימג' של צמתים של מערכת הפעלה שמותאמת לקונטיינרים או של Ubuntu.
מגבלות
התוסף Secret Manager כולל את המגבלות הבאות:
התוסף Secret Manager לא תומך בתכונה Sync as Kubernetes Secret (סנכרון כסוד של Kubernetes), שזמינה ב-Secrets Store CSI Driver בקוד פתוח. אם רוצים לסנכרן סודות שמאוחסנים ב-Secret Manager עם סודות של Kubernetes, אפשר להשתמש בתכונת סנכרון הסודות המשולבת של Secret Manager. מידע נוסף זמין במאמר בנושא סנכרון סודות עם סודות של Kubernetes.
התוסף Secret Manager לא תומך בצמתים של Windows Server.
לפני שמתחילים
-
מפעילים את ממשקי ה-API של Secret Manager ו-Google Kubernetes Engine.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידים אם רוצים להשתמש ב-Google Cloud CLI למשימה הזו, צריך להתקין ואז לאתחל את ה-CLI של gcloud. אם התקנתם בעבר את ה-CLI של gcloud, מריצים את הפקודה
gcloud components updateכדי לקבל את הגרסה העדכנית.אי אפשר להגדיר את התוסף Secret Manager באופן ידני באמצעות Google Cloud SDK או מסוף Google Cloud .
מוודאים שהאשכול פועל ב-GKE בגרסה 1.27.14-gke.1042001 ואילך עם תמונת צומת של Linux.
אם אתם משתמשים באשכול GKE Standard, אתם צריכים לוודא שמופעל באשכול שלכם איחוד שירותי אימות הזהות של עומסי עבודה ב-GKE. איחוד זהויות של עומסי עבודה ל-GKE מופעל כברירת מחדל באשכול Autopilot. קבוצות Pod ב-Kubernetes משתמשות באיחוד זהויות של עומסי עבודה ל-GKE כדי לבצע אימות ל-Secret Manager API.
הפעלת התוסף Secret Manager
אפשר להפעיל את התוסף Secret Manager גם באשכולות רגילים וגם באשכולות של Autopilot.
הפעלת התוסף Secret Manager באשכול GKE חדש
כדי להפעיל את התוסף Secret Manager כשיוצרים את האשכול:
המסוף
-
במסוף Google Cloud , נכנסים לדף Google Kubernetes Engine.
לוחצים על add_boxיצירה.
בתיבת הדו-שיח יצירת אשכול, לוחצים על הגדרה.
בתפריט הניווט, בקטע Cluster, לוחצים על Security.
מסמנים את תיבת הסימון Enable Secret Manager (הפעלת Secret Manager).
מסמנים את התיבה Enable Workload Identity.
ממשיכים להגדיר את האשכול ולוחצים על יצירה.
gcloud
{ Standard cluster}
כדי להפעיל את התוסף Secret Manager באשכול Standard חדש, מריצים את הפקודה הבאה:
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- CLUSTER_NAME: השם של האשכול.
- LOCATION: האזור של Compute Engine שבו נמצא האשכול, למשל
us-central1. - VERSION: גרסת GKE הספציפית שרוצים להשתמש בה. מוודאים שהאשכול פועל ב-GKE בגרסה
1.27.14-gke.1042001 ואילך. אם ערוץ ההפצה שמוגדר כברירת מחדל לא כולל את הגרסה הזו, צריך להשתמש בדגל
--release-channelכדי לבחור ערוץ הפצה שכן כולל אותה. - PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud container clusters create CLUSTER_NAME \ --enable-secret-manager \ --location=LOCATION \ --cluster-version=VERSION \ --workload-pool=PROJECT_ID.svc.id.goog
Windows (PowerShell)
gcloud container clusters create CLUSTER_NAME ` --enable-secret-manager ` --location=LOCATION ` --cluster-version=VERSION ` --workload-pool=PROJECT_ID.svc.id.goog
Windows (cmd.exe)
gcloud container clusters create CLUSTER_NAME ^ --enable-secret-manager ^ --location=LOCATION ^ --cluster-version=VERSION ^ --workload-pool=PROJECT_ID.svc.id.goog
{ Autopilot cluster}
כדי להפעיל את התוסף Secret Manager באשכול חדש של Autopilot, מריצים את הפקודה הבאה:
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- CLUSTER_NAME: השם של האשכול.
- VERSION: גרסת GKE הספציפית שרוצים להשתמש בה. מוודאים שהאשכול פועל ב-GKE בגרסה 1.27.14-gke.1042001 ואילך. כדי להגדיר גרסה ספציפית, אפשר לעיין במאמר הגדרת הגרסה וערוץ ההפצה של אשכול חדש של Autopilot.
- LOCATION: האזור של Compute Engine שבו נמצא האשכול, למשל
us-central1.
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud container clusters create-auto CLUSTER_NAME \ --enable-secret-manager \ --cluster-version=VERSION \ --location=LOCATION
Windows (PowerShell)
gcloud container clusters create-auto CLUSTER_NAME ` --enable-secret-manager ` --cluster-version=VERSION ` --location=LOCATION
Windows (cmd.exe)
gcloud container clusters create-auto CLUSTER_NAME ^ --enable-secret-manager ^ --cluster-version=VERSION ^ --location=LOCATION
אחרי שמפעילים את התוסף Secret Manager, אפשר להשתמש במנהל ההתקן של CSI של Secrets Store בנפחי אחסון של Kubernetes באמצעות מנהל ההתקן ושם הספק: secrets-store-gke.csi.k8s.io.
הפעלת התוסף Secret Manager באשכול GKE קיים
כדי להפעיל את התוסף Secret Manager באשכול קיים:
המסוף
-
במסוף Google Cloud , נכנסים לדף Google Kubernetes Engine.
ברשימת האשכולות, לוחצים על שם האשכול שרוצים לשנות.
בדף הפרטים של האשכול, בקטע אבטחה, לוחצים על Secret Manager.
בתיבת הדו-שיח עריכת Secret Manager, מסמנים את התיבה הפעלת Secret Manager.
לוחצים על שמירת השינויים.
gcloud
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- CLUSTER_NAME: השם של האשכול
- LOCATION: האזור של Compute Engine עבור האשכול, למשל
us-central1
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud container clusters update CLUSTER_NAME \ --enable-secret-manager \ --location=LOCATION \
Windows (PowerShell)
gcloud container clusters update CLUSTER_NAME ` --enable-secret-manager ` --location=LOCATION `
Windows (cmd.exe)
gcloud container clusters update CLUSTER_NAME ^ --enable-secret-manager ^ --location=LOCATION ^
אימות ההתקנה של תוסף Secret Manager
כדי לוודא שהתוסף Secret Manager מותקן באשכול Kubernetes, מריצים את הפקודה הבאה:
gcloud container clusters describe CLUSTER_NAME --location LOCATION | grep secretManagerConfig -A 4
מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: שם האשכול -
LOCATION: המיקום של האשכול, למשלus-central1
הגדרת רוטציה אוטומטית של סודות
אתם יכולים להגדיר את התוסף Secret Manager כך שיבצע רוטציה אוטומטית של סודות, כדי שסודות שמתעדכנים ב-Secret Manager אחרי הפריסה הראשונית של ה-pod יידחפו באופן אוטומטי ומדי פעם אל ה-pod. החלפה אוטומטית של סודות מוצפנים שמוצמדים למכונה מאפשרת לאפליקציות לקבל באופן אוטומטי סודות מוצפנים מעודכנים, בלי שיהיה צורך להפעיל מחדש את המכונה או להתערב באופן ידני. התכונה הזו מבטיחה שהאפליקציות תמיד ישתמשו בסודות הכי עדכניים.
הערות לגבי הגדרת רוטציה אוטומטית של סודות:
- החלפה אוטומטית של סודות היא הגדרה אופציונלית.
- אפשר להגדיר את התכונה הזו כשיוצרים אשכול חדש או כשמעדכנים אשכול קיים.
- אפשר להגדיר את התדירות של הסיבוב האוטומטי על ידי ציון של מרווח הסיבוב ויחידת מרווח הסיבוב.
- סיבוב אוטומטי של סודות נתמך ב-GKE בגרסה 1.32.2-gke.1059000 ואילך.
כדי להגדיר החלפה אוטומטית של סודות, צריך להפעיל את התכונה enable-secret-manager-rotation ולהגדיר את מרווח ההחלפה באמצעות ההגדרה secret-manager-rotation-interval.
הגדרה של רוטציה אוטומטית של סודות באשכול GKE חדש
כדי להגדיר סיבוב אוטומטי של סודות כשיוצרים אשכול:
המסוף
{ Autopilot cluster}
-
נכנסים לדף Create an Autopilot cluster במסוף Google Cloud .
בתפריט הניווט, בקטע הגדרות מתקדמות, לוחצים על אבטחה.
מסמנים את תיבת הסימון Enable Secret Manager (הפעלת Secret Manager).
מסמנים את התיבה הגדרת סיבוב אוטומטי.
מציינים את מרווח ההחלפה ואת יחידת מרווח ההחלפה.
ממשיכים להגדיר את האשכול ולוחצים על יצירה.
{ Standard cluster}
-
נכנסים לדף Create a Kubernetes cluster במסוף Google Cloud .
בתפריט הניווט, בקטע Cluster, לוחצים על Security.
מסמנים את תיבת הסימון Enable Secret Manager (הפעלת Secret Manager).
מסמנים את התיבה הגדרת סיבוב אוטומטי.
מציינים את מרווח ההחלפה ואת יחידת מרווח ההחלפה.
ממשיכים להגדיר את האשכול ולוחצים על יצירה.
gcloud
{ Autopilot cluster}
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- CLUSTER_NAME: שם האשכול
- VERSION: גרסת GKE הספציפית שרוצים להשתמש בה. מוודאים שהאשכול פועל ב-GKE בגרסה
1.27.14-gke.1042001 ואילך. אם ערוץ ההפצה שמוגדר כברירת מחדל לא כולל את הגרסה הזו, צריך להשתמש בדגל
--release-channelכדי לבחור ערוץ הפצה שכן כולל אותה. - LOCATION: המיקום של האשכול, למשל
us-central1 - ROTATION_INTERVAL: מרווח הרוטציה בשניות. הערך חייב להיות מספר שלם חיובי עם הסיומת
s. הערך המינימלי המותר הוא120s. לדוגמה, כדי להגדיר את המרווח ל-5 דקות, משתמשים ב-300s.
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud container clusters create CLUSTER_NAME \ --cluster-version=VERSION \ --location=LOCATION \ --enable-secret-manager \ --enable-secret-manager-rotation \ --secret-manager-rotation-interval=ROTATION_INTERVAL
Windows (PowerShell)
gcloud container clusters create CLUSTER_NAME ` --cluster-version=VERSION ` --location=LOCATION ` --enable-secret-manager ` --enable-secret-manager-rotation ` --secret-manager-rotation-interval=ROTATION_INTERVAL
Windows (cmd.exe)
gcloud container clusters create CLUSTER_NAME ^ --cluster-version=VERSION ^ --location=LOCATION ^ --enable-secret-manager ^ --enable-secret-manager-rotation ^ --secret-manager-rotation-interval=ROTATION_INTERVAL
{ Standard cluster}
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- CLUSTER_NAME: שם האשכול
- LOCATION: המיקום של האשכול, למשל
us-central1 - VERSION: גרסת GKE הספציפית שרוצים להשתמש בה. מוודאים שהאשכול פועל ב-GKE בגרסה
1.27.14-gke.1042001 ואילך. אם ערוץ ההפצה שמוגדר כברירת מחדל לא כולל את הגרסה הזו, צריך להשתמש בדגל
--release-channelכדי לבחור ערוץ הפצה שכן כולל אותה. - PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- ROTATION_INTERVAL: מרווח הרוטציה בשניות. הערך חייב להיות מספר שלם חיובי עם הסיומת
s. הערך המינימלי המותר הוא120s. לדוגמה, כדי להגדיר את המרווח ל-5 דקות, משתמשים ב-300s.
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud container clusters create CLUSTER_NAME \ --location=LOCATION \ --cluster-version=VERSION \ --workload-pool=PROJECT_ID.svc.id.goog \ --enable-secret-manager \ --enable-secret-manager-rotation \ --secret-manager-rotation-interval=ROTATION_INTERVAL
Windows (PowerShell)
gcloud container clusters create CLUSTER_NAME ` --location=LOCATION ` --cluster-version=VERSION ` --workload-pool=PROJECT_ID.svc.id.goog ` --enable-secret-manager ` --enable-secret-manager-rotation ` --secret-manager-rotation-interval=ROTATION_INTERVAL
Windows (cmd.exe)
gcloud container clusters create CLUSTER_NAME ^ --location=LOCATION ^ --cluster-version=VERSION ^ --workload-pool=PROJECT_ID.svc.id.goog ^ --enable-secret-manager ^ --enable-secret-manager-rotation ^ --secret-manager-rotation-interval=ROTATION_INTERVAL
הגדרת רוטציה אוטומטית של סודות באשכול GKE קיים
כדי להגדיר סיבוב אוטומטי של סודות באשכול GKE קיים:
המסוף
-
נכנסים לדף Kubernetes clusters במסוף Google Cloud .
ברשימת האשכולות, לוחצים על שם האשכול שרוצים לשנות.
בדף הפרטים של האשכול, לוחצים על עריכה.
בקטע אבטחה, לוחצים על Secret Manager.
בתיבת הדו-שיח עריכת Secret Manager, מסמנים את התיבה הפעלת Secret Manager.
מסמנים את התיבה הגדרת סיבוב אוטומטי.
מציינים את מרווח ההחלפה ואת יחידת מרווח ההחלפה.
לוחצים על שמירת השינויים.
gcloud
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- CLUSTER_NAME: שם האשכול
- LOCATION: המיקום של האשכול, למשל
us-central1 - ROTATION_INTERVAL: מרווח הרוטציה בשניות. הערך חייב להיות מספר שלם חיובי עם הסיומת
s. הערך המינימלי המותר הוא120s. לדוגמה, כדי להגדיר את המרווח ל-5 דקות, משתמשים ב-300s.
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud container clusters update CLUSTER_NAME \ --enable-secret-manager \ --location=LOCATION \ --enable-secret-manager-rotation \ --secret-manager-rotation-interval=ROTATION_INTERVAL
Windows (PowerShell)
gcloud container clusters update CLUSTER_NAME ` --enable-secret-manager ` --location=LOCATION ` --enable-secret-manager-rotation ` --secret-manager-rotation-interval=ROTATION_INTERVAL
Windows (cmd.exe)
gcloud container clusters update CLUSTER_NAME ^ --enable-secret-manager ^ --location=LOCATION ^ --enable-secret-manager-rotation ^ --secret-manager-rotation-interval=ROTATION_INTERVAL
הגדרת אפליקציות לאימות ב-Secret Manager API
ספק Google Secret Manager משתמש בזהות עומס העבודה של ה-Pod שסוד מוצמד אליו כשמתבצע אימות ל-Secret Manager API. כדי לאפשר לאפליקציות שלכם לבצע אימות ל-Secret Manager API באמצעות איחוד זהויות של עומסי עבודה ל-GKE, אתם צריכים:
יוצרים Kubernetes ServiceAccount חדש או משתמשים ב-Kubernetes ServiceAccount קיים באותו מרחב שמות כמו ה-Pod שרוצים לצרף אליו את הסוד.
יוצרים מדיניות הרשאות בניהול הזהויות והרשאות הגישה (IAM) עבור הסוד ב-Secret Manager.
קבוצות Pod שמשתמשות ב-Kubernetes ServiceAccount שהוגדר מבצעות אימות אוטומטי בתור מזהה החשבון הראשי של IAM שתואם ל-Kubernetes ServiceAccount, כשניגשים אל Secret Manager API.
יצירת חשבון שירות חדש ב-Kubernetes
שומרים את קובץ המניפסט הבא בשם
service-account.yaml:apiVersion: v1 kind: ServiceAccount metadata: name: KSA_NAME namespace: NAMESPACEמחליפים את מה שכתוב בשדות הבאים:
-
KSA_NAME: השם של חשבון השירות החדש ב-Kubernetes -
NAMESPACE: השם של מרחב השמות ב-Kubernetes עבור ServiceAccount
-
החלת המניפסט:
kubectl apply -f service-account.yamlיוצרים מדיניות הרשאה ב-IAM שמפנה אל חשבון השירות החדש של Kubernetes ומעניקים לו הרשאה לגשת לסוד:
gcloud secrets add-iam-policy-binding SECRET_NAME \ --role=roles/secretmanager.secretAccessor \ --member=principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/subject/ns/NAMESPACE/sa/KSA_NAMEמחליפים את מה שכתוב בשדות הבאים:
-
SECRET_NAME: השם של הסוד ב-Secret Manager -
PROJECT_NUMBER: מספר הפרויקט Google Cloud -
PROJECT_ID: מזהה הפרויקט של Google Cloud הפרויקט שמכיל את אשכול GKE -
NAMESPACE: השם של מרחב השמות ב-Kubernetes עבור ServiceAccount -
KSA_NAME: השם של חשבון השירות הקיים ב-Kubernetes
-
שימוש בחשבון שירות קיים ב-Kubernetes
יוצרים מדיניות הרשאה ב-IAM שמפנה אל Kubernetes ServiceAccount הקיים ומעניקים לו הרשאה לגשת לסוד:
gcloud secrets add-iam-policy-binding SECRET_NAME \
--role=roles/secretmanager.secretAccessor \
--member=principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/subject/ns/NAMESPACE/sa/KSA_NAME
מחליפים את מה שכתוב בשדות הבאים:
-
SECRET_NAME: השם של הסוד ב-Secret Manager -
PROJECT_NUMBER: מספר הפרויקט Google Cloud -
PROJECT_ID: מזהה הפרויקט של Google Cloud הפרויקט שמכיל את אשכול GKE -
NAMESPACE: השם של מרחב השמות ב-Kubernetes עבור ServiceAccount -
KSA_NAME: השם של חשבון השירות הקיים ב-Kubernetes
הגדרת הסודות להעברה
כדי לציין אילו סודות להוסיף כקבצים ל-Pod של Kubernetes, יוצרים מניפסט SecretProviderClassYAML ומפרטים את הסודות שרוצים להוסיף ואת שם הקובץ שרוצים להוסיף אותם אליו. איך לעשות את זה?
שומרים את קובץ המניפסט הבא בשם
app-secrets.yaml:apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: SECRET_PROVIDER_CLASS_NAME spec: provider: gke parameters: secrets: | - resourceName: "projects/PROJECT_ID/secrets/SECRET_NAME/versions/SECRET_VERSION" path: "FILENAME.txt"מחליפים את מה שכתוב בשדות הבאים:
-
SECRET_PROVIDER_CLASS_NAME: השם של אובייקטSecretProviderClass. PROJECT_ID: מזהה הפרויקט.-
SECRET_NAME: שם הסוד. -
SECRET_VERSION: גרסת הסוד. גרסת הסוד צריכה להיות באותו אזור כמו האשכול. -
FILENAME.txt: שם הקובץ שבו יותקן ערך הסוד. אפשר ליצור כמה קבצים באמצעות המשתניםresourceNameו-path.
בסוד אזורי,
resourceNameהוא הנתיב המלא למשאב הסוד שכולל את המיקום של הסוד האזורי. לדוגמה, "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_NAME/versions/SECRET_VERSION"-
החלת המניפסט:
kubectl apply -f app-secrets.yaml -n NAMESPACEמחליפים את
NAMESPACEבשם של מרחב השמות של Kubernetes עבור ServiceAccount.מוודאים שאובייקט
SecretProviderClassנוצר:kubectl get SecretProviderClasses -n NAMESPACE
הגדרת נפח אחסון שבו הסודות יותקנו
שומרים את ההגדרה הבאה בתור
my-pod.yaml:apiVersion: v1 kind: Pod metadata: name: POD_NAME namespace: NAMESPACE spec: serviceAccountName: KSA_NAME containers: - image: IMAGE_NAME imagePullPolicy: IfNotPresent name: POD_NAME resources: requests: cpu: 100m stdin: true stdinOnce: true terminationMessagePath: /dev/termination-log terminationMessagePolicy: File tty: true volumeMounts: - mountPath: "/var/secrets" name: mysecret volumes: - name: mysecret csi: driver: secrets-store-gke.csi.k8s.io readOnly: true volumeAttributes: secretProviderClass: SECRET_PROVIDER_CLASS_NAMEמחליפים את מה שכתוב בשדות הבאים:
-
POD_NAME: השם של ה-Pod ב-Kubernetes שבו הסוד מותקן -
NAMESPACE: השם של מרחב השמות ב-Kubernetes עבור ServiceAccount -
KSA_NAME: חשבון השירות של Kubernetes שהגדרתם בשלב הגדרת אפליקציות לאימות ל-Secret Manager API -
IMAGE_NAME: שם קובץ האימג' של הקונטיינר -
SECRET_PROVIDER_CLASS_NAME: השם של אובייקטSecretProviderClass
-
באשכולות Standard בלבד, מוסיפים את השורה הבאה לשדה
template.specכדי למקם את ה-Pods במאגרי צמתים שמשתמשים באיחוד זהויות של עומסי עבודה ל-GKE.באשכולות Autopilot, אפשר לדלג על השלב הזה כי כל צומת משתמש באיחוד זהויות של עומסי עבודה ל-GKE, ולכן האשכול דוחה את nodeSelector הזה.
spec: nodeSelector: iam.gke.io/gke-metadata-server-enabled: "true"מחילים את ההגדרה על האשכול.
kubectl apply -f my-pod.yaml
בשלב הזה מתבצעת טעינה של נפח mysecret ב-/var/secrets באמצעות מנהל התקן ה-CSI (secrets-store-gke.csi.k8s.io). הנפח הזה מפנה לאובייקט SecretProviderClass שפועל כספק.
מעבר מ-Secrets Store CSI Driver הקיים
אם אתם עוברים לתוסף Secret Manager מההתקנה הקיימת של Secrets Store CSI Driver, אתם צריכים לעדכן את מניפסט ה-Pod באופן הבא:
מעדכנים את השם של
SecretProviderClassואתproviderכמו שמתואר במניפסט הבא:apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: app-secrets-gke spec: provider: gke parameters: secrets: | - resourceName: "projects/<project_id>/secrets/<secret_name>/versions/<secret_version>" path: "good1.txt"מעדכנים את
driverואתsecretProviderClassעבור נפח האחסון של Kubernetes כמו שמתואר במניפסט הבא:volumes: - name: mysecret csi: driver: secrets-store-gke.csi.k8s.io readOnly: true volumeAttributes: secretProviderClass: "app-secrets-gke"
השבתת התוסף Secret Manager
כדי להשבית את התוסף Secret Manager באשכול קיים מסוג Standard או באשכול במצב Autopilot, מריצים את הפקודה הבאה:
המסוף
-
במסוף Google Cloud , נכנסים לדף Google Kubernetes Engine.
ברשימת האשכולות, לוחצים על שם האשכול שרוצים לשנות.
בדף הפרטים של האשכול, בקטע אבטחה, לוחצים על Secret Manager.
בתיבת הדו-שיח עריכת Secret Manager, מבטלים את הסימון בתיבת הסימון הפעלת Secret Manager.
לוחצים על שמירת השינויים.
gcloud
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- CLUSTER_NAME: השם של האשכול
- REGION: האזור ב-Compute Engine של האשכול, למשל
us-central1
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud container clusters update CLUSTER_NAME \ --no-enable-secret-manager \ --region=REGION \
Windows (PowerShell)
gcloud container clusters update CLUSTER_NAME ` --no-enable-secret-manager ` --region=REGION `
Windows (cmd.exe)
gcloud container clusters update CLUSTER_NAME ^ --no-enable-secret-manager ^ --region=REGION ^