Membuat resource yang dilindungi menggunakan Kunci Otomatis Cloud KMS

Halaman ini menunjukkan cara membuat resource yang dilindungi menggunakan kunci yang dibuat oleh Kunci Otomatis Cloud KMS untuk enkripsi. Untuk mengetahui informasi selengkapnya tentang Kunci otomatis, lihat Ringkasan kunci otomatis.

Sebelum memulai

Untuk mendapatkan izin yang Anda perlukan untuk menggunakan Autokey guna membuat resource yang dilindungi, minta administrator Anda untuk memberi Anda peran IAM Cloud KMS Autokey User (roles/cloudkms.autokeyUser) di folder atau project. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.

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

Anda juga memerlukan izin pembuatan resource di folder Autokey atau di project resource dalam folder tersebut. Untuk mengetahui informasi selengkapnya tentang izin yang diperlukan untuk membuat setiap resource, lihat dokumentasi khusus layanan. Anda dapat menemukan dokumentasi ini dengan menemukan layanan di tabel integrasi CMEK dan membuka link untuk jenis resource yang ingin Anda buat.

Menggunakan Autokey dengan resource Compute Engine

Autokey akan membuat kunci baru untuk setiap disk, image, dan image mesin di lokasi yang sama dengan resource yang sedang dibuat.

Kunci otomatis tidak membuat kunci baru untuk snapshot. Snapshot harus menggunakan kunci yang sama dengan yang digunakan untuk mengenkripsi disk. Jika Anda membuat snapshot menggunakan Konsol Google Cloud, kunci enkripsi yang digunakan oleh disk akan otomatis diterapkan ke snapshot tersebut. Jika membuat snapshot menggunakan gcloud CLI, Terraform, atau Cloud KMS API, Anda harus mengidentifikasi kunci yang digunakan untuk mengenkripsi disk dan menggunakan kunci tersebut untuk mengenkripsi snapshot.

Untuk mengetahui informasi selengkapnya tentang cara menggunakan CMEK dengan snapshot, lihat Membuat snapshot dari disk yang dienkripsi dengan CMEK.

Membuat resource Compute Engine yang dilindungi

Konsol

Untuk membuat disk, selesaikan langkah-langkah berikut:

  1. Di Konsol Google Cloud, buka halaman Disks.

    Buka Disks

  2. Klik Create disk dan masukkan properti untuk disk baru.

  3. Di bagian Encryption, pilih Cloud KMS key.

  4. Untuk Key type, pilih Cloud KMS with Autokey, lalu klik Request a new key. Pesan akan menunjukkan kapan kunci Anda berhasil dibuat dan siap digunakan.

  5. Untuk menyelesaikan pembuatan disk, klik Buat.

Anda dapat mengikuti proses serupa untuk membuat instance VM, image, dan resource image mesin yang dilindungi.

Terraform

Contoh Terraform berikut membuat handle kunci dan menggunakan kunci yang ditampilkan untuk melindungi resource persistent disk baru:

resource "google_kms_key_handle" "my_key_handle" {
  provider               = google-beta
  project                = "RESOURCE_PROJECT_ID"
  name                   = "KEY_HANDLE"
  location               = "LOCATION"
  resource_type_selector = "compute.googleapis.com/Disk"
}

resource "google_compute_disk" "persistent_disk" {
  project = "RESOURCE_PROJECT_ID"
  name    = "DISK_NAME"
  type    = "pd-ssd"
  zone    = "ZONE"
  size    = 30
  physical_block_size_bytes = 4096
  disk_encryption_key {
    kms_key_self_link = my_key_handle.kms_key
  }
}

Ganti kode berikut:

  • RESOURCE_PROJECT_ID: project ID project resource dalam folder Autokey tempat Anda ingin membuat resource yang dilindungi.
  • KEY_HANDLE: ID yang akan digunakan untuk tuas kunci.
  • LOCATION: lokasi tempat Anda ingin membuat resource yang dilindungi.
  • DISK_NAME: nama disk baru.
  • ZONE: zona resource yang dilindungi. Area ini harus merupakan zona di dalam lokasi tempat Anda membuat resource. Misalnya, jika Anda membuat resource di lokasi us-central1, zonanya bisa berupa us-central1-a.

API

  1. Minta kunci Cloud KMS baru dengan membuat KeyHandle:

    curl -H "Content-Type: application/json" \
        -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X POST https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles \
        -d '{"resource_type_selector": "RESOURCE_TYPE"}'
    

    Ganti kode berikut:

    • USER_PROJECT: project yang akan ditagih untuk biaya yang terkait dengan permintaan ini.
    • RESOURCE_PROJECT_ID: project ID project resource dalam folder Autokey tempat Anda ingin membuat resource yang dilindungi.
    • LOCATION: lokasi tempat Anda ingin membuat resource yang dilindungi.
    • RESOURCE_TYPE: jenis resource yang ingin Anda buat—misalnya, compute.googleapis.com/Disk.

    Outputnya mirip dengan hal berikut ini:

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata"
      }
    }
    

    Catat OPERATION_ID dari output. Anda memerlukan nilai ini untuk mendapatkan ID resource dari kunci yang dibuat.

  2. Temukan kunci Cloud KMS yang terkait dengan handle kunci:

    curl -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X GET https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
    

    Ganti kode berikut:

    • USER_PROJECT: project yang akan ditagih untuk biaya yang terkait dengan permintaan ini.
    • RESOURCE_PROJECT_ID: project ID project resource dalam folder Autokey tempat Anda ingin membuat resource yang dilindungi.
    • LOCATION: lokasi tempat Anda ingin membuat resource yang dilindungi.
    • OPERATION_ID: ID kunci untuk menangani operasi permintaan dari output langkah sebelumnya.

    Outputnya mirip dengan hal berikut ini:

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.KeyHandle",
        "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE",
        "kmsKey": "projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME",
        "resourceTypeSelector": "RESOURCE_TYPE"
      }
    }
    

    Nilai elemen kmsKey dalam output adalah ID resource lengkap kunci yang dibuat oleh Autokey untuk resource ini. Anda dapat menggunakan ID resource ini dengan cara yang sama seperti menggunakan ID resource untuk resource Cloud KMS lainnya.

  3. Buat disk terenkripsi menggunakan perintah gcloud compute disks create, dengan flag --kms-key:

    gcloud compute disks create DISK_NAME \
      --kms-key projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME
    

    Ganti kode berikut:

    • DISK_NAME: nama disk baru.
    • KEY_PROJECT_ID: project ID dari project utama.
    • LOCATION: lokasi tempat Anda ingin membuat resource.
    • KEY_NAME: nama kunci yang ditampilkan dalam output dari langkah sebelumnya.

Menggunakan Kunci Otomatis dengan resource Cloud Storage

Kunci otomatis akan membuat kunci baru di lokasi yang sama dengan bucket. Kunci yang dibuat oleh Autokey akan ditetapkan sebagai kunci default bucket.

Kunci otomatis tidak membuat kunci untuk objek. Secara default, objek yang dibuat di dalam bucket menggunakan kunci default bucket. Jika ingin mengenkripsi objek menggunakan kunci selain kunci default bucket, Anda dapat membuat CMEK secara manual dan menggunakan kunci tersebut saat membuat objek.

Jika ingin mengubah kunci default yang ditetapkan ke bucket, Anda dapat menggunakan CMEK yang ada, termasuk kunci yang dibuat oleh Autokey.

Membuat resource Cloud Storage yang dilindungi

Konsol

  1. Di konsol Google Cloud, buka halaman Create a bucket.

    Buka Membuat bucket

  2. Ikuti petunjuk untuk Membuat bucket baru hingga Anda mencapai halaman Memilih cara melindungi data objek.

  3. Di bagian Pilih cara melindungi data objek, luaskan bagian Enkripsi data, lalu pilih kunci Cloud KMS.

  4. Untuk Key type, pilih Cloud KMS with Autokey, lalu klik Request a new key. Pesan akan menunjukkan kapan kunci Anda berhasil dibuat dan siap digunakan.

  5. Untuk menyelesaikan pembuatan bucket, klik Buat.

Terraform

Contoh Terraform berikut membuat handle kunci dan menggunakan kunci yang ditampilkan untuk melindungi bucket penyimpanan baru:

resource "google_kms_key_handle" "my_key_handle" {
  provider               = google-beta
  project                = "RESOURCE_PROJECT_ID"
  name                   = "KEY_HANDLE"
  location               = "LOCATION"
  resource_type_selector = "storage.googleapis.com/Bucket"
}

resource "google_storage_bucket" "simple_bucket_name" {
  name                        = "BUCKET_NAME"
  location                    = "LOCATION"
  force_destroy               = true
  project                     = "RESOURCE_PROJECT_ID"
  uniform_bucket_level_access = true
  encryption {
    default_kms_key_name      = my_key_handle.kms_key
  }
}

Ganti kode berikut:

  • RESOURCE_PROJECT_ID: project ID project resource dalam folder Autokey tempat Anda ingin membuat resource yang dilindungi.
  • KEY_HANDLE: ID yang akan digunakan untuk tuas kunci.
  • LOCATION: lokasi tempat Anda ingin membuat resource yang dilindungi.
  • BUCKET_NAME: nama bucket baru.

API

  1. Minta kunci Cloud KMS baru dengan membuat KeyHandle:

    curl -H "Content-Type: application/json" \
        -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X POST https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles \
        -d '{"resource_type_selector": "RESOURCE_TYPE"}'
    

    Ganti kode berikut:

    • USER_PROJECT: project yang akan ditagih untuk biaya yang terkait dengan permintaan ini.
    • RESOURCE_PROJECT_ID: project ID project resource dalam folder Autokey tempat Anda ingin membuat resource yang dilindungi.
    • LOCATION: lokasi tempat Anda ingin membuat resource yang dilindungi.
    • RESOURCE_TYPE: jenis resource yang ingin Anda buat—misalnya, storage.googleapis.com/Bucket.

    Outputnya mirip dengan hal berikut ini:

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata"
      }
    }
    

    Catat OPERATION_ID dari output. Anda memerlukan nilai ini untuk mendapatkan ID resource dari kunci yang dibuat.

  2. Temukan kunci Cloud KMS yang terkait dengan handle kunci:

    curl -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X GET https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
    

    Ganti kode berikut:

    • USER_PROJECT: project yang akan ditagih untuk biaya yang terkait dengan permintaan ini.
    • RESOURCE_PROJECT_ID: project ID project resource dalam folder Autokey tempat Anda ingin membuat resource yang dilindungi.
    • LOCATION: lokasi tempat Anda ingin membuat resource yang dilindungi.
    • OPERATION_ID: ID kunci untuk menangani operasi permintaan dari output langkah sebelumnya.

    Outputnya mirip dengan hal berikut ini:

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.KeyHandle",
        "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE",
        "kmsKey": "projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME",
        "resourceTypeSelector": "RESOURCE_TYPE"
      }
    }
    

    Nilai elemen kmsKey dalam output adalah ID resource lengkap dari kunci yang dibuat oleh Autokey untuk resource ini. Anda dapat menggunakan ID resource ini dengan cara yang sama seperti menggunakan ID resource untuk resource Cloud KMS lainnya.

  3. Buat bucket terenkripsi menggunakan perintah gcloud storage buckets create, dengan flag --default-encryption-key:

    gcloud storage buckets create gs://BUCKET_NAME \
        --location=LOCATION \
        --default-encryption-key=projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME
    

    Ganti kode berikut:

    • BUCKET_NAME: nama bucket baru. Nama bucket harus mengikuti persyaratan penamaan bucket.
    • LOCATION: lokasi Anda ingin membuat bucket.
    • KEY_PROJECT_ID: project ID dari project utama.
    • LOCATION: lokasi tempat Anda ingin membuat resource.
    • KEY_NAME: nama kunci yang ditampilkan dalam output dari langkah sebelumnya.

Menggunakan Kunci Otomatis dengan resource BigQuery

Cloud KMS tersedia dalam beberapa edisi BigQuery. Pastikan edisi BigQuery yang Anda gunakan kompatibel dengan Cloud KMS sebelum Anda mencoba menggunakan Autokey untuk melindungi resource BigQuery. Untuk mengetahui informasi selengkapnya tentang edisi BigQuery, lihat Memahami edisi BigQuery.

Untuk setiap set data baru, Kunci Otomatis akan membuat kunci baru, di lokasi yang sama dengan resource itu sendiri, sehingga menjadi kunci default set data.

Kunci otomatis tidak membuat kunci untuk tabel, kueri, tabel sementara, atau model. Secara default, resource ini dilindungi oleh kunci default set data. Jika Anda ingin melindungi resource dalam set data menggunakan kunci selain kunci default set data, Anda dapat membuat CMEK secara manual dan menggunakan kunci tersebut saat membuat resource.

Untuk kueri dan tabel sementara yang tidak ada di dalam set data, gunakan kunci default project. Gunakan kunci default project yang berbeda untuk setiap lokasi di project yang berisi resource BigQuery. Untuk mengetahui informasi selengkapnya mengenai penggunaan kunci default project, lihat Menetapkan kunci default project.

Untuk mengetahui informasi selengkapnya tentang penggunaan CMEK dengan BigQuery, lihat Kunci Cloud KMS yang dikelola pelanggan.

Membuat resource BigQuery yang dilindungi

Konsol

Sebelum mencoba membuat set data BigQuery menggunakan kunci Otomatis, pastikan Anda memiliki izin yang diperlukan. Untuk mengetahui informasi lebih lanjut tentang cara membuat set data, lihat Membuat set data.

  1. Di konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Ikuti petunjuk untuk Membuat set data hingga Anda membuka Advanced options > Encryption.

  3. Di bagian Encryption pilih Cloud KMS key.

  4. Untuk Key type, pilih Cloud KMS with Autokey, lalu klik Request a new key. Pesan akan menunjukkan kapan kunci Anda berhasil dibuat dan siap digunakan.

  5. Untuk menyelesaikan pembuatan set data, klik Buat set data.

Terraform

Contoh Terraform berikut membuat handle kunci dan menggunakan kunci yang ditampilkan untuk melindungi set data baru:

resource "google_kms_key_handle" "my_key_handle" {
  provider               = google-beta
  project                = "RESOURCE_PROJECT_ID"
  name                   = "test-key-handle"
  location               = "LOCATION"
  resource_type_selector = "bigquery.googleapis.com/Dataset"
}

resource "google_bigquery_dataset" "dataset" {
  dataset_id                  = "DATASET_ID"
  friendly_name               = "DATASET_NAME"
  description                 = "DATASET_DESCRIPTION"
  location                    = "LOCATION"
  default_table_expiration_ms = 3600000

  default_encryption_configuration {
    kms_key_name = my_key_handle.kms_key
  }
}

Ganti kode berikut:

  • RESOURCE_PROJECT_ID: project ID project resource dalam folder Autokey tempat Anda ingin membuat resource yang dilindungi.
  • LOCATION: lokasi tempat Anda ingin membuat resource yang dilindungi.
  • DATASET_ID: ID yang akan digunakan untuk set data baru.
  • DATASET_NAME: nama yang mudah digunakan manusia untuk set data baru.
  • DATASET_DESCRIPTION: deskripsi untuk set data baru.

API

  1. Minta kunci Cloud KMS baru dengan membuat KeyHandle:

    curl -H "Content-Type: application/json" \
        -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X POST https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles \
        -d '{"resource_type_selector": "RESOURCE_TYPE"}'
    

    Ganti kode berikut:

    • USER_PROJECT: project yang akan ditagih untuk biaya yang terkait dengan permintaan ini.
    • RESOURCE_PROJECT_ID: project ID project resource dalam folder Autokey tempat Anda ingin membuat resource yang dilindungi.
    • LOCATION: lokasi tempat Anda ingin membuat resource yang dilindungi.
    • RESOURCE_TYPE: jenis resource yang ingin Anda buat—misalnya, bigquery.googleapis.com/Dataset.

    Outputnya mirip dengan hal berikut ini:

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata"
      }
    }
    

    Catat OPERATION_ID dari output. Anda memerlukan nilai ini untuk mendapatkan ID resource dari kunci yang dibuat.

  2. Temukan kunci Cloud KMS yang terkait dengan handle kunci:

    curl -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X GET https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
    

    Ganti kode berikut:

    • USER_PROJECT: project yang akan ditagih untuk biaya yang terkait dengan permintaan ini.
    • RESOURCE_PROJECT_ID: project ID project resource dalam folder Autokey tempat Anda ingin membuat resource yang dilindungi.
    • LOCATION: lokasi tempat Anda ingin membuat resource yang dilindungi.
    • OPERATION_ID: ID kunci untuk menangani operasi permintaan dari output langkah sebelumnya.

    Outputnya mirip dengan hal berikut ini:

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.KeyHandle",
        "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE",
        "kmsKey": "projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME",
        "resourceTypeSelector": "RESOURCE_TYPE"
      }
    }
    

    Nilai elemen kmsKey dalam output adalah ID resource lengkap dari kunci yang dibuat oleh Autokey untuk resource ini. Anda dapat menggunakan ID resource ini dengan cara yang sama seperti menggunakan ID resource untuk resource Cloud KMS lainnya.

  3. Buat set data terenkripsi menggunakan perintah bq mk, dengan tanda --destination_kms_key.

    bq --location=LOCATION mk \
        --dataset \
        --default_kms_key=projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME \
        --default_table_expiration=TABLE_EXPIRATION \
        --description="DATASET_DESCRIPTION" \
        RESOURCE_PROJECT_ID:DATASET_ID
    

    Ganti kode berikut:

    • LOCATION: lokasi tempat Anda ingin membuat set data.
    • KEY_PROJECT_ID: project ID dari project utama.
    • KEY_NAME: nama kunci yang ditampilkan dalam output dari langkah sebelumnya.
    • TABLE_EXPIRATION: masa aktif default untuk tabel baru di set data ini, dalam detik.
    • DATASET_DESCRIPTION: deskripsi untuk set data baru.
    • RESOURCE_PROJECT_ID: project ID project resource dalam folder Autokey tempat Anda ingin membuat resource yang dilindungi.
    • DATASET_ID: ID set data yang Anda buat.

    Untuk mengetahui informasi selengkapnya tentang alat bq, lihat Mempelajari alat command line bq.

Menggunakan Kunci Otomatis dengan resource Secret Manager

Kunci otomatis membuat satu kunci untuk melindungi semua secret dalam project dan lokasi yang sama. Ketika kunci dirotasi, secret baru yang ditambahkan ke project akan menggunakan versi utama kunci yang baru.

Secret Manager hanya kompatibel dengan Autokey Cloud KMS saat membuat resource menggunakan Terraform atau REST API.

Membuat resource Secret Manager yang dilindungi

Terraform

Contoh Terraform berikut membuat handle kunci dan menggunakan kunci yang ditampilkan untuk melindungi secret baru dengan replikasi otomatis:

resource "google_kms_key_handle" "my_key_handle" {
  provider               = google-beta
  project                = "RESOURCE_PROJECT_ID"
  name                   = "test-key-handle"
  location               = "global"
  resource_type_selector = "secretmanager.googleapis.com/Secret"
}

resource "google_secret_manager_secret" "my_secret" {
  secret_id = "SECRET_ID"

  replication {
    auto {
      customer_managed_encryption {
        kms_key_name = my_key_handle.kms_key
      }
    }
  }
}

Ganti kode berikut:

  • RESOURCE_PROJECT_ID: project ID project resource dalam folder Autokey tempat Anda ingin membuat resource yang dilindungi.
  • SECRET_ID: ID yang akan digunakan untuk secret baru.

Jika Anda mencoba membuat handle kunci untuk secret dalam project dan lokasi yang sama dengan handle kunci yang sudah ada, pesan error akan menampilkan detail handle kunci yang ada. Jika ini terjadi, pastikan Anda hanya memiliki satu blok yang membuat tuas kunci. Anda dapat menggunakan kembali tuas kunci menggunakan ID-nya (KEY_HANDLE) untuk membuat secret tambahan yang harus membagikan kunci tersebut.

API

  1. Minta kunci Cloud KMS baru dengan membuat KeyHandle:

    curl -H "Content-Type: application/json" \
        -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X POST https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles \
        -d '{"resource_type_selector": "RESOURCE_TYPE"}'
    

    Ganti kode berikut:

    • USER_PROJECT: project yang akan ditagih untuk biaya yang terkait dengan permintaan ini.
    • RESOURCE_PROJECT_ID: project ID project resource dalam folder Autokey tempat Anda ingin membuat resource yang dilindungi.
    • LOCATION: lokasi tempat Anda ingin membuat resource yang dilindungi.
    • RESOURCE_TYPE: jenis resource yang ingin Anda buat—misalnya, secretmanager.googleapis.com/Secret.

    Outputnya mirip dengan hal berikut ini:

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata"
      }
    }
    

    Catat OPERATION_ID dari output. Anda memerlukan nilai ini untuk mendapatkan ID resource dari kunci yang dibuat.

    Jika Anda mencoba membuat handle kunci untuk secret dalam project dan lokasi yang sama yang sudah memiliki handle kunci, pesan error akan menampilkan detail handle kunci yang ada. Jika demikian, lewati langkah berikutnya dan gunakan ID resource kunci di kolom existingKmsKey untuk melindungi secret baru Anda.

  2. Temukan kunci Cloud KMS yang terkait dengan handle kunci:

    curl -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X GET https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
    

    Ganti kode berikut:

    • USER_PROJECT: project yang akan ditagih untuk biaya yang terkait dengan permintaan ini.
    • RESOURCE_PROJECT_ID: project ID project resource dalam folder Autokey tempat Anda ingin membuat resource yang dilindungi.
    • LOCATION: lokasi tempat Anda ingin membuat resource yang dilindungi.
    • OPERATION_ID: ID kunci untuk menangani operasi permintaan dari output langkah sebelumnya.

    Outputnya mirip dengan hal berikut ini:

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.KeyHandle",
        "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE",
        "kmsKey": "projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME",
        "resourceTypeSelector": "RESOURCE_TYPE"
      }
    }
    

    Nilai elemen kmsKey dalam output adalah ID resource lengkap dari kunci yang dibuat oleh Autokey untuk resource ini. Anda dapat menggunakan ID resource ini dengan cara yang sama seperti menggunakan ID resource untuk resource Cloud KMS lainnya.

  3. Buat secret terenkripsi dengan replikasi otomatis menggunakan perintah gcloud secrets create dan flag --kms-key-name.

    gcloud secrets create "SECRET_ID" \
        --replication-policy "automatic" \
        --kms-key-name "projects/KEY_PROJECT_ID/locations/global/keyRings/autokey/cryptoKeys/KEY_NAME" \
        --project "RESOURCE_PROJECT_ID"
    

    Ganti kode berikut:

    • SECRET_ID: ID yang akan digunakan untuk secret baru.
    • KEY_PROJECT_ID: project ID dari project utama.
    • KEY_NAME: nama kunci yang ditampilkan dalam output dari langkah sebelumnya.
    • RESOURCE_PROJECT_ID: project ID project resource dalam folder Autokey tempat Anda ingin membuat resource yang dilindungi.

Langkah selanjutnya