בדף הזה מוסבר איך להגדיר את עומסי העבודה כדי לגשת למשאבים Cloud de Confiance by S3NSבאמצעות איחוד שירותי אימות הזהות של עומסי עבודה, וגישה ישירה למשאבים או התחזות לחשבון שירות.
הוראות מפורטות לתרחישי שימוש ספציפיים זמינות במדריכי ההגדרה של AWS ו-Azure, Active Directory, GitHub, GitLab וצינורות פריסה אחרים ו-Kubernetes.
מתן הרשאה לעומס העבודה החיצוני לגשת למשאבים של Cloud de Confiance
כדי להעניק לעומס העבודה גישה למשאבים ב- Cloud de Confiance , מומלץ להעניק לחשבון הראשי גישה ישירה למשאבים. במקרה הזה, הגורם המרכזי הוא המשתמש המאוחד. יש Cloud de Confiance מוצרים עם מגבלות של Google Cloud API. אם עומס העבודה קורא לנקודת קצה ל-API שיש לה מגבלה, אפשר במקום זאת להשתמש בהתחזות לחשבון שירות. במקרה הזה, חשבון המשתמש הואCloud de Confiance חשבון השירות, שמשמש כזהות. מעניקים גישה לחשבון השירות במשאב.גישה ישירה למשאבים
אפשר להעניק גישה לזהות מאוחדת ישירות למשאבים באמצעות מסוף Cloud de Confiance או ה-CLI של gcloud.
המסוף
כדי להשתמש במסוף Cloud de Confiance כדי להעניק תפקידי IAM ישירות למשאב, צריך לעבור לדף של המשאב ואז להעניק את התפקיד. בדוגמה הבאה מוסבר איך לעבור לדף Cloud Storage ולהעניק את התפקיד 'צפייה באובייקט אחסון' (roles/storage.objectViewer) ישירות בקטגוריה של Cloud Storage לזהות מאוחדת.
- במסוף Cloud de Confiance , נכנסים לדף Buckets של Cloud Storage.
ברשימת הקטגוריות, לוחצים על שם הקטגוריה שבה רוצים להעניק את התפקיד.
לוחצים על הכרטיסייה Permissions בחלק העליון של הדף.
לוחצים על הלחצן add_boxGrant access.
מופיעה תיבת הדו-שיח Add principals.
בשדה New principals, מזינים את הזהות (או הזהויות) שצריכה גישה לקטגוריה.
לפי נושא
principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECTמחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NUMBER: מספר הפרויקט -
POOL_ID: המזהה של מאגר הזהויות של עומסי העבודה -
SUBJECT: הנושא האישי שמופה מה-IdP, לדוגמה:administrator@example.com
לפי קבוצה
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUPמחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NUMBER: מספר הפרויקט -
WORKLOAD_POOL_ID: המזהה של מאגר הזהויות של עומסי העבודה -
GROUP: הקבוצה שמופה מה-IdP (לדוגמה:administrator-group@example.com).
לפי תכונה
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUEמחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NUMBER: מספר הפרויקט -
WORKLOAD_POOL_ID: המזהה של מאגר הזהויות של עומסי העבודה -
ATTRIBUTE_NAME: אחד מהמאפיינים שמופו מה-IdP -
ATTRIBUTE_VALUE: הערך של המאפיין
-
בוחרים תפקיד (או תפקידים) בתפריט הנפתח Select a rol. התפקידים שבחרתם יופיעו בחלונית עם תיאור קצר של ההרשאות שהם מעניקים.
לוחצים על Save.
gcloud
כדי להשתמש ב-CLI של gcloud כדי להקצות תפקידי IAM למשאב בפרויקט, מבצעים את הפעולות הבאות:
מקבלים את מספר הפרויקט שבו מוגדר המשאב.
gcloud projects describe $(gcloud config get-value core/project) --format=value\(projectNumber\)
הענקת גישה למשאב.
כדי להשתמש ב-CLI של gcloud כדי להעניק את התפקיד Storage Object Viewer (
roles/storage.objectViewer) לזהויות חיצוניות שעומדות בקריטריונים מסוימים, מריצים את הפקודה הבאה.לפי נושא
gcloud storage buckets add-iam-policy-binding BUCKET_ID \ --role=roles/storage.objectViewer \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT"לפי קבוצה
gcloud storage buckets add-iam-policy-binding BUCKET_ID \ --role=roles/storage.objectViewer \ --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP"לפי תכונה
gcloud storage buckets add-iam-policy-binding BUCKET_ID \ --role=roles/storage.objectViewer \ --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE"מחליפים את מה שכתוב בשדות הבאים:
-
BUCKET_ID: הקטגוריה שרוצים לתת לה גישה -
PROJECT_NUMBER: מספר הפרויקט שמכיל את מאגר הזהויות של עומסי העבודה. -
POOL_ID: מזהה מאגר הזהויות של עומסי העבודה -
SUBJECT: הערך הצפוי של המאפיין שמיפיתם ל-google.subject -
GROUP: הערך הצפוי של המאפיין שמיפיתם ל-google.groups -
ATTRIBUTE_NAME: השם של המאפיין בהתאמה אישית במיפוי המאפיינים שלכם -
ATTRIBUTE_VALUE: הערך של המאפיין בהתאמה אישית במיפוי המאפיינים שלכם
אפשר להקצות תפקידים לכל Cloud de Confiance משאב שתומך במדיניות הרשאות של IAM.
-
התחזות לחשבון שירות
כדי ליצור חשבון שירות לעומס העבודה החיצוני, מבצעים את הפעולות הבאות:
מפעילים את ממשקי ה-API IAM, Security Token Service ו-Service Account Credentials.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק 'שימוש בשירות'' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםיצירת חשבון שירות שמייצג את עומס העבודה. מומלץ להשתמש בחשבון שירות ייעודי לכל עומס עבודה. חשבון השירות לא חייב להיות באותו פרויקט כמו מאגר הזהויות של עומסי העבודה, אבל אתם צריכים להפנות לפרויקט שמכיל את חשבון השירות.
הענקת גישה לחשבון השירות למשאבים שאליהם רוצים שלזהויות חיצוניות תהיה גישה.
כדי לאפשר לזהות המאוחדת להתחזות לחשבון השירות, מבצעים את הפעולות הבאות:
המסוף
כדי להשתמש במסוף Cloud de Confiance כדי להעניק תפקידי IAM לזהות מאוחדת עם חשבון שירות, מבצעים את הפעולות הבאות:
חשבון שירות באותו פרויקט
כדי לתת גישה באמצעות התחזות לחשבון שירות שנמצא באותו פרויקט, מבצעים את הפעולות הבאות:
עוברים לדף Workload Identity Pools.
לוחצים על הענקת גישה.
בתיבת הדו-שיח Grant access to service account, בוחרים באפשרות Grant access using Service Account impersonation.
ברשימה Service accounts, בוחרים את חשבון השירות שאליו הזהויות החיצוניות יתחזו, ומבצעים את הפעולות הבאות:
כדי לבחור אילו זהויות מהמאגר יכולות להתחזות לחשבון השירות, מבצעים את אחת מהפעולות הבאות:
כדי לאפשר רק לזהויות ספציפיות ממאגר הזהויות של עומסי העבודה להתחזות לחשבון השירות, בוחרים באפשרות Only identities matching the filter.
ברשימה שם מאפיין, בוחרים את המאפיין שרוצים לסנן לפיו.
בשדה Attribute value, מזינים את הערך הצפוי של המאפיין; לדוגמה, אם משתמשים במיפוי מאפיין
google.subject=assertion.sub, מגדירים את Attribute name ל-subjectואת Attribute value לערך של ההצהרהsubבאסימונים שהונפקו על ידי ספק הזהויות החיצוני.
כדי לשמור את ההגדרות, לוחצים על Save ואז על Dismiss.
חשבון שירות בפרויקט אחר
כדי לתת גישה באמצעות התחזות לחשבון שירות בחשבון שירות בפרויקט אחר, מבצעים את הפעולות הבאות:
עוברים לדף Service Accounts.
בוחרים את חשבון השירות שרוצים להתחזות אליו.
לוחצים על ניהול הגישה.
לוחצים על Add principal.
בשדה New principal, מזינים אחד ממזהי הגורמים המורשים הבאים של הזהויות במאגר שיתחזו לחשבון השירות.
לפי נושא
principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECTמחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NUMBER: מספר הפרויקט -
POOL_ID: המזהה של מאגר הזהויות של עומסי העבודה -
SUBJECT: הנושא האישי שמופה מה-IdP, לדוגמה:administrator@example.com
לפי קבוצה
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUPמחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NUMBER: מספר הפרויקט -
WORKLOAD_POOL_ID: המזהה של מאגר הזהויות של עומסי העבודה -
GROUP: הקבוצה שמופה מה-IdP (לדוגמה:administrator-group@example.com).
לפי תכונה
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUEמחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NUMBER: מספר הפרויקט -
WORKLOAD_POOL_ID: המזהה של מאגר הזהויות של עומסי העבודה -
ATTRIBUTE_NAME: אחד מהמאפיינים שמופו מה-IdP -
ATTRIBUTE_VALUE: הערך של המאפיין
לפי בריכה
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/*מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NUMBER: מספר הפרויקט -
WORKLOAD_POOL_ID: המזהה של מאגר הזהויות של עומסי העבודה
-
ברשימת התפקידים Select a role בוחרים את התפקיד Workload Identity User (
roles/iam.workloadIdentityUser).כדי לשמור את ההגדרות, לוחצים על Save.
gcloud
כדי להקצות את התפקיד Workload Identity User (roles/iam.workloadIdentityUser) לחשבון משתמש מאוחד או לקבוצת חשבונות משתמשים מאוחדים, מריצים את הפקודה הבאה. מידע נוסף על מזהי ישויות מורשות של איחוד שירותי אימות הזהות של עומסי עבודה זמין במאמר סוגי חשבון משתמש.
לפי נושא
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
--role=roles/iam.workloadIdentityUser \
--member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT"לפי קבוצה
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
--role=roles/iam.workloadIdentityUser \
--member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP"לפי תכונה
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
--role=roles/iam.workloadIdentityUser \
--member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE"מחליפים את מה שכתוב בשדות הבאים:
SERVICE_ACCOUNT_EMAIL: כתובת האימייל של חשבון השירות-
PROJECT_NUMBER: מספר הפרויקט שמכיל את מאגר הזהויות של עומסי העבודה. -
POOL_ID: מזהה מאגר הזהויות של עומסי העבודה -
SUBJECT: הערך הצפוי של המאפיין שמיפיתם ל-google.subject -
GROUP: הערך הצפוי של המאפיין שמיפיתם ל-google.groups -
ATTRIBUTE_NAME: השם של המאפיין בהתאמה אישית במיפוי המאפיינים שלכם -
ATTRIBUTE_VALUE: הערך של המאפיין בהתאמה אישית במיפוי המאפיינים שלכם
הורדת ההגדרה
כדי שעומס העבודה יוכל לגשת לספריות הלקוח, קודם צריך להוריד ולהגדיר Application Default Credentials (ADC). לשם כך:
-
במסוף Cloud de Confiance , עוברים לדף Workload Identity Pools.
לדף Workload Identity Pools -
בטבלה, בוחרים את המאגר כדי לעבור לדף הפרטים של המאגר.
-
לוחצים על הענקת גישה.
-
בוחרים באפשרות Grant access using federated identities (הענקת גישה באמצעות זהויות מאוחדות) (מומלץ).
-
כדי להוריד את Application Default Credential (ADC) כדי שעומס העבודה יוכל לגשת לספריות לקוח, צריך לבצע את הפעולות הבאות:
-
לוחצים על הורדת ההגדרה.
-
בתיבת הדו-שיח Configure your application, מבצעים את הפעולות הבאות:
-
בתפריט הנפתח ספק, בוחרים את הספק הרצוי.
-
בקטע OIDC token path או SAML assertion path, מזינים את הנתיב שבו נמצא האסימון או טענת הנכונות.
בתפריט הנפתח סוג הפורמט, בוחרים את הפורמט.
-
-
לוחצים על Download configuration ורושמים את הנתיב שבו שמרתם את הקובץ.
-