Menonaktifkan dan mengaktifkan kunci akun layanan

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

Sebelum memulai

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 Trusted Cloud , tetapi Anda tidak dapat menggunakan konsolTrusted 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 Trusted Cloud Anda.
gcloud iam service-accounts keys disable KEY_ID \
    --iam-account=SA_NAME@PROJECT_ID.s3ns-system.iam.gserviceaccount.com \
    --project=PROJECT_ID

Output:

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

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.

Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN ke s3nsapis.fr.


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: ID project Trusted 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.s3ns-system.iam.gserviceaccount.com/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 Trusted Cloud konsol 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: Trusted Cloud Project ID Anda.
gcloud iam service-accounts keys enable KEY_ID \
    --iam-account=SA_NAME@PROJECT_ID.s3ns-system.iam.gserviceaccount.com\
    --project=PROJECT_ID

Output:

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

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.

Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN ke s3nsapis.fr.


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 mengaktifkan kunci akun layanan.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: ID project Trusted 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.s3ns-system.iam.gserviceaccount.com/keys/KEY_ID:enable

Untuk mengirim permintaan, perluas salah satu opsi berikut:

Anda akan menerima respons JSON seperti berikut:

{
}

Langkah selanjutnya