במאמר הזה מוסבר איך להגדיר הקצאת הרשאות אוטומטית וניהול מחזור חיים של זהויות מנוהלות של עומסי עבודה ב-Compute Engine. אתם מגדירים מאגרי CA כדי להנפיק אישורים באמצעות Certificate Authority Service (CA), שהוא שירות עם זמינות גבוהה וניתן להרחבה Cloud de Confiance by S3NS , שמפשט ומבצע אוטומציה של הפריסה, הניהול והאבטחה של שירותי CA. לכל מכונה וירטואלית מוקצים פרטי כניסה מסוג X.509 ממאגר הרשויות שמנפיקות אישורים שהוגדר. אפשר להשתמש בפרטי הכניסה האלה כדי ליצור חיבורי mTLS.
לפני שמתחילים
- בודקים את המסמכים בנושא סקירה כללית על זהויות מנוהלות של עומסי עבודה.
מפעילים את Compute Engine API:
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידיםgcloud services enable compute.googleapis.com
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות ליצירת מכונות וירטואליות שמשתמשות באימות באמצעות אישורים מנוהלים של זהויות עומסי עבודה לעומסי עבודה אחרים, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:
- Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1) - משתמש בחשבון שירות (
roles/iam.serviceAccountUser)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
סקירה כללית
באמצעות זהויות מנוהלות של עומסי עבודה ב-Compute Engine, אתם יכולים להטמיע תקשורת מוצפנת ומאומתת הדדית בין שתי מכונות וירטואליות ב-Compute Engine. אפליקציות של עומסי עבודה שפועלות במכונות הווירטואליות המוגדרות יכולות להשתמש בפרטי הכניסה של X.509 ל-mTLS לכל מכונה וירטואלית. הסוכן האורח מבצע רוטציה אוטומטית של אישורי mTLS האלה ומרענן את פרטי הכניסה במכונה הווירטואלית.
באמצעות זהויות מנוהלות של עומסי עבודה, אתם יכולים לנהל באופן מרכזי את הזהויות של עומסי העבודה. אפשר לתת הרשאה למכונות וירטואליות של Compute Engine לקבל זהות של עומס עבודה שמבוססת על מאפייני מפתח, כמו מזהה המכונה, שם המכונה או חשבון השירות המצורף. כדי שעומסי העבודה יאומתו, מנהל המחשוב או המפתח צריכים ליצור מכונות וירטואליות בשביל עומס העבודה עם שם מכונה, מזהה מכונה, שם חשבון שירות או מזהה חשבון שירות תואמים.
זהויות מנוהלות של עומסי עבודה תואמות לסטנדרט הקוד הפתוח Secure Production Identity Framework for Everyone (SPIFFE).
מזהי SPIFFE לעומסי עבודה Cloud de Confiance מופיעים בפורמט הבא:
spiffe://<TRUST_DOMAIN/ns/NAMESPACE/sa/WORKLOAD_ID.
המספר TRUST_DOMAIN תואם למאגר זהויות של עומסי עבודה בניהול זהויות והרשאות גישה (IAM).
זהויות מנוהלות של עומסי עבודה מוגדרות בתוך מאגר זהויות של עומסי עבודה, שמשמש כמאגר ברמה העליונה להחזקת זהויות של עומסי עבודה שיש להן גבול משותף של אמון. במאגר זהויות של עומסי עבודה, הזהויות מאורגנות בגבולות אדמיניסטרטיביים שנקראים מרחבי שמות. כדי שעומס עבודה יקבל זהות מנוהלת, צריך להגדיר מדיניות אימות כדי לאשר את זה. מדיניות אימות של עומסי עבודה מבטיחה שרק עומסי עבודה מהימנים יכולים לאשר זהות מנוהלת.
כדי להשתמש בזהויות מנוהלות של עומסי עבודה באפליקציות, צריך לבצע את המשימות הבאות:
אדמין לענייני אבטחה:
- יצירת זהויות מנוהלות של עומסי עבודה במאגר זהויות של עומסי עבודה.
- הגדרת מדיניות האימות של עומס העבודה.
- הגדרת Certificate Authority Service להנפקת אישורים לזהויות מנוהלות של עומסי עבודה.
- איך נותנים הרשאה לזהויות מנוהלות של עומסי עבודה לבקש אישורים ממאגר רשויות האישורים
- מגדירים את האמון ואת הנפקת האישורים במאגר הזהויות של עומסי העבודה.
אדמין של Compute:
- הגדרת מכונות וירטואליות לשימוש ב-Workload Identity עבור מכונות וירטואליות נפרדות ב-Compute Engine
- גישה לפרטי כניסה של עומסי עבודה במופע Linux.
הגדרת זהויות מנוהלות של עומסי עבודה בניהול הזהויות והרשאות הגישה (IAM)
פועלים לפי ההוראות במאמר הגדרת אימות של זהויות מנוהלות של עומסי עבודה .
במאמר הזה מוסבר איך לבצע את הפעולות הבאות:
- יוצרים מאגר זהויות של עומסי עבודה.
- יוצרים מרחבי שמות במאגר הזהויות של עומסי העבודה. משתמשים במרחבי השמות כדי ליצור גבולות אדמיניסטרטיביים לזהויות המנוהלות של עומסי העבודה, למשל, מרחב שמות לכל אחת מהאפליקציות שבבעלות הארגון.
- יוצרים זהות מנוהלת של עומס עבודה במרחב שמות במאגר הזהויות של עומסי העבודה. לדוגמה, אפשר ליצור מרחב שמות לאפליקציה וליצור זהויות מנוהלות במרחב השמות הזה עבור המיקרו-שירותים שתומכים באפליקציה.
- אופציונלי: יוצרים חשבון שירות כדי ליצור כללי אימות על סמך מזהה חשבון השירות.
- יוצרים מדיניות אימות של עומס עבודה שמאפשרת לעומס העבודה לקבל אישורים עבור הזהות המנוהלת של עומס העבודה. אפשר לתת הרשאה למכונות וירטואליות ב-Compute Engine לקבל זהות מנוהלת של עומס עבודה על סמך מאפייני מפתח כמו מזהה המכונה, שם המכונה או חשבון השירות שמצורף אליה.
- מגדירים את Certificate Authority Service להנפקת אישורים לזהויות מנוהלות של עומסי עבודה:
- הגדרת מאגר רשויות אישורים (CA) עליונות
- הגדרת רשויות אישורים משניות
- נותנים למאגר הזהויות המנוהל של עומסי העבודה הרשאה לבקש אישורים ממאגר רשויות האישורים
הפעלה של זהויות מנוהלות של עומסי עבודה למופעי מחשוב ספציפיים
אפשר להפעיל זהויות מנוהלות של עומסי עבודה למכונת Compute כשיוצרים את המכונה או כשמעדכנים את ההגדרות של מכונה קיימת.
יצירת מופעים עם זהויות מנוהלות של עומסי עבודה
כשיוצרים מכונת חישוב, כדי להפעיל את התכונה 'זהויות מנוהלות של עומסי עבודה' במכונה, צריך לבצע את הפעולות הבאות:
- אם האימות של המכונה עבור Workload Identity מבוסס על חשבון שירות, צריך לציין את חשבון השירות הזה.
כוללים את הדגלים
--identityו---identity-certificate
gcloud
כדי ליצור מכונה חדשה, משתמשים בפקודה gcloud alpha compute instances create.
אם אתם משתמשים בחשבון שירות לצורך אימות, אתם צריכים לכלול את פרטי חשבון השירות כשאתם יוצרים את המכונה.
אפשר להוסיף שורות נוספות לפקודה כדי להגדיר את המופע, כמו סוג המכונה והתמונה, במקום להשתמש בערכי ברירת המחדל. מידע נוסף זמין במאמר יצירה והפעלה של מכונה וירטואלית.
gcloud alpha compute instances create INSTANCE_NAME \ --zone=INSTANCE_ZONE \ --service-account SERVICE_ACCOUNT_NAME@PROJECT_ID.s3ns.iam.gserviceaccount.com \ --identity=TRUST_DOMAIN/ns/NAMESPACE/sa/WORKLOAD_IDENTIFIER \ --identity-certificate \ ...
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_NAME: שם ייחודי של המופע. פרטים על שמות מכונות חוקיים מופיעים במאמר בנושא מתן שמות למשאבים. -
INSTANCE_ZONE: האזור שבו רוצים ליצור את המכונה. -
SERVICE_ACCOUNT_NAME: השם של חשבון השירות שמורשה לקבל את הזהות המנוהלת של עומס העבודה. -
PROJECT_ID: מזהה הפרויקט שבו נוצר חשבון השירות. -
TRUST_DOMAIN: המזהה של דומיין האמון, בפורמט הבא:$POOL_ID.global.$PROJECT_NUMBER.workload.id.goog
ערך דומיין האמון כולל את ה-placeholders הבאים:
-
POOL_ID: השם של מאגר הזהויות של עומסי העבודה -
PROJECT_NUMBER: מספר הפרויקט שבו נוצר מאגר הזהויות של עומסי העבודה
-
-
NAMESPACE: שם מרחב השמות שמכיל את מדיניות האימות של עומס העבודה, שמאשרת לעומס העבודה להצהיר על זהות מנוהלת של עומס עבודה -
WORKLOAD_IDENTIFIER: השם של הזהות המנוהלת של עומס העבודה שנוצרה במרחב השמות של מאגר הזהויות של עומסי העבודה
-
כדי להפעיל הקצאת הרשאות אוטומטית של זהויות מנוהלות של עומסי עבודה באמצעות הסוכן של האורח, צריך לעדכן את ההגדרה בקובץ ההגדרות של הסוכן של האורח.
הפעלה של זהויות מנוהלות של עומסי עבודה במופעים קיימים
כדי להפעיל זהויות מנוהלות של עומסי עבודה במופע קיים של Compute, צריך לעדכן את המופע כדי להגדיר את הפרטים הבאים:
- אם האישור של המופע לצורך זיהוי עומס העבודה מבוסס על חשבון שירות, ולמופע עדיין לא צורף חשבון שירות, צריך ליצור חשבון שירות ולצרף אותו למופע.
- מפעילים את התכונה באמצעות הדגל
--identity-certificateומציינים את הזהות המנוהלת של עומס העבודה שבה רוצים להשתמש באמצעות הדגל--identity. מפעילים מחדש את ה-VM.
gcloud
משתמשים בפקודה gcloud alpha compute instances update כדי לעדכן את ההגדרה של מכונה.
אם למכונה עדיין לא מחובר חשבון שירות, מחברים את חשבון השירות למכונה.
מעדכנים את ההגדרה של מופע קיים כדי להפעיל זהויות מנוהלות של עומסי עבודה.
gcloud alpha compute instances update INSTANCE_NAME \ --zone=ZONE \ --identity-certificate \ --identity=TRUST_DOMAIN/ns/NAMESPACE/sa/WORKLOAD_IDENTIFIER
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_NAME: שם המכונה -
ZONE: האזור שבו נמצאת המכונה -
TRUST_DOMAIN: המזהה של הדומיין המהימן, בפורמט הבא:none $POOL_ID.global.$PROJECT_NUMBER.workload.id.goog
ערך תחום האמון משתמש במחזיקי המקום הבאים: *
POOL_ID: השם של מאגר הזהויות של עומסי העבודה *PROJECT_NUMBER: מספר הפרויקט שבו נוצר מאגר הזהויות של עומסי העבודה +NAMESPACE: השם של מרחב השמות שמכיל את מדיניות האימות של עומס העבודה שמאשרת לעומס העבודה להצהיר על זהות מנוהלת של עומס עבודה +WORKLOAD_IDENTIFIER: השם של הזהות המנוהלת של עומס העבודה שנוצרה במרחב השמות של מאגר הזהויות של עומס העבודה-
כדי להפעיל הקצאת הרשאות אוטומטית של זהויות מנוהלות של עומסי עבודה באמצעות הסוכן של האורח, צריך לעדכן את ההגדרה בקובץ ההגדרות של הסוכן של האורח.
מפסיקים את ה-VM.
gcloud alpha compute instances stop INSTANCE_NAME \ --zone=ZONE
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_NAME: שם המכונה -
ZONE: האזור שבו נמצאת המכונה
-
מפעילים את ה-VM.
gcloud alpha compute instances start INSTANCE_NAME \ --zone=ZONE
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_NAME: שם המכונה -
ZONE: האזור שבו נמצאת המכונה
-
גישה לפרטי הכניסה של עומס עבודה במכונה וירטואלית של Linux
אחרי שיוצרים מופע של מחשוב ומתחילים להשתמש בו עם זהויות מנוהלות של עומסי עבודה, Cloud de Confiance התשתית (כולל הסוכן האורח) מקצה באופן אוטומטי את פרטי הכניסה למופע ומנהלת את הרוטציה שלהם.
האישורים של עומס העבודה, כולל המפתח הפרטי וחבילות האמון, ממוקמים בספרייה ספציפית במערכת הקבצים של מכונת ה-VM: /var/run/secrets/workload-spiffe-credentials. אפליקציות יכולות לקרוא את האישורים, את המפתח הפרטי ואת חבילת האישורים מהמערכת ישירות כדי ליצור חיבורי mTLS.
הסוכן של Compute Engine במערכת ההפעלה של האורח מריץ עבודת רענון של עומס העבודה, ובמידת הצורך יוצר את הספרייה /var/run/secrets/workload-spiffe-credentials. הרשאות הגישה לספרייה מוגדרות ל-0755 (rwxr-xr-x).
הספרייה מכילה את הקבצים הבאים שנוצרו עם הרשאות 0644 (rw-r--r--):
-
private_key.pem: מפתח פרטי בפורמט PEM -
certificates.pem: חבילה של אישורי X.509 בפורמט PEM שאפשר להציג למכונות וירטואליות אחרות כשרשרת אישורי הלקוח, או להשתמש בה כשרשרת אישורי שרת.
ca_certificates.pem: חבילה של אישורי X.509 בפורמט PEM לשימוש כישויות עוגן אמינות בעת אימות האישורים של עמיתים.spiffe://POOL_ID.global.PROJECT_NUMBER.workload.id.goog
config_status: קובץ יומן שמכיל הודעות שגיאה.
רענון של פרטי הכניסה וחבילת האישורים
מישור הבקרה של Compute Engine מבצע רוטציה אוטומטית של פרטי הכניסה של זהויות עומסי העבודה המנוהלים ושל נקודות הבסיס לאמון באופן תקופתי.
אם האפליקציות שלכם משתמשות במערכת הקבצים כדי לגשת לפרטי הכניסה של עומס העבודה ולחבילת האישורים, סוכן האורח של Compute Engine מרענן באופן אוטומטי את פרטי הכניסה ואת חבילת האישורים. לדוגמה, כשמתבצעת רוטציה של אישורי mTLS.
עדכון ההגדרות של הנפקת אישורים ושל אמון
אפשר לשנות את הגדרת הנפקת האישורים ואת הגדרת האמון של מכונת VM שמשתמשת בזהויות מנוהלות של עומסי עבודה.
עדכון של מכונות וירטואליות ספציפיות ב-Compute Engine
כדי לעדכן את הגדרות הנפקת האישורים והגדרות האמון, מעדכנים את מאגר הזהויות של עומס העבודה. משתמשים בפקודה gcloud alpha iam workload-identity-pools update, כמו בדוגמה הבאה:
gcloud alpha iam workload-identity-pools update WORKLOAD_IDENTITY_POOL_ID \
--location="global" \
--inline-certificate-issuance-config-file=CIC_JSON_FILE_PATH \
--inline-trust-config-file=TC_JSON_FILE_PATH \
--project=PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
WORKLOAD_IDENTITY_POOL_ID: המזהה של מאגר הזהויות של כוח העבודה.-
CIC_JSON_FILE_PATH: הנתיב לקובץ החדש של הגדרות הנפקת האישורים בפורמט JSON (cic.json). -
TC_JSON_FILE_PATH: אופציונלי: הנתיב לקובץ התצורה החדש של אמון בפורמט JSON (tc.json). אם עומסי העבודה שלכם מאומתים בדומיינים שונים של אמון, אתם צריכים לציין את הקובץ הזה. אחרת, אפשר להשמיט את ההגדרה--inline-trust-config. -
PROJECT_ID: שם הפרויקט ב- Cloud de Confiance .
פתרון בעיות
כדי למצוא שיטות לאבחון ולפתרון שגיאות נפוצות שקשורות לאחזור פרטי כניסה של עומסי עבודה, אפשר לעיין במסמך בנושא פתרון בעיות באימות מעומס עבודה לעומס עבודה.
כדי לפתור בעיות שקשורות למאגרים או לכללי מדיניות אימות שהוגדרו בצורה שגויה, אפשר לעיין ביומני הביקורת של מאגרי הזהויות של עומסי העבודה.
המאמרים הבאים
- מידע נוסף על המושגים הבאים: