Menghapus resource Cloud KMS

Dokumen ini menunjukkan cara menghapus kunci dan versi kunci Cloud Key Management Service secara permanen. Operasi ini tidak dapat dibatalkan.

Di Cloud KMS, penghancuran dan penghapusan adalah operasi yang berbeda:

  • Penghancuran: Menonaktifkan versi kunci secara permanen, termasuk menghancurkan materi kunci yang mendasarinya secara tidak dapat dipulihkan setelah periode penghancuran yang ditentukan. Versi kunci dalam status DESTROYED tidak dapat digunakan untuk operasi kriptografi dan tidak lagi ditagih. Anda dapat menghancurkan versi kunci yang digunakan untuk mengenkripsi data guna menghancurkan kripto data yang Anda inginkan agar tidak dapat dipulihkan secara permanen. Versi kunci yang dihancurkan masih disertakan dalam daftar resource Cloud KMS.

  • Penghapusan: Menghapus kunci atau versi kunci dari daftar resource Cloud KMS di konsol Google Cloud , Google Cloud CLI, Cloud Key Management Service API, dan library klien. Untuk project dengan banyak kunci atau versi kunci yang tidak lagi aktif, penghapusan akan menyederhanakan operasi penelusuran dan daftar. Nama CryptoKey yang dihapus tidak dapat digunakan kembali. Anda dapat melihat daftar nama CryptoKey yang dihapus dan tidak dapat digunakan kembali menggunakan metode retiredResources.list.

Sebelum memulai

Untuk mendapatkan izin yang Anda perlukan untuk menghapus dan melihat resource Cloud KMS, minta administrator Anda untuk memberi Anda peran IAM administrator Cloud KMS (roles/cloudkms.admin) pada kunci. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran bawaan ini berisi izin yang diperlukan untuk menghapus dan melihat resource Cloud KMS. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk menghapus dan melihat resource Cloud KMS:

  • Untuk menghapus versi kunci: cloudkms.cryptoKeyVersions.delete
  • Untuk menghapus kunci: cloudkms.cryptoKeys.delete
  • Untuk melihat resource yang dihapus:
    • cloudkms.retiredResources.get
    • cloudkms.retiredResources.list

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Menghapus versi kunci

Anda dapat menghapus versi kunci jika berada dalam status DESTROYED, IMPORT_FAILED, atau GENERATION_FAILED. Jika versi kunci diimpor, versi kunci hanya dapat dihapus jika impor gagal.

Untuk menghapus versi kunci secara permanen, ikuti langkah-langkah berikut:

Konsol

  1. Di konsol Google Cloud , buka halaman Key Management.

    Buka Key Management

  2. Klik nama key ring yang berisi kunci dan versi kunci yang ingin Anda hapus.

  3. Klik kunci yang berisi versi kunci yang ingin Anda hapus.

  4. Di tabel Versi, temukan versi kunci yang ingin Anda hapus, lalu klik Tindakan lainnya.

  5. Di menu Tindakan lainnya, klik Hapus.

  6. Di perintah konfirmasi, masukkan nama kunci, lalu klik Hapus.

gcloud

Untuk menghapus versi kunci, jalankan perintah berikut:

gcloud kms keys versions delete KEY_VERSION \
    --location=LOCATION \
    --keyring=KEY_RING \
    --key=KEY_NAME

Ganti kode berikut:

  • KEY_VERSION: nomor versi kunci yang ingin Anda hapus secara permanen. Versi kunci yang ditunjukkan harus dalam status DESTROYED, IMPORT_FAILED, atau GENERATION_FAILED.
  • LOCATION: lokasi Cloud KMS key ring.
  • KEY_RING: nama key ring yang berisi kunci.
  • KEY_NAME: nama kunci yang berisi versi kunci yang ingin Anda hapus secara permanen.

Go

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud KMS, lihat Library klien Cloud KMS.

Untuk melakukan autentikasi ke Cloud KMS, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

import (
	"context"
	"fmt"
	"io"

	kms "cloud.google.com/go/kms/apiv1"
	"cloud.google.com/go/kms/apiv1/kmspb"
)

// deleteCryptoKeyVersion deletes a crypto key version. This action is permanent and cannot be undone. Once the key version is deleted, it will no longer exist.
func deleteCryptoKeyVersion(w io.Writer, name string) error {
	// name := "projects/my-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key/cryptoKeyVersions/1"

	// Create the client.
	ctx := context.Background()
	client, err := kms.NewKeyManagementClient(ctx)
	if err != nil {
		return fmt.Errorf("failed to create kms client: %w", err)
	}
	defer client.Close()

	// Build the request.
	req := &kmspb.DeleteCryptoKeyVersionRequest{
		Name: name,
	}

	// Call the API.
	// Warning: This operation is permanent and cannot be undone.
	op, err := client.DeleteCryptoKeyVersion(ctx, req)
	if err != nil {
		return fmt.Errorf("failed to delete crypto key version: %w", err)
	}

	// Wait for the operation to complete.
	if err := op.Wait(ctx); err != nil {
		return fmt.Errorf("failed to wait for delete crypto key version operation: %w", err)
	}

	fmt.Fprintf(w, "Deleted crypto key version: %s\n", req.Name)
	return nil
}

Java

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud KMS, lihat Library klien Cloud KMS.

Untuk melakukan autentikasi ke Cloud KMS, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

import com.google.cloud.kms.v1.CryptoKeyVersionName;
import com.google.cloud.kms.v1.KeyManagementServiceClient;
import java.io.IOException;

public class DeleteKeyVersion {

  public void deleteKeyVersion() throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-project-id";
    String locationId = "us-east1";
    String keyRingId = "my-key-ring";
    String keyId = "my-key";
    String keyVersionId = "123";
    deleteKeyVersion(projectId, locationId, keyRingId, keyId, keyVersionId);
  }

  // deleteKeyVersion deletes a key version. This action is permanent and cannot be undone. Once the
  // key version is deleted, it will no longer exist.
  public void deleteKeyVersion(
      String projectId, String locationId, String keyRingId, String keyId, String keyVersionId)
      throws IOException {
    // Initialize client that will be used to send requests. This client only
    // needs to be created once, and can be reused for multiple requests. After
    // completing all of your requests, call the "close" method on the client to
    // safely clean up any remaining background resources.
    try (KeyManagementServiceClient client = KeyManagementServiceClient.create()) {
      // Build the key version name from the project, location, key ring, key,
      // and key version.
      CryptoKeyVersionName keyVersionName =
          CryptoKeyVersionName.of(projectId, locationId, keyRingId, keyId, keyVersionId);

      // Delete the key version.
      // Warning: This operation is permanent and cannot be undone.
      // Wait for the operation to complete.
      client.deleteCryptoKeyVersionAsync(keyVersionName).get();
      System.out.printf("Deleted key version: %s%n", keyVersionName.toString());
    } catch (Exception e) {
      System.err.printf("Failed to delete key version: %s%n", e.getMessage());
    }
  }
}

Python

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud KMS, lihat Library klien Cloud KMS.

Untuk melakukan autentikasi ke Cloud KMS, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

from google.cloud import kms


def delete_key_version(
    project_id: str, location_id: str, key_ring_id: str, key_id: str, version_id: str
) -> None:
    """
    Delete the given key version. This action is permanent and cannot be undone.
    Once the key version is deleted, it will no longer exist.

    Args:
        project_id (str): Google Cloud project ID (e.g. 'my-project').
        location_id (str): Cloud KMS location (e.g. 'us-east1').
        key_ring_id (str): ID of the Cloud KMS key ring (e.g. 'my-key-ring').
        key_id (str): ID of the key to use (e.g. 'my-key').
        version_id (str): ID of the key version to delete (e.g. '1').

    Returns:
        None

    """

    # Create the client.
    client = kms.KeyManagementServiceClient()

    # Build the key version name.
    key_version_name = client.crypto_key_version_path(
        project_id, location_id, key_ring_id, key_id, version_id
    )

    # Call the API.
    # Note: delete_crypto_key_version returns a long-running operation.
    # Warning: This operation is permanent and cannot be undone.
    operation = client.delete_crypto_key_version(request={"name": key_version_name})

    # Wait for the operation to complete.
    operation.result()

    print(f"Deleted key version: {key_version_name}")

API

  1. Untuk menghapus versi kunci, panggil metode cryptoKeyVersions.delete. Metode ini menampilkan operasi yang berjalan lama yang dapat Anda polling untuk mengonfirmasi bahwa versi kunci telah dihapus.

    curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/KEY_VERSION" \
    --request "DELETE" \
    --header "authorization: Bearer TOKEN"
    

    Ganti kode berikut:

    • PROJECT_ID: ID project yang berisi key ring.
    • LOCATION: lokasi Cloud KMS key ring.
    • KEY_RING: nama key ring yang berisi kunci.
    • KEY_NAME: nama kunci yang berisi versi kunci yang ingin Anda hapus secara permanen.
    • KEY_VERSION: nomor versi kunci yang ingin Anda hapus secara permanen. Versi kunci yang ditunjukkan harus dalam status DESTROYED, IMPORT_FAILED, atau GENERATION_FAILED.

    Output perintah menampilkan Operation. Anda memerlukan name operasi untuk langkah berikutnya.

  2. Untuk mengonfirmasi bahwa versi kunci telah dihapus, Anda dapat memanggil metode operations.get:

    curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_NAME" \
        --request "GET" \
        --header "authorization: Bearer TOKEN"
    

    Ganti kode berikut:

    • PROJECT_ID: ID project yang berisi key ring.
    • LOCATION: lokasi Cloud KMS key ring.
    • OPERATION_NAME: nama operasi yang ditampilkan oleh metode sebelumnya.

    Jika output metode ini menunjukkan bahwa done adalah true, berarti operasi telah selesai. Jika tidak ada error yang ditunjukkan, versi kunci telah dihapus secara permanen.

Menghapus kunci

Anda dapat menghapus kunci jika memenuhi kondisi berikut:

  • Kunci tidak berisi versi kunci yang belum dihapus.
  • Kunci tidak memiliki rotasi kunci otomatis yang dijadwalkan.
  • Kunci tidak dibuat oleh Autokey Cloud KMS.

Untuk menghapus kunci secara permanen, ikuti langkah-langkah berikut:

Konsol

  1. Di konsol Google Cloud , buka halaman Key Management.

    Buka Key Management

  2. Klik nama key ring yang berisi kunci yang ingin Anda hapus.

  3. Hapus kunci menggunakan salah satu lokasi berikut:

    • Halaman daftar kunci: Di tabel Kunci untuk gantungan kunci "KEY_RING", cari kunci yang ingin Anda hapus, klik Tindakan kunci, lalu klik Hapus.
    • Halaman detail kunci: Klik nama kunci yang ingin Anda hapus untuk membuka halaman Detail kunci. Di bagian atas halaman, klik Hapus.
  4. Di perintah konfirmasi, masukkan nama kunci, lalu klik Hapus.

gcloud

Untuk menghapus kunci, jalankan perintah berikut:

gcloud kms keys delete KEY_NAME \
    --location=LOCATION \
    --keyring=KEY_RING

Ganti kode berikut:

  • KEY_NAME: nama kunci yang ingin Anda hapus secara permanen. Kunci tidak boleh berisi versi kunci yang belum dihapus, dan tidak boleh berupa kunci yang dibuat oleh Autokey.
  • LOCATION: lokasi Cloud KMS key ring.
  • KEY_RING: nama key ring yang berisi kunci.

Go

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud KMS, lihat Library klien Cloud KMS.

Untuk melakukan autentikasi ke Cloud KMS, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

import (
	"context"
	"fmt"
	"io"

	kms "cloud.google.com/go/kms/apiv1"
	"cloud.google.com/go/kms/apiv1/kmspb"
)

// deleteCryptoKey deletes a crypto key. This action is permanent and cannot be undone. Once the key is deleted, it will no longer exist.
func deleteCryptoKey(w io.Writer, name string) error {
	// name := "projects/my-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key"

	// Create the client.
	ctx := context.Background()
	client, err := kms.NewKeyManagementClient(ctx)
	if err != nil {
		return fmt.Errorf("failed to create kms client: %w", err)
	}
	defer client.Close()

	// Build the request.
	req := &kmspb.DeleteCryptoKeyRequest{
		Name: name,
	}

	// Call the API.
	// Warning: This operation is permanent and cannot be undone.
	op, err := client.DeleteCryptoKey(ctx, req)
	if err != nil {
		return fmt.Errorf("failed to delete crypto key: %w", err)
	}

	// Wait for the operation to complete.
	if err := op.Wait(ctx); err != nil {
		return fmt.Errorf("failed to wait for delete crypto key operation: %w", err)
	}

	fmt.Fprintf(w, "Deleted crypto key: %s\n", req.Name)
	return nil
}

Java

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud KMS, lihat Library klien Cloud KMS.

Untuk melakukan autentikasi ke Cloud KMS, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

import com.google.cloud.kms.v1.CryptoKeyName;
import com.google.cloud.kms.v1.DeleteCryptoKeyMetadata;
import com.google.cloud.kms.v1.KeyManagementServiceClient;
import java.io.IOException;
import java.util.concurrent.ExecutionException;

public class DeleteKey {

  public void deleteKey() throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-project-id";
    String locationId = "us-east1";
    String keyRingId = "my-key-ring";
    String keyId = "my-key";
    deleteKey(projectId, locationId, keyRingId, keyId);
  }

  // deleteKey deletes a crypto key. This action is permanent and cannot be undone. Once the key
  // is deleted, it will no longer exist.
  public void deleteKey(String projectId, String locationId, String keyRingId, String keyId)
      throws IOException {
    // Initialize client that will be used to send requests. This client only
    // needs to be created once, and can be reused for multiple requests. After
    // completing all of your requests, call the "close" method on the client to
    // safely clean up any remaining background resources.
    try (KeyManagementServiceClient client = KeyManagementServiceClient.create()) {
      // Build the key name from the project, location, key ring, and key.
      CryptoKeyName keyName = CryptoKeyName.of(projectId, locationId, keyRingId, keyId);

      // Delete the key.
      // Warning: This operation is permanent and cannot be undone.
      // Wait for the operation to complete.
      client.deleteCryptoKeyAsync(keyName).get();
      System.out.printf("Deleted key: %s%n", keyName.toString());
    } catch (Exception e) {
      System.err.printf("Failed to delete key: %s%n", e.getMessage());
    }
  }
}

Python

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud KMS, lihat Library klien Cloud KMS.

Untuk melakukan autentikasi ke Cloud KMS, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

from google.cloud import kms


def delete_key(
    project_id: str, location_id: str, key_ring_id: str, key_id: str
) -> None:
    """
    Delete the given key. This action is permanent and cannot be undone. Once the
    key is deleted, it will no longer exist.

    Args:
        project_id (str): Google Cloud project ID (e.g. 'my-project').
        location_id (str): Cloud KMS location (e.g. 'us-east1').
        key_ring_id (str): ID of the Cloud KMS key ring (e.g. 'my-key-ring').
        key_id (str): ID of the key to use (e.g. 'my-key').

    Returns:
        None

    """

    # Create the client.
    client = kms.KeyManagementServiceClient()

    # Build the key name.
    key_name = client.crypto_key_path(project_id, location_id, key_ring_id, key_id)

    # Call the API.
    # Note: delete_crypto_key returns a long-running operation.
    # Warning: This operation is permanent and cannot be undone.
    operation = client.delete_crypto_key(request={"name": key_name})

    # Wait for the operation to complete.
    operation.result()

    print(f"Deleted key: {key_name}")

API

  1. Untuk menghapus kunci, panggil metode cryptoKey.delete. Metode ini menampilkan operasi yang berjalan lama yang dapat Anda polling untuk mengonfirmasi bahwa kunci telah dihapus.

    curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" \
    --request "DELETE" \
    --header "authorization: Bearer TOKEN"
    

    Ganti kode berikut:

    • PROJECT_ID: ID project yang berisi key ring.
    • LOCATION: lokasi Cloud KMS key ring.
    • KEY_RING: nama key ring yang berisi kunci.
    • KEY_NAME: nama kunci yang ingin Anda hapus secara permanen. Kunci tidak boleh berisi versi kunci yang belum dihapus, dan tidak boleh berupa kunci yang dibuat oleh Autokey.

    Output perintah menampilkan Operation. Anda memerlukan name operasi untuk langkah berikutnya.

  2. Untuk mengonfirmasi bahwa kunci telah dihapus, Anda dapat memanggil metode operations.get:

    curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_NAME" \
        --request "GET" \
        --header "authorization: Bearer TOKEN"
    

    Ganti kode berikut:

    • PROJECT_ID: ID project yang berisi key ring.
    • LOCATION: lokasi Cloud KMS key ring.
    • OPERATION_NAME: nama operasi yang ditampilkan oleh metode sebelumnya.

    Jika output metode ini menunjukkan bahwa done adalah true, operasi telah selesai. Jika tidak ada error yang ditunjukkan, berarti kunci telah dihapus secara permanen.

Melihat nama resource yang tidak digunakan lagi

Nama kunci yang telah dihapus tidak dapat digunakan kembali dalam projectGoogle Cloud yang sama. Hal ini mencegah dua kunci yang berbeda memiliki ID resource yang sama. Nama untuk kunci yang dihapus disimpan dalam objek retiredResources. Anda dapat membuat kueri retiredResources untuk melihat nama yang tidak dapat digunakan kembali untuk resource Cloud KMS baru.

Untuk melihat daftar semua resource yang tidak digunakan lagi, ikuti langkah-langkah berikut:

gcloud

Jalankan perintah berikut:

gcloud kms retired-resources list \
    --location=LOCATION

Ganti kode berikut:

  • LOCATION: lokasi tempat Anda ingin melihat resource yang dihentikan.

Go

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud KMS, lihat Library klien Cloud KMS.

Untuk melakukan autentikasi ke Cloud KMS, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

import (
	"context"
	"fmt"
	"io"

	kms "cloud.google.com/go/kms/apiv1"
	kmspb "cloud.google.com/go/kms/apiv1/kmspb"
	"google.golang.org/api/iterator"
)

// listRetiredResources lists retired resources.
func listRetiredResources(w io.Writer, parent string) error {
	// parent := "projects/my-project/locations/us-east1"

	ctx := context.Background()
	client, err := kms.NewKeyManagementClient(ctx)
	if err != nil {
		return fmt.Errorf("failed to create kms client: %w", err)
	}
	defer client.Close()

	// Build the request.
	req := &kmspb.ListRetiredResourcesRequest{
		Parent: parent,
	}

	// Call the API.
	it := client.ListRetiredResources(ctx, req)

	// Iterate over the results.
	for {
		resp, err := it.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			return fmt.Errorf("failed to list retired resources: %w", err)
		}

		fmt.Fprintf(w, "Retired resource: %s\n", resp.Name)
	}
	return nil
}

Java

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud KMS, lihat Library klien Cloud KMS.

Untuk melakukan autentikasi ke Cloud KMS, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

import com.google.cloud.kms.v1.KeyManagementServiceClient;
import com.google.cloud.kms.v1.LocationName;
import com.google.cloud.kms.v1.RetiredResource;
import java.io.IOException;

public class ListRetiredResources {

  public void listRetiredResources() throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-project-id";
    String locationId = "us-east1";
    listRetiredResources(projectId, locationId);
  }

  // List retired resources in a specific project and location.
  public void listRetiredResources(String projectId, String locationId)
      throws IOException {
    // Initialize client that will be used to send requests. This client only
    // needs to be created once, and can be reused for multiple requests. After
    // completing all of your requests, call the "close" method on the client to
    // safely clean up any remaining background resources.
    try (KeyManagementServiceClient client = KeyManagementServiceClient.create()) {
      // Build the location name from the project and location.
      LocationName locationName = LocationName.of(projectId, locationId);

      // List the retired resources.
      for (RetiredResource resource : client.listRetiredResources(locationName).iterateAll()) {
        System.out.printf("Retired resource: %s%n", resource.getName());
      }
    }
  }
}

Python

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud KMS, lihat Library klien Cloud KMS.

Untuk melakukan autentikasi ke Cloud KMS, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

from typing import List

from google.cloud import kms


def list_retired_resources(project_id: str, location_id: str) -> List[kms.RetiredResource]:
    """
    List the retired resources in a location.

    Args:
        project_id (str): Google Cloud project ID (e.g. 'my-project').
        location_id (str): Cloud KMS location (e.g. 'us-east1').

    Returns:
        list[kms.RetiredResource]: The list of retired resources.
    """

    # Create the client.
    client = kms.KeyManagementServiceClient()

    # Build the parent location name.
    parent = client.common_location_path(project_id, location_id)

    # Call the API.
    # The API paginates, but the Python client library handles that for us.
    resources_list = list(client.list_retired_resources(request={"parent": parent}))

    # Iterate over the resources and print them.
    for resource in resources_list:
        print(f"Retired resource: {resource.name}")

    return resources_list

API

Gunakan metode retiredResources.list:

curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/retiredResources/" \
    --request "GET" \
    --header "authorization: Bearer TOKEN"

Ganti kode berikut:

  • PROJECT_ID: ID project tempat Anda ingin melihat resource yang tidak digunakan lagi.
  • LOCATION: lokasi tempat Anda ingin melihat resource yang dihentikan.

Untuk melihat metadata resource yang tidak digunakan lagi, ikuti langkah-langkah berikut:

gcloud

Jalankan perintah berikut:

gcloud kms retired-resources describe RETIRED_RESOURCE \
    --location=LOCATION

Ganti kode berikut:

  • RETIRED_RESOURCE: nama resource yang ingin Anda lihat.
  • LOCATION: lokasi tempat Anda ingin melihat resource yang dihentikan.

Go

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud KMS, lihat Library klien Cloud KMS.

Untuk melakukan autentikasi ke Cloud KMS, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

import (
	"context"
	"fmt"
	"io"

	kms "cloud.google.com/go/kms/apiv1"
	kmspb "cloud.google.com/go/kms/apiv1/kmspb"
)

// getRetiredResource gets a retired resource.
func getRetiredResource(w io.Writer, name string) error {
	// name := "projects/my-project/locations/us-east1/retiredResources/my-retired-resource"

	ctx := context.Background()
	client, err := kms.NewKeyManagementClient(ctx)
	if err != nil {
		return fmt.Errorf("failed to create kms client: %w", err)
	}
	defer client.Close()

	// Build the request.
	req := &kmspb.GetRetiredResourceRequest{
		Name: name,
	}

	// Call the API.
	result, err := client.GetRetiredResource(ctx, req)
	if err != nil {
		return fmt.Errorf("failed to get retired resource: %w", err)
	}

	fmt.Fprintf(w, "Got retired resource: %s\n", result.Name)
	return nil
}

Java

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud KMS, lihat Library klien Cloud KMS.

Untuk melakukan autentikasi ke Cloud KMS, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

import com.google.cloud.kms.v1.KeyManagementServiceClient;
import com.google.cloud.kms.v1.RetiredResource;
import com.google.cloud.kms.v1.RetiredResourceName;
import java.io.IOException;

public class GetRetiredResource {

  public void getRetiredResource() throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-project-id";
    String locationId = "us-east1";
    String retiredResourceId = "my-retired-resource-id";
    getRetiredResource(projectId, locationId, retiredResourceId);
  }

  // Get the retired resource.
  public void getRetiredResource(
      String projectId, String locationId, String retiredResourceId)
      throws IOException {
    // Initialize client that will be used to send requests. This client only
    // needs to be created once, and can be reused for multiple requests. After
    // completing all of your requests, call the "close" method on the client to
    // safely clean up any remaining background resources.
    try (KeyManagementServiceClient client = KeyManagementServiceClient.create()) {
      // Build the retired resource name from the project, location, and retired resource id.
      RetiredResourceName name = RetiredResourceName.of(projectId, locationId, retiredResourceId);

      // Get the retired resource.
      RetiredResource response = client.getRetiredResource(name);
      System.out.printf("Retired resource: %s%n", response.getName());
    }
  }
}

Python

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud KMS, lihat Library klien Cloud KMS.

Untuk melakukan autentikasi ke Cloud KMS, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

from google.cloud import kms


def get_retired_resource(
    project_id: str, location_id: str, retired_resource_id: str
) -> kms.RetiredResource:
    """
    Get the details of a retired resource.

    Args:
        project_id (str): Google Cloud project ID (e.g. 'my-project').
        location_id (str): Cloud KMS location (e.g. 'us-east1').
        resource_id (str): ID of the retired resource to get.

    Returns:
        kms.RetiredResource: The requested retired resource.

    """

    # Create the client.
    client = kms.KeyManagementServiceClient()

    # Build the retired resource name.
    # Note: Retired resources are tied to a Location, not a KeyRing.
    # The name is like projects/{project}/locations/{location}/retiredResources/{id}
    name = client.retired_resource_path(project_id, location_id, retired_resource_id)

    # Call the API.
    response = client.get_retired_resource(request={"name": name})

    print(f"Got retired resource: {response.name}")
    return response

API

Gunakan metode retiredResources.get:

curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/retiredResources/RETIRED_RESOURCE" \
    --request "GET" \
    --header "authorization: Bearer TOKEN"

Ganti kode berikut:

  • PROJECT_ID: ID project tempat Anda ingin melihat resource yang dihentikan.
  • LOCATION: lokasi tempat Anda ingin melihat resource yang dihentikan.
  • RETIRED_RESOURCE: nama resource yang ingin Anda lihat.

Output metode ini mencakup resourceType, deleteTime, dan ID resource lengkap dari resource yang dihapus.

Langkah berikutnya