גישה Google Cloud לשירותים ולממשקי API

בדף הזה מוסבר איך לגשת ל Google Cloud שירותים ולממשקי API דרך מחברת Colab Enterprise.

סקירה כללית

כשמריצים קוד במחברת Colab Enterprise, אפשר לגשת לשירותים ולממשקי API באמצעות פרטי הכניסה שמשויכים לחשבון Google שלכם, שנקראים גם פרטי הכניסה של המשתמש. Google Cloud המשמעות היא שלסביבת זמן הריצה שבה אתם משתמשים יש את אותה רמת גישה ל- Google Cloud שיש למשתמש. כך קל יותר לכתוב ולהריץ קוד שמקיים אינטראקציה עם Google Cloud שירותים וממשקי API.

ב-Colab Enterprise אפשר להשתמש ב-Application Default Credentials ‏(ADC) כדי לאמת את פרטי הכניסה של המשתמש לשירותים ולממשקי API של Google Cloud . בדף הזה מתוארות הדרכים הבאות להעברת פרטי הכניסה של המשתמש ל-ADC:

לפני שמתחילים

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Agent Platform, Dataform, and Compute Engine APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Agent Platform, Dataform, and Compute Engine APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

התפקידים הנדרשים

כדי לקבל את ההרשאות שנדרשות לגישה לשירותים ולממשקי API ב-Colab Enterprise, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM 'אדמין של Colab Enterprise' (roles/aiplatform.colabEnterpriseAdmin) בפרויקט. Google Cloud להסבר על מתן תפקידים, קראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

שימוש בסביבת ריצה עם פרטי כניסה של משתמשי קצה

אפשר להשתמש בסביבת זמן הריצה שמוגדרת כברירת מחדל, שבה מופעלות הרשאות של משתמשי קצה, או בכל סביבת זמן ריצה שנוצרה מתבנית של סביבת זמן ריצה שבה מופעלות הרשאות של משתמשי קצה.

אם אין לכם תבנית זמן ריצה מספקת עם פרטי כניסה של משתמש קצה, אתם צריכים ליצור אחת כזו. כשיוצרים תבנית של זמן ריצה, צריך להפעיל או להשבית את פרטי הכניסה של משתמשי הקצה. אי אפשר לשנות את ההגדרה הזו בהמשך.

התחברות לסביבת זמן ריצה עם הפעלה של פרטי כניסה של משתמשי קצה

כדי להתחבר לסביבת זמן ריצה עם פרטי כניסה של משתמשי קצה:

  1. נכנסים לדף My notebooks של Colab Enterprise במסוף Google Cloud .

    לתיקיות שלי

  2. בתפריט Region (אזור), בוחרים את האזור שבו נמצא ה-Notebook.

  3. לוחצים על ה-Notebook שרוצים לפתוח. אם עדיין לא יצרתם מחברת, יוצרים מחברת.

  4. במחברת, לוחצים על החץ להרחבת אפשרויות חיבור נוספות, ואז בוחרים באפשרות חיבור לסביבת זמן ריצה.

    תיפתח תיבת הדו-שיח Connect to Agent Platform runtime (חיבור לזמן הריצה של פלטפורמת הנציגים).

  5. בקטע Select a runtime (בחירת זמן ריצה), בוחרים באפשרות Connect to an existing runtime (קישור לזמן ריצה קיים).

  6. בקטע Select an existing runtime option (בחירת אפשרות קיימת של זמן ריצה), בוחרים את זמן הריצה שאליו רוצים להתחבר. אם אין זמני ריצה ברשימה, יוצרים זמן ריצה או מתחברים לזמן הריצה שמוגדר כברירת מחדל.

  7. בטבלה Runtime details, מוודאים שPersonal credentials הם Enabled.

  8. לוחצים על Connect.

  9. אם זו הפעם הראשונה שאתם מתחברים לסביבת ריצה עם פרטי כניסה של משתמש קצה מופעלים, תופיע תיבת דו-שיח של כניסה.

    כדי להעניק ל-Colab Enterprise גישה לפרטי הכניסה של המשתמש, צריך לבצע את השלבים הבאים:

    1. בתיבת הדו-שיח כניסה, לוחצים על חשבון המשתמש.

    2. בוחרים באפשרות קריאה, עריכה, הגדרה ומחיקה של הנתונים שלך ב- Google Cloud ... כדי להעניק ל-Colab Enterprise גישה לפרטי הכניסה של המשתמש.

      תיבת הסימון מופיעה לצד ההצהרה: "האפליקציה תוכל לקרוא, לערוך, להגדיר ולמחוק את הנתונים שלך ב-Google Cloud, וגם לקרוא את כתובת האימייל של החשבון שלך ב-Google".
    3. לוחצים על Continue.

כשניגשים Google Cloud לשירותים ולממשקי API באמצעות פרטי כניסה של משתמשי קצה, חשוב לדעת שאם לחשבון Google שלכם אין את ההרשאות הנדרשות לניהול זהויות והרשאות גישה (IAM) בפרויקט, יכול להיות שלקוד לא תהיה גישה לחלק מהמשאבים. במקרה כזה, תצטרכו לבקש מהאדמין להקצות לכם את ההרשאות הנדרשות.

העברת פרטי הכניסה של המשתמש ל-ADC על ידי הרצת קוד במחברת

אם לא הפעלתם את פרטי הכניסה של משתמשי הקצה בסביבת זמן הריצה, עדיין תוכלו להשתמש בפרטי הכניסה של המשתמש כדי לגשת לשירותים ולממשקי API. Google Cloud כדי לעשות זאת, צריך לספק את פרטי הכניסה של המשתמש ל-ADC באמצעות Google Cloud CLI.

  1. כדי ליצור קובץ פרטי כניסה, משתמשים בפקודה הבאה:

    !gcloud auth application-default login

    מופיעה תיבת הדו-שיח כניסה.

  2. משלימים את תיבת הדו-שיח כדי להעניק גישה ל-Colab Enterprise.

    אחרי שנכנסים, פרטי הכניסה נשמרים בקובץ פרטי הכניסה המקומי שמשמש את ADC. הקובץ הזה מאוחסן במכונה הווירטואלית של זמן הריצה.

כשאתם יוצרים קובץ מקומי ל-ADC עם פרטי הכניסה של המשתמש, חשוב שתשימו לב לעובדות הבאות:

  • בשיטות מסוימות וממשקי API מסוימים, כמו Cloud Translation API או Cloud Vision API, יכול להיות שתצטרכו להגדיר פרמטרים נוספים או הגדרות נוספות כדי שפרטי הכניסה של המשתמש יפעלו כמו שצריך. יכול להיות שתראו הודעת שגיאה על כך שה-API לא מופעל בפרויקט או שאין פרויקט זמין לצורכי מכסה. במקרה כזה, תוכלו להיעזר במאמר פתרון בעיות בהגדרות של ADC.

  • הגרסה המקומית של ADC כוללת את אסימוני הגישה והרענון שלכם. המשמעות היא שכל משתמש שיש לו גישה למערכת הקבצים יוכל להשתמש בפרטי הכניסה האלה. אם אתם לא צריכים יותר את פרטי הכניסה המקומיים, תוכלו לבטל אותם באמצעות הפקודה gcloud auth application-default revoke.

  • אם לחשבון Google שלכם אין את התפקידים הנדרשים בממשק לניהול הזהויות והרשאות הגישה (IAM), יכול להיות שלקוד לא תהיה גישה לחלק מהמשאבים. במקרה כזה, תצטרכו לבקש ממישהו להקצות לכם את התפקידים הנדרשים.

  • הגישה ל-ADC מוגבלת ל Google Cloud. אם יש לכם גישה לשירותים אחרים דרך חשבון Google, ‏ ADC לא תעניק באופן אוטומטי גישה למחברת Colab Enterprise, אבל תוכלו להעניק גישה נוספת לשירותים מסוימים. לדוגמה, כדי לתת גישה ל-Google Drive, מריצים את הפקודה הבאה בתא קוד ב-notebook:

    !gcloud auth application-default login \
        --scopes="https://www.googleapis.com/auth/drive,https://www.googleapis.com/auth/cloud-platform"
    

פתרון בעיות

בקטע הזה מוסבר איך לפתור בעיות בהרצת קוד שמתקשר עם Google Cloud שירותים וממשקי API.

פרטי הכניסה של המשתמש לא נמצאו כשמריצים קוד

הבעיה הזו מתרחשת כשמנסים להריץ קוד ב-notebook שיוצר אינטראקציה עם Google Cloud שירותים וממשקי API, אבל לא הענקתם ל-Colab Enterprise גישה לפרטי הכניסה של המשתמש.

הודעת השגיאה עשויה להיראות כך:

Request had invalid authentication credentials.
Expected OAuth 2 access token, login cookie or other valid authentication credential
DefaultCredentialsError: Your default credentials were not found.

בהמשך מפורטות כמה סיבות נפוצות לבעיה הזו והפתרונות שלהן:

  • לא השלמתם את תיבת הדו-שיח Sign in שמופיעה כשמתחברים בפעם הראשונה לסביבת זמן ריצה שבה מופעלים פרטי כניסה של משתמשי קצה. כשמשלימים את תיבת הדו-שיח הזו, מעניקים ל-Colab Enterprise גישה לפרטי הכניסה של המשתמש.

    כדי לפתור את הבעיה, צריך לנסות להתחבר שוב לסביבת זמן הריצה ולהעניק גישה.

    כדי לוודא שהגישה ניתנה:

    1. לוחצים על חשבון > חשבון Google מנוהל > נתונים ופרטיות > אפליקציות ושירותים של צד שלישי.

    2. מוודאים ש-Colab Enterprise מופיע ברשימה.

  • בתיבת הדו-שיח כניסה (מסך ההסכמה) שמופיעה כשמתחברים לזמן ריצה שבו מופעלים פרטי כניסה של משתמשי קצה, לא בחרתם את חשבון המשתמש שלכם כדי להעניק ל-Colab Enterprise גישה לפרטי הכניסה שלכם.

    כדי לפתור את הבעיה:

    1. במסוףGoogle Cloud , לוחצים על תמונת הפרופיל של החשבון ואז על חשבון Google.

    2. לוחצים על נתונים ופרטיות.

    3. בקטע נתונים מאפליקציות ומשירותים שבהם אתם משתמשים, לוחצים על אפליקציות ושירותים של צד שלישי.

    4. לוחצים על Colab Enterprise.

    5. בקטע ל-Colab Enterprise יש גישה מסוימת לחשבון Google שלך, לוחצים על פרטים נוספים.

    6. לוחצים על הסרת הגישה.

    7. לוחצים על אישור.

      הפעולה הזו תסיר את הגדרות הגישה הנוכחיות.

    8. בפעם הבאה שתתחברו לזמן ריצה שמופעלים בו פרטי כניסה של משתמשי קצה, הקפידו לבחור את חשבון המשתמש הנכון כשאתם משלימים את תיבת הדו-שיח כניסה.

  • יכול להיות שתוכנה לחסימת חלונות קופצים מונעת את הצגת תיבת הדו-שיח Sign in (מסך ההסכמה) של Colab Enterprise.

    כדי לפתור את הבעיה, צריך להפעיל באופן זמני את החלונות הקופצים בדפדפן ולנסות להתחבר שוב לסביבת זמן הריצה.

  • יכול להיות שהגבלות על שירותים לארגונים חוסמות את הגישה ל-Colab Enterprise.

    כדי לבודד את הבעיה, צריך לוודא שהגבלות השירות בארגון לא חוסמות את הגישה לשירותי Google.

    סטטוס השירות צריך להיות מופעל לכולם.

  • לא משתמשים בסביבת ריצה עם פרטי כניסה של משתמש קצה, ולא סיפקתם את פרטי הכניסה של המשתמש ל-Application Default Credentials‏ (ADC) באמצעות Google Cloud CLI.

    כדי לפתור את הבעיה, אפשר לעיין במאמר איך מספקים ל-ADC את פרטי הכניסה של המשתמש על ידי הרצת קוד במחברת.

המאמרים הבאים