השבתה והפעלה של מפתחות לחשבונות שירות

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

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

  • Enable the IAM API.

    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 API

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

    Select the tab for how you plan to use the samples on this page:

    gcloud

    In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

    Java

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

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

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

      If you're using a local shell, then create local authentication credentials for your user account:

      gcloud auth application-default login

      You don't need to do this if you're using Cloud Shell.

      If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

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

    REST

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

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

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

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

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

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

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

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

לתפקידים בסיסיים ב-IAM יש גם הרשאות לניהול המפתחות של חשבונות השירות. בסביבת ייצור לא מומלץ להקצות תפקידים בסיסיים, אבל אפשר להעניק אותם בסביבת פיתוח או בסביבת בדיקה.

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

השבתת מפתח של חשבון שירות מונעת שימוש במפתח לצורך אימות באמצעות Google APIs. אפשר להפעיל מפתח מושבת מתי שרוצים.

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

אפשר לראות את המפתחות המושבתים במסוף Google Cloud , אבל אי אפשר להשתמש במסוףGoogle Cloud כדי להשבית מפתח. במקום זאת, אפשר להשתמש ב-CLI של gcloud או ב-API ל-REST.

gcloud

כדי להשבית מפתח של חשבון שירות מפעילים את הפקודה gcloud iam service-accounts keys disable.

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

  • KEY_ID: המזהה של המפתח שרוצים להשבית. כדי למצוא את המזהה של המפתח, מציגים את רשימת המפתחות של חשבון השירות , מזהים את המפתח שרוצים להשבית ומעתיקים את המזהה שלו.
  • SA_NAME: השם של חשבון השירות שהמפתח שייך לו.
  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
gcloud iam service-accounts keys disable KEY_ID \
    --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com \
    --project=PROJECT_ID

פלט:

Disabled key [KEY_ID] for service account
[SA_NAME@PROJECT_ID.iam.gserviceaccount.com]

Java

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

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


import com.google.cloud.iam.admin.v1.IAMClient;
import java.io.IOException;


public class DisableServiceAccountKey {

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

    disableServiceAccountKey(projectId, serviceAccountName, serviceAccountKeyName);
  }

  // Disables a service account key.
  public static void disableServiceAccountKey(String projectId,
                                              String accountName,
                                              String key) throws IOException {
    // Construct the service account email.
    // You can modify the ".iam.gserviceaccount.com" to match the service account name in which
    // you want to disable the key.
    // See, https://cloud.google.com/iam/docs/creating-managing-service-account-keys#disabling
    String email = String.format("%s@%s.iam.gserviceaccount.com", accountName, projectId);
    String name = String.format("projects/%s/serviceAccounts/%s/keys/%s", projectId, email, key);

    // 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()) {
      iamClient.disableServiceAccountKey(name);

      System.out.println("Disabled service account key: " + name);
    }
  }
}

REST

ה-method‏ projects.serviceAccounts.keys.disable משביתה מפתח של חשבון שירות.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud . מזהי פרויקטים הם מחרוזות אלפאנומריות, כמו my-project.
  • SA_NAME: השם של חשבון השירות שאת המפתח שלו רוצים להשבית.
  • KEY_ID: המזהה של המפתח שרוצים להשבית. כדי למצוא את המזהה של המפתח, מציגים את רשימת המפתחות של חשבון השירות, מזהים את המפתח שרוצים להשבית ומעתיקים את המזהה שלו מהסוף של השדה name. המזהה של המפתח הוא כל מה שמופיע אחרי keys/.

שיטת ה-HTTP וכתובת ה-URL:

POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys/KEY_ID:disable

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

צריכה להתקבל תגובת JSON שדומה לזו:

{
}

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

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

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

gcloud

כדי להפעיל מפתח של חשבון שירות מפעילים את הפקודה gcloud iam service-accounts keys enable.

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

  • KEY_ID: המזהה של המפתח שרוצים להפעיל. כדי למצוא את המזהה של המפתח, מציגים את רשימת המפתחות של חשבון השירות, מזהים את המפתח שרוצים להפעיל ומעתיקים את המזהה שלו.
  • SA_NAME: השם של חשבון השירות שהמפתח שייך לו.
  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
gcloud iam service-accounts keys enable KEY_ID \
    --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com\
    --project=PROJECT_ID

פלט:

Enabled key [KEY_ID] for service account
[SA_NAME@PROJECT_ID.iam.gserviceaccount.com]

Java

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

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


import com.google.cloud.iam.admin.v1.IAMClient;
import java.io.IOException;


public class EnableServiceAccountKey {

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

    enableServiceAccountKey(projectId, serviceAccountName, serviceAccountKeyName);
  }

  // Enables a service account key.
  public static void enableServiceAccountKey(String projectId,
                                             String accountName,
                                             String key) throws IOException {
    // Construct the service account email.
    // You can modify the ".iam.gserviceaccount.com" to match the service account name in which
    // you want to enable the key.
    // See, https://cloud.google.com/iam/docs/creating-managing-service-account-keys#enabling
    String email = String.format("%s@%s.iam.gserviceaccount.com", accountName, projectId);
    String name = String.format("projects/%s/serviceAccounts/%s/keys/%s", projectId, email, key);

    // 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()) {
      iamClient.enableServiceAccountKey(name);

      System.out.println("Enabled service account key: " + name);
    }
  }
}

REST

ה-method‏ projects.serviceAccounts.keys.enable מפעילה מפתח של חשבון שירות.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud . מזהי פרויקטים הם מחרוזות אלפאנומריות, כמו my-project.
  • SA_NAME: השם של חשבון השירות שאת המפתח שלו רוצים להפעיל.
  • KEY_ID: המזהה של המפתח שרוצים להפעיל. כדי למצוא את המזהה של המפתח, מציגים את רשימת המפתחות של חשבון השירות, מזהים את המפתח שרוצים להפעיל ומעתיקים את המזהה מהסוף של השדה name. המזהה של המפתח הוא כל מה שמופיע אחרי keys/.

שיטת ה-HTTP וכתובת ה-URL:

POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys/KEY_ID:enable

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

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
}

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

נסו בעצמכם

אתם משתמשים חדשים ב- Google Cloud? אנחנו ממליצים לכם ליצור חשבון, להתנסות בעצמכם במוצרים שלנו ולבחון אותם באמצעות תרחישים ממשיים. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.

מתחילים לעבוד בלי לשלם