Halaman ini menunjukkan cara mengaktifkan dan mengonfigurasi Kunci Otomatis Cloud KMS di folder resource. Untuk mengetahui informasi selengkapnya tentang Kunci otomatis, lihat Ringkasan tombol otomatis. Langkah-langkah di halaman ini harus diselesaikan oleh administrator keamanan.
Sebelum memulai
Sebelum dapat mengaktifkan Kunci Otomatis Cloud KMS, Anda harus memiliki hal-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 memiliki project resource tempat Anda ingin menggunakan Kunci otomatis, tetapi tidak berada di dalam folder tempat Anda akan mengaktifkan Kunci Otomatis, Anda dapat memindahkan project resource yang ada ke folder baru.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan dalam mengaktifkan dan mengonfigurasi Kunci Otomatis, minta administrator untuk memberi Anda peran IAM berikut di organisasi atau folder:
-
Admin Kunci Otomatis Cloud KMS (
roles/cloudkms.autokeyAdmin
) -
Admin IAM Folder (
roles/resourcemanager.folderIamAdmin
) -
Pengguna Akun Penagihan (
roles/billing.user
)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.
Peran bawaan ini berisi izin yang diperlukan untuk mengaktifkan dan mengonfigurasi Kunci otomatis. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk mengaktifkan dan mengonfigurasi Autokey:
-
cloudkms.autokeyConfigs.*
-
cloudkms.projects.showEffectiveAutokeyConfig
-
resourcemanager.folders.get
-
resourcemanager.folders.getIamPolicy
-
resourcemanager.folders.setIamPolicy
-
billing.resourceAssociations.create
Anda mung juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaanlainnya.
Tentukan cara mengaktifkan Kunci Otomatis
Anda dapat mengaktifkan Autokey sebagai bagian dari strategi infrastruktur sebagai kode menggunakan Terraform untuk membuat perubahan konfigurasi yang diperlukan. Jika Anda ingin menggunakan Terraform untuk mengaktifkan Autokey, lihat Mengaktifkan Kunci Otomatis menggunakan Terraform di halaman ini. Jika Anda tidak ingin menggunakan Terraform, mulailah dengan mengikuti petunjuk di bagian berikutnya.
Menyiapkan project kunci
Sebaiknya buat project kunci baru untuk menampung resource Cloud KMS yang dibuat oleh Kunci otomatis. Anda harus membuat project kunci di dalam resource organisasi. Jika sudah memiliki project kunci yang ingin digunakan untuk kunci yang dibuat oleh Kunci otomatis, Anda dapat melewati bagian Membuat project kunci dan melanjutkan dari Mengonfigurasi project kunci Otomatis di halaman ini.
Project kunci dapat dibuat di dalam folder yang sama tempat Anda berencana untuk mengaktifkan Autokey. Anda tidak boleh membuat resource lain di dalam project kunci. Jika Anda mencoba membuat resource yang dilindungi oleh Autokey dalam project kunci, Kunci otomatis akan menolak permintaan kunci baru.
Jika Anda mungkin ingin bermigrasi ke Assured Workloads di masa mendatang, buat project kunci 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 utama 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
- Pada Konsol Google Cloud, buka halaman Kelola resource
- Untuk Select organization, pilih resource organisasi tempat Anda ingin membuat project.
- Klik Create project.
- Di jendela New project 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, dan harus terdiri dari 4 hingga 30 karakter.
- Untuk Location, pilih resource yang ingin Anda jadikan induk untuk project kunci.
- Untuk menyelesaikan pembuatan project, klik Create.
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. Masukkanorganization
untuk membuat project kunci baru di bawah organisasi tertentu, atau masukkanfolder
untuk membuat project kunci baru di folder tertentu.PARENT_ID
: ID organisasi atau folder tempat Anda ingin membuat project kunci.
Menyiapkan project kunci Autokey
Konsol
Aktifkan Cloud KMS API di project kunci Anda.
Jika Anda menggunakan project kunci baru, berikan izin administrator Cloud KMS pada project kunci tersebut kepada pengguna administrator Cloud KMS Anda:
Di konsol Google Cloud, buka halaman IAM.
Pilih project utama.
Klik
Grant Access, lalu masukkan alamat email pengguna.Pilih peran Cloud KMS Admin.
Klik Simpan.
gcloud
Aktifkan Cloud KMS API pada project kunci Anda:
gcloud services enable cloudkms.googleapis.com
Berikan izin administrator Cloud KMS pada project kunci ke pengguna administrator Cloud KMS:
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 untuk mengelola kunci Cloud KMS.
Mengaktifkan Kunci Otomatis Cloud KMS di folder resource
Konsol
Di konsol Google Cloud, buka halaman KMS controls.
Dari pemilih konteks, pilih folder tempat Anda ingin mengaktifkan Autokey.
Klik Enable.
Pilih project kunci Anda, lalu klik Submit.
Sebuah pesan mengonfirmasi bahwa Kunci Otomatis Cloud KMS diaktifkan pada folder tersebut.
API
Buat AutokeyConfig
untuk folder tempat Anda ingin mengaktifkan
Autokey:
curl "https://cloudkms.googleapis.com/v1/folders/FOLDER_ID/autokeyConfig?updateMask=keyProject" \
--request "PATCH" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{"key_project": "projects/PROJECT_ID"}'
Ganti kode berikut:
FOLDER_ID
: ID folder tempat Anda ingin mengaktifkan Autokey.PROJECT_ID
: ID project kunci.
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.
Buat agen layanan Cloud KMS:
gcloud beta services identity create --service=cloudkms.googleapis.com \ --project=PROJECT_NUMBER
Ganti
PROJECT_NUMBER
dengan nomor project dari project kunci.Berikan izin administrator Cloud KMS ke 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 dari project kunci.
Berikan peran pengguna Kunci otomatis
Sebelum developer dapat menggunakan Kunci otomatis, Anda harus memberi mereka peran yang diperlukan. Anda dapat memberikan peran di level folder atau level project. Peran ini memungkinkan developer untuk meminta kunci dari agen layanan Cloud KMS saat membuat resource di folder atau project tersebut.
Pilih salah satu atau kedua langkah berikut:
Berikan peran
roles/cloudkms.autokeyUser
di tingkat folder:gcloud resource-manager folders add-iam-policy-binding \ FOLDER_ID --role=roles/cloudkms.autokeyUser \ --member=user:USER_EMAIL
Ganti kode berikut:
FOLDER_ID
: ID folder tempat Anda ingin mengaktifkan Kunci Otomatis.USER_EMAIL
: alamat email pengguna yang ingin Anda berikan izin untuk menggunakan Kunci Otomatis.
Berikan peran
roles/cloudkms.autokeyUser
di level project:gcloud projects add-iam-policy-binding PROJECT_NUMBER \ --role=roles/cloudkms.autokeyUser \ --member=user:USER_EMAIL
Ganti kode berikut:
PROJECT_ID
: ID project resource.USER_EMAIL
: alamat email pengguna yang ingin Anda berikan izin untuk menggunakan Kunci Otomatis.
Developer Kunci otomatis kini dapat membuat kunci secara on demand. Untuk mempelajari cara membuat resource yang dilindungi menggunakan kunci yang dibuat on demand oleh Kunci otomatis, lihat Membuat resource yang dilindungi menggunakan Kunci otomatis.
Mengaktifkan Kunci Otomatis menggunakan Terraform
Contoh Terraform berikut mengotomatiskan langkah-langkah penyiapan berikut:
- Membuat folder resource
- Membuat project utama
- Memberikan izin pengguna
- Menyiapkan agen layanan Cloud KMS
- Aktifkan Kunci Otomatis
Anda harus membuat project resource secara terpisah dalam folder resource.
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]
}
/* The project ID to use for the 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 Key Management Project. This project will contain the Key Rings and Keys generated by Cloud KMS Autokey"
type = string
default = "KEY_PROJECT_ID"
}
# Create a new folder
resource "google_folder" "autokey_folder" {
parent = "organizations/${var.organization_ID}"
display_name = "autokey_folder"
}
# 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
}
# 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
}
# Grant role for Cloud KMS admins to use Autokey in the 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 ]
}
# 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]
}
# Create 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 admin 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"
}
/* Enable AutokeyConfig in this folder */
resource "google_kms_autokey_config" "autokey_config" {
provider = google-beta
folder = google_folder.autokey_folder.folder_id
key_project = google_project.key_management_project.project_id
}
Ganti kode berikut:
BILLING_ACCOUNT_ID
: ID akun penagihan Google Cloud Anda. ID akun penagihan adalah nilai alfanumerik 18 karakter yang dipisahkan dengan tanda hubung—misalnya,010101-F0FFF0-10XX01
.AUTOKEY_ADMIN_USER_IDS
: daftar alamat email untuk pengguna yang seharusnya memiliki peranroles/cloudkms.autokeyAdmin
—misalnya,"Ariel@example.com", "Charlie@example.com"
.AUTOKEY_DEVELOPER_USER_IDS
: daftar alamat email untuk pengguna yang seharusnya memiliki peranroles/cloudkms.autokeyUser
—misalnya,"Kalani@example.com", "Mahan@example.com"
.KEY_PROJECT_ADMIN_USER_IDS
: daftar alamat email untuk pengguna yang harus memiliki peranroles/cloudkms.admin
—misalnya,"Sasha@example.com", "Nur@example.com"
.KEY_PROJECT_ID
: ID yang akan digunakan untuk project kunci—misalnya,autokey-key-project
.
Terapkan penggunaan Kunci otomatis
Jika ingin menerapkan penggunaan Autokey dalam folder, Anda dapat melakukannya dengan menggabungkan kontrol akses IAM dengan kebijakan organisasi CMEK. Cara ini berfungsi dengan menghapus izin pembuatan kunci dari akun utama selain agen layanan Cloud KMS, lalu mewajibkan semua resource dilindungi oleh CMEK menggunakan project kunci Otomatis.
Untuk menerapkan penggunaan Kunci otomatis dalam folder, selesaikan langkah-langkah berikut:
Hapus akses untuk membuat kunci secara manual di project kunci. Jika kunci tidak dapat dibuat secara manual, hanya kunci yang dibuat oleh Kunci otomatis yang dapat dibuat dalam project ini. Untuk mengetahui informasi selengkapnya tentang cara mengontrol akses, lihat Kontrol akses dengan IAM.
Tetapkan kebijakan organisasi pada folder untuk mewajibkan resource dilindungi dengan CMEK menggunakan batasan
constraints/gcp.restrictNonCmekServices
. Untuk mengetahui informasi selengkapnya, lihat Mewajibkan perlindungan CMEK.Tetapkan kebijakan organisasi pada folder tersebut untuk mewajibkan kunci yang digunakan untuk CMEK harus berasal dari project kunci Autokey menggunakan batasan
constraints/gcp.restrictCmekCryptoKeyProjects
. Untuk mengetahui informasi selengkapnya, lihat Membatasi penggunaan kunci Cloud KMS untuk CMEK.
Nonaktifkan Kunci Otomatis
Kunci Otomatis Cloud KMS diaktifkan dan dinonaktifkan di level folder. Peran yang sama
yang dapat mengaktifkan Autokey untuk folder dapat menonaktifkan Autokey
untuk folder tersebut. Untuk menonaktifkan Autokey pada folder, Anda harus menghapus
AutokeyConfig
guna menghapus pengaitan antara folder dan
project tombol Autokey.
Setelah konfigurasi Kunci otomatis di folder dihapus, agen layanan Cloud KMS tidak dapat lagi membuat kunci untuk developer saat mereka membuat resource di folder. Menghapus link antara folder dan project kunci akan menonaktifkan Kunci Otomatis di folder tersebut. Namun, sebaiknya Anda juga menghapus binding IAM untuk peran roles/cloudkms.autokeyAdmin
dan roles/cloudkms.autokeyUser
.
Menonaktifkan Kunci Otomatis tidak akan memengaruhi kunci yang sudah ada dalam project kunci. Anda dapat terus menggunakan kunci ini untuk melindungi resource Anda.
Menghapus AutokeyConfig
Konsol
Di konsol Google Cloud, buka halaman KMS controls.
Dari pemilih konteks, pilih folder tempat Anda ingin menonaktifkan Autokey.
Klik Disable.
Sebuah pesan yang meminta Anda mengonfirmasi bahwa Anda ingin menonaktifkan Kunci otomatis akan muncul.
Untuk menonaktifkan Kunci Otomatis, klik Konfirmasi.
Sebuah pesan mengonfirmasi bahwa Kunci Otomatis Cloud KMS dinonaktifkan pada folder tersebut.
API
Hapus AutokeyConfig
untuk folder tempat Anda ingin menonaktifkan
Autokey:
curl "https://cloudkms.googleapis.com/v1/folders/FOLDER_ID/autokeyConfig?updateMask=keyProject" \
--request "PATCH" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{}'
Ganti kode berikut:
FOLDER_ID
: ID folder tempat Anda ingin menonaktifkan Autokey.
Cabut peran Kunci otomatis
Opsional: Cabut 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 Kunci otomatis.USER_EMAIL
: alamat email pengguna yang izinnya ingin Anda cabut untuk mengelola Kunci Otomatis.
Opsional: Cabut 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 Kunci otomatis.USER_EMAIL
: alamat email pengguna yang izinnya ingin Anda cabut untuk menggunakan Kunci Otomatis.
Opsional: Mencabut peran
roles/cloudkms.autokeyUser
di level 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 project resource dalam folder tempat Anda menonaktifkan Autokey.USER_EMAIL
: alamat email pengguna yang izinnya ingin Anda cabut untuk menggunakan Kunci Otomatis.
Opsional: Jika Anda tidak berencana untuk terus menggunakan project kunci untuk Autokey untuk folder lain, cabut 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 utama.Opsional: Jika Anda tidak berencana untuk terus menggunakan kunci yang dibuat di dalam project kunci, cabut 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 project utama.USER_EMAIL
: alamat email pengguna yang izinnya ingin Anda cabut untuk menggunakan Kunci Otomatis.
Langkah selanjutnya
- Pelajari lebih lanjut kapan harus menggunakan Kunci otomatis.
- Pelajari lebih lanjut cara kerja Kunci otomatis.
- Developer Autokey sekarang dapat membuat resource yang dilindungi menggunakan Autokey.