Mengautentikasi dengan identitas layanan

Identitas layanan di Google Distributed Cloud (GDC) dengan air gap menyediakan identitas khusus untuk workload atau layanan guna mengakses resource dan microservice secara terprogram dengan aman. Ini adalah identitas khusus yang digunakan oleh aplikasi atau workload, bukan oleh pengguna, dan tidak dapat digunakan untuk login manusia. Serupa dengan akun pengguna, Anda memberikan izin dan peran ke identitas layanan untuk menentukan apa yang diizinkan untuk diakses.

Anda mungkin melihat dua istilah yang digunakan untuk konsep ini. Konsol GDC terutama menggunakan istilah identitas layanan, sedangkan perintah gdcloud dan interaksi API sering kali menggunakan akun layanan. Nama yang terakhir mencerminkan nama resource kustom Kubernetes yang mendasarinya, ProjectServiceAccount. Kedua istilah tersebut merujuk pada hal yang sama: identitas non-manusia untuk workload Anda. Dokumen ini menggunakan identitas layanan sebagai istilah utama.

Identitas layanan berguna untuk mengelola infrastruktur GDC, seperti:

  • Layanan dan workload Distributed Cloud internal untuk mengakses antarmuka pemrograman aplikasi (API) bidang kontrol Distributed Cloud dengan aman. Misalnya, Layanan Database yang berinteraksi dengan Kubernetes API untuk membuat dan menghapus database.
  • Workload pelanggan di Distributed Cloud untuk mengakses layanan Distributed Cloud dan melakukan panggilan application programming interface (API) yang sah. Misalnya, identitas layanan dapat mengelola pelanggan yang menggunakan notebook Vertex AI Workbench untuk mentranskripsikan file audio menggunakan Speech-to-Text API.
  • Workload eksternal yang akan digabungkan dengan Distributed Cloud. Misalnya, identitas layanan dapat mengelola aplikasi di luar Distributed Cloud yang mendigitalkan dokumen, tetapi ingin menggunakan Optical Character Recognition (OCR) API untuk menggantikan mesin OCR saat ini.
  • layanan Distributed Cloud atau pengontrol sistem untuk mengakses resource pelanggan atau cluster pengguna dengan aman. Misalnya, identitas layanan dapat mengelola alur kerja autentikasi dan otorisasi saat pengontrol layanan yang berjalan di cluster admin perlu menjalankan workload dalam cluster pengguna yang dikelola oleh pelanggan.

Mengelola identitas layanan melibatkan identitas layanan (diwakili oleh resource ProjectServiceAccount) dan kredensial terkaitnya (pasangan kunci publik dan pribadi). Anda dapat mengelola akun untuk identitas layanan menggunakan konsol GDC, gdcloud CLI, atau API. Dengan gdcloud CLI, fitur identitas layanan dibangun di atas API ProjectServiceAccount global. Karena resource ProjectServiceAccount dikonfigurasi secara global, resource tersebut beroperasi di semua zona dalam universe gdcloud Anda.

Sebelum memulai

Untuk menyelesaikan tugas dalam dokumen ini, Anda harus memiliki project. Untuk mempelajari cara membuat project, lihat Membuat project.

Anda juga harus memiliki izin yang diperlukan dan menyiapkan lingkungan Anda.

Meminta peran IAM

Untuk membuat, memperbarui, dan menghapus identitas layanan dalam project, hubungi Admin Org IAM atau Admin Project IAM Anda untuk meminta peran Admin Project IAM (project-iam-admin).

IAM Org Admin dapat memberikan peran ini untuk project apa pun dalam organisasi. IAM Project Admin dapat memberikan peran ini dalam cakupan project spesifik mereka.

Menyiapkan lingkungan Anda

Untuk menggunakan alat command line guna mengelola identitas layanan, selesaikan penyiapan berikut:

Membuat identitas layanan

Membuat identitas layanan mencakup pembuatan akun dan kredensial terkaitnya.

Buat akun

Untuk membuat akun bagi identitas layanan, gunakan konsol GDC, gdcloud CLI, atau API untuk membuat resource ProjectServiceAccount dalam project.

Konsol

  1. Login ke konsol GDC.
  2. Di menu navigasi, pilih Identity & Access > Service identities.
  3. Klik Create Service Identity. Halaman Service Identity details akan terbuka.
  4. Di kolom Service identity name, masukkan nama untuk identitas layanan Anda. Contoh: testserviceidentity.
  5. Klik Create.

gdcloud

Membuat akun:

gdcloud iam service-accounts create NAME \
    --project=PROJECT

Ganti nilai berikut:

  • NAME: nama ProjectServiceAccount. Nama harus unik dalam namespace project.
  • PROJECT: project tempat identitas layanan akan dibuat. Jika gdcloud init sudah ditetapkan, hapus flag --project.

Perintah ini membuat ProjectServiceAccount di namespace project di server Management API.

API

  1. Buat file YAML resource kustom ProjectServiceAccount, seperti my-project-sa.yaml:

    apiVersion: resourcemanager.global.gdc.goog/v1
    kind: ProjectServiceAccount
    metadata:
      name: NAME
      namespace: PROJECT
    spec:
      keys:
      - algorithm: ALGORITHM
        id: KEY_ID
        key: BASE64_ENCODED_KEY
        validAfter: "START_TIME"
        validBefore: "EXPIRATION_TIME"
    

    Ganti variabel berikut:

    • NAME: nama resource ProjectServiceAccount. Nama harus unik dalam namespace project.
    • PROJECT: project tempat identitas layanan akan dibuat.
    • ALGORITHM: algoritma kunci. Hanya kunci ES256 yang didukung.
    • KEY_ID: ID unik kunci. ID digunakan untuk menentukan kunci yang akan diverifikasi.
    • BASE64_ENCODED_KEY: kunci publik berenkode base64 dalam format PEM untuk diverifikasi. Kunci pribadi yang digunakan untuk membuat kunci publik ini diharapkan dalam format PEM ECDSA P256.
    • START_TIME: waktu mulai saat kunci menjadi valid, seperti 2025-02-07T00:59:34Z.
    • EXPIRATION_TIME: waktu habis masa berlaku untuk kunci, seperti 2026-02-07T00:59:34Z.
  2. Terapkan resource kustom ProjectServiceAccount ke server API global:

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f my-project-sa.yaml
    

    Ganti variabel GLOBAL_API_SERVER_KUBECONFIG dengan jalur ke file kubeconfig untuk server API global.

Buat kredensial

Agar workload atau aplikasi dapat melakukan autentikasi sebagai identitas layanan (yang diwakili oleh akun yang Anda buat), Anda perlu membuat kredensial. Pembuatan kredensial melibatkan pembuatan pasangan kunci pribadi dan publik kriptografis, serta pengaitan kunci publik dengan identitas layanan.

Untuk membuat kredensial bagi identitas layanan, gunakan konsol GDC, gdcloud CLI, atau API.

Konsol

  1. Login ke konsol GDC.
  2. Di menu navigasi, pilih Identity & Access > Service Identities.
  3. Klik nama identitas layanan yang ingin Anda tambahkan di kunci.
  4. Klik Create New Key.
  5. Kunci baru akan muncul dalam daftar Keys, dan dialog akan mengonfirmasi bahwa Anda telah berhasil membuat kunci.

gdcloud

Perintah gdcloud membuat file JSON Kredensial Default Aplikasi dan pasangan kunci publik dan kunci pribadi:

gdcloud iam service-accounts keys create APPLICATION_DEFAULT_CREDENTIALS_FILENAME \
    --project=PROJECT \
    --iam-account=NAME \
    --ca-cert-path=CA_CERTIFICATE_PATH

Ganti nilai berikut:

  • APPLICATION_DEFAULT_CREDENTIALS_FILENAME: nama file JSON.
  • PROJECT : memilih project yang akan dibuatkan kunci. Jika gdcloud init sudah ditetapkan, Anda dapat menghilangkan flag --project.
  • NAME: nama identitas layanan yang akan ditambahkan kunci.
  • CA_CERTIFICATE_PATH: Opsional: jalur sertifikat certificate authority (CA) untuk memverifikasi endpoint autentikasi. Jika Anda tidak menentukan jalur ini, sertifikat CA sistem akan digunakan. Anda harus menginstal CA di sertifikat CA sistem.

Distributed Cloud menambahkan kunci publik ke kunci ProjectServiceAccount yang Anda gunakan untuk memverifikasi token web JSON (JWT) yang ditandatangani kunci pribadi. Kunci pribadi ditulis ke file JSON kredensial default aplikasi.

Contoh berikut menunjukkan file JSON kredensial default aplikasi:

{
"type": "gdch_service_account",
"format_version": "1",
"project": "project_name",
"private_key_id": "abcdef1234567890",
"private_key": "-----BEGIN PRIVATE KEY-----\nETC\n-----END PRIVATE KEY-----\n",
"name": "service_identity_name",
"ca_cert_path": "/path/to/ca.crt",
"token_uri": "https://service-identity.<Domain>/authenticate"
}

Contoh ini menggunakan nilai berikut:

  • project: namespace project dalam organisasi.
  • private_key_id: ID yang ditetapkan ke kunci.
  • private_key: kunci pribadi ECDSA P256 dalam format PEM yang dihasilkan CLI.
  • name: nama identitas layanan.
  • ca_cert_path: jalur ke sertifikat certificate authority (CA) yang digunakan untuk memverifikasi endpoint autentikasi.
  • token_uri: alamat endpoint autentikasi.

API

  1. Buat pasangan kunci publik dan pribadi. Perintah berikut menggunakan openssl sebagai contoh, yang merupakan alat umum untuk tujuan ini.

    openssl ecparam -name prime256v1 -genkey -noout -out "key.pem"
    openssl ec -in "key.pem" -pubout > "pub.pem"
    
  2. Lakukan encoding base64 pada kunci publik dan ambil ID kuncinya:

    KEY_ID=$(openssl pkey -in key.pem -pubout -outform der | openssl dgst -sha256 | sed 's/^.* //')
    BASE64_ENCODED_KEY=$(cat pub.pem | base64)
    
  3. Buat atau perbarui file YAML resource kustom ProjectServiceAccount, termasuk informasi kunci yang dihasilkan dari langkah sebelumnya:

    apiVersion: resourcemanager.global.gdc.goog/v1
    kind: ProjectServiceAccount
    metadata:
      name: NAME
      namespace: PROJECT
    spec:
      keys:
      - algorithm: ALGORITHM
        id: KEY_ID
        key: BASE64_ENCODED_KEY
        validAfter: "START_TIME"
        validBefore: "EXPIRATION_TIME"
    

    Ganti variabel berikut:

    • NAME: nama resource ProjectServiceAccount. Nama harus unik dalam namespace project.
    • PROJECT: project tempat Anda membuat kunci.
    • ALGORITHM: algoritma kunci. Hanya kunci ES256 yang didukung.
    • KEY_ID: ID unik kunci. ID digunakan untuk menentukan kunci yang akan diverifikasi.
    • BASE64_ENCODED_KEY: kunci publik berenkode base64 dalam format PEM untuk diverifikasi. Kunci pribadi yang digunakan untuk membuat kunci publik ini diharapkan dalam format PEM ECDSA P256.
    • START_TIME: waktu mulai saat kunci menjadi valid, seperti 2025-02-07T00:59:34Z.
    • EXPIRATION_TIME: waktu habis masa berlaku untuk kunci, seperti 2026-02-07T00:59:34Z.
  4. Terapkan resource kustom ProjectServiceAccount ke server API global:

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f my-project-sa.yaml
    

    Ganti variabel GLOBAL_API_SERVER_KUBECONFIG dengan jalur ke file kubeconfig untuk server API global.

  5. Buat file JSON kredensial default aplikasi yang berisi kunci pribadi. Pastikan variabel KEY_ID dalam file JSON ditetapkan ke nilai yang sama dengan variabel KEY_ID yang Anda gunakan dalam spesifikasi ProjectServiceAccount.

    cat <<EOF > "key_file.json"
    {
      "format_version": "1",
      "name": "NAME",
      "private_key": "$(tr '\n' '\t' < "key.pem" | sed 's/\t/\\n/g')",
      "private_key_id": "KEY_ID",
      "project": "PROJECT",
      "token_uri": "AUTH_URL",
      "type": "gdch_service_account"
    }
    EOF
    

    Ganti variabel berikut:

    • NAME: nama identitas layanan.
    • KEY_ID: ID unik kunci. ID digunakan untuk menentukan kunci yang akan diverifikasi, dan harus cocok dengan nilai KEY_ID yang digunakan dalam spesifikasi ProjectServiceAccount.
    • PROJECT: namespace project dalam organisasi.
    • AUTH_URL: alamat endpoint autentikasi.

Untuk mengetahui detail tentang cara menggunakan file kunci yang dihasilkan untuk melakukan autentikasi sebagai identitas layanan ini, lihat Melakukan autentikasi dan menggunakan identitas layanan. Bagian ini membahas penggunaan kunci dengan gdcloud CLI dan secara terprogram dengan library klien.

Melihat identitas layanan

Bagian ini menjelaskan cara melihat identitas layanan Anda dan kunci publik terkaitnya.

Melihat daftar identitas layanan

Untuk melihat daftar identitas layanan dalam project, gunakan konsol GDC atau gdcloud CLI.

Konsol

  1. Login ke konsol GDC.
  2. Pilih project.
  3. Di menu navigasi, klik Identity & Access > Service Identities untuk melihat daftar identitas layanan untuk project.

gdcloud

Mencantumkan akun identitas layanan dalam project:

gdcloud iam service-accounts list \
    --project=PROJECT

Ganti PROJECT dengan project ID.

Melihat daftar kunci publik untuk identitas layanan

Cantumkan kunci publik yang terdaftar dengan akun identitas layanan dalam project:

gdcloud iam service-accounts keys list \
    --project=PROJECT \
    --iam-account=NAME

Ganti kode berikut:

  • PROJECT: project ID.
  • NAME: nama akun identitas layanan yang akan digunakan.

Memberikan izin untuk identitas layanan

Untuk memberikan izin ke identitas layanan, tetapkan satu atau beberapa peran ke identitas layanan tersebut dengan membuat binding peran menggunakan konsol GDC atau gdcloud CLI.

Konsol

  1. Login ke konsol GDC.
  2. Pilih project.
  3. Di menu navigasi, pilih Identity & Access > Access.
  4. Di daftar Anggota, klik Tambahkan anggota. Anda akan melihat halaman Pengguna dan peran.
  5. Pilih Service identity dalam daftar Member type.
  6. Dalam daftar Service identity, pilih identitas layanan yang ingin Anda tetapkan binding perannya.
  7. Dalam daftar Role, pilih peran yang ingin Anda tetapkan ke identitas layanan, seperti Backup Creator.
  8. Opsional: Untuk menambahkan peran lain, klik Add another role. Pilih peran tambahan.
  9. Klik Tambahkan.

gdcloud

Anda dapat mengikat akun identitas layanan ke peran dalam namespace project atau ke peran dalam namespace yang berbeda.

  • Ikat akun ke peran dalam namespace project:

    gdcloud iam service-accounts add-iam-policy-binding \
        --project=PROJECT \
        --role=ROLE \
        --iam-account=NAME
    

    Ganti kode berikut:

    • PROJECT: project tempat binding peran akan dibuat. Jika gdcloud init sudah ditetapkan, Anda dapat menghilangkan flag --project.
    • ROLE: peran yang telah ditetapkan untuk ditetapkan ke akun. Tentukan peran dalam format Role/name dengan Role adalah jenis Kubernetes IAMRole, dan name adalah nama peran yang telah ditetapkan. Misalnya, untuk menetapkan peran Project Viewer, tetapkan peran ke IAMRole/project-viewer.
    • NAME: nama akun identitas layanan yang akan digunakan.
  • Ikat akun ke peran dalam namespace yang berbeda:

    gdcloud iam service-accounts add-iam-policy-binding \
        --role=ROLE \
        --role-namespace=ROLE_NAMESPACE \
        --iam-account=NAME
    

    Ganti kode berikut:

    • ROLE: peran yang telah ditetapkan untuk ditetapkan ke akun. Tentukan peran dalam format Role/name dengan Role adalah jenis Kubernetes IAMRole, dan name adalah nama peran yang telah ditetapkan. Misalnya, untuk menetapkan peran Project Viewer, tetapkan peran ke IAMRole/project-viewer.
    • ROLE_NAMESPACE: namespace peran yang akan diikat dengan akun selain namespace project.
    • NAME: nama akun identitas layanan yang akan digunakan.

Mengautentikasi dan menggunakan identitas layanan

Setelah membuat identitas layanan dan membuat file kuncinya, Anda dapat menggunakan file kunci tersebut untuk melakukan autentikasi ke layanan dan cluster GDC. Autentikasi memungkinkan Anda mendapatkan token akses yang berlaku singkat untuk panggilan API atau mengonfigurasi akses cluster.

Ada dua cara untuk melakukan autentikasi dengan identitas layanan:

Melakukan autentikasi dengan gdcloud CLI

Untuk melakukan tindakan dengan identitas layanan, Anda harus mengaktifkan file kuncinya terlebih dahulu. Setelah aktivasi, Anda dapat menggunakan gdcloud CLI untuk mendapatkan token atau membuat file kubeconfig.

Memberikan otorisasi identitas layanan menggunakan kunci

Perintah gdcloud auth activate-service-account mengautentikasi gdcloud CLI dengan identitas layanan. Hal ini memungkinkan Anda melakukan tindakan pada resource Distributed Cloud menggunakan izin akun identitas layanan, bukan akun pengguna.

Memberikan otorisasi identitas layanan menggunakan kunci:

  1. Buat file kunci kredensial, jika Anda belum memilikinya.

  2. Aktifkan identitas layanan dengan menjalankan perintah berikut:

    gdcloud auth activate-service-account --key-file=KEY_FILE
    

    Ganti KEY_FILE dengan jalur ke file kunci kredensial, biasanya dalam format JSON.

    Setelah aktivasi berhasil, gdcloud akan menggunakan kredensial identitas layanan, bukan kredensial pengguna Anda.

Setelah mengizinkan identitas layanan, Anda dapat menggunakan gdcloud untuk mencetak token akses. Anda dapat menggunakan token ini sebagai token pemilik untuk mengautentikasi permintaan HTTP. Token ini memberikan akses ke layanan seperti yang ditentukan dalam parameter AUDIENCES.

Cetak token identitas untuk akun identitas layanan yang ditentukan:

gdcloud auth print-identity-token --audiences=AUDIENCES

Ganti AUDIENCES dengan penerima atau layanan yang dituju untuk token tersebut. Hanya satu audiens yang dapat ditentukan.

Membuat file kubeconfig

Setelah mengizinkan identitas layanan, Anda dapat membuat file kubeconfig untuk melakukan autentikasi ke cluster Kubernetes.

  1. Tetapkan properti gdcloud core/organization_console_url:

    gdcloud config set core/organization_console_url
    https://GDC_URL
    

    Ganti GDC_URL dengan URL organisasi Anda.

  2. Buat file kubeconfig untuk mengakses cluster menggunakan identitas layanan aktif:

    • Untuk cluster zona:

      export KUBECONFIG=KUBECONFIG_PATH
      gdcloud clusters get-credentials CLUSTER_NAME --zone ZONE
      

      Ganti kode berikut:

      • KUBECONFIG_PATH: jalur tempat Anda ingin menyimpan file kubeconfig yang dihasilkan.
      • CLUSTER_NAME: nama cluster zona.

      • ZONE: nama zona tempat cluster berada.

    • Untuk server API global:

      export KUBECONFIG=KUBECONFIG_PATH
      gdcloud clusters get-credentials global-api
      

      Ganti KUBECONFIG_PATH dengan jalur tempat Anda ingin menyimpan file kubeconfig yang dihasilkan.

File kubeconfig dibuat, dikonfigurasi untuk melakukan autentikasi sebagai identitas layanan. Berikut adalah contoh file YAML:

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: <REDACTED>
    server: <REDACTED>
  name: cluster-name
contexts:
- context:
    cluster: cluster-name
    user: gdch_console-<REDACTED>_cluster-name
  name: cluster-name-gdch_console-<REDACTED>_cluster-name
current-context: cluster-name-gdch_console-gdc1-staging-gpcdemolabs-com_cluster-name
kind: Config
preferences: {}
users:
- name: gdch_console-<REDACTED>_cluster-name
  user:
    exec:
      apiVersion: client.authentication.k8s.io/v1
      args:
      - --audience=<REDACTED>
      command: gdcloud-k8s-auth-plugin
      env: null
      installHint: Run 'gdcloud components install gdcloud-k8s-auth-plugin' to use
        plugin
      interactiveMode: Never
      provideClusterInfo: false

Melakukan autentikasi secara terprogram dengan library klien

Contoh berikut menunjukkan cara melakukan autentikasi secara terprogram ke GDC API menggunakan Library Klien Google Cloud standar. Library ini menggunakan file kunci akun layanan yang dihasilkan untuk membuat token akses Security Token Service (STS) atau mengonfigurasi klien layanan dengan kredensial identitas layanan. Metode ini tidak memerlukan otorisasi gdcloud sebelumnya.

Python

import google.auth
from google.auth.transport import requests
import requests as reqs

api_endpoint = "https://console.org-1.zone1.google.gdch.test"

# Load the GDC credentials (via GOOGLE_APPLICATION_CREDENTIALS or default path)
creds, project_id = google.auth.default()

# Apply the required audience for the GDC Management API
creds = creds.with_gdch_audience(api_endpoint)

def fetch_gdch_token():
    sesh = reqs.Session()
    # Note: Set verify to False only if bypassing self-signed cert verification.
    # Otherwise, rely on the "ca_cert_path" present in your gdch_credentials.json
    sesh.verify = False
    req = requests.Request(session=sesh)

    # Refresh the credentials to fetch the STS access token
    creds.refresh(req)

    print("Access Token:", creds.token)

fetch_gdch_token()

Java

import com.google.auth.oauth2.GdchCredentials;
import com.google.auth.oauth2.GoogleCredentials;

import java.io.FileInputStream;
import java.io.InputStream;

public class GdchAuthExample {
    public static void main(String[] args) throws Exception {
        // Path to your service account JSON file
        String credentialsPath = "/path/to/gdch/credentials.json";
        String apiAudience = "https://console.org-1.zone1.google.gdch.test";

        try (InputStream credentialsStream = new FileInputStream(credentialsPath)) {
            // Load the generic Google credentials from the stream
            GoogleCredentials credentials = GoogleCredentials.fromStream(credentialsStream);

            // Verify it loaded as GdchCredentials
            if (credentials instanceof GdchCredentials) {
                // Cast and attach the targeted GDC audience
                GdchCredentials gdch = ((GdchCredentials) credentials).createWithGdchAudience(apiAudience);

                // Force negotiation with the GDC Auth Server to fetch the token
                gdch.refreshIfExpired();

                System.out.println("Access Token: " + gdch.getAccessToken().getTokenValue());
            } else {
                System.err.println("The provided file is not a valid GdchCredentials format.");
            }
        }
    }
}

Go

package main

import (
  "context"
  "fmt"
  "log"

  "cloud.google.com/go/auth/credentials"
)

func main() {
  ctx := context.Background()
  apiEndpoint := "https://console.org-1.zone1.google.gdch.test"

  // Load default credentials. The STSAudience parameter is specifically
  // required for the GDC auth flow to correctly negotiate the token.
  creds, err := credentials.DetectDefault(&credentials.DetectOptions{
    STSAudience: apiEndpoint,
  })
  if err != nil {
    log.Fatalf("Failed to detect credentials: %v", err)
  }

  // Fetch an access token
  token, err := creds.Token(ctx)
  if err != nil {
    log.Fatalf("Failed to retrieve token: %v", err)
  }

  fmt.Printf("Access Token: %s\n", token.Value)
}

C++

[](std::string const& keyfile, std::string const& audience) {
  auto is = std::ifstream(keyfile);
  is.exceptions(std::ios::badbit);  // Minimal error handling in examples
  auto contents = std::string(std::istreambuf_iterator<char>(is.rdbuf()), {});
  auto options =
      google::cloud::Options{}.set<google::cloud::UnifiedCredentialsOption>(
          google::cloud::MakeGDCHServiceAccountCredentials(contents, audience));
  return google::cloud::speech_v1::AdaptationClient(
      google::cloud::speech_v1::MakeAdaptationConnection(options));
}

Menghapus identitas layanan

Setelah Anda menghapus identitas layanan, ProjectServiceAccount dan kunci publik terkaitnya akan dihapus, kunci pribadi yang ada menjadi tidak valid, dan aplikasi tidak lagi memiliki akses ke resource project melalui identitas layanan tersebut.

Untuk menghapus identitas layanan, gunakan konsol GDC atau gdcloud CLI.

Konsol

  1. Login ke konsol GDC.
  2. Di menu navigasi, pilih Identity & Access > Service Identities.
  3. Pilih kotak centang identitas layanan yang ingin Anda hapus.
  4. Klik Hapus.
  5. Dialog konfirmasi akan muncul. Di kolom Konfirmasi dengan mengetik teks berikut di bawah, masukkan remove.
  6. Klik Hapus.

gdcloud

Jalankan perintah berikut untuk menghapus akun identitas layanan:

gdcloud iam service-accounts delete NAME \
    --project=PROJECT

Ganti kode berikut:

  • NAME: nama akun identitas layanan yang akan dihapus.
  • PROJECT: project ID.

Hapus kredensial

Jika ingin menonaktifkan pasangan kunci tertentu tanpa menghapus seluruh akun identitas layanan, Anda dapat menghapus kunci publiknya dari akun identitas layanan. Tindakan ini akan membuat kunci pribadi yang sesuai menjadi tidak valid.

Untuk menghapus kunci publik, gunakan konsol GDC atau gdcloud CLI.

Konsol

  1. Login ke konsol GDC.
  2. Di menu navigasi, pilih Identity & Access > Service Identities.
  3. Klik nama identitas layanan yang memiliki kunci yang ingin Anda hapus.
  4. Klik Hapus.
  5. Pada dialog konfirmasi, klik Delete.

gdcloud

Hapus kunci publik dengan ID kunci dari akun identitas layanan dalam project:

gdcloud iam service-accounts keys delete KEY_ID \
    --project=PROJECT \
    --iam-account=NAME

Ganti kode berikut:

  • KEY_ID: ID unik kunci.
  • PROJECT: project ID.
  • NAME: nama akun identitas layanan.