Mengaktifkan Kunci Otomatis Cloud KMS

Dokumen ini menunjukkan cara mengaktifkan dan mengonfigurasi Autokey Cloud KMS menggunakan konsol Google Cloud , Google Cloud CLI, Cloud KMS API, atau Terraform. Anda dapat mengaktifkan Autokey dengan penyimpanan kunci project khusus untuk folder, atau Anda dapat mengaktifkan Autokey dengan penyimpanan kunci project yang sama untuk project individual atau untuk semua project dalam folder. Untuk mengetahui informasi selengkapnya tentang Autokey, lihat Ringkasan Autokey.

Dokumen ini ditujukan untuk administrator.

Pewarisan konfigurasi kunci otomatis

Saat Anda mengonfigurasi Autokey di folder, folder dan project turunan dalam folder tersebut akan mewarisi konfigurasi Autokey dari folder induknya. Saat mengonfigurasi Autokey di folder atau project turunan, Anda dapat memutuskan apakah akan mewarisi konfigurasi dari resource induk atau membuat konfigurasi Autokey baru untuk resource tersebut. Konfigurasi Autokey yang diterapkan pada resource turunan akan menggantikan konfigurasi folder induk.

Tabel berikut menunjukkan kasus penggunaan konfigurasi Autokey yang didukung:

Jenis resource Konfigurasi Autokey Deskripsi
Organisasi Tidak berlaku Autokey tidak dapat diaktifkan untuk organisasi. Resource turunan dalam organisasi mewarisi resource AutokeyConfig kosong. Di konsol Google Cloud , resource ini menampilkan Status Autokey Tidak diaktifkan. Jika Anda ingin membatasi penggunaan Autokey dalam organisasi atau menonaktifkannya sepenuhnya, Anda dapat menggunakan kebijakan organisasi. Untuk mengetahui informasi selengkapnya, lihat Mengontrol penggunaan Autokey.
Folder DEDICATED_KEY_PROJECT Autokey dengan penyimpanan kunci project khusus diaktifkan untuk project resource dalam folder. Untuk project resource yang mewarisi konfigurasi ini, Autokey membuat kunci di project kunci khusus.
Folder RESOURCE_PROJECT Autokey dengan penyimpanan kunci dalam project yang sama diaktifkan untuk project resource dalam folder. Untuk project resource yang mewarisi konfigurasi ini, Autokey membuat kunci di project yang sama dengan resource yang dilindunginya.
Folder DISABLED Autokey dinonaktifkan dalam folder, tetapi folder dan project turunan masih dapat mengganti konfigurasi ini. Jika Anda ingin membatasi Autokey dalam folder atau menonaktifkannya sepenuhnya, Anda dapat menggunakan kebijakan organisasi. Untuk mengetahui informasi selengkapnya, lihat Mengontrol penggunaan Autokey.
Folder KEY_PROJECT_RESOLUTION_MODE_UNSPECIFIED Folder mewarisi konfigurasi Autokey dari folder atau organisasi induknya.
Project RESOURCE_PROJECT Autokey dengan penyimpanan kunci dalam project yang sama diaktifkan untuk project resource. Untuk resource yang dibuat dalam project ini, Autokey membuat kunci dalam project yang sama.
Project DISABLED Autokey dinonaktifkan untuk project resource. Developer yang membuat resource dalam project ini harus membuat dan menyediakan kunci secara manual jika ingin menggunakan CMEK untuk resource yang mereka buat.
Project KEY_PROJECT_RESOLUTION_MODE_UNSPECIFIED Project mewarisi konfigurasi Autokey dari folder induknya.

Sebelum memulai

Sebelum dapat mengaktifkan Autokey dengan penyimpanan kunci project khusus untuk folder, Anda harus memiliki hal berikut:

  • Resource organisasi yang berisi folder tempat Anda ingin mengaktifkan Autokey. Jika tidak memiliki folder tempat Anda ingin mengaktifkan Autokey, Anda dapat membuat folder resource baru. Mengaktifkan Autokey di folder ini akan mengaktifkan Autokey untuk semua project resource dalam folder tersebut.

  • Jika Anda memiliki project resource yang ingin menggunakan Autokey dengan penyimpanan kunci project khusus, tetapi project tersebut tidak berada di dalam folder tempat Anda akan mengaktifkan Autokey, Anda dapat memindahkan project resource yang ada ke folder baru.

Sebelum dapat mengaktifkan Autokey dengan penyimpanan kunci dalam project yang sama, Anda harus memiliki salah satu hal berikut:

  • Project Google Cloud tempat Anda ingin mengaktifkan Autokey dan tempat izin keyHandles.create tidak diblokir oleh kebijakan penolakan IAM.
  • Folder Google Cloud tempat Anda ingin mengaktifkan Autokey, yang berisi setidaknya satu project dengan izin keyHandles.create yang tidak diblokir oleh kebijakan penolakan IAM.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk mengaktifkan dan mengonfigurasi Autokey, minta administrator untuk memberi Anda peran IAM berikut pada folder, project, atau resource induk:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran bawaan ini berisi izin yang diperlukan untuk mengaktifkan dan mengonfigurasi Autokey. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk mengaktifkan dan mengonfigurasi Autokey:

  • Untuk mengaktifkan Autokey:
    • cloudkms.autokeyConfigs.*
    • serviceusage.services.enable
  • Untuk mengaktifkan Autokey dengan penyimpanan kunci project khusus:
    • resourcemanager.folders.get
    • resourcemanager.folders.getIamPolicy
    • resourcemanager.folders.setIamPolicy
    • billing.resourceAssociations.create
  • Untuk melihat konfigurasi Autokey:
    • cloudkms.folders.showEffectiveAutokeyConfig
    • cloudkms.projects.showEffectiveAutokeyConfig
  • Untuk melihat semua konfigurasi Autokey yang efektif:
    • cloudasset.assets.query
    • serviceusage.services.use

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

Penyiapan Terraform

Bagian ini berisi contoh variabel dan resource Terraform yang merupakan prasyarat untuk contoh Terraform lainnya dalam dokumen ini. Jika Anda tidak menggunakan Terraform untuk membuat atau mengelola konfigurasi Autokey, lewati bagian ini.

Klik di sini untuk menampilkan atau menyembunyikan contoh penyiapan Terraform

Contoh ini menyelesaikan langkah-langkah penyiapan berikut:

  1. Tentukan variabel yang digunakan dalam contoh Terraform berikutnya.
  2. Buat folder resource. Anda dapat melewati langkah ini jika hanya berencana menggunakan penyimpanan kunci dalam project yang sama di setiap project.
  3. Memberikan peran administrator dan pengguna Autokey.
  variable "organization_ID" {
    description = "Your Google Cloud Org ID"
    type        = string
    default     = "ORGANIZATION_ID"
  }

  variable "billing_account" {
    description = "Your Google Cloud Billing Account ID"
    type        = string
    default     = "BILLING_ACCOUNT_ID"
  }

  /* List the users who should have the authority to enable and configure
    Autokey at a folder level */
  variable "autokey_folder_admins" {
    type    = list(string)
    default = [AUTOKEY_ADMIN_USER_IDS]
  }

  /* List the users who should have the authority to protect their resources
    with Autokey */
  variable "autokey_folder_users" {
    type    = list(string)
    default = [AUTOKEY_DEVELOPER_USER_IDS]
  }

  /* List the users who should have the authority to manage crypto operations
    in the Autokey key project */
  variable "autokey_project_kms_admins" {
    type    = list(string)
    default = [KEY_PROJECT_ADMIN_USER_IDS]
  }

  # Create a new folder
  resource "google_folder" "autokey_folder" {
    parent       = "organizations/${var.organization_ID}"
    display_name = "autokey_folder"
  }
  /* To use a folder that already exists, omit this block and instead create a
     variable for the folder ID instead, and then update subsequent resources
     to use the variable. */

  # Set permissions for key admins to use Autokey in this folder
  resource "google_folder_iam_binding" "autokey_folder_admin" {
    folder  = google_folder.autokey_folder.name
    role    = "roles/cloudkms.autokeyAdmin"
    members = var.autokey_folder_admins
  }

  /* Set permissions for users to protect resources with Autokey in
    this folder */
  resource "google_folder_iam_binding" "autokey_folder_users" {
    folder  = google_folder.autokey_folder.name
    role    = "roles/cloudkms.autokeyUser"
    members = var.autokey_folder_users
  }
  

Ganti kode berikut:

  1. BILLING_ACCOUNT_ID: ID akun penagihan Anda. Google Cloud ID akun penagihan adalah nilai alfanumerik 18 karakter yang dipisahkan oleh tanda hubung—misalnya, 010101-F0FFF0-10XX01.
  2. AUTOKEY_ADMIN_USER_IDS: daftar alamat email untuk pengguna yang harus memiliki peran `roles/cloudkms.autokeyAdmin`—misalnya, "Ariel@example.com", "Charlie@example.com".
  3. AUTOKEY_DEVELOPER_USER_IDS: daftar alamat email untuk pengguna yang harus memiliki peran `roles/cloudkms.autokeyUser` —misalnya, "Kalani@example.com", "Mahan@example.com".
  4. KEY_PROJECT_ADMIN_USER_IDS: daftar alamat email untuk pengguna yang harus memiliki peran `roles/cloudkms.admin`—misalnya, "Sasha@example.com", "Nur@example.com".

Menyiapkan Autokey dengan penyimpanan kunci project khusus

Saat menggunakan Autokey dengan penyimpanan kunci project khusus dalam folder, Anda harus memilih satu project kunci untuk berisi semua kunci yang dibuat oleh Autokey dalam folder tersebut. Jika Anda menggunakan penyimpanan kunci project yang sama, Anda tidak memerlukan project kunci khusus; lanjutkan dari Aktifkan Autokey dengan penyimpanan kunci project yang sama.

Sebaiknya buat project kunci baru untuk menyimpan resource Cloud KMS yang dibuat oleh Autokey. Anda harus membuat project utama di dalam resource organisasi Anda. Jika sudah memiliki project kunci yang ingin digunakan untuk kunci yang dibuat oleh Autokey, Anda dapat melewati bagian Buat project kunci dan melanjutkan dari Konfigurasi project kunci Autokey di halaman ini.

Project kunci dapat dibuat di dalam folder yang sama tempat Anda berencana mengaktifkan Autokey. Anda tidak boleh membuat resource lain di dalam project kunci. Jika Anda mencoba membuat resource yang dilindungi oleh Autokey di project kunci, Autokey akan menolak permintaan kunci baru.

Jika Anda mungkin ingin bermigrasi ke Assured Workloads pada masa mendatang, buat project utama di dalam folder yang sama dengan resource yang dilindungi oleh kunci tersebut.

Jika organisasi Anda menggunakan batasan kebijakan organisasi constraints/gcp.restrictCmekCryptoKeyProjects untuk memastikan bahwa semua CMEK berasal dari project kunci yang ditentukan, Anda harus menambahkan project kunci ke daftar project yang diizinkan. Untuk mengetahui informasi selengkapnya tentang kebijakan organisasi CMEK, lihat Kebijakan organisasi CMEK.

Membuat project utama

Konsol

  1. Di konsol Google Cloud , buka halaman Manage resources.

    Buka Kelola resource

  2. Untuk Pilih organisasi, pilih resource organisasi tempat Anda ingin membuat project.
  3. Klik Create project.
  4. Di jendela Project baru yang muncul, masukkan nama project dan pilih akun penagihan. Nama project hanya boleh berisi huruf, angka, tanda kutip tunggal, tanda hubung, spasi, atau tanda seru, serta harus memiliki 4 hingga 30 karakter.
  5. Untuk Location, pilih resource yang ingin Anda jadikan induk untuk project kunci Anda.
  6. Untuk menyelesaikan pembuatan project, klik Buat.

gcloud

  • Membuat sebuah project baru.

    gcloud projects create PROJECT_ID \
        --PARENT_TYPE=PARENT_ID
    

    Ganti kode berikut:

    • PROJECT_ID: ID project yang berisi key ring.
    • PARENT_TYPE: jenis resource tempat Anda ingin membuat project kunci baru. Masukkan organization untuk membuat project kunci baru di organisasi tertentu, atau masukkan folder untuk membuat project kunci baru di folder tertentu.
    • PARENT_ID: ID organisasi atau folder tempat Anda ingin membuat project utama.

REST

  • Membuat sebuah project baru.

    curl "https://cloudresourcemanager.googleapis.com/v3/projects/"
        --request "POST" \
        --header "authorization: Bearer TOKEN" \
        --header "content-type: application/json" \
        --data '{ "projectId": "PROJECT_ID", "name": "PROJECT_NAME", "parent": "PARENT_TYPE/PARENT_ID" }'
    

    Ganti kode berikut:

    • PROJECT_ID: ID yang ingin Anda gunakan untuk project kunci khusus Anda.
    • PROJECT_NAME: nama yang ingin Anda gunakan untuk project kunci khusus Anda.
    • PARENT_TYPE: jenis resource induk tempat Anda ingin membuat project kunci khusus—misalnya, organizations atau folders.
    • PARENT_ID": ID resource dari resource induk tempat Anda ingin membuat project kunci khusus.

Terraform

Contoh Terraform berikut membuat project kunci khusus di folder yang dibuat sebelumnya.

/* Define the project ID to use for the dedicated key project. The project
  ID must be 6 to 30 characters with lowercase letters, digits, hyphens. The
  project ID must start with a letter. Trailing hyphens are prohibited */
variable "key_management_project_ID" {
  description = "Sets the project ID for the dedicated key project. This project will contain the Key Rings and Keys generated by Cloud KMS Autokey"
  type        = string
  default     = "KEY_PROJECT_ID"
}

# Create a key project to store keys created by Autokey
resource "google_project" "key_management_project" {
  project_id      = var.key_management_project_ID
  name            = var.key_management_project_ID
  billing_account = var.billing_account
  folder_id       = google_folder.autokey_folder.name
}

output "project_number" {
  value = google_project.key_management_project.number
}

Ganti KEY_PROJECT_ID dengan ID yang akan digunakan untuk project kunci khusus, misalnya, autokey-key-project.

Menyiapkan hak gadai project

Setelah membuat project Cloud KMS, sebaiknya lindungi project dengan lien (Pratinjau) untuk menghindari penghapusan yang tidak disengaja. Jika lien project diterapkan, project Cloud KMS akan diblokir agar tidak dihapus hingga lien dihapus.

Menyiapkan project kunci khusus

Konsol

  1. Aktifkan Cloud KMS API di project kunci Anda.

    Mengaktifkan API

  2. Jika Anda menggunakan project kunci baru, berikan izin administrator Cloud KMS di project kunci. Ulangi langkah-langkah berikut untuk memberikan peran Admin Cloud KMS kepada Anda dan setiap pengguna administrator Cloud KMS lainnya:

    1. Di konsol Google Cloud , buka halaman IAM.

      Buka IAM

    2. Pilih project kunci.

    3. Klik Berikan Akses, lalu masukkan alamat email pengguna.

    4. Pilih peran Cloud KMS Admin.

    5. Klik Simpan.

gcloud

  1. Aktifkan Cloud KMS API di project kunci Anda:

    gcloud services enable cloudkms.googleapis.com
    
  2. Berikan izin administrator Cloud KMS di project kunci. Ulangi perintah berikut untuk memberikan peran roles/cloudkms.admin kepada diri Anda dan setiap pengguna administrator Cloud KMS lainnya:

    gcloud projects add-iam-policy-binding PROJECT_NUMBER \
        --role=roles/cloudkms.admin \
        --member=user:KEY_ADMIN_EMAIL
    

    Ganti kode berikut:

    • PROJECT_NUMBER: nomor project dari project kunci.
    • KEY_ADMIN_EMAIL: alamat email pengguna yang bertanggung jawab mengelola kunci Cloud KMS.

REST

  1. Aktifkan Cloud KMS API di project kunci Anda:

    curl "https://serviceusage.googleapis.com/v1/projects/PROJECT_ID/services/cloudkms.googleapis.com:enable" \
        --request "POST" \
        --header "authorization: Bearer TOKEN"
    

    Ganti PROJECT_ID dengan ID project kunci khusus Anda.

  2. Dapatkan kebijakan IAM saat ini untuk project kunci khusus.

    curl "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy" \
        --request POST \
        --header "authorization: Bearer TOKEN"
        --header "Content-Type: application/json; charset=utf-8" \
        --data '{"options": {"requestedPolicyVersion": 3}}'
    

    Responsnya berisi kebijakan izin project saat ini.

  3. Ubah kebijakan izin yang ditampilkan untuk menambahkan peran roles/cloudkms.admin bagi setiap pengguna administrator Cloud KMS, termasuk Anda sendiri, menggunakan contoh binding peran berikut sebagai panduan: json { "role": "roles/cloudkms.admin", "members": [ "PRINCIPAL_LIST" ], }

    Ganti PRINCIPAL_LIST dengan daftar utama pengguna yang dipisahkan koma;—misalnya, admin_1@example.com,admin_2@example.com.

    Perubahan ini tidak akan diterapkan hingga Anda menetapkan kebijakan baru.

  4. Tetapkan kebijakan izinkan baru.

    curl "https://cloudresourcemanager.googleapis.com/1/projects/PROJECT_ID:setIamPolicy" \
        --request POST \
        --header "authorization: Bearer TOKEN" \
        --header "Content-Type: application/json; charset=utf-8" \
        --data 'ALLOW_POLICY'
    

    Ganti kode berikut:

    • PROJECT_ID: ID project kunci khusus Anda.
    • ALLOW_POLICY: JSON kebijakan izin yang diperbarui yang Anda buat di langkah sebelumnya, termasuk pemberian peran yang ada dan yang baru saja Anda tambahkan.

Terraform

Contoh Terraform berikut mengaktifkan Cloud KMS API di project kunci khusus dan memberikan peran roles/cloudkms.admin kepada pokok administrator Cloud KMS yang diidentifikasi sebelumnya.

# Enable the Cloud KMS API in the key project
resource "google_project_service" "enable_api" {
  service                    = "cloudkms.googleapis.com"
  project                    = google_project.key_management_project.project_id
  disable_on_destroy         = false
  disable_dependent_services = false
  depends_on                 = [google_project.key_management_project]
}

/* Grant role for Cloud KMS admins to use Autokey in the
   dedicated key project */
resource "google_project_iam_binding" "autokey_project_admin" {
  project    = google_project.key_management_project.project_id
  role       = "roles/cloudkms.admin"
  members    = var.autokey_project_kms_admins
  depends_on = [ google_project.key_management_project ]
}

Mengaktifkan Cloud KMS Autokey di folder resource

Konsol

  1. Di konsol Google Cloud , buka halaman Kontrol pengelolaan kunci.

    Buka Kontrol pengelolaan kunci

  2. Dari pemilih konteks, pilih folder tempat Anda ingin mengaktifkan Autokey dengan penyimpanan kunci project khusus.
  3. Di bagian Autokey, klik Kelola.
  4. Klik Configure.
  5. Untuk Sumber konfigurasi, pilih Konfigurasi untuk folder.
  6. Untuk Configuration, pilih Enable dedicated-project key storage.
  7. Pilih project utama Anda, lalu klik Kirim.

    Pesan mengonfirmasi bahwa Autokey Cloud KMS diaktifkan di folder.

gcloud

  1. Buat file YAML yang berisi AutokeyConfig berikut:

    name: folders/FOLDER_NUMBER/autokeyConfig
    keyProjectResolutionMode: DEDICATED_KEY_PROJECT
    keyProject: projects/PROJECT_ID
    

    Ganti kode berikut:

    • FOLDER_NUMBER: nomor folder tempat Anda ingin mengaktifkan Autokey dengan penyimpanan kunci project khusus.
    • PROJECT_ID: ID project kunci khusus Anda.
  2. Terapkan AutokeyConfig ke folder:

    gcloud kms autokey-config update AUTOKEY_CONFIG_PATH
    

    Ganti AUTOKEY_CONFIG_PATH dengan jalur ke file YAML yang Anda buat di langkah sebelumnya.

REST

Buat AutokeyConfig untuk folder tempat Anda ingin mengaktifkan Autokey dengan penyimpanan kunci project khusus:

curl "https://cloudkms.googleapis.com/v1/folders/FOLDER_ID/autokeyConfig?updateMask=keyProject,keyProjectResolutionMode" \
    --request "PATCH" \
    --header "authorization: Bearer TOKEN" \
    --header "content-type: application/json" \
    --data '{"keyProject": "projects/PROJECT_ID", "keyProjectResolutionMode": "DEDICATED_KEY_PROJECT"}'

Ganti kode berikut:

  • FOLDER_ID: ID folder tempat Anda ingin mengaktifkan Autokey.
  • PROJECT_ID: ID project kunci.

Terraform

/* Enable AutokeyConfig for dedicated-project key storage in the
   folder */
resource "google_kms_autokey_config" "autokey_config" {
  provider    = google-beta
  folder      = google_folder.autokey_folder.folder_id
  key_project = "projects/${google_project.key_management_project.project_id}"
  key_project_resolution_mode = "DEDICATED_KEY_PROJECT"
  /* For folder scope, valid values are DEDICATED_KEY_PROJECT,
     RESOURCE_PROJECT, and DISABLED. With DEDICATED_KEY_PROJECT, define the
    key_project as well. With RESOURCE_PROJECT, omit key_project. Keys will
    be created in the same project as the protected resource. */
}

Menyiapkan agen layanan Cloud KMS

Agen layanan Cloud KMS untuk project kunci membuat kunci dan menerapkan binding kebijakan IAM selama pembuatan resource, atas nama administrator Cloud KMS manusia. Agar dapat membuat dan menetapkan kunci, agen layanan Cloud KMS memerlukan izin administrator Cloud KMS.

gcloud

  1. Buat agen layanan Cloud KMS:

    gcloud beta services identity create --service=cloudkms.googleapis.com \
        --project=PROJECT_NUMBER
    

    Ganti PROJECT_NUMBER dengan nomor project project utama.

    Outputnya mirip dengan hal berikut ini:

    Service identity created: service-PROJECT_NUMBER@gcp-sa-ekms.iam.gserviceaccount.com
    

    Output perintah menunjukkan bahwa akun layanan Cloud EKM (dengan subdomain gcp-sa-ekms) telah dibuat. Namun, perintah ini juga membuat agen layanan Cloud KMS (dengan subdomain gcp-sa-cloudkms), yang merupakan agen layanan yang Anda gunakan nanti dalam petunjuk ini.

  2. Berikan izin administrator Cloud KMS kepada agen layanan:

    gcloud projects add-iam-policy-binding PROJECT_NUMBER \
        --role=roles/cloudkms.admin \
        --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-cloudkms.iam.gserviceaccount.com
    

    Ganti PROJECT_NUMBER dengan nomor project project utama.

Terraform

# Create the Cloud KMS service agent
resource "google_project_service_identity" "KMS_Service_Agent" {
  provider   = google-beta
  service    = "cloudkms.googleapis.com"
  project    = google_project.key_management_project.project_id
  depends_on = [google_project.key_management_project]
}

/* Grant role for the Cloud KMS service agent to use delegated
  Cloud KMS administrator permissions */
resource "google_project_iam_member" "autokey_project_admin" {
  project = google_project.key_management_project.project_id
  role    = "roles/cloudkms.admin"
  member  = "serviceAccount:service-${google_project.key_management_project.number}@gcp-sa-cloudkms.iam.gserviceaccount.com"
}

Mengaktifkan Autokey dengan penyimpanan kunci dalam project yang sama

Saat Anda menggunakan Autokey dengan penyimpanan kunci dalam project yang sama, Autokey akan membuat kunci Anda di dalam project yang sama dengan resource yang dilindunginya. Project yang menggunakan penyimpanan kunci dalam project yang sama dapat berada dalam folder yang menggunakan penyimpanan kunci project khusus. Jika Autokey diaktifkan di project, konfigurasi Autokey level project akan menggantikan konfigurasi Autokey di folder induk.

Untuk mengaktifkan Autokey dengan penyimpanan kunci project yang sama untuk project tertentu, selesaikan langkah-langkah berikut:

Konsol

  1. Di konsol Google Cloud , buka halaman Kontrol pengelolaan kunci.

    Buka Kontrol pengelolaan kunci

  2. Dari pemilih konteks, pilih project tempat Anda ingin mengaktifkan Autokey dengan penyimpanan kunci dalam project yang sama.
  3. Di bagian Autokey, klik Kelola.
  4. Klik Configure.
  5. Untuk Sumber konfigurasi, pilih Konfigurasi untuk project.
  6. Untuk Configuration, pilih Enable same-project key storage.
  7. Klik Kirim.

    Pesan mengonfirmasi bahwa Autokey Cloud KMS diaktifkan di project.

gcloud

  1. Buat file YAML yang berisi AutokeyConfig berikut:

    name: projects/PROJECT_ID/autokeyConfig
    keyProjectResolutionMode: RESOURCE_PROJECT
    keyProject:
    

    Ganti PROJECT_ID dengan ID project tempat Anda ingin mengaktifkan Autokey dengan penyimpanan kunci dalam project yang sama.

  2. Terapkan AutokeyConfig ke project:

    gcloud kms autokey-config update AUTOKEY_CONFIG_PATH
    

    Ganti AUTOKEY_CONFIG_PATH dengan jalur ke file YAML yang Anda buat di langkah sebelumnya.

  3. Aktifkan Cloud KMS API di project:

    gcloud services enable cloudkms.googleapis.com
    

REST

  1. Dengan menggunakan REST API, buat AutokeyConfig untuk project tempat Anda ingin mengaktifkan Autokey dengan penyimpanan kunci dalam project yang sama:

    curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/autokeyConfig?updateMask=keyProjectResolutionMode,keyProject" \
        --request "PATCH" \
        --header "authorization: Bearer TOKEN" \
        --header "content-type: application/json" \
        --data '{"keyProjectResolutionMode": "RESOURCE_PROJECT", "keyProject": ""}'
    

    Ganti PROJECT_ID dengan ID project tempat Anda ingin mengaktifkan Autokey.

  2. Di gcloud CLI, aktifkan Cloud KMS API di project:

    gcloud services enable cloudkms.googleapis.com
    

Terraform

Untuk mengaktifkan Autokey dengan penyimpanan kunci dalam project yang sama di setiap project, gunakan resource autokey_config_project yang mirip dengan berikut ini:

/* To set autokey config for a project */
resource "google_kms_autokey_config" "autokey_config_project" {
  provider = google-beta
  project = "projects/${google_project.key_management_project.project_id}"
  key_project_resolution_mode = "RESOURCE_PROJECT"
  # For project scope, valid values are RESOURCE_PROJECT or DISABLED
}

Untuk mengaktifkan Autokey dengan penyimpanan kunci project yang sama untuk semua project dalam folder, selesaikan langkah-langkah berikut:

Konsol

  1. Di konsol Google Cloud , buka halaman Kontrol pengelolaan kunci.

    Buka Kontrol pengelolaan kunci

  2. Dari pemilih konteks, pilih folder tempat Anda ingin mengaktifkan Autokey dengan penyimpanan kunci dalam project yang sama.
  3. Klik Configure.
  4. Untuk Sumber konfigurasi, pilih Konfigurasi untuk folder.
  5. Untuk Configuration, pilih Enable same-project key storage.
  6. Klik Kirim.

    Pesan mengonfirmasi bahwa Autokey Cloud KMS diaktifkan di folder.

gcloud

  1. Buat file YAML yang berisi AutokeyConfig berikut:

    name: folders/FOLDER_NUMBER/autokeyConfig
    keyProjectResolutionMode: RESOURCE_PROJECT
    keyProject:
    

    Ganti FOLDER_NUMBER dengan jumlah folder tempat Anda ingin mengaktifkan Autokey dengan penyimpanan kunci dalam project yang sama.

  2. Terapkan AutokeyConfig ke folder:

    gcloud kms autokey-config update AUTOKEY_CONFIG_PATH
    

    Ganti AUTOKEY_CONFIG_PATH dengan jalur ke file YAML yang Anda buat di langkah sebelumnya.

REST

  1. Dengan menggunakan REST API, buat AutokeyConfig untuk folder tempat Anda ingin mengaktifkan Autokey dengan penyimpanan kunci project yang sama:

    curl "https://cloudkms.googleapis.com/v1/folders/FOLDER_ID/autokeyConfig?updateMask=keyProjectResolutionMode,keyProject" \
        --request "PATCH" \
        --header "authorization: Bearer TOKEN" \
        --header "content-type: application/json" \
        --data '{"keyProjectResolutionMode": "RESOURCE_PROJECT", "keyProject": ""}'
    

    Ganti FOLDER_ID dengan ID folder tempat Anda ingin mengaktifkan Autokey. Perintah ini mengaktifkan Autokey dengan penyimpanan kunci dalam project yang sama untuk semua project dalam folder.

  2. Di gcloud CLI, aktifkan Cloud KMS API di setiap project tempat Anda ingin menggunakan Autokey dengan penyimpanan kunci dalam project yang sama:

    gcloud services enable cloudkms.googleapis.com
    

    Anda dapat mengaktifkan Cloud KMS API di setiap project sekaligus, atau mengaktifkan API di setiap project sesuai kebutuhan. Developer Anda tidak dapat menggunakan Autokey di project hingga Cloud KMS API diaktifkan untuk project tersebut.

Terraform

Untuk mengaktifkan Autokey dengan penyimpanan kunci project yang sama di semua project dalam folder, gunakan resource folder_config yang mirip dengan berikut ini:

/* Enable AutokeyConfig on a folder */
resource "google_kms_autokey_config" "folder_config" {
  provider    = google-beta
  folder      = google_folder.autokey_folder.name
  key_project_resolution_mode = "RESOURCE_PROJECT"
  /* For folder scope, valid values are DEDICATED_KEY_PROJECT,
     RESOURCE_PROJECT, or DISABLED. With DEDICATED_KEY_PROJECT, define the
     key_project as well. With RESOURCE_PROJECT, omit key_project. Keys will
     be created in the same project as the protected resource. */
}

Menghapus konfigurasi Autokey

Anda dapat menghapus konfigurasi Autokey pada folder atau project untuk kembali menggunakan konfigurasi folder induk.

Konsol

  1. Di konsol Google Cloud , buka halaman Kontrol pengelolaan kunci.

    Buka Kontrol pengelolaan kunci

  2. Dari pemilih konteks, pilih folder atau project tempat Anda ingin menghapus konfigurasi Autokey.
  3. Di bagian Autokey, klik Kelola.
  4. Klik Configure.
  5. Untuk Sumber konfigurasi, pilih Mewarisi.
  6. Klik Kirim.

gcloud

  1. Buat file YAML yang berisi AutokeyConfig berikut:

    name: RESOURCE_TYPE/RESOURCE_ID/autokeyConfig
    keyProjectResolutionMode: KEY_PROJECT_RESOLUTION_MODE_UNSPECIFIED
    keyProject:
    

    Ganti kode berikut:

    • RESOURCE_TYPE: jenis resource tempat Anda ingin menghapus konfigurasi Autokey. Tetapkan ke folders atau projects.
    • RESOURCE_ID: ID folder tempat Anda ingin menghapus konfigurasi Autokey.
  2. Terapkan AutokeyConfig ke folder atau project:

    gcloud kms autokey-config update AUTOKEY_CONFIG_PATH
    

    Ganti AUTOKEY_CONFIG_PATH dengan jalur ke file YAML yang Anda buat di langkah sebelumnya.

REST

Hapus AutokeyConfig untuk folder atau project tempat Anda ingin mengembalikan konfigurasi Autokey yang diwariskan:

curl "https://cloudkms.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/autokeyConfig?updateMask:keyProjectResolutionMode,keyProject" \
    --request "PATCH" \
    --header "authorization: Bearer TOKEN" \
    --header "content-type: application/json" \
    --data '{"keyProjectResolutionMode": "KEY_PROJECT_RESOLUTION_MODE_UNSPECIFIED", "keyProject": ""}'

Ganti kode berikut:

  • RESOURCE_TYPE: jenis resource tempat Anda ingin menonaktifkan Autokey. Tetapkan ke folders atau projects.
  • RESOURCE_ID: ID folder tempat Anda ingin menonaktifkan Autokey dengan penyimpanan kunci project yang sama.

Terraform

# Clear AutokeyConfig for the folder
resource "google_kms_autokey_config" "autokey_config" {
  provider    = google-beta
  folder      = google_folder.autokey_folder.folder_id
  key_project = ""
  key_project_resolution_mode = "KEY_PROJECT_RESOLUTION_MODE_UNSPECIFIED"
}

Melihat konfigurasi Autokey yang efektif

Anda dapat melihat konfigurasi Autokey yang efektif dari folder atau project. Konfigurasi Autokey yang efektif memberi tahu Anda hal berikut:

  • Apakah Autokey diaktifkan di resource yang dipilih.
  • Jika Autokey diaktifkan, apakah resource yang dipilih menggunakan penyimpanan kunci project khusus atau penyimpanan kunci project yang sama.
  • Jika resource yang dipilih menggunakan penyimpanan kunci project khusus, ID resource project kunci khusus.
  • Apakah konfigurasi Autokey ini diwarisi dari folder induk atau dikonfigurasi di resource yang dipilih.

Konsol

  1. Di konsol Google Cloud , buka halaman Kontrol pengelolaan kunci.

    Buka Kontrol pengelolaan kunci

  2. Dari pemilih konteks, pilih folder atau project tempat Anda ingin melihat setelan Autokey.
  3. Di bagian Autokey, klik Kelola.

gcloud

Lihat AutokeyConfig yang efektif:

gcloud kms autokey-config show-effective-config \
    --RESOURCE_TYPE=RESOURCE_ID

Ganti kode berikut:

  • RESOURCE_TYPE: jenis resource tempat Anda ingin melihat konfigurasi Autokey yang efektif. Tetapkan ke folder atau project.
  • RESOURCE_ID: ID resource tempat Anda ingin melihat konfigurasi Autokey yang efektif.

Outputnya mirip dengan hal berikut ini:

keyProject: KEY_PROJECT
keyProjectResolutionMode: KEY_PROJECT_RESOLUTION_MODE
source:
  name: RESOURCE_IDENTIFIER

Output ini mencakup nilai-nilai berikut:

  • KEY_PROJECT: ID resource dari project utama—misalnya, projects/PROJECT_ID. Jika Autokey dinonaktifkan, atau jika resource adalah folder tempat penyimpanan kunci dalam project yang sama diaktifkan, kolom ini akan dihilangkan.
  • KEY_PROJECT_RESOLUTION_MODE: keyProjectResolutionMode resource—misalnya, RESOURCE_PROJECT, DEDICATED_KEY_PROJECT, atau DISABLED. Jika Autokey tidak diaktifkan di resource atau resource induk mana pun, kolom ini akan dihilangkan.
  • RESOURCE_IDENTIFIER: ID resource dari resource tempat AutokeyConfig dikonfigurasi. Hal ini memungkinkan Anda menentukan apakah AutokeyConfig diwarisi dari resource induk atau dikonfigurasi pada resource yang Anda kueri.

REST

Melihat AutokeyConfig efektif untuk folder atau project:

curl "https://cloudkms.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID:showEffectiveAutokeyConfig" \
    --request "GET" \
    --header "authorization: Bearer TOKEN"
  ```

Replace the following:
  • RESOURCE_TYPE: jenis resource tempat Anda ingin melihat konfigurasi Autokey. Tetapkan ke folders atau projects.
  • RESOURCE_ID: ID resource tempat Anda ingin melihat konfigurasi Autokey.

Outputnya mirip dengan hal berikut ini:

{
  "keyProject": KEY_PROJECT,
  "keyProjectResolutionMode": KEY_PROJECT_RESOLUTION_MODE,
  "source": {
    RESOURCE_IDENTIFIER
  }
}

Output ini mencakup nilai-nilai berikut:

  • KEY_PROJECT: ID resource dari project utama—misalnya, projects/PROJECT_ID. Jika Autokey dinonaktifkan, atau jika resource adalah folder tempat penyimpanan kunci dalam project yang sama diaktifkan, kolom ini akan dihilangkan.
  • KEY_PROJECT_RESOLUTION_MODE: keyProjectResolutionMode resource—misalnya, RESOURCE_PROJECT, DEDICATED_KEY_PROJECT, atau DISABLED. Jika Autokey tidak diaktifkan di resource atau resource induk mana pun, kolom ini akan dihilangkan.
  • RESOURCE_IDENTIFIER: ID resource dari resource tempat AutokeyConfig dikonfigurasi. Hal ini memungkinkan Anda menentukan apakah AutokeyConfig diwarisi dari resource induk atau dikonfigurasi pada resource yang Anda kueri.

SQL

Anda dapat menggunakan kueri SQL dengan Inventaris Aset Cloud untuk mengevaluasi konfigurasi Autokey yang efektif untuk semua project dalam folder atau organisasi.

  1. Tetapkan variabel lingkungan bash untuk ID organisasi dan cakupan penelusuran.

    export ORG_ID="ORGANIZATION_ID"
    export TARGET_SCOPE="RESOURCE_TYPE/RESOURCE_ID" 
    

    Ganti kode berikut:

    • ORGANIZATION_ID: ID numerik organisasi Anda.
    • RESOURCE_TYPE: jenis resource tempat Anda ingin melihat konfigurasi Autokey yang efektif. Tetapkan ke organizations untuk melihat konfigurasi semua project di organisasi Anda atau folders untuk melihat konfigurasi semua project dalam folder tertentu.
    • RESOURCE_ID: ID numerik organisasi atau folder tempat Anda ingin melihat konfigurasi Autokey yang efektif.
  2. Gunakan perintah gcloud asset query untuk menjalankan kueri.

    gcloud asset query \
        --organization="${ORG_ID}" \
        --statement="
    WITH ProjectConfigs AS (
      SELECT
        p.name AS project_name,
        ARRAY_AGG(
          STRUCT(
            ancestor AS config_source,
            c.resource.data.state AS state,
            c.resource.data.keyProjectResolutionMode AS resolution_mode,
            c.resource.data.keyProject AS key_project
          )
          ORDER BY offset
          LIMIT 1
        )[SAFE_OFFSET(0)] AS effective_config
      FROM
        STANDARD_METADATA p
      CROSS JOIN
        UNNEST(p.ancestors) AS ancestor WITH OFFSET AS offset
      JOIN
        cloudkms_googleapis_com_AutokeyConfig c
      ON
        ancestor = REGEXP_REPLACE(c.name, r'^//cloudkms\.googleapis\.com/([^/]+/\d+)/autokeyConfig$', r'\1')
      WHERE
        p.assetType = 'cloudresourcemanager.googleapis.com/Project'
      GROUP BY
        p.name
    )
    SELECT
      REPLACE(r.name, '//cloudresourcemanager.googleapis.com/', '') AS project_name,
      p.resource.data.projectId AS project_id,
      COALESCE(rc.effective_config.config_source, 'No Autokey') AS effective_config_source,
      rc.effective_config.state AS autokey_config_state,
      rc.effective_config.resolution_mode AS resolution_mode,
      CASE 
        WHEN rc.effective_config.resolution_mode = 'RESOURCE_PROJECT' THEN p.resource.data.projectId
        ELSE COALESCE(REPLACE(rc.effective_config.key_project, 'projects/', ''), 'No Key Project')
      END AS key_project
    FROM
      STANDARD_METADATA r
    LEFT JOIN
      ProjectConfigs rc
    ON
      r.name = rc.project_name
    LEFT JOIN
      cloudresourcemanager_googleapis_com_Project p
    ON
      r.name = p.name
    WHERE
      r.assetType = 'cloudresourcemanager.googleapis.com/Project'
      AND '${TARGET_SCOPE}' IN UNNEST(r.ancestors)
    "
    

    Outputnya mencakup kolom berikut:

    • project_number: ID resource numerik lengkap setiap project—misalnya, projects/PROJECT_NUMBER.
    • project_id: ID setiap project—misalnya, PROJECT_ID.
    • effective_config_source: ID resource dari resource tempat konfigurasi Autokey project ditetapkan—misalnya, folders/FOLDER_NUMBER jika konfigurasi diwarisi dari folder induk atau projects/PROJECT_NUMBER jika konfigurasi ditetapkan di project. Jika project tidak memiliki atau mewarisi AutokeyConfig, kolom ini akan menampilkan No Autokey.
    • autokey_config_state: menunjukkan apakah konfigurasi Autokey ACTIVE di folder, meskipun konfigurasi tersebut DISABLED. Jika project tidak memiliki atau mewarisi AutokeyConfig, kolom ini kosong.
    • resolution_mode: mode penyelesaian project utama dari konfigurasi Autokey yang efektif di project.
    • key_project: menunjukkan tempat Autokey membuat kunci untuk resource dalam project—misalnya, projects/KEY_PROJECT_ID saat project menggunakan penyimpanan kunci khusus project atau RESOURCE_PROJECT_ID saat project menggunakan penyimpanan kunci project yang sama. Jika Autokey tidak diaktifkan dalam project, kolom ini akan menampilkan No key project.

Menonaktifkan Autokey

Peran yang sama yang dapat mengaktifkan Autokey juga dapat menonaktifkannya. Untuk menonaktifkan Autokey, Anda dapat menghapus AutokeyConfig atau menyetel feedbackKeyProjectResolutionMode ke DISABLED. Anda dapat menonaktifkan Autokey di folder atau project. Anda juga dapat menonaktifkan Autokey untuk setiap project dalam folder tempat Autokey diaktifkan.

Setelah Autokey dinonaktifkan untuk folder atau project, agen layanan Cloud KMS tidak dapat lagi membuat kunci untuk developer saat mereka membuat resource di folder atau project tersebut.

Jika Anda ingin menonaktifkan Autokey sepenuhnya, sebaiknya Anda juga menghapus binding IAM untuk peran roles/cloudkms.autokeyAdmin dan roles/cloudkms.autokeyUser.

Menonaktifkan Autokey tidak akan memengaruhi kunci yang ada di project kunci. Anda dapat terus menggunakan kunci ini untuk melindungi resource Anda.

Menonaktifkan Autokey untuk folder atau project

Konsol

  1. Di konsol Google Cloud , buka halaman Kontrol pengelolaan kunci.

    Buka Kontrol pengelolaan kunci

  2. Dari pemilih konteks, pilih folder atau project tempat Anda ingin menonaktifkan Autokey.
  3. Di bagian Autokey, klik Kelola.
  4. Klik Configure.
  5. Untuk Sumber konfigurasi, pilih Konfigurasi untuk folder atau Konfigurasi untuk project.
  6. Untuk Configuration, pilih Disable autokey for folder atau Disable autokey for project.
  7. Klik Kirim.

    Pesan akan muncul untuk meminta Anda mengonfirmasi bahwa Anda ingin menonaktifkan Autokey.

  8. Untuk menonaktifkan Autokey, klik Konfirmasi.

    Pesan akan mengonfirmasi bahwa Kunci Otomatis Cloud KMS dinonaktifkan.

gcloud

  1. Buat file YAML yang berisi AutokeyConfig berikut:

    name: RESOURCE_TYPE/RESOURCE_ID/autokeyConfig
    keyProjectResolutionMode: DISABLED
    keyProject:
    

    Ganti kode berikut:

    • RESOURCE_TYPE: jenis resource tempat Anda ingin menonaktifkan Autokey. Tetapkan ke folders atau projects.
    • RESOURCE_ID: ID folder tempat Anda ingin menonaktifkan Autokey dengan penyimpanan kunci project yang sama.
  2. Terapkan AutokeyConfig ke folder atau project:

    gcloud kms autokey-config update AUTOKEY_CONFIG_PATH
    

    Ganti AUTOKEY_CONFIG_PATH dengan jalur ke file YAML yang Anda buat di langkah sebelumnya.

REST

Perbarui AutokeyConfig untuk folder atau project tempat Anda ingin menonaktifkan Autokey:

curl "https://cloudkms.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/autokeyConfig?updateMask:keyProjectResolutionMode,keyProject" \
    --request "PATCH" \
    --header "authorization: Bearer TOKEN" \
    --header "content-type: application/json" \
    --data '{"keyProjectResolutionMode": "DISABLED", "keyProject": ""}'

Ganti kode berikut:

  • RESOURCE_TYPE: jenis resource tempat Anda ingin menonaktifkan Autokey. Tetapkan ke folders atau projects.
  • RESOURCE_ID: ID folder tempat Anda ingin menonaktifkan Autokey dengan penyimpanan kunci project yang sama.

Terraform

# Clear AutokeyConfig for the folder
resource "google_kms_autokey_config" "autokey_config" {
  provider    = google-beta
  folder      = google_folder.autokey_folder.folder_id
  key_project = ""
  key_project_resolution_mode = "DISABLED"
}

Mencabut peran Autokey

Menonaktifkan Autokey dengan memperbarui AutokeyConfig akan mencegah agen layanan Cloud KMS menyediakan kunci baru di project atau folder yang terpengaruh. Namun, jika Anda ingin menonaktifkan Autokey sepenuhnya, sebaiknya Anda juga menghapus binding IAM untuk peran roles/cloudkms.autokeyAdmin dan roles/cloudkms.autokeyUser.

  1. Opsional: Mencabut peran roles/cloudkms.autokeyAdmin:

    gcloud resource-manager folders remove-iam-policy-binding \
        FOLDER_ID --role=roles/cloudkms.autokeyAdmin \
        --member=user:USER_EMAIL
    

    Ganti kode berikut:

    • FOLDER_ID: ID folder tempat Anda menonaktifkan Autokey.
    • USER_EMAIL: alamat email pengguna yang izinnya untuk mengelola Autokey ingin Anda batalkan.
  2. Opsional: Batalkan peran roles/cloudkms.autokeyUser di tingkat folder:

    gcloud resource-manager folders remove-iam-policy-binding \
        FOLDER_ID --role=roles/cloudkms.autokeyUser \
        --member=user:USER_EMAIL
    

    Ganti kode berikut:

    • FOLDER_ID: ID folder tempat Anda menonaktifkan Autokey.
    • USER_EMAIL: alamat email pengguna yang ingin Anda batalkan izinnya untuk menggunakan Autokey.
  3. Opsional: Mencabut peran roles/cloudkms.autokeyUser di tingkat project:

    gcloud projects remove-iam-policy-binding \
        RESOURCE_PROJECT_NUMBER \
        --role=roles/cloudkms.autokeyUser \
        --member=user:USER_EMAIL
    

    Ganti kode berikut:

    • RESOURCE_PROJECT_NUMBER: nomor project dari project resource dalam folder tempat Anda menonaktifkan Autokey.
    • USER_EMAIL: alamat email pengguna yang ingin Anda batalkan izinnya untuk menggunakan Autokey.
  4. Opsional: Jika Anda tidak berencana untuk terus menggunakan project kunci untuk Autokey bagi folder lain, batalkan peran roles/cloudkms.admin untuk agen layanan Cloud KMS:

    gcloud projects remove-iam-policy-binding \
        KEY_PROJECT_NUMBER \
        --role=roles/cloudkms.admin \
        --member=serviceAccount:service-KEY_PROJECT_NUMBER@gcp-sa-cloudkms.iam.gserviceaccount.com
    

    Ganti KEY_PROJECT_NUMBER dengan ID numerik project kunci.

  5. Opsional: Jika Anda tidak berencana untuk terus menggunakan kunci yang dibuat di dalam project kunci, batalkan peran roles/cloudkms.admin untuk administrator Cloud KMS:

    gcloud projects remove-iam-policy-binding \
        KEY_PROJECT_NUMBER \
        --role=roles/cloudkms.admin \
        --member=user:KEY_ADMIN_EMAIL
    

    Ganti kode berikut:

    • KEY_PROJECT_NUMBER: nomor project dari project kunci.
    • KEY_ADMIN_EMAIL: alamat email pengguna yang izinnya untuk mengonfigurasi Autokey ingin Anda batalkan.

Langkah berikutnya