כדי לבצע אימות ב- Cloud de Confiance, אתם יכולים לאפשר לעומס העבודה להחליף את פרטי הכניסה הספציפיים לסביבה בפרטי כניסה לטווח קצר ל- Cloud de Confianceבאמצעות איחוד שירותי אימות הזהות של עומסי עבודה.
לעומסי עבודה שפועלים מחוץ ל- Cloud de Confiance יכולה להיות גישה לפרטי כניסה קיימים שספציפיים לסביבה, לדוגמה:
יכול להיות שעומס עבודה יוכל לקבל אסימון טענת נכונות (assertion) של OpenID Connect (OIDC) מ-IdP.
עומס עבודה יכול לקבל אסימון טענת נכוֹנוּת (assertion) של SAML מספק זהויות (IdP).
באמצעות איחוד שירותי אימות הזהות של עומסי עבודה, תוכלו לצמצם את מספר פרטי הכניסה שדורשים רוטציה.
בקטעים הבאים מוסבר איך להשתמש באיחוד שירותי אימות הזהות של עומסי עבודה בספקי זהויות (IdPs) שתומכים ב-OpenID Connect (OIDC) או בפרוטוקולים של אימות SAML.
הכנת ה-IdP החיצוני
צריך לבצע את השלבים האלה פעם אחת לכל IdP.
לפני שמתחילים, צריך לוודא שה-IdP החיצוני עומד בדרישות הבאות:
OIDC
IdP שתומך ב-OpenID Connect 1.0.
ל-IdP יש URI של מנפיק.
Cloud de Confiance יכול לגשת לקבוצת מפתחות אינטרנט מסוג JSON (JWKS) שמכילה מפתחות אינטרנט מסוג JSON (JWKs). מפתחות ה-JWK משמשים לאימות אסימוני טענת נכוֹנוּת (assertion) של OIDC. אתם יכולים לתת גישה ל-JWKS באחת מהדרכים הבאות:
Cloud de Confiance מוריד מטא-נתונים של OIDC מ-IdP, דרך כתובת URL של מסמך Discovery שזמינה לכולם, מוכרת ונגישה באינטרנט. בתוך המטא-נתונים, כתובת ה-URL של JWKS חייבת להיות מאובטחת באמצעות SSL ו-TLS. כתובת ה-URL של JWKS חייבת להתחיל ב-
https://. מערכת Cloud de Confiance לא תומכת בכתובות URL של JWKS שמאובטחות באמצעות אישורים חתומים באופן עצמי.כברירת מחדל, Cloud de Confiance מוסיף את
/.well-known/openid-configurationל-URI של המנפיק כדי לאתר את כתובת ה-URL של מסמך Discovery. אם ספק הזהויות מארח את המטא-נתונים של הגילוי בנקודת קצה מותאמת אישית, אתם יכולים לציין URI מותאם אישית של גילוי (--discovery-uri) (גרסת טרום-השקה (Preview)).ה-URI המותאם אישית של הגילוי צריך לעמוד בדרישות הבאות:
- ה-URI חייב להתחיל ב-
https://. - ה-URI לא יכול להכיל יותר מ-2,000 תווים.
- הסכימה, המארח והיציאה חייבים להתאים ל-URI של המנפיק.
- נתיב ה-URI חייב להכיל את
/.well-known/<suffix>(כאשר<suffix>לא ריק, כמוopenid-configuration) ולעמוד באחת מהטופולוגיות הבאות של כתובת ה-URL של המנפיק: - קטע הנתיב well-known מוכנס לפני הנתיב של המנפיק (לדוגמה,
https://example.com/.well-known/openid-configuration/tenant1למנפיקhttps://example.com/tenant1). - מקטע הנתיב well-known מצורף מתחת לנתיב המנפיק (לדוגמה,
https://example.com/tenant1/.well-known/openid-configurationלמנפיקhttps://example.com/tenant1).
Cloud de Confiance משתמש בכתובות ה-URL האלה של נקודות הקצה כדי להוריד את מפתחות האינטרנט בפורמט JSON (JWK) של ה-IdP, ומשתמש במפתחות האלה כדי לאמת אסימונים. ב-Cloud de Confiance אין הגבלה על מספר המפתחות שאפשר להוריד.
- ה-URI חייב להתחיל ב-
אתם יכולים להעלות קובץ JWKS של OIDC ישירות אל Cloud de Confiance כשאתם יוצרים או מעדכנים את הספק של מאגר הזהויות של עומסי העבודה ב-OIDC. כדי לעשות את זה, משתמשים ב-
--jwk-json-pathכדי לספק נתיב לקובץ ה-JWKS. אתם יכולים להשתמש בשיטה הזו כשכתובת ה-URL של נקודת הקצה של המטא-נתונים של ה-OIDC של ה-IdP לא נגישה לכולם. אפשר להעלות עד 8 מפתחות אל Cloud de Confiance. מומלץ לבצע רוטציה של מפתחות JWKS באופן קבוע על ידי עדכון קובץ ה-JWKS.
אם אתם מאחדים עומסי עבודה מ-AWS באמצעות AWS Outbound Identity Federation, AWS פועל בתור ה-OIDC IdP שלכם. כדי להכין את סביבת AWS:
מפעילים איחוד זהויות יוצא בהגדרות של חשבון AWS כדי ליצור את כתובת ה-URL הייחודית של מנפיק ה-OIDC.
מוודאים שלעומסי העבודה ב-AWS (כמו פרופילים של מכונות EC2 או תפקידי משימות ב-ECS) יש את מדיניות AWS IAM הנדרשת, שמעניקה הרשאה לקבל אסימוני אינטרנט מסוג JSON (JWT).
SAML
IdP שתומך ב-SAML גרסה 2.0.
ה-IdP מציג מסמך מטא-נתונים מסוג SP של SAML שמתאר את ההגדרה של ספק השירות של SAML ומכיל את אישור החתימה של ה-IdP.
ב-Cloud de Confiance , המערכת משתמשת באישור הזה כדי לאמת טענות נכונות ותגובות של SAML.
אישור החתימה של ה-IdP חייב להכיל מפתח ECDSA או RSA שנמצא בתוך אישור X.509 v3.
האלגוריתמים המומלצים לחתימה כוללים:
- ECDSAwithSHA256
- RSAwithSHA256 עם גדלי מפתחות נתמכים של 2048, 3072 ו-4096 ביטים.
אישור החתימה צריך לעמוד בדרישות התוקף הבאות:
notBefore: חותמת זמן של 7 ימים לכל היותר בעתידnotAfter: חותמת זמן של 25 שנים לכל היותר בעתיד
אפשר להגדיר ספק של מאגר זהויות של עומסי עבודה ב-SAML עם שלושה אישורי חתימה של SAML לכל היותר בכל רגע נתון. המגבלה הזו לא חלה על סוגים אחרים של ספקים של מאגרי זהויות של עומסי עבודה, כמו OIDC ו-X.509. כשיש כמה אישורים, מערכת Cloud de Confiance עוברת באיטרציות על האישורים שעדיין בתוקף ומנסה להשתמש בכל אישור כדי למלא בקשות להחלפת אסימונים.
כשיטה מומלצת לאבטחה, מומלץ מאוד לא להשתמש שוב באותו זוג מפתחות בשירותים אחרים.
אם ה-IdP שלך עומד בקריטריונים האלה, צריך לבצע את הפעולות הבאות:
OIDC
מגדירים את ה-IdP כדי שעומס העבודה שלכם יוכל לקבל טוקנים של מזהים שעומדים בקריטריונים הבאים:
- האסימונים נחתמים באמצעות האלגוריתם
RS256אוES256. האסימונים מכילים הצהרת
audעם הערך הבא:https://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/WORKLOAD_PROVIDER_ID
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NUMBER: מספר הפרויקט ב- Cloud de Confiance שבו משתמשים כדי ליצור מאגר זהויות של עומסי עבודה. POOL_ID: מזהה לבחירתכם, שמזהה את מאגר הזהויות של עומסי העבודה. בהמשך תצטרכו להשתמש במזהה הזה כשתיצרו את מאגר הזהויות של עומסי עבודה.WORKLOAD_PROVIDER_ID: מזהה לבחירתכם, שמזהה את ספק מאגר הזהויות של עומסי העבודה. בהמשך תצטרכו להשתמש במזהה הזה כשתיצרו ספק של מאגר זהויות של עומסי עבודה.
לחלופין, אפשר להגדיר את הספק של מאגר הזהויות של עומסי העבודה כדי לצפות לקהל בהתאמה אישית.
-
האסימונים מכילים הצהרת
expעתידית והצהרתiatשחלה בעבר.הערך של
expצריך להיות גדול מהערך שלiatעד 24 שעות לכל היותר.אסימונים שקשורים לאישור (גרסת טרום-השקה (Preview)): אופציונלי, אסימונים יכולים לכלול הצהרת
cnf(אישור) שמכילה טביעת אצבע לאישור SHA-256 (x5t#S256):"cnf": { "x5t#S256": "BASE64URL_SHA256_CERT_FINGERPRINT" }הערך של
x5t#S256חייב להיות גיבוב SHA-256 בקידוד base64url של קידוד ה-DER של אישור ה-X.509 של הלקוח. כשמציגים אסימון שמכיל את ההצהרה הזו לאיחוד שירותי אימות הזהות של עומסי עבודה דרך חיבור Mutual TLS (mTLS) (sts.mtls.googleapis.com), שירות אסימוני האבטחה מאמת שטביעת האצבע תואמת לאישור הלקוח שהוצג במהלך לחיצת היד בפרוטוקול TLS, ומנפיק אסימון גישה לטווח קצר שקשור לאישור באופן קריפטוגרפי.כדי להגן על המשאבים מפני גניבת אסימונים ומתקפות של הפעלה חוזרת, אפשר לאכוף אסימונים שקשורים לאישור על ידי הגדרת כללי מדיניות של בקרת גישה מבוססת-הקשר.
בדרך כלל מומלץ להשתמש בטוקנים של מזהים כשמבצעים המרת טוקנים, כי הטוקנים של המזהים משקפים את זהות המשתמש. אם מחליטים להשתמש באסימוני גישה במקום זאת, צריך לוודא שאסימוני הגישה עומדים בדרישות הנוספות האלה:
- טוקני הגישה מעוצבים בפורמט JSON Web Token.
אסימוני הגישה מכילים הצהרת
ISSUER, כך שכתובת ה-URLISSUER/.well-known/openid-configurationמפנה לנקודת הקצה של המטא-נתונים של OIDC ב-IdP.כדי להעלות מפתחות JWK מקומיים, קראו את המאמר ניהול מפתחות JWK ב-OIDC.
SAML
צריך להגדיר את ה-IdP כך שטענות הנכוֹנוּת (assertions) של SAML יכללו רכיבים שעומדים בקריטריונים הבאים:
- רכיב
Issuerשמוגדר למזהה הישות ב-SAML בהגדרות הספק של מאגר הזהויות של עומסי העבודה. צריך להשמיט את הפורמט של המנפיק או להגדיר אותו בתורurn:oasis:names:tc:SAML:2.0:nameid-format:entity. - רכיב
Subjectעם:- רכיב
NameID. - רכיב
SubjectConfirmationאחד בדיוק עםMethodשמוגדר ל-urn:oasis:names:tc:SAML:2.0:cm:bearer. - רכיב
SubjectConfirmationDataעםNotOnOrAfterמוגדר לחותמת זמן שתתרחש בעתיד ואין לה ערךNotBefore.
- רכיב
רכיב
Conditionsעם:NotBeforeשהושמט או שהוא התרחש בעבר.NotOnOrAfterשהושמט או שהוא יתרחש בעתיד.Audienceמופיע לפי הפורמט הבא:https://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/WORKLOAD_PROVIDER_ID
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NUMBER: מספר הפרויקט ב- Cloud de Confiance שבו משתמשים כדי ליצור מאגר זהויות של עומסי עבודה. POOL_ID: מזהה לבחירתכם, שמזהה את מאגר הזהויות של עומסי העבודה. בהמשך תצטרכו להשתמש במזהה הזה כשתיצרו את מאגר הזהויות של עומסי עבודה.WORKLOAD_PROVIDER_ID: מזהה לבחירתכם, שמזהה את ספק מאגר הזהויות של עומסי העבודה. בהמשך תצטרכו להשתמש במזהה הזה כשתיצרו ספק של מאגר זהויות של עומסי עבודה.
-
לפחות רכיב אחד של
AuthnStatement.רכיב
SessionNotOnOrAfterעם חותמת זמן שתתרחש בעתיד. לחלופין, אפשר להשמיט את הרכיב.
בטענות נכוֹנוּת (assertions) של SAML שמצורפות לתגובת SAML, תגובת SAML חייבת להכיל:
- טענת נכוֹנוּת אחת בדיוק שעומדת בקריטריונים של טענת נכוֹנוּת (assertion) ב-SAML שמתוארים למעלה בקטע הזה.
- מאפיין
IssueInstantעם ערך שחל לפני פחות משעה. - קוד סטטוס
urn:oasis:names:tc:SAML:2.0:status:Success.
צריך לחתום על טענת נכונות של SAML, על התגובה או על שתיהן.
הגדרה של איחוד שירותי אימות הזהות של עומסי עבודה
צריך לבצע את השלבים האלה פעם אחת לכל IdP. לאחר מכן אפשר להשתמש באותו מאגר זהויות של עומסי עבודה ובאותו ספק לעומסי עבודה מרובים ולכמה פרויקטים ב- Cloud de Confiance .
כדי להתחיל בהגדרה של איחוד שירותי אימות הזהות של עומסי עבודה, מבצעים את הפעולות הבאות:
-
בדף לבחירת הפרויקט במסוף Cloud de Confiance , בוחרים פרויקט ב- Cloud de Confiance או יוצרים אותו.
התפקידים שנדרשים כדי לבחור או ליצור פרויקט
- בחירת פרויקט: כדי לבחור פרויקט לא נדרש תפקיד IAM ספציפי – אתם יכולים לבחור כל פרויקט שקיבלתם בו תפקיד.
-
יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד "יצירת פרויקטים" (
roles/resourcemanager.projectCreator), שכולל את ההרשאהresourcemanager.projects.create. איך מקצים תפקידים?
עדיף
להשתמש בפרויקט ייעודי לניהול ספקים ומאגרי זהויות של עומסי עבודה.
מפעילים את ממשקי ה-API הבאים, אם הם עדיין לא מופעלים: IAM, מנהל המשאבים, פרטי כניסה לחשבון שירות ו-Security Token Service.
התפקידים שנדרשים כדי להפעיל ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים
ניהול מפתחות JWK של OIDC שהועלו באופן עצמאי (אופציונלי)
בקטע הזה מוסבר איך לנהל מפתחות JWKS של OIDC שהועלו באופן עצמאי, בספקי OIDC של מאגר זהויות של עומסי עבודה.
יצירת הספק והעלאה של מפתחות JWKs של OIDC
כדי ליצור מפתחות JWK של OIDC, יש לעיין במאמר הטמעה של JWT, JWS, JWE, JWK ו-JWA.
כדי להעלות קובץ מפתח JWK ב-OIDC בזמן היצירה של ספק מאגר זהויות של עומסי עבודה, מריצים את הפקודה gcloud iam workload-identity-pools providers create-oidc עם הפרמטרים --jwk-json-path="JWK_JSON_PATH".
מחליפים את הערך של JWK_JSON_PATH בנתיב שלכם לקובץ מפתחות ה-JWK ב-JSON.
הפעולה הזו יוצרת מפתחות העלאה מהמפתחות שבקובץ.
עדכון מפתחות JWK ב-OIDC
כדי לעדכן את מפתחות JWK ב-OIDC, מפעילים את הפקודה gcloud iam workload-identity-pools providers update-oidc עם הפרמטרים --jwk-json-path="JWK_JSON_PATH".
מחליפים את הערך של JWK_JSON_PATH בנתיב שלכם לקובץ מפתחות ה-JWK ב-JSON.
הפעולה הזו מחליפה מפתחות העלאה קיימים עם המפתחות שבקובץ. אי אפשר לשחזר את המפתחות שהוחלפו.
מחיקה של כל מפתחות ה-JWK של OIDC שהועלו
כדי למחוק את כל המפתחות JWK של OIDC ולחזור להשתמש ב-URI של המנפיק כדי לאחזר את המפתחות, מריצים את הפקודה gcloud iam workload-identity-pools providers update-oidc עם הפרמטרים --jwk-json-path="JWK_JSON_PATH".
מחליפים את הערך ב-JWK_JSON_PATH בנתיב לקובץ ריק.
משתמשים בדגל --issuer-uri כדי להגדיר את ה-URI של המנפיק.
הפעולה הזו תמחק את כל מפתחות ההעלאה הקיימים ותחליף אותם עם המפתחות שמופיעים בקובץ. אי אפשר לשחזר את המפתחות שנמחקו.
הגדרת מיפוי של מאפיין ותנאי
יכול להיות שאסימוני OIDC או טענות נכונות (assertions) של SAML שה-IdP הנפיק, יכילו מאפיינים מרובים, וצריך להחליט באיזה מאפיין להשתמש כמזהה הנושא (google.subject) ב- Cloud de Confiance.
אפשר גם למפות מאפיינים נוספים (אופציונלי). לאחר מכן אפשר לקרוא למאפיינים האלה כשמקצים גישה למשאבים.
OIDC
כשממפים את המאפיינים אפשר להשתמש בהצהרות שמוטמעות בטוקן של המזהה או בטוקן הגישה שהנפיק ה-IdP החיצוני.
צריך למפות את אחת מההצהרות האלה ל-google.subject כדי לזהות את המשתמש
באופן ייחודי. כדי להגן מפני איומי זיופים, צריך לבחור הצהרה עם ערך
ייחודי שאי אפשר לשנות.
מזהי IdP רבים נכללים בהצהרה sub עם מזהה ייחודי
שלא ניתן לשינוי. לגבי מזהי ה-IdP האלה, כדאי למפות את ההצהרה sub
ל-google.subject:
google.subject=assertion.sub
לשם כך, עדיף שלא להשתמש בהצהרה כמו email. בדרך כלל
אפשר להקצות או לשנות כתובות אימייל כדי שהן לא יזהו משתמש
באופן ייחודי ועקבי.
מיפוי מאפייני משתמשים עם הקצאת זהות (גרסת טרום-השקה (Preview)): כשמשתמשים בהקצאת זהות, שירות אסימוני האבטחה משלב את ההצהרות של הנושא וההצהרות של המשתמש, וחושף את ההצהרות של המשתמש באובייקט ההצהרה act. אפשר להפנות להצהרות של שחקנים במיפוי המאפיינים באמצעות assertion.act.<claim_name>.
כשמבצעים החלפת אסימונים מואצלת, רק מיפויי המאפיינים והתנאים למאפיינים של ספק הנושא נבדקים ומוחלים. המערכת מתעלמת מכל מיפוי מאפיינים או תנאי מאפיינים שמוגדרים בספק של הגורם המבצע.
לדוגמה, אפשר למפות את מזהה הנושא ואת ה-URI של המנפיק של השחקן למאפיינים מותאמים אישית של Google:
attribute.actor_subject=assertion.act.sub,attribute.actor_issuer=assertion.act.iss
אם משתמשים בהקצאת הרשאות מרובת-שלבים, הגורמים במעלה הזרם מוטמעים בתוך assertion.act.act. עם זאת, אין הבטחה לגבי הסדר של הטענות המקוננות.
SAML
כשממפים את המאפיינים, אפשר להשתמש ברכיבים <Subject> ו-<Attribute>
שמוטמעים בטענת הנכוֹנוּת (assertion) שהנפיק ה-IdP החיצוני. אפשר לקרוא למאפייני
SAML באמצעות מילות המפתח הבאות:
assertion.subjectמכיל את ה-NameIDשל המשתמש המאומת שנמצא ברכיב<Subject>.assertion.attributes['ATTRIBUTE_NAME']מכיל רשימת ערכים בשביל<Attribute>בשם דומה.
צריך למפות את אחת מההצהרות האלה ל-google.subject כדי לזהות את המשתמש
באופן ייחודי. כדי להגן מפני איומי זיופים, צריך לבחור הצהרה
עם ערך ייחודי שאי אפשר לשנות.
מזהי IdP רבים נכללים בהצהרה NameId עם מזהה ייחודי
שלא ניתן לשינוי. למזהי ה-IdP האלה, כדאי למפות
את המאפיין NameId ל-google.subject:
google.subject=assertion.subject
לשם כך,
עדיף שלא להשתמש במאפיין כמו
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress. בדרך כלל אפשר להקצות או לשנות כתובות אימייל כדי
שהן לא יזהו משתמש באופן ייחודי ועקבי.
אפשר גם להגדיר תנאי למאפיין.
תנאים למאפיינים הם ביטויים ב-CEL שאפשר לבדוק בהם טענת נכוֹנוּת (assertion) ומאפייני יעד. אם התנאי למאפיין מקבל ערך של true לגבי פרטי כניסה מסוימים,
הפרטים האלה מאושרים. אחרת, פרטי הכניסה נדחים.
OIDC
אפשר להשתמש בתנאי למאפיין כדי להגביל את המשתמשים שיכולים להשתמש באיחוד שירותי אימות הזהות של עומסי עבודה כדי לקבל אסימוני Cloud de Confianceלטווח קצר.
לדוגמה, בעזרת התנאי הבא אפשר להגביל גישה לאסימונים
שכוללים הצהרת service_account מותאמת אישית עם הערך true:
assertion.service_account==true
תנאים להענקת הרשאות לזהות (אסימון שחקן) (גרסת טרום-השקה (Preview)): כשמשתמשים בהענקת הרשאות לזהות, אפשר להשתמש בתנאי מאפיינים של CEL כדי להגביל את השחקנים שמורשים לבצע פעולות בשם הנושאים, או לאכוף הצהרות ספציפיות על אסימון השחקן.
לדוגמה, התנאי הבא דורש שיהיה אסימון של גורם מבצע, ושהגורם המבצע הגיע ממנפיק צפוי:
has(assertion.act) && assertion.act.iss == 'https://actor-idp.example.com'
כדי להגביל את הגישה למזהה נושא ספציפי של שחקן:
assertion.act.sub == 'authorized-agent-worker'
SAML
אפשר להשתמש בתנאי למאפיין כדי להגביל את המשתמשים שיכולים להשתמש באיחוד שירותי אימות הזהות של עומסי עבודה כדי לקבל אסימוני Cloud de Confianceלטווח קצר.
לדוגמה, בעזרת התנאי הבא אפשר להגביל גישה לטענות נכוֹנוּת (assertions)
שכוללות מאפיין https://example.com/SAML/Attributes/AllowGcpFederation
מותאם אישית עם הערך true:
assertion.attributes['https://example.com/SAML/Attributes/AllowGcpFederation'][0]=='true'
יצירה של ספק ומאגר זהויות של עומסי עבודה
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות להגדרה של איחוד שירותי אימות הזהות של עומסי עבודה, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:
- אדמין במאגר זהויות של עומסי עבודה (
roles/iam.workloadIdentityPoolAdmin) - אדמין בחשבון שירות (
roles/iam.serviceAccountAdmin)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
לחלופין, התפקיד הבסיסי ב-IAM 'בעלים' (roles/owner) כולל גם הרשאות להגדרה של איחוד זהויות.
לא צריך להקצות תפקידים בסיסיים בסביבת ייצור, אבל אפשר להקצות אותם
בסביבת פיתוח או בדיקה.
עכשיו כל המידע הנדרש כדי ליצור מאגר וספק של זהויות של כוח עבודה נמצא ברשותך:
המסוף
במסוף Cloud de Confiance , נכנסים לדף New workload provider and pool.
בקטע Create an identity pool, מזינים את הפרטים הבאים:
- Name: השם של המאגר. השם משמש גם כמזהה המאגר. אי אפשר לשנות את מזהה המאגר בשלב מאוחר יותר.
- Description: טקסט שמתאר את המטרה של המאגר.
לוחצים על Continue.
מגדירים את הספק באופן הבא:
OIDC
- ב-Select a provider, בוחרים את OpenID Connect (OIDC).
- בקטע שם הספק, מזינים שם לספק. השם משמש גם כמזהה הספק. אי אפשר לשנות את מזהה הספק אחרי שיוצרים את הספק.
- בשדה Issuer URL, מזינים את כתובת ה-URL של מנפיק ה-IdP. כתובת ה-URL צריכה להתחיל ב-
https:// - אופציונלי: בקטע JWK file (JSON), בוחרים קובץ JWK להעלאה. אם לא מוסיפים את השדה הזה, המערכת של Cloud de Confiance תנסה לאחזר מפתח JWK מהמנפיק.
- Allowed audiences: הקהל הצפוי של הטוקנים של המזהים.
SAML
- בקטע Select a provider, בוחרים באפשרות SAML.
- בקטע שם הספק, מזינים שם לספק. השם משמש גם כמזהה הספק. אי אפשר לשנות את מזהה הספק אחרי שיוצרים את הספק.
- בשדה IDP Metadata file (XML), מעלים את מסמך ה-XML של המטא-נתונים של SAML שקיבלתם מה-IdP.
לוחצים על 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: תיאור של המאגר שנבחר. התיאור הזה מופיע כשנותנים גישה לזהויות במאגר.
-
כדי להוסיף ספק של מאגר זהויות של עומסי עבודה:
OIDC
כדי להוסיף ספק של מאגר זהויות של עומסי עבודה ב-OIDC, מריצים את הפקודה הבאה:
gcloud iam workload-identity-pools providers create-oidc WORKLOAD_PROVIDER_ID \ --location="global" \ --workload-identity-pool="POOL_ID" \ --issuer-uri="ISSUER" \ --discovery-uri="DISCOVERY_URI" \ --allowed-audiences="AUDIENCE" \ --attribute-mapping="MAPPINGS" \ --attribute-condition="CONDITIONS" \ --jwk-json-path="JWK_JSON_PATH" \ --actor-providers="ACTOR_PROVIDERS"מחליפים את מה שכתוב בשדות הבאים:
WORKLOAD_PROVIDER_ID: מזהה ייחודי לפי בחירתכם של ספק מאגר הזהויות של עומסי העבודה.POOL_ID: מזהה מאגר הזהויות של עומסי העבודה שיצרתם קודם.ISSUER: URI של מנפיק כפי שמוגדר במטא-נתונים של OIDC.-
DISCOVERY_URIגרסת טרום-השקה (Preview): כתובת URL אופציונלית של מסמך Discovery בהתאמה אישית לאחזור מטא-נתונים של OIDC, אם ה-IdP לא מארח את נקודת הקצה הידועה של מסמך Discovery של OIDC בכתובתhttps://<issuer_url>/.well-known/openid-configuration. הסכימה, המארח והיציאה חייבים להתאים ל-ISSUER, והנתיב חייב להתאים לטופולוגיה של כתובת ה-URL של המנפיק (שמכילה את/.well-known/<suffix>). AUDIENCE: הקהל הצפוי של אסימונים מזהים, שאצל ספקים רבים תואם את מזהה הלקוח.MAPPINGS: רשימה מופרדת בפסיקים של מיפויי המאפיינים שיצרת קודם לכן במדריך הזה.CONDITIONS: תנאי למאפיין אפשרי שיצרת מוקדם יותר במדריך הזה. אפשר להסיר את הפרמטר אם אין לך תנאי למאפיין.JWK_JSON_PATH: נתיב אופציונלי למפתחות JWK ב-OIDC שהועלו באופן מקומי. אם לא מוסיפים את הפרמטר הזה, המערכת של Cloud de Confiance תשתמש בכתובת ה-URL של מסמך Discovery (אוDISCOVERY_URIאו הנתיב/.well-known/openid-configurationשל ה-IdP) כדי למצוא את מפתחות ה-JWK שמכילים את המפתחות הציבוריים.ACTOR_PROVIDERSגרסת טרום-השקה (Preview): רשימה אופציונלית מופרדת בפסיקים של שמות המשאבים המלאים של ספקי מאגר הזהויות של עומסי העבודה באותו מאגר, שמורשים להנפיק אסימוני שחקן לספק הזה (לדוגמה,projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/ACTOR_PROVIDER_ID). מזהה מאגר הפרויקטים בשם המשאב חייב להתאים לפורמט שמשמש את ספק הנושא (שניהם משתמשים במספר הפרויקט או ששניהם משתמשים במזהה הפרויקט). אפשר לציין עד שלושה ספקי שחקנים. מידע נוסף זמין במאמר הגדרת הקצאת זהויות ואסימוני שחקנים.
SAML
כדי להוסיף ספק של מאגר זהויות של עומסי עבודה ב-SAML, מריצים את הפקודה הבאה:
gcloud iam workload-identity-pools providers create-saml WORKLOAD_PROVIDER_ID \ --location="global" \ --workload-identity-pool="POOL_ID" \ --idp-metadata-path="IDP_METADATA_PATH" \ --attribute-mapping="MAPPINGS" \ --attribute-condition="CONDITIONS"צריך להחליף את מה שכתוב בשדות הבאים:
-
POOL_ID: מזהה המאגר IDP_METADATA_PATH: הנתיב המקומי למסמך המטא-נתונים של ה-IdP ב-SAMLMAPPINGS: רשימה של מיפויי מאפייניםשמופרדים בפסיקים שיצרת קודם לכן במדריך הזהCONDITIONS: אופציונלי: התנאי למאפיין שיצרת קודם לכן במדריך הזה
התחילית
gcp-שמורה ואי אפשר להשתמש בה במזהה של מאגר זהויות של כוח עבודה או במזהה של ספק של מאגר זהויות של כוח עבודה.אופציונלי: אישור טענות נכונות (assertions) של SAML מוצפן מ-IdP
כדי לאפשר ל-IdP ב-SAML 2.0 ליצור טענות נכוֹנוּת (assertions) של SAML מוצפן שאיחוד שירותי אימות הזהות של עומסי עבודה יכול לאשר, צריך לבצע את הפעולות הבאות:
- באיחוד שירותי אימות הזהות של עומסי עבודה, מבצעים את הפעולות הבאות:
- יוצרים זוג מפתחות אסימטריים לספק מאגר הזהויות של עומסי העבודה.
- מורידים קובץ אישור שמכיל את המפתח הציבורי.
- מגדירים את ספק הזהויות ב-SAML כך שישתמש במפתח הציבורי להצפנה של טענות הנכוֹנוּת שהוא מנפיק ב-SAML.
- מבצעים את הפעולות הבאות בספק הזהויות:
- מפעילים הצפנה של טענות נכונות (assertions), שנקראת גם הצפנת אסימונים.
- מעלים את המפתח הציבורי שיצרתם באיחוד שירותי אימות הזהות של עומסי עבודה.
- מוודאים שה-IdP מייצר טענות נכונות (assertions) של SAML מוצפן.
יצירת מפתחות הצפנה של טענות נכונות (assertions) של SAML לאיחוד שירותי אימות הזהות של עומסי עבודה
הקטע מסביר איך ליצור זוג מפתחות אסימטריים שמאפשר לאיחוד שירותי אימות הזהות של עומסי עבודה לקבל טענות נכונות (assertions) מוצפנות של SAML.
ב- Cloud de Confiance by S3NS , המערכת משתמשת במפתח פרטי כדי לפענח את טענות הנכוֹנוּת (assertion) ב-SAML שה-IdP מנפיק. כדי ליצור זוג מפתחות אסימטריים להצפנה ב-SAML, מריצים את הפקודה הבאה. למידע נוסף, ראו אלגוריתמים נתמכים להצפנה ב-SAML.
gcloud iam workload-identity-pools providers keys create KEY_ID \ --workload-identity-pool WORKLOAD_POOL_ID \ --provider WORKLOAD_PROVIDER_ID \ --location global \ --use encryption \ --spec KEY_SPECIFICATION
מחליפים את מה שכתוב בשדות הבאים:
-
KEY_ID: שם המפתח שבחרתם -
WORKLOAD_POOL_ID: מזהה המאגר -
WORKLOAD_PROVIDER_ID: המזהה של ספק מאגר הזהויות של כוח העבודה -
KEY_SPECIFICATION: מפרט המפתחות, שיכול להיות אחד מאלה:rsa-2048, rsa-3072אוrsa-4096.
אחרי שיוצרים את זוג המפתחות, מריצים את הפקודה הבאה כדי להוריד את המפתח הציבורי לקובץ האישור. רק לאיחוד שירותי אימות הזהות של עומסי העבודה יש גישה למפתח הפרטי.
gcloud iam workload-identity-pools providers keys describe KEY_ID \ --workload-identity-pool WORKLOAD_POOL_ID \ --provider WORKLOAD_PROVIDER_ID \ --location global \ --format "value(keyData.key)" \ > CERTIFICATE_PATH
מחליפים את מה שכתוב בשדות הבאים:
-
KEY_ID: שם המפתח -
WORKLOAD_POOL_ID: מזהה המאגר -
WORKLOAD_PROVIDER_ID: המזהה של ספק מאגר הזהויות של כוח העבודה CERTIFICATE_PATH: הנתיב שבו האישור ייכתב. לדוגמה:saml-certificate.cerאוsaml-certificate.pem
הגדרת ה-IdP שתואם ל-SAML 2.0 כדי להנפיק טענות נכונות (assertions) של SAML מוצפן
צריך להגדיר את ה-IdP ב-SAML כך שישתמש באישור הציבורי שהורדת בשלב האחרון ויצפין את טענות הנכונות (assertions) של ה-SAML שהוא מנפיק. לקבלת הוראות ספציפיות, אפשר לפנות לצוות ה-IdP שלך.
אחרי שהגדרת את ה-IdP להצפין טענות נכונות (assertions) של SAML, מומלץ לבדוק שטענות הנכונות שנוצרות הן אכן מוצפנות. גם כשמוגדרת הצפנת טענות נכונות (assertions) של SAML, איחוד שירותי אימות הזהות של עומסי עבודה עדיין יכול לעבד טענות נכונות (assertions) בטקסט ללא הצפנה.
מחיקת מפתחות ההצפנה של איחוד שירותי אימות הזהות של עומסי עבודה
כדי למחוק מפתחות הצפנה של SAML, צריך להריץ את הפקודה הבאה:gcloud iam workload-identity-pools providers keys delete KEY_ID \ --workload-identity-pool WORKLOAD_POOL_ID \ --provider WORKLOAD_PROVIDER_ID \ --location global
מחליפים את מה שכתוב בשדות הבאים:
-
KEY_ID: שם המפתח -
WORKLOAD_POOL_ID: מזהה המאגר -
WORKLOAD_PROVIDER_ID: המזהה של ספק מאגר הזהויות של כוח העבודה
אלגוריתמי הצפנה נתמכים של SAML
איחוד שירותי אימות הזהות של עומסי עבודה תומך באלגוריתמים הבאים לתעבורת מפתחות:
- http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p
- http://www.w3.org/2009/xmlenc11#rsa-oaep"
- http://www.w3.org/2001/04/xmlenc#rsa-1_5"
באיחוד שירותי אימות הזהות של עומסי עבודה אפשר להשתמש באלגוריתמים הבאים להצפנת בלוקים:
הגדרת אכיפה של בקרת גישה מבוססת-הקשר לאיחוד שירותי אימות הזהות של עומסי עבודה
אכיפת המדיניות של בקרת גישה מבוססת-הקשר חלה רק כשמשתמשים באסימונים שקשורים לאישור. כדי לחזק את אבטחת המשאבים מפני התקפות של גניבת טוקנים והפעלה חוזרת, אתם יכולים להפעיל בקרת גישה מבוססת-הקשר, שאוכפת אימות mTLS וקישור אישורים לבקשות גישה. כשמגדירים כללי מדיניות של בקרת גישה מבוססת-הקשר לטוקנים שמקושרים לאישורים, Cloud de Confiance בודק את הקשר ההעברה ואת אישור הלקוח של הבקשות הנכנסות כדי לוודא שטוקני הגישה שמוצגים על ידי עומס העבודה מקושרים באופן קריפטוגרפי לסשן מהימן של אישור לקוח mTLS. אכיפת המדיניות של בקרת גישה מבוססת-הקשר לא חלה על טוקנים רגילים לא מאובטחים.
הגדרת הקצאת זהויות ואסימוני שחקנים
בתרחיש של הקצאת זהות, כפי שמוגדר ב-RFC 8693: OAuth 2.0 Token Exchange, גורם פועל (actor) מבצע פעולות בשם זהות של נושא.
כדי להגדיר ולאשר הקצאת הרשאות לזהות, צריך לעמוד בדרישות הבאות:
הרשאה של ספק השחקן: בהגדרות של ספקי השחקנים (
--actor-providers) של ספק הנושא, צריך לכלול את שם המשאב המלא של הספק שמנפיק את אסימון השחקן. ספק השחקנים צריך לעמוד בקריטריונים הבאים:- חייב להיות באותו מאגר זהויות של עומסי עבודה כמו הספק של הנושא.
- מזהה מאגר הפרויקטים בשם המשאב חייב להתאים לפורמט שבו משתמש ספק הנושא (לדוגמה, אם אתם משתמשים ב-Google Cloud CLI כדי ליצור את ספק הנושא, הוא חייב להיות מזהה הפרויקט האלפאנומרי).
- אפשר לאשר עד 3 ספקי משתמשים לכל ספק.
הצהרת
may_actבטוקן של הנושא: הטוקן של מזהה הנושא חייב לכלול הצהרתmay_act:"may_act": { "sub": "ACTOR_SUBJECT", "iss": "ACTOR_ISSUER" }מחליפים את מה שכתוב בשדות הבאים:
-
ACTOR_SUBJECT: מזהה הנושא של המשתמש המורשה (חייב להיות זהה לטענת הנכוֹנוּת (claim) שלsubבאסימון המשתמש). -
ACTOR_ISSUER: אופציונלי. מזהה ה-URI של המנפיק של ספק הזהויות של השחקן (חייב להתאים לטענת הנכוֹנוּת (claim) שלissבאסימון השחקן). אם משמיטים את השדה, המנפיק של האקטור צריך להיות זהה למנפיק של אסימון הנושא.
-
פרמטרים של החלפת אסימונים: כשמבצעים החלפת אסימונים באמצעות איחוד שירותי אימות הזהות של עומסי עבודה, הלקוח מספק גם את
subject_tokenוגם אתactor_token, יחד עם סוגי האסימונים המתאימים (subject_token_typeו-actor_token_type):-
subject_token: אסימון האבטחה שמייצג את הזהות שבשמה נשלחה הבקשה. -
subject_token_type: מזהה שמציין את סוג אסימון הנושא (למשלurn:ietf:params:oauth:token-type:jwtאוurn:ietf:params:oauth:token-type:id_token). -
actor_token: אסימון האבטחה שמייצג את הזהות של הגורם הפועל. האסימון של הגורם המבצע צריך לעמוד בדרישות הבאות:- הצהרת קהל (
aud): חייבת להכיל את ה-URI המלא של המשאב של ספק השחקנים הספציפי שמנפיק את ה-actor_token://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/ACTOR_PROVIDER_ID. התביעהaudחייבת להכיל רק URI אחד של משאב ספק של מאגר זהויות של עומסי עבודה. אם יש כמה ספקי שחקנים באותו מאגר זהויות של עומסי עבודה, צריך לכלול רק את ה-URI של המשאב של הספק שמנפיק את ה-actor_token. - ספק מורשה של משתמשים: ספק המשתמשים שצוין בטענת הנכוֹנוּת (claim) של
audחייב להיות באותו מאגר זהויות של עומסי עבודה כמו ספק הנושאים, ולהופיע בהגדרות של ספקי המשתמשים (--actor-providers) של ספק הנושאים. - התאמה בין הטענות
subו-iss: הטענהsubוהטענה האופציונליתissשל אסימון השחקן צריכות להתאים לערכים שלsubו-issשהוצהרו בטענהmay_actשל אסימון הנושא.
- הצהרת קהל (
actor_token_type: מזהה שמציין את סוג אסימון המשתמש (urn:ietf:params:oauth:token-type:jwtאוurn:ietf:params:oauth:token-type:id_token). הפרמטר הזה נדרש כשמציינים אתactor_token.- אסימונים שקשורים לאישור עם הענקת גישה: אם ה-
subject_tokenקשור לאישור (מכיל טענת אישורcnf), גם ה-actor_tokenצריך להיות קשור לאישור (להכיל טענתcnf). כשמבצעים את החלפת האסימון דרך mTLS (sts.mtls.googleapis.com), אישור הלקוח שמוצג בלחיצת היד של mTLS חייב להתאים לטביעת האצבע של האישור שלactor_token.
-
אימות של עומס עבודה
צריך לבצע את השלבים האלה פעם אחת לכל עומס עבודה.
מתן הרשאה לעומס העבודה החיצוני לגשת למשאבי Cloud de Confiance
כדי לתת לעומס העבודה גישה למשאבים של Cloud de Confiance , מומלץ לתת לחשבון הראשי גישה ישירה למשאבים. במקרה הזה, חשבון המשתמש הוא המשתמש המאומת. למוצרים מסוימים של Cloud de Confiance יש מגבלות על Google Cloud API. אם עומס העבודה שולח קריאה לנקודת קצה ל-API שיש לה מגבלה, אתם יכולים להשתמש במקום זאת בהתחזות לחשבון שירות. במקרה הזה, חשבון המשתמש הואCloud de Confiance חשבון השירות, שמשמש בתור הזהות. אתם נותנים לחשבון השירות גישה למשאב.
גישה ישירה למשאבים
אתם יכולים לתת גישה לזהות מאוחדת ישירות במשאבים באמצעות מסוף Cloud de Confiance או ה-CLI של gcloud.
המסוף
כדי להקצות תפקידי IAM ישירות למשאב באמצעות מסוף Cloud de Confiance , צריך להיכנס לדף של המשאב ולהקצות את התפקיד. בדוגמה הבאה מוסבר איך לעבור לדף 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
כדי להקצות תפקידי IAM למשאב בפרויקט באמצעות ה-CLI של gcloud:
משיגים את מספר הפרויקט שבו מוגדר המשאב.
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). איך מקצים תפקידיםיצירת חשבון שירות שמייצג את עומס העבודה. מומלץ להשתמש בחשבון שירות ייעודי לכל עומס עבודה. חשבון השירות לא חייב להיות באותו פרויקט כמו מאגר הזהויות של עומסי העבודה, אבל צריך להפנות לפרויקט שמכיל את חשבון השירות.
הענקת גישה לחשבון השירות למשאבים שאליהם רוצים שלזהויות חיצוניות תהיה גישה.
כדי לאפשר לזהות המאוחדת להתחזות לחשבון השירות:
המסוף
כדי להקצות תפקידי IAM לזהות מאוחדת עם חשבון שירות באמצעות מסוף Cloud de Confiance :
חשבון שירות באותו פרויקט
כדי לתת גישה באמצעות התחזות לחשבון שירות באותו פרויקט:
נכנסים לדף Workload Identity Pools.
לוחצים על מתן גישה.
בתיבת הדו-שיח Grant access to service account, בוחרים באפשרות Grant access using Service Account impersonation.
ברשימה Service accounts, בוחרים את חשבון השירות שאליו הזהויות החיצוניות יתחזו, ומבצעים את הפעולות הבאות:
כדי לבחור אילו זהויות מהמאגר יכולות להתחזות לחשבון השירות, מבצעים את אחת מהפעולות הבאות:
כדי לאפשר רק לזהויות ספציפיות ממאגר הזהויות של עומסי העבודה להתחזות לחשבון השירות, בוחרים באפשרות Only identities matching the filter.
ברשימה שם מאפיין, בוחרים את המאפיין שרוצים לסנן לפיו.
בשדה ערך מאפיין, מזינים את הערך הצפוי של המאפיין. לדוגמה, אם משתמשים במיפוי מאפיינים
google.subject=assertion.sub, מגדירים את שם מאפיין ל-subjectואת ערך מאפיין לערך של ההצהרה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" (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: הערך של המאפיין המותאם אישית במיפוי המאפיינים שלכם
הורדת הגדרות אישיות של פרטי הכניסה
כאן מוסבר איך להוריד את קובץ הגדרת פרטי הכניסה באמצעות מסוףCloud de Confiance .
כדי לאפשר לעומס העבודה לגשת לספריות הלקוח, קודם צריך להוריד ולהגדיר את Application Default Credentials (ADC):
-
במסוף Cloud de Confiance , נכנסים לדף מאגרי זהויות של עומסי עבודה.
כניסה לדף Workload Identity Pools -
בטבלה, בוחרים את המאגר כדי לעבור לדף הפרטים שלו.
-
לוחצים על הענקת גישה.
-
בוחרים באפשרות Grant access using federated identities (Recommended).
-
כדי להוריד את Application Default Credential (ADC) כדי שעומס העבודה יוכל לגשת לספריות הלקוח:
-
לוחצים על Download config.
-
בתיבת הדו-שיח Configure your application, מבצעים את הפעולות הבאות:
-
ברשימה הנפתחת Provider, בוחרים את הספק.
-
בשדה OIDC token path או SAML assertion path, מזינים את הנתיב שבו נמצאים האסימון או טענת הנכוֹנוּת.
ברשימה הנפתחת Format type, בוחרים את הפורמט.
-
-
לוחצים על Download configuration ורושמים את הנתיב שבו שמרתם את הקובץ.
-
הגדרות אישיות של פרטי הכניסה
ספריות הלקוח ב-Cloud, ה-CLI של gcloud ו-Terraform יכולים להשיג פרטי כניסה חיצוניים באופן אוטומטי, ולהשתמש בהם כדי לגשת אל Cloud de Confiance. כדי לאפשר לספריות ולכלים להשלים את התהליך הזה, צריך לספק קובץ תצורה של פרטי הכניסה. הקובץ יגדיר את הפרטים הבאים:
- המקור שממנו משיגים פרטי כניסה חיצוניים
- מאגר וספק הזהויות של עומסי העבודה שבהם צריך להשתמש
- חשבון השירות שצריך להתחזות אליו, אם משתמשים בהתחזות לחשבון שירות
ספריות הלקוח ב-Cloud מקבלות פרטי כניסה חיצוניים מקובץ מקומי, כתובת URL מסוג HTTP, על ידי הרצה של קובץ הפעלה מקומי:
פרטי כניסה שהתקבלו מקובץ הפעלה: הספריות יוצרות קובץ הפעלה בכל פעם שהן צריכות פרטי כניסה חדשים. אם קובץ ההפעלה מצליח לקבל פרטי כניסה חיצוניים חדשים, צריך להופיע ב-
STDOUTמסמך JSON שנראה כך:OIDC
{ "version": 1, "success": true, "token_type": "urn:ietf:params:oauth:token-type:id_token", "id_token": "HEADER.PAYLOAD.SIGNATURE", "expiration_time": 1620499962 }אם קובץ ההפעלה לא מצליח להשיג פרטי כניסה חדשים, צריך להופיע ב-
STDOUTמסמך JSON שנראה כך:{ "version": 1, "success": false, "code": "401", "message": "Caller not authorized." }מסמכי ה-JSON כוללים את השדות הבאים:
version: הגרסה של פלט ה-JSON. יש תמיכה רק בגרסה 1.success: הסטטוס של התגובה.כשהערך הוא
true, התגובה צריכה להכיל את השדותid_tokenו-token_type. קובץ ההפעלה חייב לצאת באמצעות קוד יציאה 0.כשהערך הוא
false, התגובה חייבת להכיל את השדותcodeו-messageולצאת באמצעות ערך שהוא לא אפס.token_type: סוג האסימון של פרטי הכניסה החיצוניים. הערכים שנתמכים הם:urn:ietf:params:oauth:token-type:id_tokenurn:ietf:params:oauth:token-type:jwt
id_token: פרטי הכניסה החיצוניים.expiration_time: זמן התפוגה של אסימון OIDC בשניות (ראשית זמן יוניקס [Unix epoch]) השדה הזה נדרש רק אם צוין קובץ פלט בתצורת פרטי הכניסה.code: מחרוזת קוד השגיאה.message: הודעת השגיאה.
SAML
{ "version": 1, "success": true, "token_type": "urn:ietf:params:oauth:token-type:saml2", "saml_response": "...", "expiration_time": 1620499962 }אם קובץ ההפעלה לא מצליח להשיג פרטי כניסה חדשים, צריך להופיע ב-
STDOUTמסמך JSON שנראה כך:{ "version": 1, "success": false, "code": "401", "message": "Caller not authorized." }מסמכי ה-JSON כוללים את השדות הבאים:
version: הגרסה של פלט ה-JSON. יש תמיכה רק בגרסה 1.success: הסטטוס של התגובה.כשהערך הוא
true, התגובה צריכה להכיל את השדותid_tokenו-token_type. קובץ ההפעלה חייב לצאת באמצעות קוד יציאה 0.כשהערך הוא
false, התגובה חייבת להכיל את השדותcodeו-messageולצאת באמצעות ערך שהוא לא אפס.token_type: סוג האסימון של פרטי הכניסה החיצוניים. חייב להיותurn:ietf:params:oauth:token-type:saml2.saml_response: תגובת SAML אוט ענת נכוֹנוּת (assertion) של SAML בקידוד base64.expiration_time: זמן התפוגה של טענת הנכוֹנוּת (assertion) בשניות (ראשית זמן יוניקס [Unix epoch]). השדה הזה נדרש רק אם צוין קובץ פלט בתצורת פרטי הכניסה.code: מחרוזת קוד השגיאה.message: הודעת השגיאה.
כשמפעילים את קובץ ההפעלה, ספריות הלקוח מגדירות את משתני הסביבה הבאים:
GOOGLE_EXTERNAL_ACCOUNT_AUDIENCE: הקהל מתצורת פרטי הכניסה. מוצג תמיד.GOOGLE_EXTERNAL_ACCOUNT_TOKEN_TYPE: הסוג של אסימון הנושא הצפוי. מוצג תמיד.GOOGLE_EXTERNAL_ACCOUNT_IMPERSONATED_EMAIL: כתובת האימייל של חשבון השירות. מוצג רק כשמשתמשים בהתחזות לחשבון שירות.GOOGLE_EXTERNAL_ACCOUNT_OUTPUT_FILE: המיקום של קובץ הפלט בתצורת פרטי הכניסה. מוצג רק כשהוא מצוין בתצורה של פרטי הכניסה.
כדי להשתמש בפרטי הכניסה שהתקבלו מקובץ הפעלה, צריך להגדיר את משתנה הסביבה
GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLESלערך1.פרטי כניסה שהתקבלו מקובץ: הספריות קוראות את פרטי הכניסה החיצוניים מקובץ מקומי של טקסט פשוט או של JSON. לדוגמה:
JSON
{ "mytoken": "ey... }טקסט
ey...
פרטי הכניסה החיצוניים יכולים להיות:
- אסימון OIDC
- תגובת SAML
- טענת נכוֹנוּת (assertion) של SAML בקידוד Base64
צריך לעדכן מדי פעם את הקובץ כך שתמיד יהיו בו פרטי כניסה תקפים. לדוגמה, אם אסימון ה-OIDC או טענת נכוֹנוּת (assertion) של ה-SAML בתוקף לשעה אחת, צריך לרענן את הקובץ לפחות פעם בשעה.
פרטי כניסה שהתקבלו מכתובות URL: הספריות שולחות בקשת
GETלנקודת קצה (endpoint) של HTTP בכל פעם שנדרשים פרטי כניסה חדשים. נקודת הקצה חייבת להחזיר תגובה של טקסט פשוט או של JSON שתואמת לפורמט של פרטי הכניסה שהתקבלו מקובץ.
כדי ליצור קובץ תצורה של פרטי הכניסה, צריך לבצע את הפעולות הבאות:
פרטי כניסה שהתקבלו מקובץ הפעלה
gcloud iam workload-identity-pools create-cred-config \ projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/WORKLOAD_PROVIDER_ID \ --service-account=SERVICE_ACCOUNT_EMAIL \ --service-account-token-lifetime-seconds=SERVICE_ACCOUNT_TOKEN_LIFETIME \ --sts-location=REGION \ --output-file=FILEPATH.json \ --executable-command=EXECUTABLE_COMMAND \ --executable-timeout-millis=EXECUTABLE_TIMEOUT \ --executable-output-file=EXECUTABLE_OUTPUT_FILE
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NUMBER: מספר הפרויקט שמכיל את מאגר הזהויות של עומסי העבודה. -
POOL_ID: המזהה של מאגר הזהויות של עומסי העבודה. -
WORKLOAD_PROVIDER_ID: מזהה הספק של מאגר הזהויות של עומסי העבודה. -
SERVICE_ACCOUNT_EMAIL: אם אתם משתמשים בהתחזות לחשבון שירות, החליפו את הערך בכתובת האימייל של חשבון השירות. אם אתם לא משתמשים בהתחזות לחשבון שירות, אל תשתמשו בדגל הזה. -
SERVICE_ACCOUNT_TOKEN_LIFETIME: אם אתם משתמשים בהתחזות לחשבון שירות, החליפו את הערך הזה במשך החיים של אסימון הגישה לחשבון השירות בשניות. אם לא ציינתם ערך, הגדרת ברירת המחדל היא שעה אחת. אם אתם לא משתמשים בהתחזות לחשבון שירות, אל תשתמשו בדגל הזה. כדי לציין משך חיים ארוך יותר משעה אחת, צריך להגדיר את אילוץ המדיניות הארגונית constraints/iam.allowServiceAccountCredentialLifetimeExtension. -
REGION: אופציונלי. מציינים את האזור של נקודות הקצה האזוריות של Security Token Service, אם הן זמינות. -
FILEPATH: הקובץ שבו שומרים את התצורה. EXECUTABLE_COMMAND: הפקודה המלאה, כולל ארגומנטים, שמריצים כדי לאחזר את האסימון המזהה של OIDC, לדוגמה:--executable-command="/path/to/command --foo=bar".EXECUTABLE_TIMEOUT: משך הזמן האופציונלי באלפיות השנייה כדי להמתין להרצה של קובץ ההפעלה (ברירת המחדל היא 30 שניות).EXECUTABLE_OUTPUT_FILE: נתיב שמפנה לפרטי הכניסה 3PI שקובץ ההפעלה יצר. כדאי להיעזר בזה אם רוצים לשמור במטמון את פרטי הכניסה. כשמציינים את הנתיב הזה, ספריות Auth (אימות) יבדקו קודם אם הוא קיים לפני שיריצו את קובץ ההפעלה.
פרטי כניסה שהתקבלו מקובץ
gcloud iam workload-identity-pools create-cred-config \ projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/WORKLOAD_PROVIDER_ID \ --service-account=SERVICE_ACCOUNT_EMAIL \ --service-account-token-lifetime-seconds=SERVICE_ACCOUNT_TOKEN_LIFETIME \ --sts-location=REGION \ --output-file=FILEPATH.json \ --credential-source-file=TOKEN_FILEPATH \ --credential-source-type=SOURCE_TYPE \ --credential-source-field-name=FIELD_NAME
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NUMBER: מספר הפרויקט שמכיל את מאגר הזהויות של עומסי העבודה. -
POOL_ID: המזהה של מאגר הזהויות של עומסי העבודה. -
WORKLOAD_PROVIDER_ID: מזהה הספק של מאגר הזהויות של עומסי העבודה. -
SERVICE_ACCOUNT_EMAIL: אם אתם משתמשים בהתחזות לחשבון שירות, החליפו את הערך בכתובת האימייל של חשבון השירות. אם אתם לא משתמשים בהתחזות לחשבון שירות, אל תשתמשו בדגל הזה. -
SERVICE_ACCOUNT_TOKEN_LIFETIME: אם אתם משתמשים בהתחזות לחשבון שירות, החליפו את הערך הזה במשך החיים של אסימון הגישה לחשבון השירות בשניות. אם לא ציינתם ערך, הגדרת ברירת המחדל היא שעה אחת. אם אתם לא משתמשים בהתחזות לחשבון שירות, אל תשתמשו בדגל הזה. כדי לציין משך חיים ארוך יותר משעה אחת, צריך להגדיר את אילוץ המדיניות הארגונית constraints/iam.allowServiceAccountCredentialLifetimeExtension. -
REGION: אופציונלי. מציינים את האזור של נקודות הקצה האזוריות של Security Token Service, אם הן זמינות. -
FILEPATH: הקובץ שבו שומרים את ההגדרות האישיות. -
TOKEN_FILEPATH: הנתיב שבו שמורים טוקנים של מזהה של OIDC. -
SOURCE_TYPE: פורמט הקובץ של אסימון מזהה של OIDC, שמוגדר ל-text(ברירת המחדל) או ל-json. -
FIELD_NAME: השדה בקובץ הטקסט שמכיל את האסימון (אםSOURCE_TYPEהואjson).
פרטי כניסה שהתקבלו מכתובת URL
gcloud iam workload-identity-pools create-cred-config \ projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/WORKLOAD_PROVIDER_ID \ --service-account=SERVICE_ACCOUNT_EMAIL \ --service-account-token-lifetime-seconds=SERVICE_ACCOUNT_TOKEN_LIFETIME \ --sts-location=REGION \ --output-file=FILEPATH.json \ --credential-source-url="TOKEN_URL" \ --credential-source-headers="KEY_1=VALUE_1,KEY_2=VALUE_2" \ --credential-source-type=SOURCE_TYPE \ --credential-source-field-name=FIELD_NAME
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_NUMBER: מספר הפרויקט שמכיל את מאגר הזהויות של עומסי העבודה.-
POOL_ID: מזהה מאגר הזהויות של עומסי העבודה. -
WORKLOAD_PROVIDER_ID: מזהה הספק של מאגר הזהויות של עומסי העבודה -
SERVICE_ACCOUNT_EMAIL: אם אתם משתמשים בהתחזות לחשבון שירות, החליפו את הערך בכתובת האימייל של חשבון השירות. אם אתם לא משתמשים בהתחזות לחשבון שירות, אל תשתמשו בדגל הזה. -
SERVICE_ACCOUNT_TOKEN_LIFETIME: אם אתם משתמשים בהתחזות לחשבון שירות, החליפו את הערך הזה במשך החיים של אסימון הגישה לחשבון השירות בשניות. אם לא ציינתם ערך, הגדרת ברירת המחדל היא שעה אחת. אם אתם לא משתמשים בהתחזות לחשבון שירות, אל תשתמשו בדגל הזה. כדי לציין משך חיים ארוך יותר משעה אחת, צריך להגדיר את אילוץ המדיניות הארגונית constraints/iam.allowServiceAccountCredentialLifetimeExtension. -
REGION: אופציונלי. מציינים את האזור של נקודות הקצה האזוריות של Security Token Service, אם הן זמינות. -
FILEPATH: הקובץ שבו שומרים את התצורה. TOKEN_URL: כתובת URL שממנה מאחזרים טוקן של מזהה OIDCKEY_n,VALUE_n: כותרות מותאמות אישית שצריך לכלול בבקשת HTTP ל-TOKEN_URL-
SOURCE_TYPE: פורמט הקובץ של אסימון מזהה של OIDC, שמוגדר ל-text(ברירת המחדל) או ל-json FIELD_NAME: שדה בקובץ הטקסט שמכיל את האסימון (אםSOURCE_TYPEהואjson)
שימוש בהגדרות פרטי הכניסה כדי לקבל גישה אל Cloud de Confiance
כדי לאפשר לכלים ולספריות הלקוח להשתמש בתצורת פרטי הכניסה, צריך לבצע את הפעולות הבאות:
מאתחלים את משתנה הסביבה
GOOGLE_APPLICATION_CREDENTIALSומפנים אותו לקובץ התצורה של פרטי הכניסה:Bash
export GOOGLE_APPLICATION_CREDENTIALS=`pwd`/FILEPATH.json
FILEPATHהוא הנתיב היחסי לקובץ התצורה של פרטי הכניסה.PowerShell
$env:GOOGLE_APPLICATION_CREDENTIALS = Resolve-Path 'FILEPATH.json'
FILEPATHהוא הנתיב היחסי לקובץ התצורה של פרטי הכניסה.משתמשים בספריית לקוח או בכלי שתומכים באיחוד שירותי אימות הזהות של עומסי עבודה, ויכולים למצוא פרטי כניסה באופן אוטומטי:
C++
ספריות הלקוח שלCloud de Confiance ל-C++ תומכות באיחוד שירותי אימות הזהות של עומסי עבודה החל מגרסה v2.6.0. כדי להשתמש באיחוד שירותי אימות הזהות של עומסי עבודה, צריך ליצור את ספריות הלקוח בגרסה 1.36.0 ואילך של gRPC.
המשך
ספריות לקוח ל-Go תומכות באיחוד שירותי אימות הזהות של עומסי עבודה אם נעשה בהן שימוש במודול
golang.org/x/oauth2בגרסה 00.0.0-20210218202405-ba52d332ba99 ואילך.כדי לבדוק באיזו גרסה של המודול הזה נעשה שימוש בספריית הלקוח, מפעילים את הפקודות האלה:
cd $GOPATH/src/cloud.google.com/go go list -m golang.org/x/oauth2Java
בספריות לקוח ל-Java יש תמיכה באיחוד שירותי אימות הזהות של עומסי עבודה, אם נעשה בהן שימוש בארטיפקט
com.google.auth:google-auth-library-oauth2-httpבגרסה 0.24.0 ואילך.כדי לבדוק באיזו גרסה של הארטיפקט הזה נעשה שימוש בספריית הלקוח, בספרייה של האפליקציה מפעילים את פקודת Maven הזאת:
mvn dependency:list -DincludeArtifactIds=google-auth-library-oauth2-httpNode.js
בספריות לקוח ל-Node.js יש תמיכה באיחוד שירותי אימות הזהות של עומסי עבודה אם נעשה בהן שימוש בחבילת
google-auth-libraryבגרסת 7.0.2 ואילך.כדי לבדוק באיזו גרסה של החבילה הזאת נעשה שימוש בספריית הלקוח, בספרייה של האפליקציה מפעילים את פקודת Maven הזאת:
npm list google-auth-libraryכשיוצרים אובייקט
GoogleAuth, אפשר לציין מזהה פרויקט או לאפשר ל-GoogleAuthלאתר את מזהה הפרויקט באופן אוטומטי. כדי לאתר את מזהה הפרויקט באופן אוטומטי, צריך להקצות לחשבון השירות בקובץ התצורה את התפקיד דפדפן (roles/browser) או תפקיד עם הרשאות דומות בפרויקט. לפרטים נוספים, ראוREADMEלחבילתgoogle-auth-library.Python
בספריות לקוח ל-Python יש תמיכה באיחוד שירותי אימות הזהות של עומסי עבודה אם נעשה בהן שימוש בחבילת
google-authבגרסת 1.27.0 ואילך.כדי לבדוק באיזו גרסה של החבילה הזאת נעשה שימוש בספריית הלקוח, בסביבה שהחבילה מותקנת בה מפעילים את הפקודה:
pip show google-authכדי לציין מזהה פרויקט ללקוח האימות, תוכלו להגדיר את משתנה הסביבה
GOOGLE_CLOUD_PROJECTאו לאפשר ללקוח למצוא את מזהה הפרויקט באופן אוטומטי. כדי לאתר את מזהה הפרויקט באופן אוטומטי, צריך להקצות לחשבון השירות בקובץ התצורה את התפקיד דפדפן (roles/browser) או תפקיד עם הרשאות דומות בפרויקט. לפרטים נוספים, ראו מדריך למשתמש לחבילתgoogle-auth.gcloud
כדי לבצע אימות באמצעות איחוד שירותי אימות הזהות של עומסי עבודה, משתמשים בפקודה
gcloud auth login:gcloud auth login --cred-file=FILEPATH.json
מחליפים את הערך
FILEPATHבנתיב לקובץ התצורה של פרטי הכניסה.ב-CLI של gcloud יש תמיכה באיחוד שירותי אימות הזהות של עומסי עבודה ב-CLI של gcloud בגרסה 363.0.0 ואילך.
Terraform
הספק שלCloud de Confiance תומך באיחוד שירותי אימות הזהות של עומסי עבודה אם משתמשים בגרסה 3.61.0 ואילך:
terraform { required_providers { google = { source = "hashicorp/google" version = "~> 3.61.0" } } }BQ
כדי לבצע אימות באמצעות איחוד שירותי אימות הזהות של עומסי עבודה, משתמשים בפקודה
gcloud auth login:gcloud auth login --cred-file=FILEPATH.json
מחליפים את הערך
FILEPATHבנתיב לקובץ התצורה של פרטי הכניסה.ב-bq, יש תמיכה באיחוד שירותי אימות הזהות של עומסי עבודה ב-CLI של gcloud בגרסה 390.0.0 ואילך.