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

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

המשיכו לחקור

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

דוגמת קוד

C++

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

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

namespace iam = ::google::cloud::iam_admin_v1;
[](std::string const& name) {
  iam::IAMClient client(iam::MakeIAMConnection());
  google::iam::admin::v1::EnableServiceAccountRequest request;
  request.set_name(name);
  auto response = client.EnableServiceAccount(request);
  if (!response.ok()) throw std::runtime_error(response.message());
  std::cout << "ServiceAccount successfully enabled.\n";
}

C#

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

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


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

public partial class ServiceAccounts
{
    public static void EnableServiceAccount(string email)
    {
        var credential = GoogleCredential.GetApplicationDefault()
            .CreateScoped(IamService.Scope.CloudPlatform);
        var service = new IamService(new IamService.Initializer
        {
            HttpClientInitializer = credential
        });

        var request = new EnableServiceAccountRequest();

        string resource = "projects/-/serviceAccounts/" + email;
        service.Projects.ServiceAccounts.Enable(request, resource).Execute();
        Console.WriteLine("Enabled service account: " + email);
    }
}

Go

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

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

import (
	"context"
	"fmt"
	"io"

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

// enableServiceAccount enables a service account.
func enableServiceAccount(w io.Writer, email string) error {
	// email:= service-account@your-project.iam.gserviceaccount.com
	ctx := context.Background()
	service, err := iam.NewService(ctx)
	if err != nil {
		return fmt.Errorf("iam.NewService: %w", err)
	}

	request := &iam.EnableServiceAccountRequest{}
	_, err = service.Projects.ServiceAccounts.Enable("projects/-/serviceAccounts/"+email, request).Do()
	if err != nil {
		return fmt.Errorf("Projects.ServiceAccounts.Enable: %w", err)
	}
	fmt.Fprintf(w, "Enabled service account: %v", email)
	return nil
}

Java

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

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

import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.json.gson.GsonFactory;
import com.google.api.services.iam.v1.Iam;
import com.google.api.services.iam.v1.IamScopes;
import com.google.api.services.iam.v1.model.EnableServiceAccountRequest;
import com.google.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;
import java.io.IOException;
import java.security.GeneralSecurityException;
import java.util.Collections;

public class EnableServiceAccount {

  // Enables a service account.
  public static void enableServiceAccount(String projectId, String serviceAccountName) {
    // String projectId = "my-project-id";
    // String serviceAccountName = "my-service-account-name";

    Iam service = null;
    try {
      service = initService();
    } catch (IOException | GeneralSecurityException e) {
      System.out.println("Unable to initialize service: \n" + e.toString());
      return;
    }

    String serviceAccountEmail = serviceAccountName + "@" + projectId + ".iam.gserviceaccount.com";
    try {
      EnableServiceAccountRequest request = new EnableServiceAccountRequest();
      service
          .projects()
          .serviceAccounts()
          .enable("projects/-/serviceAccounts/" + serviceAccountEmail, request)
          .execute();

      System.out.println("Enabled service account: " + serviceAccountEmail);
    } catch (IOException e) {
      System.out.println("Unable to enable service account: \n" + e.toString());
    }
  }

  private static Iam initService() throws GeneralSecurityException, IOException {
    // Use the Application Default Credentials strategy for authentication. For more info, see:
    // https://cloud.google.com/docs/authentication/production#finding_credentials_automatically
    GoogleCredentials credential =
        GoogleCredentials.getApplicationDefault()
            .createScoped(Collections.singleton(IamScopes.CLOUD_PLATFORM));
    // Initialize the IAM service, which can be used to send requests to the IAM API.
    Iam service =
        new Iam.Builder(
                GoogleNetHttpTransport.newTrustedTransport(),
                GsonFactory.getDefaultInstance(),
                new HttpCredentialsAdapter(credential))
            .setApplicationName("service-accounts")
            .build();
    return service;
  }
}

Python

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

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

import os

from google.oauth2 import service_account  # type: ignore
import googleapiclient.discovery  # type: ignore

def enable_service_account(email: str) -> None:
    """Enables a service account."""

    credentials = service_account.Credentials.from_service_account_file(
        filename=os.environ["GOOGLE_APPLICATION_CREDENTIALS"],
        scopes=["https://www.googleapis.com/auth/cloud-platform"],
    )

    service = googleapiclient.discovery.build("iam", "v1", credentials=credentials)

    service.projects().serviceAccounts().enable(
        name="projects/-/serviceAccounts/" + email
    ).execute()

    print("Enabled service account :" + email)

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

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