Menonaktifkan dan mengaktifkan kunci akun layanan

Halaman ini menjelaskan cara menonaktifkan dan mengaktifkan kunci akun layanan menggunakan konsol Google Cloud, Google Cloud CLI, Identity and Access Management API, atau salah satu Library Klien Google Cloud.

Sebelum memulai

  • Aktifkan IAM API.

    Mengaktifkan API

  • Menyiapkan autentikasi.

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

    gcloud

    Di konsol Google Cloud, aktifkan Cloud Shell.

    Aktifkan Cloud Shell

    Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.

    Java

    Untuk menggunakan contoh Java di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.

    1. Install the Google Cloud CLI.
    2. To initialize the gcloud CLI, run the following command:

      gcloud init
    3. Buat kredensial autentikasi lokal untuk Akun Google Anda:

      gcloud auth application-default login

    Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud.

    REST

    Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.

      Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init

    Untuk informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud.

  • Memahami kredensial akun layanan.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk menonaktifkan dan mengaktifkan kunci akun layanan, minta administrator untuk memberi Anda Admin Kunci Akun Layanan (roles/iam.serviceAccountKeyAdmin) peran IAM pada project, atau akun layanan yang kuncinya ingin Anda kelola. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Untuk mengetahui informasi selengkapnya, lihat peran Service Accounts.

Peran dasar IAM juga berisi izin untuk mengelola kunci akun layanan. Anda tidak boleh memberikan peran dasar dalam lingkungan produksi, tetapi Anda dapat memberikannya dalam lingkungan pengembangan atau pengujian.

Menonaktifkan kunci akun layanan

Jika kunci akun layanan dinonaktifkan, Anda tidak dapat menggunakan kunci tersebut untuk melakukan autentikasi dengan Google API. Anda dapat mengaktifkan kunci yang dinonaktifkan kapan saja.

Sebelum menghapus kunci akun layanan, sebaiknya Anda menonaktifkan kunci tersebut, lalu tunggu hingga Anda yakin bahwa kunci tersebut tidak lagi diperlukan. Kemudian, Anda dapat menghapus kunci tersebut.

Anda dapat melihat kunci yang dinonaktifkan di konsol Google Cloud, tetapi Anda tidak dapat menggunakan konsol Google Cloud untuk menonaktifkan kunci. Gunakan gcloud CLI atau REST API sebagai gantinya.

gcloud

Jalankan perintah gcloud iam service-accounts keys disable untuk menonaktifkan kunci akun layanan.

Ganti nilai berikut:

  • KEY_ID: ID kunci yang akan dinonaktifkan. Untuk menemukan ID kunci tersebut, cantumkan semua kunci untuk akun layanan, identifikasi kunci yang ingin dinonaktifkan, lalu salin ID-nya.
  • SA_NAME: Nama akun layanan yang memiliki kunci tersebut.
  • PROJECT_ID: ID project Google Cloud Anda.
gcloud iam service-accounts keys disable KEY_ID \
    --iam-account=SA_NAME@PROJECT_ID. \
    --project=PROJECT_ID

Output:

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

Java

Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Java IAM.

Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.


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

Metode projects.serviceAccounts.keys.disable menonaktifkan kunci akun layanan.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Google Cloud Anda Project ID adalah string alfanumerik, seperti my-project.
  • SA_NAME: Nama akun layanan yang kuncinya ingin Anda nonaktifkan.
  • KEY_ID: ID kunci yang ingin dinonaktifkan. Untuk menemukan ID kunci, cantumkan semua kunci untuk akun layanan, identifikasi kunci yang ingin dinonaktifkan, lalu salin ID-nya dari bagian akhir kolom name. ID kunci adalah semua yang ada setelah keys/.

Metode HTTP dan URL:

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

Untuk mengirim permintaan, perluas salah satu opsi berikut:

Anda akan menerima respons JSON seperti berikut:

{
}

Aktifkan kunci akun layanan

Setelah menonaktifkan kunci akun layanan, Anda dapat mengaktifkan kunci tersebut kapan saja, lalu menggunakan kunci tersebut untuk mengautentikasi dengan Google API.

Anda tidak dapat menggunakan konsol Google Cloud untuk mengaktifkan kunci akun layanan. Gunakan gcloud CLI atau REST API sebagai gantinya.

gcloud

Jalankan perintah gcloud iam service-accounts keys enable untuk mengaktifkan kunci akun layanan.

Ganti nilai berikut:

  • KEY_ID: ID kunci yang akan diaktifkan. Untuk menemukan ID kunci tersebut, cantumkan semua kunci untuk akun layanan, identifikasi kunci yang ingin diaktifkan, lalu salin ID-nya.
  • SA_NAME: Nama akun layanan yang memiliki kunci tersebut.
  • PROJECT_ID: Project ID Google Cloud Anda
gcloud iam service-accounts keys enable KEY_ID \
    --iam-account=SA_NAME@PROJECT_ID.\
    --project=PROJECT_ID

Output:

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

Java

Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Java IAM.

Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.


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

Metode projects.serviceAccounts.keys.enable akan mengaktifkan kunci akun layanan.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Google Cloud Anda Project ID adalah string alfanumerik, seperti my-project.
  • SA_NAME: Nama akun layanan yang kuncinya ingin Anda aktifkan.
  • KEY_ID: ID kunci yang ingin Anda aktifkan. Untuk menemukan ID kunci, cantumkan semua kunci untuk akun layanan, identifikasi kunci yang ingin diaktifkan, lalu salin ID-nya dari bagian akhir kolom name. ID kunci adalah semua yang ada setelah keys/.

Metode HTTP dan URL:

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

Untuk mengirim permintaan, perluas salah satu opsi berikut:

Anda akan menerima respons JSON seperti berikut:

{
}

Langkah selanjutnya

Coba sendiri

Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.

Mulai secara gratis