במסמך הזה נתאר כמה מהשיטות והמושגים המרכזיים שקשורים לאימות, ואיך מקבלים עזרה ביישום האימות או בפתרון בעיות.
מבוא
אימות הוא התהליך שבו מאמתים את הזהות שלכם באמצעות סוג כלשהו של פרטי כניסה, או במילים אחרות: הצגת הוכחות לכך שאתם באמת מי שאתם טוענים שאתם.
האימות דרוש כדי להשתמש בממשקי API ובשירותים רבים של Google. בנוסף, Google מספקת כמה שירותים שמארחים אפליקציות שכתבו הלקוחות שלנו. גם באפליקציות האלה דרושה יכולת לאמת את זהות המשתמשים.
המסגרת של OAuth 2.0 מוטמעת בממשקים של Google API, עם תוספות.
איך מקבלים עזרה באימות
| פעולה | הוראות |
|---|---|
| אימות מול שירות מהאפליקציה שלכם באמצעות שפת תכנות ברמה גבוהה. Cloud de Confiance | מגדירים את פרטי הכניסה ב-Application Default Credentials, ואז משתמשים באחת מספריות הלקוח ב-Cloud. |
| אימות לאפליקציה שנדרש בה אסימון מזהה. | מקבלים אסימון מזהה של OpenID Connect (OIDC) ומצרפים אותו לבקשה. |
התנסות בכמה פקודות gcloud מסביבת הפיתוח המקומית שלכם.
|
הפעלת ה-CLI של gcloud |
| התנסות בכמה בקשות ל-API בארכיטקטורת REST בסביבת הפיתוח המקומית שלכם. Cloud de Confiance |
שימוש בכלי שורת הפקודה כמו curl כדי לקרוא ל-API ל-REST.
|
| התנסות בקטע קוד שכלול במסמכי התיעוד של המוצר. | הגדרת ADC לסביבת פיתוח מקומית והתקנת ספריית הלקוח של המוצר בסביבה המקומית. ספריית הלקוח תמצא את פרטי הכניסה באופן אוטומטי. |
בחירת שיטת האימות שמתאימה לתרחיש שלכם לדוגמה
כשנכנסים לשירותים Cloud de Confiance by S3NS באמצעות ה-CLI של Google Cloud, ספריות הלקוח של Cloud, כלים שתומכים ב- Application Default Credentials (ADC) כמו Terraform או בקשות REST, תוכלו להיעזר בדיאגרמה שכאן כדי לבחור שיטת אימות:
הדיאגרמה תנחה אתכם באמצעות השאלות הבאות:
-
אתם מפעילים קוד בסביבת פיתוח למשתמש יחיד, כמו תחנת עבודה משלכם, Cloud Shell או ממשק של מחשב וירטואלי?
- אם כן, ממשיכים לשאלה 4.
- אם לא, ממשיכים לשאלה 2.
- אתם מריצים את הקוד ב- Cloud de Confiance by S3NS?
- אם כן, ממשיכים לשאלה 3.
- אם לא, ממשיכים לשאלה 5.
- אתם מריצים קונטיינרים ב-Google Kubernetes Engine?
- אם כן, משתמשים ב- איחוד שירותי אימות הזהות של עומסי עבודה ב-GKE כדי לחבר חשבונות שירות לקבוצות Pod ב-Kubernetes.
- אם לא, מחברים חשבון שירות למשאב.
-
בתרחיש לדוגמה שלכם יש צורך בחשבון שירות?
לדוגמה, אתם רוצים להגדיר באפליקציות אימות והרשאה באופן עקבי בכל הסביבות.
-
האימות של עומס העבודה מתבצע באמצעות ספק זהויות חיצוני שתומך באיחוד שירותי אימות הזהות של עומסי עבודה?
- אם כן, מגדירים איחוד שירותי אימות הזהות של עומסי עבודה באופן שמאפשר לאפליקציות שפועלות בארגון או אצל ספקים אחרים של שירותי ענן להשתמש בחשבון שירות.
- אם לא, יוצרים מפתח לחשבון השירות.
שיטות הרשאה לשירותים של Cloud de Confiance
ההרשאה ל Cloud de Confiance מנוהלת בעיקר על ידי ניהול זהויות והרשאות גישה (IAM). ב-IAM אפשר לנהל הרשאות מפורטות, לפי חשבון משתמש ולפי משאב.
אפשר להחיל שכבת הרשאה נוספת באמצעות היקפי הרשאות של OAuth 2.0. כשמבצעים אימות מול שירות Cloud de Confiance , אפשר להשתמש בהיקף גלובלי שמאשר גישה לכל השירותים Cloud de Confiance (https://www.googleapis.com/auth/cloud-platform), או, אם השירות תומך בכך, אפשר להגביל את הגישה באמצעות היקף מוגבל יותר. היקפים מוגבלים יכולים לעזור לצמצם את הסיכון אם הקוד שלכם פועל בסביבות שבהן אסימונים שנחשפו עלולים להיות בעיה, כמו באפליקציות לנייד.
היקפי ההרשאות שמתקבלים על ידי שיטת API מפורטים במסמכי העזרה של ה-API לכל שירות Cloud de Confiance .
Application Default Credentials
השירותApplication Default Credentials (ADC) משמש את ספריות האימות כדרך למצוא את פרטי הכניסה באופן אוטומטי על סמך הסביבה שבה פועלת האפליקציה. ספריות האימות מאפשרות לספריות הלקוח ב-Cloud ולספריות הלקוח של Google API לגשת לפרטי הכניסה האלה. כשעובדים עם ADC, הקוד יכול לפעול גם בסביבת הפיתוח וגם בסביבת הייצור, בלי שתצטרכו לשנות את שיטת האימות של האפליקציות מול Cloud de Confiance by S3NS השירותים וממשקי ה-API.
העבודה עם ADC מאפשרת להשתמש באותו קוד אימות בסביבות שונות ומפשטת את תהליך הפיתוח. עם זאת, אם אתם משתמשים בשירות במצב אקספרס, אתם לא צריכים להשתמש ב-ADC.
כדי שתוכלו להשתמש ב-ADC אתם צריכים לספק את פרטי הכניסה ל-ADC בהתאם לסביבה שבה אתם רוצים שהקוד יפעל. אפשר להשתמש ב-ADC מאחורי הקלעים כדי לאתר את פרטי הכניסה באופן אוטומטי ולקבל את האסימון, כך שאותו קוד אימות יכול לרוץ בסביבות השונות ללא שינוי. לדוגמה, תוכלו להריץ את אותה גרסה של קוד האימות מול ממשקי ה-API שלCloud de Confiance הן בעמדת פיתוח והן ב-Compute Engine.
פרטי הכניסה ל-gcloud שונים מפרטי הכניסה שאתם מספקים ל-ADC באמצעות ה-CLI של gcloud. למידע נוסף, ראו הגדרת אימות ב-CLI של gcloud והגדרת ADC.
הסברים על המונחים
חשוב להכיר ולהבין את המונחים הבאים בנושא של אימות והרשאה.
אימות
אימות הוא תהליך לבדיקת הזהות של חשבון המשתמש שאיתו מנסים לקבל גישה למשאב.
הרשאה
הרשאה היא תהליך שקובע אם לחשבון המשתמש או לאפליקציה שאיתם מנסים לקבל גישה למשאב יש אישור לקבל אותה.
פרטי כניסה
במאמר הזה, המונח חשבון משתמש מתייחס לחשבון משתמש שמנוהל על ידי ספק הזהויות שלכם ומאוחד עם איחוד שירותי אימות הזהות של כוח עבודה.
בהקשר של אימות, פרטי הכניסה הם אובייקט דיגיטלי שמשמש להוכחת הזהות. פרטי הכניסה יכולים להיות סיסמה, קוד אימות או נתונים ביומטריים, בהתאם לדרישות האפליקציה. לדוגמה, כשאתם נכנסים לחשבון המשתמש, אתם צריכים לספק את הסיסמה שלכם ולעמוד בכל הדרישות לאימות דו-שלבי, כדי להוכיח שהחשבון אכן שייך לכם ולא לגורם זדוני שמזייף את הזהות שלכם.
טוקנים הם לא פרטי כניסה. הם אובייקט דיגיטלי שמוכיח שהגורם הקורא העביר את פרטי הכניסה הנכונים.
הסוג של פרטי הכניסה שאתם צריכים להעביר משתנה בהתאם לגורם שמולו אתם מבצעים את האימות.
במסוףCloud de Confiance אפשר ליצור את סוגי פרטי הכניסה הבאים:
מפתחות API
אפשר להשתמש במפתחות API עם ממשקי API שמקבלים אותם כדי לגשת לממשק ה-API. מפתחות API שלא משויכים לחשבון שירות מספקים פרויקט שמשמש לצורכי חיוב ומכסה. אם מפתח ה-API מקושר לחשבון שירות, מפתח ה-API מספק גם את הזהות וההרשאה של חשבון השירות (גרסת Preview).
מידע נוסף על מפתחות API זמין במאמר מפתחות API. מידע נוסף על מפתחות API שמקושרים לחשבון שירות זמין בשאלות הנפוצות על מצב אקספרס ב-Google Cloud.
מפתחות של חשבונות שירות
מפתחות של חשבונות שירות מזהים את הגורם הראשי (חשבון השירות) ואת הפרויקט שמשויך לחשבון השירות.
אפשר גם ליצור פרטי כניסה באמצעות ה-CLI של gcloud. פרטי הכניסה האלה כוללים את הסוגים הבאים:
- קבצים מקומיים של ADC
- הגדרות של פרטי הכניסה שמשמשות את איחוד זהויות של עומסי עבודה
- הגדרות של פרטי הכניסה שמשמשות את איחוד שירותי אימות הזהות של כוח העבודה
חשבון משתמש
חשבון הוא זהות שאפשר להעניק לה גישה למשאב. ממשקי Google API תומכים בשני סוגים של חשבונות לאימות: חשבונות משתמשים וחשבונות שירות.
ההחלטה האם להשתמש בחשבון משתמש או בחשבון שירות לאימות משתנה בהתאם לתרחיש השימוש שלכם בפועל. יכול להיות שתשתמשו בשניהם, בהתאם לשלבים השונים של הפרויקט או לסביבות הפיתוח השונות.
חשבונות משתמשים
חשבונות משתמשים מייצגים מְפַתֵּחַ, אדמין או כל אדם אחר שמנהל אינטראקציה עם ממשקי ה-API והשירותים של Google.
חשבונות המשתמשים מנוהלים על ידי ספק הזהויות ומאוחדים באמצעות איחוד שירותי אימות הזהות של כוח העבודה.אפשר להשתמש בחשבון משתמש לאימות מול ממשקי ה-API והשירותים של Google בדרכים הבאות:
- להגדיר את פרטי הכניסה ב-Application Default Credentials (ADC) באמצעות ה-CLI של gcloud.
- להיכנס ל-Google Cloud CLI באמצעות פרטי הכניסה של המשתמש כדי להפעיל מהכלי את שירותי Cloud de Confiance .
- להשתמש בפרטי הכניסה של המשתמש כדי להתחזות לחשבון שירות.
- להיכנס ל-Google Cloud CLI באמצעות פרטי הכניסה של המשתמש כדי להשתמש בכלי ליצירת אסימוני גישה.
חשבונות שירות
חשבונות שירות הם חשבונות שלא מייצגים בני אדם. הם מספקים דרך לנהל את האימות וההרשאות בלי מעורבות ישירה של בני אדם, למשל כדי לתת לאפליקציות גישה למשאבים. Cloud de Confiance חשבונות השירות מנוהלים על ידי הממשק לניהול זהויות והרשאות גישה (IAM).
ברשימה הבאה מפורטות כמה מהדרכים לאימות באמצעות חשבון שירות מול ממשקי ה-API והשירותים של Google, מהמאובטחת ביותר להכי פחות מאובטחת. למידע נוסף, קראו את הקטע בחירת שיטת האימות המתאימה לתרחיש שלכם לדוגמה בדף הזה.
לחבר את המשאב לחשבון שירות שמנוהל על ידי משתמש כדי להשתמש ב-Application Default Credentials לאימות.
זוהי הדרך המומלצת לאימות של קוד שרץ בסביבת הייצור ב-Cloud de Confiance.
להשתמש בחשבון השירות כדי להתחזות לחשבון שירות אחר.
התחזות לחשבון שירות אחר מאפשרת לכם להעניק באופן זמני הרשאות נוספות לחשבון השירות. כשנותנים את ההרשאות הנוספות באופן זמני, מאפשרים לאותו חשבון שירות לקבל את רמת הגישה הנדרשת, מבלי לקבל הרשאות נוספות באופן קבוע.
משתמשים באיחוד זהויות של עומסי עבודה כדי לאמת עומסי עבודה שפועלים בארגון או אצל ספק שירותי ענן אחר.
להשתמש בחשבון השירות שמוגדר כברירת מחדל.
לא מומלץ להשתמש בחשבון השירות שמוגדר כברירת מחדל כי הוא בעל ההרשאות הגבוהות ביותר, ולכן זה מפר את העיקרון של הרשאות מינימליות.
תוכלו לקרוא איך מגדירים זהויות לעומסי עבודה ב- Cloud de Confiance by S3NS, כולל חשבונות שירות, במאמר זהויות לעומסי עבודה. שיטות מומלצות לשימוש בחשבונות שירות
אסימון
בהקשר של אימות והרשאה, אסימון הוא אובייקט דיגיטלי שמוכיח שהגורם הקורא העביר את פרטי הכניסה הנכונים שהוחלפו באסימון הזה. האסימון מכיל מידע על הזהות של חשבון המשתמש שמגיש את הבקשה ועל סוג הגישה שהחשבון הזה מורשה לקבל.
אפשר לחשוב על אסימונים בתור מפתחות במלון. כשעושים צ'ק-אין למלון ומראים את המסמכים המתאימים בדלפק הקבלה, מקבלים מפתח שמעניק גישה למשאבים מסוימים של המלון. לדוגמה, המפתח יכול לתת גישה לחדר ולמעלית האורחים, אבל לא לתת גישה לחדרים אחרים או למעלית השירות.
ממשקי ה-API של Google לא תומכים ישירות בקבלת פרטי כניסה, מלבד מפתחות API. האפליקציה שלכם נדרשת לקבל או ליצור אסימון ולהעביר אותו ל-API. יש כמה סוגים שונים של אסימונים. מידע נוסף מופיע במאמר סקירה כללית על אסימונים.
עומס עבודה וכוח עבודה
Cloud de Confiance מוצרי זהויות והרשאות גישה מאפשרים גישה לשירותים ולמשאבים גם באופן פרוגרמטי (לאפליקציות) וגם למשתמשים (לבני אדם). Cloud de Confiance משתמשים במונחים עומס עבודה כדי להתייחס לגישה פרוגרמטית וכוח עבודה כדי להתייחס לגישה של משתמשים.Cloud de Confiance
איחוד שירותי אימות הזהות של עומסי עבודה מאפשר לתת גישה לעומסי עבודה מקומיים או מרובי עננים (multi-cloud) בלי ליצור ולנהל מפתחות של חשבונות שירות.
איחוד שירותי אימות הזהות של כוח עבודה מאפשר להשתמש בספק זהויות חיצוני כדי לאמת ולאשר לכוח העבודה שלכם את הגישה לשירותיCloud de Confiance , באמצעות IAM. כוח העבודה יכול להיות קבוצה של משתמשים, כמו עובדים, שותפים או קבלנים.