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.createtidak diblokir oleh kebijakan penolakan IAM. - Folder Google Cloud tempat Anda ingin mengaktifkan Autokey, yang
berisi setidaknya satu project dengan izin
keyHandles.createyang 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 mengaktifkan Autokey:
- Admin Kunci Otomatis Cloud KMS (
roles/cloudkms.autokeyAdmin) - Service Usage Admin (
roles/serviceusage.serviceUsageAdmin)
- Admin Kunci Otomatis Cloud KMS (
-
Untuk mengaktifkan Autokey dengan penyimpanan kunci project khusus:
- Folder IAM Admin (
roles/resourcemanager.folderIamAdmin) - Pengguna Akun Penagihan (
roles/billing.user)
- Folder IAM Admin (
-
Untuk melihat konfigurasi Autokey:
Cloud KMS Viewer (
roles/cloudkms.viewer) -
Untuk melihat semua konfigurasi Autokey yang efektif:
- Cloud Asset Viewer (
roles/cloudasset.viewer) - di organisasi - Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer)
- Cloud Asset Viewer (
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:
- Tentukan variabel yang digunakan dalam contoh Terraform berikutnya.
- Buat folder resource. Anda dapat melewati langkah ini jika hanya berencana menggunakan penyimpanan kunci dalam project yang sama di setiap project.
- 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:
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.AUTOKEY_ADMIN_USER_IDS: daftar alamat email untuk pengguna yang harus memiliki peran `roles/cloudkms.autokeyAdmin`—misalnya,"Ariel@example.com", "Charlie@example.com".AUTOKEY_DEVELOPER_USER_IDS: daftar alamat email untuk pengguna yang harus memiliki peran `roles/cloudkms.autokeyUser` —misalnya,"Kalani@example.com", "Mahan@example.com".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
-
Di konsol Google Cloud , buka halaman Manage resources.
- Untuk Pilih organisasi, pilih resource organisasi tempat Anda ingin membuat project.
- Klik Create project.
- 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.
- Untuk Location, pilih resource yang ingin Anda jadikan induk untuk project kunci Anda.
- Untuk menyelesaikan pembuatan project, klik Buat.
gcloud
Membuat sebuah project baru.
gcloud projects create PROJECT_ID \ --PARENT_TYPE=PARENT_IDGanti kode berikut:
PROJECT_ID: ID project yang berisi key ring.PARENT_TYPE: jenis resource tempat Anda ingin membuat project kunci baru. Masukkanorganizationuntuk membuat project kunci baru di organisasi tertentu, atau masukkanfolderuntuk 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,organizationsataufolders.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
Aktifkan Cloud KMS API di project kunci Anda.
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:
Di konsol Google Cloud , buka halaman IAM.
Pilih project kunci.
Klik Berikan Akses, lalu masukkan alamat email pengguna.
Pilih peran Cloud KMS Admin.
Klik Simpan.
gcloud
Aktifkan Cloud KMS API di project kunci Anda:
gcloud services enable cloudkms.googleapis.comBerikan izin administrator Cloud KMS di project kunci. Ulangi perintah berikut untuk memberikan peran
roles/cloudkms.adminkepada 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_EMAILGanti kode berikut:
PROJECT_NUMBER: nomor project dari project kunci.KEY_ADMIN_EMAIL: alamat email pengguna yang bertanggung jawab mengelola kunci Cloud KMS.
REST
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_IDdengan ID project kunci khusus Anda.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.
Ubah kebijakan izin yang ditampilkan untuk menambahkan peran
roles/cloudkms.adminbagi 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_LISTdengan 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.
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
-
Di konsol Google Cloud , buka halaman Kontrol pengelolaan kunci.
- Dari pemilih konteks, pilih folder tempat Anda ingin mengaktifkan Autokey dengan penyimpanan kunci project khusus.
- Di bagian Autokey, klik Kelola.
- Klik Configure.
- Untuk Sumber konfigurasi, pilih Konfigurasi untuk folder.
- Untuk Configuration, pilih Enable dedicated-project key storage.
Pilih project utama Anda, lalu klik Kirim.
Pesan mengonfirmasi bahwa Autokey Cloud KMS diaktifkan di folder.
gcloud
Buat file YAML yang berisi
AutokeyConfigberikut:name: folders/FOLDER_NUMBER/autokeyConfig keyProjectResolutionMode: DEDICATED_KEY_PROJECT keyProject: projects/PROJECT_IDGanti kode berikut:
FOLDER_NUMBER: nomor folder tempat Anda ingin mengaktifkan Autokey dengan penyimpanan kunci project khusus.PROJECT_ID: ID project kunci khusus Anda.
Terapkan
AutokeyConfigke folder:gcloud kms autokey-config update AUTOKEY_CONFIG_PATHGanti 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
Buat agen layanan Cloud KMS:
gcloud beta services identity create --service=cloudkms.googleapis.com \ --project=PROJECT_NUMBERGanti
PROJECT_NUMBERdengan nomor project project utama.Outputnya mirip dengan hal berikut ini:
Service identity created: service-PROJECT_NUMBER@gcp-sa-ekms.iam.gserviceaccount.comOutput perintah menunjukkan bahwa akun layanan Cloud EKM (dengan subdomain
gcp-sa-ekms) telah dibuat. Namun, perintah ini juga membuat agen layanan Cloud KMS (dengan subdomaingcp-sa-cloudkms), yang merupakan agen layanan yang Anda gunakan nanti dalam petunjuk ini.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.comGanti
PROJECT_NUMBERdengan 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
-
Di konsol Google Cloud , buka halaman Kontrol pengelolaan kunci.
- Dari pemilih konteks, pilih project tempat Anda ingin mengaktifkan Autokey dengan penyimpanan kunci dalam project yang sama.
- Di bagian Autokey, klik Kelola.
- Klik Configure.
- Untuk Sumber konfigurasi, pilih Konfigurasi untuk project.
- Untuk Configuration, pilih Enable same-project key storage.
Klik Kirim.
Pesan mengonfirmasi bahwa Autokey Cloud KMS diaktifkan di project.
gcloud
Buat file YAML yang berisi
AutokeyConfigberikut:name: projects/PROJECT_ID/autokeyConfig keyProjectResolutionMode: RESOURCE_PROJECT keyProject:Ganti
PROJECT_IDdengan ID project tempat Anda ingin mengaktifkan Autokey dengan penyimpanan kunci dalam project yang sama.Terapkan
AutokeyConfigke project:gcloud kms autokey-config update AUTOKEY_CONFIG_PATHGanti AUTOKEY_CONFIG_PATH dengan jalur ke file YAML yang Anda buat di langkah sebelumnya.
Aktifkan Cloud KMS API di project:
gcloud services enable cloudkms.googleapis.com
REST
Dengan menggunakan REST API, buat
AutokeyConfiguntuk 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_IDdengan ID project tempat Anda ingin mengaktifkan Autokey.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
-
Di konsol Google Cloud , buka halaman Kontrol pengelolaan kunci.
- Dari pemilih konteks, pilih folder tempat Anda ingin mengaktifkan Autokey dengan penyimpanan kunci dalam project yang sama.
- Klik Configure.
- Untuk Sumber konfigurasi, pilih Konfigurasi untuk folder.
- Untuk Configuration, pilih Enable same-project key storage.
Klik Kirim.
Pesan mengonfirmasi bahwa Autokey Cloud KMS diaktifkan di folder.
gcloud
Buat file YAML yang berisi
AutokeyConfigberikut:name: folders/FOLDER_NUMBER/autokeyConfig keyProjectResolutionMode: RESOURCE_PROJECT keyProject:Ganti
FOLDER_NUMBERdengan jumlah folder tempat Anda ingin mengaktifkan Autokey dengan penyimpanan kunci dalam project yang sama.Terapkan
AutokeyConfigke folder:gcloud kms autokey-config update AUTOKEY_CONFIG_PATHGanti AUTOKEY_CONFIG_PATH dengan jalur ke file YAML yang Anda buat di langkah sebelumnya.
REST
Dengan menggunakan REST API, buat
AutokeyConfiguntuk 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_IDdengan ID folder tempat Anda ingin mengaktifkan Autokey. Perintah ini mengaktifkan Autokey dengan penyimpanan kunci dalam project yang sama untuk semua project dalam folder.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.comAnda 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
-
Di konsol Google Cloud , buka halaman Kontrol pengelolaan kunci.
- Dari pemilih konteks, pilih folder atau project tempat Anda ingin menghapus konfigurasi Autokey.
- Di bagian Autokey, klik Kelola.
- Klik Configure.
- Untuk Sumber konfigurasi, pilih Mewarisi.
- Klik Kirim.
gcloud
Buat file YAML yang berisi
AutokeyConfigberikut: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 kefoldersatauprojects.RESOURCE_ID: ID folder tempat Anda ingin menghapus konfigurasi Autokey.
Terapkan
AutokeyConfigke folder atau project:gcloud kms autokey-config update AUTOKEY_CONFIG_PATHGanti 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 kefoldersatauprojects.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
-
Di konsol Google Cloud , buka halaman Kontrol pengelolaan kunci.
- Dari pemilih konteks, pilih folder atau project tempat Anda ingin melihat setelan Autokey.
- 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 kefolderatauproject.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:keyProjectResolutionModeresource—misalnya,RESOURCE_PROJECT,DEDICATED_KEY_PROJECT, atauDISABLED. Jika Autokey tidak diaktifkan di resource atau resource induk mana pun, kolom ini akan dihilangkan.RESOURCE_IDENTIFIER: ID resource dari resource tempatAutokeyConfigdikonfigurasi. Hal ini memungkinkan Anda menentukan apakahAutokeyConfigdiwarisi 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 kefoldersatauprojects.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:keyProjectResolutionModeresource—misalnya,RESOURCE_PROJECT,DEDICATED_KEY_PROJECT, atauDISABLED. Jika Autokey tidak diaktifkan di resource atau resource induk mana pun, kolom ini akan dihilangkan.RESOURCE_IDENTIFIER: ID resource dari resource tempatAutokeyConfigdikonfigurasi. Hal ini memungkinkan Anda menentukan apakahAutokeyConfigdiwarisi 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.
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 keorganizationsuntuk melihat konfigurasi semua project di organisasi Anda ataufoldersuntuk melihat konfigurasi semua project dalam folder tertentu.RESOURCE_ID: ID numerik organisasi atau folder tempat Anda ingin melihat konfigurasi Autokey yang efektif.
Gunakan perintah
gcloud asset queryuntuk 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_NUMBERjika konfigurasi diwarisi dari folder induk atauprojects/PROJECT_NUMBERjika konfigurasi ditetapkan di project. Jika project tidak memiliki atau mewarisiAutokeyConfig, kolom ini akan menampilkanNo Autokey.autokey_config_state: menunjukkan apakah konfigurasi AutokeyACTIVEdi folder, meskipun konfigurasi tersebutDISABLED. Jika project tidak memiliki atau mewarisiAutokeyConfig, 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_IDsaat project menggunakan penyimpanan kunci khusus project atauRESOURCE_PROJECT_IDsaat project menggunakan penyimpanan kunci project yang sama. Jika Autokey tidak diaktifkan dalam project, kolom ini akan menampilkanNo 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
-
Di konsol Google Cloud , buka halaman Kontrol pengelolaan kunci.
- Dari pemilih konteks, pilih folder atau project tempat Anda ingin menonaktifkan Autokey.
- Di bagian Autokey, klik Kelola.
- Klik Configure.
- Untuk Sumber konfigurasi, pilih Konfigurasi untuk folder atau Konfigurasi untuk project.
- Untuk Configuration, pilih Disable autokey for folder atau Disable autokey for project.
Klik Kirim.
Pesan akan muncul untuk meminta Anda mengonfirmasi bahwa Anda ingin menonaktifkan Autokey.
Untuk menonaktifkan Autokey, klik Konfirmasi.
Pesan akan mengonfirmasi bahwa Kunci Otomatis Cloud KMS dinonaktifkan.
gcloud
Buat file YAML yang berisi
AutokeyConfigberikut:name: RESOURCE_TYPE/RESOURCE_ID/autokeyConfig keyProjectResolutionMode: DISABLED keyProject:Ganti kode berikut:
RESOURCE_TYPE: jenis resource tempat Anda ingin menonaktifkan Autokey. Tetapkan kefoldersatauprojects.RESOURCE_ID: ID folder tempat Anda ingin menonaktifkan Autokey dengan penyimpanan kunci project yang sama.
Terapkan
AutokeyConfigke folder atau project:gcloud kms autokey-config update AUTOKEY_CONFIG_PATHGanti 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 kefoldersatauprojects.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.
Opsional: Mencabut peran
roles/cloudkms.autokeyAdmin:gcloud resource-manager folders remove-iam-policy-binding \ FOLDER_ID --role=roles/cloudkms.autokeyAdmin \ --member=user:USER_EMAILGanti kode berikut:
FOLDER_ID: ID folder tempat Anda menonaktifkan Autokey.USER_EMAIL: alamat email pengguna yang izinnya untuk mengelola Autokey ingin Anda batalkan.
Opsional: Batalkan peran
roles/cloudkms.autokeyUserdi tingkat folder:gcloud resource-manager folders remove-iam-policy-binding \ FOLDER_ID --role=roles/cloudkms.autokeyUser \ --member=user:USER_EMAILGanti kode berikut:
FOLDER_ID: ID folder tempat Anda menonaktifkan Autokey.USER_EMAIL: alamat email pengguna yang ingin Anda batalkan izinnya untuk menggunakan Autokey.
Opsional: Mencabut peran
roles/cloudkms.autokeyUserdi tingkat project:gcloud projects remove-iam-policy-binding \ RESOURCE_PROJECT_NUMBER \ --role=roles/cloudkms.autokeyUser \ --member=user:USER_EMAILGanti 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.
Opsional: Jika Anda tidak berencana untuk terus menggunakan project kunci untuk Autokey bagi folder lain, batalkan peran
roles/cloudkms.adminuntuk 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.comGanti
KEY_PROJECT_NUMBERdengan ID numerik project kunci.Opsional: Jika Anda tidak berencana untuk terus menggunakan kunci yang dibuat di dalam project kunci, batalkan peran
roles/cloudkms.adminuntuk administrator Cloud KMS:gcloud projects remove-iam-policy-binding \ KEY_PROJECT_NUMBER \ --role=roles/cloudkms.admin \ --member=user:KEY_ADMIN_EMAILGanti 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
- Pelajari lebih lanjut kapan harus menggunakan Autokey.
- Pelajari lebih lanjut cara kerja Autokey.
- Pelajari cara Mengontrol penggunaan Autokey.
- Developer Autokey Anda kini dapat membuat resource yang dilindungi menggunakan Autokey.