יצירה ומחיקה של מפתחות של חשבון שירות

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

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

  • מפעילים את IAM API.

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    להפעלת ה-API

  • מגדירים אימות.

    צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:

    המסוף

    כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Google Cloud

    gcloud

    במסוף Google Cloud , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

    C#‎

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של .NET שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.

    1. התקינו את ה-CLI של Google Cloud.

    2. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

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

      gcloud auth application-default login

      אם אתם משתמשים ב-Cloud Shell, אין צורך לבצע את הפעולה הזו.

      אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

    למידע נוסף, ראו הגדרת ADC לסביבת פיתוח מקומית במאמרי העזרה בנושא אימות Google Cloud .

    C++‎

    כדי להשתמש בדוגמאות של C++‎ שבדף הזה בסביבת פיתוח מקומית, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.

    1. התקינו את ה-CLI של Google Cloud.

    2. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

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

      gcloud auth application-default login

      אם אתם משתמשים ב-Cloud Shell, אין צורך לבצע את הפעולה הזו.

      אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

    למידע נוסף, ראו הגדרת ADC לסביבת פיתוח מקומית במאמרי העזרה בנושא אימות Google Cloud .

    המשך

    כדי להשתמש בדוגמאות של Go שבדף הזה בסביבת פיתוח מקומית, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.

    1. התקינו את ה-CLI של Google Cloud.

    2. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

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

      gcloud auth application-default login

      אם אתם משתמשים ב-Cloud Shell, אין צורך לבצע את הפעולה הזו.

      אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

    למידע נוסף, ראו הגדרת ADC לסביבת פיתוח מקומית במאמרי העזרה בנושא אימות Google Cloud .

    Java

    כדי להשתמש בדוגמאות של Java שבדף הזה בסביבת פיתוח מקומית, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.

    1. התקינו את ה-CLI של Google Cloud.

    2. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

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

      gcloud auth application-default login

      אם אתם משתמשים ב-Cloud Shell, אין צורך לבצע את הפעולה הזו.

      אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

    למידע נוסף, ראו הגדרת ADC לסביבת פיתוח מקומית במאמרי העזרה בנושא אימות Google Cloud .

    Python

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Python שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.

    1. התקינו את ה-CLI של Google Cloud.

    2. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

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

      gcloud auth application-default login

      אם אתם משתמשים ב-Cloud Shell, אין צורך לבצע את הפעולה הזו.

      אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

    למידע נוסף, ראו הגדרת ADC לסביבת פיתוח מקומית במאמרי העזרה בנושא אימות Google Cloud .

    REST

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.

      התקינו את ה-CLI של Google Cloud.

      אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

    מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .

  • הסבר על פרטי הכניסה לחשבון שירות

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

כדי לקבל את ההרשאות שנדרשות ליצירה ולמחיקה של מפתחות של חשבונות שירות, צריך לבקש מהאדמין את תפקיד ה-IAM אדמין של מפתח של חשבון שירות (roles/iam.serviceAccountKeyAdmin) בפרויקט, או בחשבון השירות שאת המפתחות שלו רוצים לנהל. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

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

כדי לקבל את ההרשאות שדרושות בשביל לאפשר יצירה של מפתחות של חשבונות שירות בפרויקט, אתם צריכים לבקש מהאדמין לתת לכם את התפקידים הבאים ב-IAM ברמת הארגון:

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

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

ההרשאות הנדרשות

כדי לאפשר יצירה של מפתחות של חשבונות שירות בפרויקט, צריך את ההרשאות הבאות:

  • orgpolicy.constraints.list
  • orgpolicy.customConstraints.create
  • orgpolicy.customConstraints.delete
  • orgpolicy.customConstraints.get
  • orgpolicy.customConstraints.list
  • orgpolicy.customConstraints.update
  • orgpolicy.policies.create
  • orgpolicy.policies.delete
  • orgpolicy.policies.list
  • orgpolicy.policies.update
  • orgpolicy.policy.get
  • orgpolicy.policy.set
  • resourcemanager.organizations.get
  • resourcemanager.projects.listTagBindings
  • resourcemanager.projects.listEffectiveTags
  • resourcemanager.tagKeys.get
  • resourcemanager.tagKeys.list
  • resourcemanager.tagValues.list
  • resourcemanager.tagValues.get

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

מתן הרשאה ליצירת מפתחות לחשבון שירות

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

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

כדי להחריג פרויקט מאילוץ מדיניות הארגון iam.disableServiceAccountKeyCreation, צריך לבקש מאדמין של מדיניות הארגון לבצע את הפעולות הבאות:

  1. ברמת הארגון, יוצרים מפתח תג וערך תג שישמשו להגדרה אם משאב צריך להיות פטור ממדיניות הארגון. מומלץ ליצור תג עם המפתח disableServiceAccountKeyCreation והערכים enforced ו-not_enforced.

    במאמר איך יוצרים ומגדירים תגים חדשים מוסבר איך ליצור מפתחות וערכים של תגים.

  2. מצרפים את התג disableServiceAccountKeyCreation לארגון ומגדירים את הערך שלו ל-enforced. כל המשאבים בארגון יורשים את ערך התג הזה, אלא אם הוא מוחלף בערך תג אחר.

    במאמר צירוף תגים למשאבים מוסבר איך לצרף תגים למשאבים.

  3. לכל פרויקט או תיקייה שרוצים להחריג ממדיניות הארגון, מצרפים את התג disableServiceAccountKeyCreation ומגדירים את הערך שלו ל-not_enforced. הגדרה של ערך תג לפרויקט או לתיקייה בדרך הזו מבטלת את ערך התג שהתקבל בירושה מהארגון.
  4. יוצרים או מעדכנים את מדיניות הארגון שמונעת יצירה של מפתחות של חשבונות שירות, כך שהיא לא תאכוף את האילוץ על משאבים שפטורים ממנו. המדיניות הזו צריכה לכלול את הכללים הבאים:

    • מגדירים את האילוץ iam.disableServiceAccountKeyCreation כך שלא ייאכף על משאבים עם התג disableServiceAccountKeyCreation: not_enforced. התנאי בכלל הזה צריך להיראות כך:

      "resource.matchTag('ORGANIZATION_ID/disableServiceAccountKeyCreation', 'not_enforced')"
      
    • מגדירים את האילוץ iam.disableServiceAccountKeyCreation כך שהוא ייאכף על כל שאר המשאבים.

יצירת מפתח של חשבון שירות

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

למרות שחשבונות שירות משמשים בעיקר לגישה ל-API Google Cloud שמנוהלים דרך IAM, אפשר להשתמש בהם גם לאימות ב-Google APIs שלא מנוהלים על ידי IAM, כמו Google Ads,‏ YouTube ו-Google Workspace. כל שירות קובע את כללי ההרשאה שלו.

אפשר ליצור מפתח של חשבון שירות באמצעות מסוף Google Cloud , ה-CLI של gcloud, ה-method‏ serviceAccounts.keys.create() או אחת מספריות הלקוח. בחשבון שירות יכולים להיות עד 10 מפתחות.

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

בדוגמאות בהמשך, SA_NAME הוא השם של חשבון השירות ו-PROJECT_ID הוא המזהה שלGoogle Cloud הפרויקט. אפשר לאחזר את המחרוזת SA_NAME@PROJECT_ID.iam.gserviceaccount.com מהדף Service Accounts במסוף Google Cloud .

המסוף

  1. נכנסים לדף Service accounts במסוף Google Cloud .

    כניסה לדף Service accounts

    שאר השלבים יופיעו במסוף Google Cloud .

  2. בוחרים פרויקט.
  3. לוחצים על כתובת האימייל של חשבון השירות שעבורו רוצים ליצור מפתח.
  4. לוחצים על הכרטיסייה Keys.
  5. לוחצים על התפריט הנפתח Add key ובוחרים באפשרות Create new key.
  6. בוחרים באפשרות JSON בתור Key type ולוחצים על Create.

לחיצה על Create מורידה קובץ מפתח של חשבון השירות. אחרי שמורידים את קובץ המפתח, אי אפשר להוריד אותו שוב.

המפתח שהורדתם מופיע בפורמט הבא, כאשר PRIVATE_KEY הוא החלק הפרטי של זוג המפתחות הציבוריים/הפרטיים:

{
  "type": "service_account",
  "project_id": "PROJECT_ID",
  "private_key_id": "KEY_ID",
  "private_key": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY\n-----END PRIVATE KEY-----\n",
  "client_email": "SERVICE_ACCOUNT_EMAIL",
  "client_id": "CLIENT_ID",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://accounts.google.com/o/oauth2/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/SERVICE_ACCOUNT_EMAIL"
}
תמיד מאחסנים את המפתחות של חשבונות השירות במיקום מאובטח. אם לא מאחסנים את המפתחות בצורה מאובטחת, גורמים זדוניים יכולים למצוא את המפתחות ולהשתמש בהם כדי לגשת למשאבים שלחשבון השירות יש גישה אליהם. מומלץ מאוד לאחסן את המפתחות במאגר מפתחות מבוסס חומרה או מבוסס תוכנה. הנחיות נוספות לאחסון מאובטח של מפתחות של חשבונות שירות זמינות במאמר הגנה מפני הסלמת הרשאות.

אפשר להעביר את הקובץ לאן שרוצים ולשנות את השם שלו למה שרוצים.

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

gcloud

כדי ליצור מפתחות של חשבונות שירות, מריצים את הפקודה gcloud iam service-accounts keys create.

מחליפים את הערכים הבאים:

  • KEY_FILE: הנתיב לקובץ פלט חדש של המפתח הפרטי, לדוגמה ~/sa-private-key.json.
  • SA_NAME: השם של חשבון השירות שעבורו רוצים ליצור מפתח.
  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
gcloud iam service-accounts keys create KEY_FILE \
    --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com

פלט:

created key [e44da1202f82f8f4bdd9d92bc412d1d8a837fa83] of type [json] as
[/usr/home/username/KEY_FILE] for
[SA_NAME@PROJECT_ID.iam.gserviceaccount.com]

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

המפתח שהורדתם מופיע בפורמט הבא, כאשר PRIVATE_KEY הוא החלק הפרטי של זוג המפתחות הציבוריים/הפרטיים:

{
  "type": "service_account",
  "project_id": "PROJECT_ID",
  "private_key_id": "KEY_ID",
  "private_key": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY\n-----END PRIVATE KEY-----\n",
  "client_email": "SERVICE_ACCOUNT_EMAIL",
  "client_id": "CLIENT_ID",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/SERVICE_ACCOUNT_EMAIL"
}

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

אפשר להעביר את הקובץ לאן שרוצים ולשנות את השם שלו למה שרוצים.

אתם יכולים להשתמש בקובצי מפתח של חשבון שירות כדי לאמת אפליקציה כחשבון שירות.

C++

במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של ‎IAM C++ API‎.

כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.

namespace iam = ::google::cloud::iam_admin_v1;
return [](std::string const& name) {
  iam::IAMClient client(iam::MakeIAMConnection());
  auto response = client.CreateServiceAccountKey(
      name,
      google::iam::admin::v1::ServiceAccountPrivateKeyType::
          TYPE_GOOGLE_CREDENTIALS_FILE,
      google::iam::admin::v1::ServiceAccountKeyAlgorithm::KEY_ALG_RSA_2048);
  if (!response) throw std::move(response).status();
  std::cout << "ServiceAccountKey successfully created: "
            << response->DebugString() << "\n"
            << "Please save the key in a secure location, as they cannot "
               "be downloaded later\n";
  return response->name();
}

C#

במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של ‎IAM C# API‎.

כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.


using System;
using System.Text;
using Google.Apis.Auth.OAuth2;
using Google.Apis.Iam.v1;
using Google.Apis.Iam.v1.Data;

public partial class ServiceAccountKeys
{
    public static ServiceAccountKey CreateKey(string serviceAccountEmail)
    {
        var credential = GoogleCredential.GetApplicationDefault()
            .CreateScoped(IamService.Scope.CloudPlatform);
        var service = new IamService(new IamService.Initializer
        {
            HttpClientInitializer = credential
        });

        var key = service.Projects.ServiceAccounts.Keys.Create(
            new CreateServiceAccountKeyRequest(),
            "projects/-/serviceAccounts/" + serviceAccountEmail)
            .Execute();

        // The PrivateKeyData field contains the base64-encoded service account key
        // in JSON format.
        // TODO(Developer): Save the below key (jsonKeyFile) to a secure location.
        //  You cannot download it later.
        byte[] valueBytes = System.Convert.FromBase64String(key.PrivateKeyData);
        string jsonKeyContent = Encoding.UTF8.GetString(valueBytes);

        Console.WriteLine("Key created successfully");
        return key;
    }
}

Go

במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של ‎IAM Go API‎.

כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.

import (
	"context"
	// "encoding/base64"
	"fmt"
	"io"

	iam "google.golang.org/api/iam/v1"
)

// createKey creates a service account key.
func createKey(w io.Writer, serviceAccountEmail string) (*iam.ServiceAccountKey, error) {
	ctx := context.Background()
	service, err := iam.NewService(ctx)
	if err != nil {
		return nil, fmt.Errorf("iam.NewService: %w", err)
	}

	resource := "projects/-/serviceAccounts/" + serviceAccountEmail
	request := &iam.CreateServiceAccountKeyRequest{}
	key, err := service.Projects.ServiceAccounts.Keys.Create(resource, request).Do()
	if err != nil {
		return nil, fmt.Errorf("Projects.ServiceAccounts.Keys.Create: %w", err)
	}
	// The PrivateKeyData field contains the base64-encoded service account key
	// in JSON format.
	// TODO(Developer): Save the below key (jsonKeyFile) to a secure location.
	// You cannot download it later.
	// jsonKeyFile, _ := base64.StdEncoding.DecodeString(key.PrivateKeyData)
	fmt.Fprintf(w, "Key created successfully")
	return key, nil
}

Java

במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של ‎IAM Java API‎.

כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.


import com.google.cloud.iam.admin.v1.IAMClient;
import com.google.gson.Gson;
import com.google.iam.admin.v1.CreateServiceAccountKeyRequest;
import com.google.iam.admin.v1.ServiceAccountKey;
import java.io.IOException;

public class CreateServiceAccountKey {

  public static void main(String[] args) throws IOException {
    // TODO(Developer): Replace the below variables before running.
    String projectId = "your-project-id";
    String serviceAccountName = "your-service-account-name";

    ServiceAccountKey key = createKey(projectId, serviceAccountName);
    Gson gson = new Gson();

    // System.out.println("Service account key: " + gson.toJson(key));
  }

  // Creates a key for a service account.
  public static ServiceAccountKey createKey(String projectId, String accountName)
          throws IOException {
    String email = String.format("%s@%s.iam.gserviceaccount.com", accountName, projectId);

    // Initialize client that will be used to send requests.
    // This client only needs to be created once, and can be reused for multiple requests.
    try (IAMClient iamClient = IAMClient.create()) {
      CreateServiceAccountKeyRequest req = CreateServiceAccountKeyRequest.newBuilder()
              .setName(String.format("projects/%s/serviceAccounts/%s", projectId, email))
              .build();
      ServiceAccountKey createdKey = iamClient.createServiceAccountKey(req);
      System.out.println("Key created successfully");

      return createdKey;
    }
  }
}

Python

במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של ‎IAM Python API‎.

כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.

from google.cloud import iam_admin_v1
from google.cloud.iam_admin_v1 import types


def