במדריך הזה מוסבר איך להשתמש באיחוד שירותי אימות הזהות של עומסי עבודה כדי לאפשר לצינורות עיבוד נתונים של פריסה לבצע אימות עם Google Cloud.
בהתאם למערכת ה-CI/CD שבה משתמשים, לצינורות עיבוד הנתונים לפריסה עשויה להיות גישה לפרטי כניסה ספציפיים לסביבה. לדוגמה:
- צינורות עיבוד נתונים של Azure DevOps יכולים להשתמש בחיבור שירות של איחוד שירותי אימות הזהות של עומסי עבודה ב-Microsoft Entra כדי לקבל אסימון מזהה שמזהה באופן ייחודי את פרויקט Azure DevOps.
- תהליכי עבודה של פעולות GitHub יכולים לקבל אסימון OIDC של GitHub שמזהה באופן ייחודי את תהליך העבודה והמאגר שלו.
- GitLab SaaS מאפשר למשימות CI/CD לגשת לאסימון מזהה שמזהה באופן ייחודי את המשימה ואת הפרויקט, את הסביבה ואת המאגר שלה.
- HCP Terraform יכול לספק אסימון OIDC להגדרות האישיות של Terraform שמזהה באופן ייחודי את סביבת העבודה והסביבה.
אפשר להגדיר לצינורות עיבוד הנתונים לפריסה שישתמשו באישורים האלו כדי לבצע אימות עםGoogle Cloud באמצעות איחוד שירותי אימות הזהות של עומסי עבודה. גישה זו מבטלת את נטל התחזוקה והאבטחה שקשורים למפתחות של חשבון שירות.
לפני שמתחילים
מגדירים אימות
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Google Cloud
gcloud
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
Python
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Python שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
אם אתם משתמשים במעטפת מקומית, אתם צריכים ליצור פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם אתם משתמשים ב-Cloud Shell, אין צורך לבצע את הפעולה הזו.
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
למידע נוסף, ראו הגדרת ADC לסביבת פיתוח מקומית במאמרי העזרה בנושא אימות Google Cloud .
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות להגדרה של איחוד שירותי אימות הזהות של עומסי עבודה, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM Workload Identity Pool Admin (roles/iam.workloadIdentityPoolAdmin) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
לחלופין, התפקיד הבסיסי ב-IAM 'בעלים' (roles/owner) כולל גם הרשאות להגדרה של איחוד זהויות.
בסביבת ייצור לא מומלץ להקצות תפקידים בסיסיים, אבל אפשר להעניק אותם בסביבת פיתוח או בסביבת בדיקה.
הכנת ה-IdP החיצוני
Azure DevOps
כדי לאפשר לצינור Azure DevOps לבצע אימות ל- Google Cloud, קודם צריך להגדיר חיבור שירות ל-Azure Resource Manager. החיבור הזה מאפשר לצינור לקבל אסימון מזהה, שאותו הוא יכול להמיר לפרטי כניסה שלGoogle Cloud .
כדי ליצור חיבור שירות ל-Azure Resource Manager:
- ב-Azure DevOps, פותחים את הפרויקט ועוברים אל Project Settings (הגדרות הפרויקט).
- עוברים אל Pipelines > Service connections.
- לוחצים על יצירת קישור לשירות.
- בוחרים באפשרות Azure Resource Manager.
- לוחצים על הבא.
מגדירים את ההגדרות הבאות:
- סוג הזהות: רישום אפליקציה (אוטומטי)
- אישורים: איחוד שירותי אימות הזהות של עומסי עבודה
רמת ההיקף: מינוי.
אתם חייבים לבחור מינוי גם אם אתם לא מתכננים להשתמש בחיבור לשירות כדי לגשת למשאבי Azure.
שם חיבור השירות: מזינים שם כמו
google-cloud.
לוחצים על Save.
בקטע פרטים של איחוד שירותי אימות הזהויות של עומסי עבודה, מאתרים את המזהים הבאים:
- Issuer: מזהה באופן ייחודי את הארגון שלכם ב-Azure DevOps
- מזהה הנושא: מזהה ייחודי של חיבור השירות
שומרים את המזהים האלה לאחד מהשלבים הבאים.
מערכת Azure DevOps מעניקה באופן אוטומטי ל-service principal של חיבור השירות גישה למינוי Azure שבחרתם. מומלץ לצמצם את הגישה הזו באופן הבא:
- לוחצים על ניהול תפקידים של חיבור שירות.
- לוחצים על הקצאות תפקידים.
- מחפשים את הקצאת התפקיד לחיבור השירות ומסירים אותה או מחליפים אותה בהקצאת תפקיד שמשתמשת בתפקיד עם פחות הרשאות.
פעולות GitHub
אתם לא צריכים לשנות את ההגדרות האישיות בחשבון GitHub שלכם.
אחרי שמגדירים מאגר זהויות של עומסי עבודה שייתן אמון במאגר GitHub, אפשר לתת לתהליכי עבודה במאגר הזה להשתמש באסימון ה-OIDC של GitHub כדי להשיג פרטי כניסה קצרי מועד של Google Cloud .
GitLab SaaS
אתם לא צריכים לשנות את ההגדרות האישיות בחשבון GitLab שלכם.
אחרי שמגדירים מאגר זהויות של עומסי עבודה כדי לתת אמון בקבוצת GitLab, אפשר להפעיל איחוד שירותי אימות הזהות של עומסי עבודה למשימות CI/CD בודדות.
HCP Terraform
אתם לא צריכים לשנות את ההגדרות האישיות בחשבון HCP Terraform שלכם.
אחרי שמגדירים מאגר זהויות של עומס עבודה כדי לתת אמון ב-HCP Terraform, אפשר להפעיל איחוד שירותי אימות הזהות של עומסי עבודה לסביבות עבודה ספציפיות.
הגדרת איחוד שירותי אימות הזהות של עומסי עבודה
צריך לבצע את השלבים האלה לכל פרויקט Azure DevOps, ארגון GitHub, קבוצת GitLab או ארגון HCP Terraform.
כדי להתחיל בהגדרה של איחוד שירותי אימות הזהות של עומסי עבודה, מבצעים את הפעולות הבאות:
-
בדף לבחירת הפרויקט במסוף Google Cloud , בוחרים פרויקט ב- Google Cloud או יוצרים אותו.
תפקידים שנדרשים כדי לבחור או ליצור פרויקט
- Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
-
יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (
roles/resourcemanager.projectCreator), שכולל את ההרשאהresourcemanager.projects.create. איך מקצים תפקידים
מומלץ
להשתמש בפרויקט ייעודי לניהול ספקים ומאגרי זהויות של עומסי עבודה.
מפעילים את ממשקי ה-API של IAM, מנהל המשאבים, Service Account Credentials ו-Security Token Service.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים
הגדרת מיפוי של מאפיין
פרטי הכניסה הספציפיים לסביבה של צינור עיבוד הנתונים לפריסה מכילים מספר מאפיינים, ואתם צריכים להחליט באיזה מאפיין להשתמש בתור מזהה הנושא (google.subject) ב- Google Cloud.
אפשר גם למפות מאפיינים נוספים (אופציונלי). לאחר מכן תוכלו להפנות למאפיינים האלה כשמעניקים גישה למשאבים.
Azure DevOps
האסימון המזהה של Azure DevOps כולל טענה sub שמכילה את מזהה הנושא של חיבור השירות. מזהה הנושא מופיע בפורמט הבא:
PREFIX/sc/SERVICE_CONNECTION
אורך מזהה הנושא הזה חורג מ-127 תווים, שהוא האורך המקסימלי המותר עבור google.subject. כדי לעקוף את ההגבלה הזו, צריך להשתמש במיפוי המאפיינים הבא:
google.subject=assertion.sub.split('/sc/')[1]
המיפוי הזה משתמש בחלק של טענת הנכונות sub אחרי /sc/ כנושא, שמזהה באופן ייחודי את חיבור השירות. כשמקצים תפקידים לזהות חיצונית, משתמשים בחלק של מזהה הנושא שאחרי /sc/ (כפי שמופיע בפרטי חיבור השירות) בתור הנושא.
פעולות GitHub
מיפוי המאפיינים יכול להשתמש בכל אחת מההצהרות באסימון ה-OIDC של GitHub. מפתחות ההצהרה של האסימון והערכים שלהם נשלטים על ידי GitHub. לכל הפחות, צריך להתאים את google.subject ל-assertion.sub, שתואם לנושא של אסימון ה-OIDC של פעולות GitHub:
google.subject=assertion.sub
הערך של נושא אסימון ה-OIDC של פעולות GitHub עשוי להשתנות בהתאם לאירוע המקור. מאפייני הצהרה אחרים עשויים לכלול:
repository: מכיל את הבעלים ואת שם המאגר, לדוגמה"google/guava".
repository_id: מכיל את המזהה הייחודי של המאגר, לדוגמה"20300177".
repository_owner: מכיל את הבעלים, שיכול להיות שם משתמש או שם של ארגון GitHub, לדוגמה"google".
repository_owner_id: מכיל את המזהה הייחודי של הבעלים, לדוגמה"1342004".
הרשימה הזו היא רק קבוצת משנה של ההצהרות האפשריות. לרשימה המלאה, עיינו בתיעוד של GitHub על הצהרות לדוגמה. הקפידו למפות את כל ההצהרות שמתכננים להשתמש בהן כתנאי של המאפיינים או כחלק מתנאי principalSet עתידי.
GitLab SaaS
מיפוי המאפיינים יכול להשתמש בהצהרות המוטמעות באסימון המזהה של GitLab כמאפייני מקור, כולל הדברים הבאים:
-
sub: שם הפרויקט והפניה ל-Git - לדוגמה,project_path:groupname/projectname:ref_type:branch:ref:main. -
namespace_id: המזהה הייחודי של הקבוצה. -
project_id: המזהה הייחודי של הפרויקט. -
user_id: המזהה הייחודי של המשתמש. -
environment:הסביבה שהמשימה חלה עליה. -
ref_path: ההפניה ל-Git, לדוגמהrefs/heads/main.
מיפוי המאפיינים הבא מגדיר את google.subject להצהרה sub מהאסימון המזהה של GitLab. מכיוון שההצהרה sub מכילה גם את שם הפרויקט וגם את ההפניה ל-Git, המיפוי הזה מאפשר שליטה בגישה לפי מאגר והסתעפות:
google.subject=assertion.sub
שליטה בגישה לפי מאגר והסתעפות יכולה להיות שימושית אם הסתעפויות מסוימות (למשל, main) זקוקות לגישה שונה למשאבים מאשר להסתעפויות אחרות (למשל, הסתעפויות מאפיינים).
במקרים מסוימים, ייתכן שיהיה מספיק להבדיל בין גישה לפי פרויקט או קבוצה. לפיכך המיפוי הבא כולל שני מאפיינים נוספים שמכילים את project_id ואת namespace_id של GitLab:
google.subject=assertion.sub attribute.project_id=assertion.project_id attribute.namespace_id=assertion.namespace_id
HCP Terraform
מיפוי המאפיינים יכול להשתמש בהצהרות המוטמעות באסימון ה-OIDC של HCP Terraform, כולל
-
terraform_organization_id: מכיל את המזהה הייחודי של הארגון, לדוגמהorg-xxxxxxxxxxxxxxxx. -
terraform_workspace_id: מכיל את המזהה הייחודי של סביבת העבודה, לדוגמהws-xxxxxxxxxxxxxxxx. -
terraform_workspace_name: מכיל את שם התצוגה של סביבת העבודה. -
sub: מכיל את שם התצוגה של הארגון, סביבת העבודה והשלב, לדוגמהorganization:example-org:workspace:example-workspace:run_phase:apply.
מיפוי המאפיינים הבא מגדיר את google.subject להצהרה terraform_workspace_id מאסימון ה-OIDC של HCP Terraform:
google.subject=assertion.terraform_workspace_id
מיפוי זה מאפשר שליטה בגישה למשאבי Google Cloud לפי סביבת עבודה.
הגדרת תנאי למאפיין
תנאים של מאפיין הם ביטויי CEL שיכולים לבדוק מאפייני טענות נכונות (assertions) ומאפייני יעד. אם תנאי המאפיין מוערך ל-true עבור פרטי כניסה נתונים, פרטי הכניסה יתקבלו. אחרת, פרטי הכניסה יידחו. צריך מיפוי מאפיינים לכל שדות תנאי המאפיין.
Azure DevOps
כדי להגביל את הגישה לאפליקציית Azure DevOps (חשבון שירות), משתמשים בתנאי למאפיין הבא:
assertion.oid=='APPLICATION_OBJECT_ID'
מחליפים את APPLICATION_OBJECT_ID במזהה האובייקט של אפליקציית Azure DevOps ב-Entra.
פעולות GitHub
משתמשים בתנאי המאפיין הבא כדי להגביל את הגישה לאסימונים שהונפקו על ידי ארגון GitHub שלכם:
assertion.repository_owner=='ORGANIZATION'
מחליפים את ORGANIZATION בשם ארגון GitHub שלכם.
אפשר גם להרחיב את תנאי המאפיין כדי להגביל את הגישה לקבוצת משנה של תהליכי עבודה או הסתעפויות. לדוגמה, התנאי הבא מגביל את הגישה לתהליכי עבודה המשתמשים בהסתעפות Git main:
assertion.repository_owner=='ORGANIZATION' && assertion.ref=='refs/heads/main'
GitLab SaaS
משתמשים בתנאי המאפיין הבא כדי להגביל את הגישה לאסימונים שהונפקו על ידי קבוצת GitLab שלכם
assertion.namespace_id=='GROUP_ID'
מחליפים את GROUP_ID במזהה הקבוצה שמוצג בדף הבית של קבוצת GitLab שלכם.
אפשר להרחיב את תנאי המאפיין כדי להגביל את הגישה לקבוצת משנה של פרויקטים, הסתעפויות או סביבות. לדוגמה, התנאי הבא מגביל את הגישה למשימות שמשתמשות בסביבה production:
assertion.namespace_id=='GROUP_ID' && assertion.environment=='production'
HCP Terraform
משתמשים בתנאי המאפיין הבא כדי להגביל את הגישה לאסימונים שהונפקו על ידי ארגון HCP Terraform שלכם:
assertion.terraform_organization_id=='ORGANIZATION_ID'
מחליפים את ORGANIZATION_ID במזהה הייחודי של הארגון, לדוגמה, org-xxxxxxxxxxxxxxxx.
אפשר גם להרחיב את תנאי המאפיין כדי להגביל את הגישה לקבוצת משנה של תהליכי עבודה או הסתעפויות. לדוגמה, תנאי המאפיין הבא מגביל את הגישה לסביבת עבודה מסוימת:
assertion.terraform_organization_id=='ORGANIZATION_ID' && assertion.terraform_workspace_id=='WORKSPACE_ID'
יצירה של ספק ומאגר זהויות של עומסי עבודה
עכשיו נאסף כל המידע שצריך כדי ליצור ספק ומאגר זהויות של עומסי עבודה:
המסוף
נכנסים לדף New workload provider and pool במסוף Google Cloud .
בקטע Create an identity pool, מזינים את הפרטים הבאים:
- Name: השם של המאגר. השם משמש גם כמזהה המאגר. אי אפשר לשנות את מזהה המאגר בשלב מאוחר יותר.
- Description: טקסט שמתאר את המטרה של המאגר.
לוחצים על Continue.
מגדירים את הספק:
Azure DevOps
- Select a provider:בוחרים את הספק OpenID Connect (OIDC).
- Provider name: השם של פרויקט Azure DevOps או שם מותאם אישית.
- Provider ID: השם של פרויקט Azure DevOps או מזהה מותאם אישית. אי אפשר לשנות את מזהה הספק בשלב מאוחר יותר.
- Issuer URL: מנפיק חיבור השירות שחיפשתם בעבר.
קהלים: בוחרים באפשרות קהלים מותרים ומזינים את הערך הבא:
fb60f99c-7a34-4190-8149-302f77469936
המזהה הזה הוא מזהה האפליקציה של נקודת הקצה של Azure Token Exchange.
פעולות GitHub
- Select a provider: OpenID Connect (OIDC).
- Provider name: השם של הספק.
- Provider ID: המזהה של הספק. אי אפשר לשנות את מזהה הספק בשלב מאוחר יותר.
- Issuer URL:
https://token.actions.githubusercontent.com/ - Audiences: Default audience
GitLab SaaS
- Select a provider: OpenID Connect (OIDC).
- Provider name: השם של הספק.
- Provider ID: המזהה של הספק. אי אפשר לשנות את מזהה הספק בשלב מאוחר יותר.
- Issuer URL:
https://gitlab.com - Audiences: Default audience
HCP Terraform
- Select a provider:בוחרים את הספק OpenID Connect (OIDC).
- Provider name: השם של הספק.
- Provider ID: המזהה של הספק. אי אפשר לשנות את מזהה הספק בשלב מאוחר יותר.
- Issuer URL:
https://app.terraform.io - Audiences: Default audience
לוחצים על Continue.
בקטע Configure provider attributes, מוסיפים את מיפויי המאפיינים שזיהיתם קודם.
בקטע Attribute conditions, מזינים את תנאי המאפיין שזיהיתם קודם.
לוחצים על Save כדי ליצור את הספק ואת מאגר הזהויות של עומסי העבודה.
gcloud
יצירת מאגר זהויות חדש של עומסי עבודה:
gcloud iam workload-identity-pools create POOL_ID \ --location="global" \ --description="DESCRIPTION" \ --display-name="DISPLAY_NAME"מחליפים את הערכים הבאים:
-
POOL_ID: המזהה הייחודי של המאגר -
DISPLAY_NAME: שם המאגר -
DESCRIPTION: תיאור המאגר. התיאור הזה מוצג כשמעניקים גישה לזהויות במאגר.
-
הוספת ספק למאגר הזהויות של עומסי עבודה:
Azure DevOps
gcloud iam workload-identity-pools providers create-oidc PROVIDER_ID \ --location="global" \ --workload-identity-pool="POOL_ID" \ --issuer-uri="ISSUER" \ --allowed-audiences="AUDIENCE" \ --attribute-mapping="MAPPINGS" \ --attribute-condition="CONDITIONS"מחליפים את הערכים הבאים:
-
PROVIDER_ID: השם של פרויקט Azure DevOps או מזהה מותאם אישית של הספק. -
POOL_ID: מזהה המאגר -
ISSUER: המוסד המנפיק של חיבור השירות שחיפשתם קודם. -
AUDIENCE: הקהל המורשה. בחיבורים חדשים, מזינים את מזהה האפליקציה הקבוע:fb60f99c-7a34-4190-8149-302f77469936. -
MAPPINGS: רשימה מופרדת בפסיקים של מיפויי המאפיינים שזיהיתם קודם -
CONDITIONS: תנאי המאפיין שזיהיתם קודם
פעולות GitHub
gcloud iam workload-identity-pools providers create-oidc PROVIDER_ID \ --location="global" \ --workload-identity-pool="POOL_ID" \ --issuer-uri="https://token.actions.githubusercontent.com/" \ --attribute-mapping="MAPPINGS" \ --attribute-condition="CONDITIONS"מחליפים את הערכים הבאים:
-
PROVIDER_ID: המזהה הייחודי של הספק -
POOL_ID: מזהה המאגר -
MAPPINGS: רשימה מופרדת בפסיקים של מיפויי המאפיינים שזיהיתם קודם -
CONDITIONS: תנאי המאפיין שזיהיתם קודם
GitLab SaaS
gcloud iam workload-identity-pools providers create-oidc PROVIDER_ID \ --location="global" \ --workload-identity-pool="POOL_ID" \ --issuer-uri="https://gitlab.com" \ --attribute-mapping="MAPPINGS" \ --attribute-condition="CONDITIONS"מחליפים את הערכים הבאים:
-
PROVIDER_ID: המזהה הייחודי של הספק -
POOL_ID: מזהה המאגר -
MAPPINGS: רשימה מופרדת בפסיקים של מיפויי המאפיינים שזיהיתם קודם -
CONDITIONS: תנאי המאפיין שזיהיתם קודם
HCP Terraform
gcloud iam workload-identity-pools providers create-oidc PROVIDER_ID \ --location="global" \ --workload-identity-pool="POOL_ID" \ --issuer-uri="https://app.terraform.io" \ --attribute-mapping="MAPPINGS" \ --attribute-condition="CONDITIONS"מחליפים את הערכים הבאים:
-
PROVIDER_ID: המזהה הייחודי של הספק. -
POOL_ID: מזהה המאגר. -
MAPPINGS: רשימה מופרדת בפסיקים של מיפויי המאפיינים שזיהיתם קודם. -
CONDITIONS: מצב התכונה שזיהיתם קודם.
-
עדכון תנאי מאפיין בספק מאגרי זהויות של עומסי עבודה
בקטע הזה מוסבר איך לעדכן את תנאי המאפיין בספק מאגר זהויות קיים של כוח עבודה כדי להגביל את הגישה לאסימונים שהונפקו על ידי ארגון GitHub, קבוצת GitLab או ארגון HCP Terraform.
כדי למצוא את התנאי המומלץ למאפיין בצינור שלכם, אפשר לעיין במאמר הגדרת תנאי למאפיין.
המסוף
במסוף Google Cloud , עוברים לדף Workload Identity Pools.
מאתרים את מאגר הזהויות של כוח עבודה שמכיל את הספק, ואז לוחצים על הסמל Expand node למאגר.
מאתרים את הספק של מאגר הזהויות של כוח עבודה שרוצים לעדכן ולוחצים על Edit.
בקטע Attribute conditions, מזינים את התנאי למאפיין שזיהיתם קודם.
כדי לעדכן את מאגר הזהויות של עומסי העבודה ואת הספק, לוחצים על Save.
gcloud
כדי לעדכן את הספק של מאגר הזהויות של כוח העבודה, מריצים את הפקודה הבאה:
gcloud iam workload-identity-pools providers update-oidc PROVIDER_ID \
--location="global" \
--workload-identity-pool="POOL_ID" \
--attribute-condition="CONDITIONS"
מחליפים את הערכים הבאים:
-
PROVIDER_ID: המזהה הייחודי של הספק -
POOL_ID: מזהה המאגר -
CONDITIONS: תנאי המאפיין שזיהיתם קודם
אימות צינור עיבוד נתונים לפריסה
צריך להשלים את השלבים האלו לכל תהליך עבודה של פעולות GitHub או סביבת עבודה של Terraform Cloud.
מתן הרשאה לעומס העבודה החיצוני לגשת למשאבים של Google Cloud
כדי להעניק לעומס העבודה גישה למשאבים של Google Cloud , מומלץ להעניק לישות העיקרית גישה ישירה למשאבים. במקרה הזה, הגורם המרכזי הוא המשתמש המאוחד. יש Google Cloud מוצרים עם מגבלות של Google Cloud API. אם עומס העבודה קורא לנקודת קצה ל-API שיש לה מגבלה, אפשר במקום זאת להשתמש בהתחזות לחשבון שירות. במקרה הזה, חשבון המשתמש הואGoogle Cloud חשבון השירות, שמשמש כזהות. מעניקים גישה לחשבון השירות במשאב.
גישה ישירה למשאבים
אפשר להעניק גישה לזהות מאוחדת ישירות למשאבים באמצעות מסוף Google Cloud או ה-CLI של gcloud.
המסוף
כדי להשתמש במסוף Google Cloud כדי להעניק תפקידי IAM ישירות למשאב, צריך לעבור לדף של המשאב ואז להעניק את התפקיד. בדוגמה הבאה מוסבר איך לעבור לדף Cloud Storage ולהעניק את התפקיד 'צפייה באובייקט אחסון' (roles/storage.objectViewer) ישירות בקטגוריה של Cloud Storage לזהות מאוחדת.
- במסוף Google Cloud , נכנסים לדף 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: הערך של המאפיין בהתאמה אישית במיפוי המאפיינים שלכם
אפשר להקצות תפקידים לכל Google Cloud משאב שתומך במדיניות הרשאות של IAM.
-
התחזות לחשבון שירות
כדי ליצור חשבון שירות לעומס העבודה החיצוני, מבצעים את הפעולות הבאות:
מפעילים את ממשקי ה-API IAM, Security Token Service ו-Service Account Credentials.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידיםיצירת חשבון שירות שמייצג את עומס העבודה. מומלץ להשתמש בחשבון שירות ייעודי לכל עומס עבודה. חשבון השירות לא חייב להיות באותו פרויקט כמו מאגר הזהויות של עומסי העבודה, אבל אתם צריכים להפנות לפרויקט שמכיל את חשבון השירות.
הענקת גישה לחשבון השירות למשאבים שאליהם רוצים שלזהויות חיצוניות תהיה גישה.
כדי לאפשר לזהות המאוחדת להתחזות לחשבון השירות, מבצעים את הפעולות הבאות:
המסוף
כדי להשתמש במסוף Google Cloud כדי להעניק תפקידי 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: הערך של המאפיין בהתאמה אישית במיפוי המאפיינים שלכם
הגדרת צינור עיבוד הנתונים לפריסה
בקטע הזה מוסבר איך להשתמש באיחוד שירותי אימות הזהויות של עומסי עבודה בצינור עיבוד הנתונים של הפריסה. ההוראות בקטע הזה מניחות שעומסי העבודה שלכם משתמשים בהתחזות לחשבון שירות כדי לגשת למשאבים של Google Cloud.
Azure DevOps
עורכים את קובץ azure-pipelines.yml ומוסיפים את הפרטים הבאים להגדרות האישיות של המשימה:
variables:
- name: Azure.WorkloadIdentity.Connection
value: CONNECTION
- name: GoogleCloud.WorkloadIdentity.ProjectNumber
value: PROJECT_NUMBER
- name: GoogleCloud.WorkloadIdentity.Pool
value: POOL_ID
- name: GoogleCloud.WorkloadIdentity.Provider
value: PROVIDER_ID
- name: GoogleCloud.WorkloadIdentity.ServiceAccount
value: SERVICE_ACCOUNT_EMAIL
- name: GOOGLE_APPLICATION_CREDENTIALS
value: $(Pipeline.Workspace)/.workload_identity.wlconfig
steps:
- task: AzureCLI@2
inputs:
connectedServiceNameARM: $(Azure.WorkloadIdentity.Connection)
addSpnToEnvironment: true
scriptType: 'bash'
scriptLocation: 'inlineScript'
inlineScript: |
echo $idToken > $(Pipeline.Workspace)/.workload_identity.jwt
cat << EOF > $GOOGLE_APPLICATION_CREDENTIALS
{
"type": "external_account",
"audience": "//iam.googleapis.com/projects/$(GoogleCloud.WorkloadIdentity.ProjectNumber)/locations/global/workloadIdentityPools/$(GoogleCloud.WorkloadIdentity.Pool)/providers/$(GoogleCloud.WorkloadIdentity.Provider)",
"subject_token_type": "urn:ietf:params:oauth:token-type:jwt",
"token_url": "https://sts.REGION.rep.googleapis.com/v1/token",
"credential_source": {
"file": "$(Pipeline.Workspace)/.workload_identity.jwt"
},
"service_account_impersonation_url": "https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/$(GoogleCloud.WorkloadIdentity.ServiceAccount):generateAccessToken"
}
EOF
מחליפים את הערכים הבאים:
-
CONNECTION: השם של חיבור השירות. PROJECT_NUMBER: מספר הפרויקט שמכיל את מאגר הזהויות של עומסי העבודה.-
POOL_ID: המזהה של מאגר הזהויות של עומסי עבודה. PROVIDER_ID: המזהה של ספק מאגר הזהויות של כוח העבודה.-
SERVICE_ACCOUNT_EMAIL: כתובת האימייל של חשבון השירות, אם אתם משתמשים בהתחזות לחשבון שירות. אם אתם משתמשים בגישה ישירה למשאבים, אל תכללו אתGoogleCloud.WorkloadIdentity.ServiceAccountואתservice_account_impersonation_url. -
REGION: אזור לנקודות קצה אזוריות של STS, אם הן זמינות. אם נקודות קצה אזוריות לא זמינות, אפשר להשתמש בכתובת https://sts.googleapis.com/v1/token.
ההגדרות האישיות מבצעות את הפעולות הבאות:
- משתמשים במשימה
AzureCLIכדי לקבל אסימון מזהה לחיבור השירות, והופכים אותו לזמין במשתנה בשםidToken. - שומרים את האסימון המזהה בקובץ זמני בשם
.workload_identity.jwt. - יוצרים קובץ תצורה של פרטי כניסה שמורה לספריות הלקוח לקרוא את האסימון המזהה מ-
.workload_identity.jwtולהשתמש בו כדי להתחזות לחשבון שירות. - מגדירים את משתנה הסביבה
GOOGLE_APPLICATION_CREDENTIALSכך שיצביע על קובץ התצורה של פרטי הכניסה.
פעולות GitHub
הפעולה google-github-actions/auth מאפשרת ליצור באופן אוטומטי קובץ תצורה של פרטי כניסה בזמן ביצוע תהליך העבודה. לאחר מכן, ספריות וכלים של לקוחות כמו terraform יכולים להשתמש בקובץ התצורה הזה של פרטי הכניסה כדי לקבל באופן אוטומטי פרטי כניסה של Google.
עורכים את הקובץ YAML של פעולות GitHub ומוסיפים את הפרטים הבאים:
מאפשרים למשימה לאחזר אסימון מזהה של GitHub על ידי הוספת ההגדרות האישיות הבאות:
permissions: id-token: write contents: read
מוסיפים שלב ליצירת קובץ תצורה של פרטי כניסה:
- id: 'auth' name: 'Authenticate to Google Cloud' uses: 'google-github-actions/auth@v1' with: create_credentials_file: true workload_identity_provider: 'projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID' service_account: 'SERVICE_ACCOUNT_EMAIL'
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_NUMBER: מספר הפרויקט שמכיל את מאגר הזהויות של עומסי עבודה.-
POOL_ID: המזהה של מאגר הזהויות של עומסי עבודה. PROVIDER_ID: המזהה של ספק מאגר הזהויות של כוח העבודה.-
SERVICE_ACCOUNT_EMAIL: כתובת האימייל של חשבון השירות, אם אתם משתמשים בהתחזות לחשבון שירות. אם משתמשים בגישה ישירה למשאבים, משמיטים אתservice_account.
בדוגמה הבאה מוגדרת פעולת GitHub:
jobs:
build:
# Allow the job to fetch a GitHub ID token
permissions:
id-token: write
contents: read
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- id: 'auth'
name: 'Authenticate to Google Cloud'
uses: 'google-github-actions/auth@v1'
with:
create_credentials_file: true
workload_identity_provider: 'projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID'
service_account: 'SERVICE_ACCOUNT_EMAIL'
לפרטים נוספים על השימוש בפעולה google-github-actions/auth, ראו הגדרת איחוד שירותי אימות הזהות של עומסי עבודה.
GitLab SaaS
עורכים את קובץ .gitlab-ci.yml ומוסיפים את הפרטים הבאים להגדרות האישיות של המשימה:
job:
variables:
WORKLOAD_IDENTITY_PROJECT_NUMBER: PROJECT_NUMBER
WORKLOAD_IDENTITY_POOL: POOL_ID
WORKLOAD_IDENTITY_PROVIDER: PROVIDER_ID
SERVICE_ACCOUNT: SERVICE_ACCOUNT_EMAIL
GOOGLE_APPLICATION_CREDENTIALS: $CI_BUILDS_DIR/.workload_identity.wlconfig
id_tokens:
WORKLOAD_IDENTITY_TOKEN:
aud: https://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID
script:
- |-
echo $WORKLOAD_IDENTITY_TOKEN > $CI_BUILDS_DIR/.workload_identity.jwt
cat << EOF > $GOOGLE_APPLICATION_CREDENTIALS
{
"type": "external_account",
"audience": "//iam.googleapis.com/projects/$WORKLOAD_IDENTITY_PROJECT_NUMBER/locations/global/workloadIdentityPools/$WORKLOAD_IDENTITY_POOL/providers/$WORKLOAD_IDENTITY_PROVIDER",
"subject_token_type": "urn:ietf:params:oauth:token-type:jwt",
"token_url": "https://sts.REGION.rep.googleapis.com/v1/token",
"credential_source": {
"file": "$CI_BUILDS_DIR/.workload_identity.jwt"
},
"service_account_impersonation_url": "https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/$SERVICE_ACCOUNT:generateAccessToken"
}
EOF
מחליפים את הערכים הבאים:
-
PROJECT_NUMBER: מספר הפרויקט שמכיל את מאגר הזהויות של עומסי העבודה. -
POOL_ID: המזהה של מאגר הזהויות של עומסי עבודה. PROVIDER_ID: המזהה של ספק מאגר הזהויות של כוח העבודה.-
SERVICE_ACCOUNT_EMAIL: כתובת האימייל של חשבון השירות, אם אתם משתמשים בהתחזות לחשבון שירות. אם אתם משתמשים בגישה ישירה למשאבים, אל תכללו אתSERVICE_ACCOUNTואתservice_account_impersonation_url. -
REGION: אזור לנקודות קצה אזוריות של STS, אם הן זמינות. אם נקודות קצה אזוריות לא זמינות, אפשר להשתמש בכתובת https://sts.googleapis.com/v1/token.
ההגדרות האישיות מבצעות את הפעולות הבאות:
- שולחים הוראה ל-GitLab להנפיק אסימון מזהה ולהפוך אותו לזמין במשתנה הסביבה בשם
WORKLOAD_IDENTITY_TOKEN. האסימון המזהה משתמש בספק מאגר הזהויות של עומסי העבודה בתור הקהל. - שומרים את האסימון המזהה בקובץ זמני בשם
.workload_identity.jwt. - יוצרים קובץ תצורה של פרטי הכניסה שמורה לספריות הלקוח לקרוא את האסימון המזהה מ-
.workload_identity.jwtולהשתמש בו כדי להתחזות לחשבון שירות. - מגדירים את משתנה הסביבה
GOOGLE_APPLICATION_CREDENTIALSכך שיצביע על קובץ התצורה של פרטי הכניסה.
HCP Terraform
מגדירים את סביבת העבודה ב-HCP Terraform כך שתשתמש באיחוד שירותי אימות הזהות של עומסי עבודה כדי לבצע אימות ל- Google Cloud באמצעות התחזות לחשבון שירות:
ב-HCP Terraform, פותחים את סביבת העבודה ועוברים אל Variables.
מוסיפים את המשתנים הבאים:
קטגוריית משתנים מפתח ערך משתנה הסביבה TFC_GCP_PROVIDER_AUTHtrueמשתנה הסביבה TFC_GCP_RUN_SERVICE_ACCOUNT_EMAILכתובת האימייל של חשבון השירות, אם משתמשים בהתחזות לחשבון שירות – לדוגמה, terraform@my-project-123.iam.gserviceaccount.com.משתנה הסביבה TFC_GCP_PROJECT_NUMBERמספר הפרויקט שמכיל את מאגר הזהויות של עומסי העבודה משתנה הסביבה TFC_GCP_WORKLOAD_POOL_IDהמזהה של מאגר הזהויות של עומסי העבודה משתנה הסביבה TFC_GCP_WORKLOAD_PROVIDER_IDהמזהה של ספק מאגר הזהויות של עומסי העבודה לחלופין, אפשר להוסיף משתני סביבה נוספים כדי לאפשר ל-HCP Terraform להשתמש בחשבונות שירות שונים עבור השלבים
planו-apply. מידע נוסף על שימוש במשתני סביבה בהגדרות של Terraform זמין במאמר משתני סביבה אופציונליים.ברשימת המשתנים, ודאו ש-Category מוגדרת להיות
envלחמשת המשתנים שנוספו בשלב הקודם.מוודאים שההגדרות האישיות של Terraform משתמשות בגרסה
4.48.0ואילך של פלאגין שמתממשק עם שירותים חיצוניים Google Cloud , ומעדכנים אותה במידת הצורך, באופן הבא:terraform { required_providers { google = { source = "hashicorp/google" version = "~> 4.48.0" } } }שולחים את השינויים למאגר המקורות של הקוד.
המאמרים הבאים
- מידע נוסף על איחוד שירותי אימות הזהות של עומסי עבודה
- מידע נוסף על שיטות מומלצות לשימוש באיחוד שירותי אימות הזהות של עומסי עבודה בצינורות עיבוד נתונים לפריסה
- איך אפשר לבצע ניהול ספקים ומאגרים של זהויות של עומסי עבודה