Halaman ini menunjukkan cara membuat kunci di Cloud KMS. Kunci dapat berupa kunci enkripsi simetris atau asimetris, kunci penandatanganan asimetris, atau kunci penandatanganan MAC.
Saat membuat kunci, Anda menambahkannya ke key ring di lokasi Cloud KMS tertentu. Anda dapat membuat lingkaran kunci baru atau menggunakan yang sudah ada. Di halaman ini, Anda akan membuat kunci Cloud KMS atau Cloud HSM baru dan menambahkannya ke key ring yang ada. Untuk membuat kunci Cloud EKM, lihat Membuat kunci eksternal. Untuk mengimpor kunci Cloud KMS atau Cloud HSM, lihat bagian Mengimpor kunci.
Sebelum memulai
Sebelum menyelesaikan tugas di halaman ini, Anda memerlukan hal berikut:
- Resource project Google Cloud untuk menampung resource Cloud KMS Anda. Sebaiknya gunakan project terpisah untuk resource Cloud KMS Anda yang tidak berisi resource Google Cloud lainnya.
- Nama dan lokasi key ring tempat Anda ingin membuat kunci. Pilih key ring di lokasi yang dekat dengan resource Anda lainnya dan yang mendukung tingkat perlindungan yang diinginkan. Untuk melihat lokasi yang tersedia dan tingkat perlindungan yang didukung, lihat lokasi Cloud KMS. Untuk membuat key ring, lihat Membuat key ring.
- Opsional: Untuk menggunakan gcloud CLI, siapkan lingkungan Anda.
gcloud CLI
Di konsol Google Cloud, aktifkan Cloud Shell.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk membuat kunci, minta administrator untuk memberi Anda peran IAM Cloud KMS Admin (roles/cloudkms.admin
) pada project atau resource induk.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.
Peran yang telah ditentukan ini berisi izin yang diperlukan untuk membuat kunci. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk membuat kunci:
-
cloudkms.cryptoKeys.create
-
cloudkms.cryptoKeys.get
-
cloudkms.cryptoKeys.list
-
cloudkms.cryptoKeyVersions.create
-
cloudkms.cryptoKeyVersions.get
-
cloudkms.cryptoKeyVersions.list
-
cloudkms.keyRings.get
-
cloudkms.keyRings.list
-
cloudkms.locations.get
-
cloudkms.locations.list
-
resourcemanager.projects.get
-
Untuk mengambil kunci publik:
cloudkms.cryptoKeyVersions.viewPublicKey
Anda mung juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaanlainnya.
Membuat kunci enkripsi simetris
Konsol
Di konsol Google Cloud, buka halaman Key Management.
Klik nama key ring yang akan Anda buat kunci.
Klik Create key.
Untuk Nama kunci, masukkan nama kunci Anda.
Untuk Tingkat perlindungan, pilih Software atau HSM.
Untuk Key material, pilih Generated key.
Untuk Tujuan, pilih Enkripsi/dekripsi simetris.
Setujui nilai default untuk Rotation period dan Getting on.
Klik Create.
gcloud
Untuk menggunakan Cloud KMS di command line, Instal atau upgrade Google Cloud CLI ke versi terbaru terlebih dahulu.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "encryption" \ --protection-level "PROTECTION_LEVEL"
Ganti kode berikut:
KEY_NAME
: nama kunci.KEY_RING
: nama key ring yang berisi kunci.LOCATION
: lokasi Cloud KMS key ring.PROTECTION_LEVEL
: tingkat perlindungan yang digunakan untuk kunci—misalnya,software
atauhsm
. Anda dapat menghilangkan flag--protection-level
untuk kuncisoftware
.
Untuk mengetahui informasi tentang semua tanda dan nilai yang memungkinkan, jalankan perintah dengan
tanda --help
.
C#
Untuk menjalankan kode ini, siapkan lingkungan pengembangan C# terlebih dahulu lalu instal Cloud KMS C# SDK.
Go
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Go terlebih dahulu lalu instal Cloud KMS Go SDK.
Java
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Java terlebih dahulu dan instal Java SDK Cloud KMS.
Node.js
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Node.js terlebih dahulu, lalu instal Node.js SDK Cloud KMS.
PHP
Untuk menjalankan kode ini, pelajari cara menggunakan PHP di Google Cloud terlebih dahulu dan instal PHP SDK Cloud KMS.
Python
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Python terlebih dahulu lalu instal Cloud KMS Python SDK.
Ruby
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Ruby terlebih dahulu dan instal Ruby SDK Cloud KMS.
API
Contoh ini menggunakan curl sebagai klien HTTP untuk menunjukkan penggunaan API. Untuk informasi selengkapnya tentang kontrol akses, lihat Mengakses Cloud KMS API.
Untuk membuat kunci, gunakan
metode
CryptoKey.create
:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"purpose": "ENCRYPT_DECRYPT", "versionTemplate": { "protectionLevel": "PROTECTION_LEVEL", "algorithm": "ALGORITHM" }}'
Ganti kode berikut:
PROJECT_ID
: ID project yang berisi key ring.LOCATION
: lokasi Cloud KMS key ring.KEY_RING
: nama key ring yang berisi kunci.KEY_NAME
: nama kunci.PROTECTION_LEVEL
: tingkat perlindungan kunci—misalnya,SOFTWARE
atauHSM
.ALGORITHM
: algoritma penandatanganan HMAC—misalnya,HMAC_SHA256
. Untuk melihat semua algoritma HMAC yang didukung, lihat algoritma penandatanganan HMAC.
Membuat kunci enkripsi simetris dengan rotasi otomatis kustom
Saat membuat kunci, Anda dapat menentukan periode rotasi, yaitu waktu antara pembuatan versi kunci baru secara otomatis. Anda juga dapat menentukan waktu rotasi berikutnya secara independen, sehingga rotasi berikutnya terjadi lebih awal atau lebih lambat dari satu periode rotasi sekarang.
Konsol
Saat Anda menggunakan Konsol Google Cloud untuk membuat kunci, Cloud KMS akan otomatis menetapkan periode rotasi dan waktu rotasi berikutnya secara otomatis. Anda dapat memilih untuk menggunakan nilai default atau menentukan nilai yang berbeda.
Untuk menentukan periode rotasi dan waktu mulai yang berbeda, saat Anda membuat kunci, tetapi sebelum mengklik tombol Create:
Untuk Key rotasi period, pilih salah satu opsi.
Untuk Mulai, pilih tanggal yang Anda inginkan untuk melakukan rotasi otomatis pertama. Anda dapat membiarkan Memulai dengan nilai default untuk memulai rotasi otomatis pertamanya, satu periode rotasi kunci sejak Anda membuat kunci.
gcloud
Untuk menggunakan Cloud KMS di command line, Instal atau upgrade Google Cloud CLI ke versi terbaru terlebih dahulu.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "encryption" \ --rotation-period ROTATION_PERIOD \ --next-rotation-time NEXT_ROTATION_TIME
Ganti kode berikut:
KEY_NAME
: nama kunci.KEY_RING
: nama key ring yang berisi kunci.LOCATION
: lokasi Cloud KMS key ring.ROTATION_PERIOD
: interval untuk merotasi kunci—misalnya,30d
untuk merotasi kunci setiap 30 hari. Periode rotasi minimal harus 1 hari dan maksimal 100 tahun. Untuk mengetahui informasi selengkapnya, lihat CryptoKey.rotationPeriod.NEXT_ROTATION_TIME
: stempel waktu saat menyelesaikan rotasi pertama—misalnya,"2023-01-01T01:02:03"
. Anda dapat menghilangkan--next-rotation-time
untuk menjadwalkan rotasi pertama selama 7 hari sejak Anda menjalankan perintah. Untuk mengetahui informasi selengkapnya, lihat CryptoKey.nextRotationTime.
Untuk mengetahui informasi tentang semua tanda dan nilai yang memungkinkan, jalankan perintah dengan
tanda --help
.
C#
Untuk menjalankan kode ini, siapkan lingkungan pengembangan C# terlebih dahulu lalu instal Cloud KMS C# SDK.
Go
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Go terlebih dahulu lalu instal Cloud KMS Go SDK.
Java
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Java terlebih dahulu dan instal Java SDK Cloud KMS.
Node.js
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Node.js terlebih dahulu, lalu instal Node.js SDK Cloud KMS.
PHP
Untuk menjalankan kode ini, pelajari cara menggunakan PHP di Google Cloud terlebih dahulu dan instal PHP SDK Cloud KMS.
Python
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Python terlebih dahulu lalu instal Cloud KMS Python SDK.
Ruby
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Ruby terlebih dahulu dan instal Ruby SDK Cloud KMS.
API
Contoh ini menggunakan curl sebagai klien HTTP untuk menunjukkan penggunaan API. Untuk informasi selengkapnya tentang kontrol akses, lihat Mengakses Cloud KMS API.
Untuk membuat kunci, gunakan
metode
CryptoKey.create
:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"purpose": "PURPOSE", "rotationPeriod": "ROTATION_PERIOD", "nextRotationTime": "NEXT_ROTATION_TIME"}'
Ganti kode berikut:
PURPOSE
: tujuan kunci.ROTATION_PERIOD
: interval untuk merotasi kunci—misalnya,30d
untuk merotasi kunci setiap 30 hari. Periode rotasi minimal harus 1 hari dan maksimal 100 tahun. Untuk mengetahui informasi selengkapnya, lihat CryptoKey.rotationPeriod.NEXT_ROTATION_TIME
: stempel waktu saat menyelesaikan rotasi pertama—misalnya,"2023-01-01T01:02:03"
. Anda dapat menghilangkan--next-rotation-time
untuk menjadwalkan rotasi pertama selama 7 hari sejak Anda menjalankan perintah. Untuk mengetahui informasi selengkapnya, lihat CryptoKey.nextRotationTime.
Menetapkan durasi status 'dijadwalkan untuk pemusnahan'
Secara default, versi kunci di Cloud KMS menghabiskan waktu 24 jam dalam status terjadwal untuk pemusnahan (DESTROY_SCHEDULED
) sebelum dihancurkan. Status yang dijadwalkan untuk dihapus terkadang disebut
status dihapus untuk sementara. Durasi saat versi kunci tetap berada dalam status ini
dapat dikonfigurasi, dengan batasan berikut:
- Anda hanya dapat menyetel durasi selama pembuatan kunci.
- Setelah ditentukan, durasi kunci tidak dapat diubah.
- Durasi berlaku untuk semua versi kunci yang dibuat di masa mendatang.
- Durasi minimum adalah 24 jam untuk semua kunci, kecuali untuk kunci khusus impor yang memiliki durasi minimum 0.
- Durasi maksimum adalah 120 hari.
- Durasi default adalah 24 jam.
Organisasi Anda mungkin memiliki jadwal minimum untuk nilai durasi pemusnahan yang ditentukan oleh kebijakan organisasi. Untuk mengetahui informasi selengkapnya, lihat Mengontrol penghancuran kunci.
Untuk membuat kunci yang menggunakan durasi kustom untuk status Dijadwalkan untuk dihancurkan, gunakan langkah-langkah berikut:
Konsol
Di konsol Google Cloud, buka halaman Key Management.
Klik nama key ring yang akan Anda buat kunci.
Klik Create key.
Konfigurasi setelan kunci untuk aplikasi Anda.
Klik Setelan tambahan.
Di Durasi status 'dijadwalkan untuk pemusnahan', pilih jumlah hari kunci akan tetap dijadwalkan untuk pemusnahan sebelum dihancurkan secara permanen.
Klik Create key.
gcloud
Untuk menggunakan Cloud KMS di command line, Instal atau upgrade Google Cloud CLI ke versi terbaru terlebih dahulu.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose PURPOSE \ --destroy-scheduled-duration DURATION
Ganti kode berikut:
KEY_NAME
: nama kunci.KEY_RING
: nama key ring yang berisi kunci.LOCATION
: lokasi Cloud KMS key ring.PURPOSE
: tujuan kunci—misalnya,encryption
.DURATION
: jumlah waktu agar kunci tetap berada dalam status dijadwalkan untuk pemusnahan sebelum dihancurkan secara permanen.
Untuk mengetahui informasi tentang semua tanda dan nilai yang memungkinkan, jalankan perintah dengan
tanda --help
.
Sebaiknya gunakan durasi default 24 jam untuk semua kunci, kecuali jika Anda memiliki persyaratan peraturan atau aplikasi khusus yang memerlukan nilai yang berbeda.
Membuat kunci asimetris
Membuat kunci dekripsi asimetris
Ikuti langkah-langkah berikut untuk membuat kunci dekripsi asimetris pada lingkaran dan lokasi kunci yang ditentukan. Contoh ini dapat disesuaikan untuk menentukan tingkat perlindungan atau algoritma yang berbeda. Untuk informasi selengkapnya dan nilai alternatif, lihat Algoritma dan Tingkat perlindungan.
Saat pertama kali membuat kunci, versi kunci awal memiliki status Pembuatan tertunda. Jika status berubah menjadi Enabled, Anda dapat menggunakan kunci tersebut. Untuk mempelajari status versi kunci lebih lanjut, lihat Status versi kunci.
Konsol
Di konsol Google Cloud, buka halaman Key Management.
Klik nama key ring yang akan Anda buat kunci.
Klik Create key.
Untuk Nama kunci, masukkan nama kunci Anda.
Untuk Tingkat perlindungan, pilih Software atau HSM.
Untuk Key material, pilih Generated key.
Untuk Tujuan, pilih Dekripsi asimetris.
Untuk Algorithm, pilih 3072 bit RSA - OAEP Padding - SHA256 Digest. Anda dapat mengubah nilai ini pada versi kunci mendatang.
Klik Create.
gcloud
Untuk menggunakan Cloud KMS di command line, Instal atau upgrade Google Cloud CLI ke versi terbaru terlebih dahulu.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "asymmetric-encryption" \ --default-algorithm "ALGORITHM"
Ganti kode berikut:
KEY_NAME
: nama kunci.KEY_RING
: nama key ring yang berisi kunci.LOCATION
: lokasi Cloud KMS key ring.ALGORITHM
: algoritma yang akan digunakan untuk kunci—misalnya,rsa-decrypt-oaep-3072-sha256
. Untuk daftar algoritma enkripsi asimetris yang didukung, lihat Algoritma enkripsi asimetris.
Untuk mengetahui informasi tentang semua tanda dan nilai yang memungkinkan, jalankan perintah dengan
tanda --help
.
C#
Untuk menjalankan kode ini, siapkan lingkungan pengembangan C# terlebih dahulu lalu instal Cloud KMS C# SDK.
Go
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Go terlebih dahulu lalu instal Cloud KMS Go SDK.
Java
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Java terlebih dahulu dan instal Java SDK Cloud KMS.
Node.js
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Node.js terlebih dahulu, lalu instal Node.js SDK Cloud KMS.
PHP
Untuk menjalankan kode ini, pelajari cara menggunakan PHP di Google Cloud terlebih dahulu dan instal PHP SDK Cloud KMS.
Python
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Python terlebih dahulu lalu instal Cloud KMS Python SDK.
Ruby
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Ruby terlebih dahulu dan instal Ruby SDK Cloud KMS.
API
Contoh ini menggunakan curl sebagai klien HTTP untuk menunjukkan penggunaan API. Untuk informasi selengkapnya tentang kontrol akses, lihat Mengakses Cloud KMS API.
Buat kunci dekripsi asimetris dengan memanggil
CryptoKey.create
.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"purpose": "ASYMMETRIC_DECRYPT", "versionTemplate": {"algorithm": "ALGORITHM"}}'
Ganti kode berikut:
PROJECT_ID
: ID project yang berisi key ring.LOCATION
: lokasi Cloud KMS key ring.KEY_RING
: nama key ring yang berisi kunci.KEY_NAME
: nama kunci.ALGORITHM
: algoritma yang akan digunakan untuk kunci—misalnya,RSA_DECRYPT_OAEP_3072_SHA256
. Untuk mengetahui daftar algoritma enkripsi asimetris yang didukung, lihat Algoritme enkripsi asimetris.
Membuat kunci penandatanganan asimetris
Ikuti langkah-langkah berikut untuk membuat kunci penandatanganan asimetris pada key ring dan lokasi yang ditentukan. Contoh ini dapat disesuaikan untuk menentukan tingkat perlindungan atau algoritma yang berbeda. Untuk informasi selengkapnya dan nilai alternatif, lihat Algoritma dan Tingkat perlindungan.
Saat pertama kali membuat kunci, versi kunci awal memiliki status Pembuatan tertunda. Jika status berubah menjadi Enabled, Anda dapat menggunakan kunci tersebut. Untuk mempelajari status versi kunci lebih lanjut, lihat Status versi kunci.
Konsol
Di konsol Google Cloud, buka halaman Key Management.
Klik nama key ring yang akan Anda buat kunci.
Klik Create key.
Untuk Nama kunci, masukkan nama kunci Anda.
Untuk Tingkat perlindungan, pilih Software atau HSM.
Untuk Key material, pilih Generated key.
Untuk Tujuan, pilih Tanda asimetris.
Untuk Algorithm, pilih Elliptic Curve P-256 - SHA256 Digest. Anda dapat mengubah nilai ini pada versi kunci mendatang.
Klik Create.
gcloud
Untuk menggunakan Cloud KMS di command line, Instal atau upgrade Google Cloud CLI ke versi terbaru terlebih dahulu.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "asymmetric-signing" \ --default-algorithm "ALGORITHM"
Ganti kode berikut:
KEY_NAME
: nama kunci.KEY_RING
: nama key ring yang berisi kunci.LOCATION
: lokasi Cloud KMS key ring.ALGORITHM
: algoritma yang akan digunakan untuk kunci—misalnya,ec-sign-p256-sha256
. Untuk mengetahui daftar algoritma yang didukung, lihat Algoritma penandatanganan asimetris.
Untuk mengetahui informasi tentang semua tanda dan nilai yang memungkinkan, jalankan perintah dengan
tanda --help
.
C#
Untuk menjalankan kode ini, siapkan lingkungan pengembangan C# terlebih dahulu lalu instal Cloud KMS C# SDK.
Go
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Go terlebih dahulu lalu instal Cloud KMS Go SDK.
Java
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Java terlebih dahulu dan instal Java SDK Cloud KMS.
Node.js
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Node.js terlebih dahulu, lalu instal Node.js SDK Cloud KMS.
PHP
Untuk menjalankan kode ini, pelajari cara menggunakan PHP di Google Cloud terlebih dahulu dan instal PHP SDK Cloud KMS.
Python
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Python terlebih dahulu lalu instal Cloud KMS Python SDK.
Ruby
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Ruby terlebih dahulu dan instal Ruby SDK Cloud KMS.
API
Contoh ini menggunakan curl sebagai klien HTTP untuk menunjukkan penggunaan API. Untuk informasi selengkapnya tentang kontrol akses, lihat Mengakses Cloud KMS API.
Buat kunci penandatanganan asimetris dengan memanggil
CryptoKey.create
.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"purpose": "ASYMMETRIC_SIGN", "versionTemplate": {"algorithm": "ALGORITHM"}}'
Ganti kode berikut:
PROJECT_ID
: ID project yang berisi key ring.LOCATION
: lokasi Cloud KMS key ring.KEY_RING
: nama key ring yang berisi kunci.KEY_NAME
: nama kunci.ALGORITHM
: algoritma yang akan digunakan untuk kunci—misalnya,EC_SIGN_P256_SHA256
. Untuk daftar algoritma yang didukung, lihat Algoritme penandatanganan asimetris.
Mengambil kunci publik
Saat Anda membuat kunci asimetris, Cloud KMS akan membuat pasangan kunci publik/pribadi. Anda dapat mengambil kunci publik dari kunci asimetris yang diaktifkan kapan saja setelah kunci dibuat.
Kunci publik menggunakan format Privacy-Enhanced Electronic Mail (PEM). Untuk informasi selengkapnya, lihat bagian RFC 7468 Pertimbangan Umum dan Encoding Teks pada Info Kunci Publik Subjek.
Untuk mendownload kunci publik bagi versi kunci asimetris yang sudah ada, ikuti langkah-langkah berikut:
Konsol
Di konsol Google Cloud, buka halaman Key Management.
Klik nama key ring yang berisi kunci asimetris yang ingin Anda ambil kunci publiknya.
Klik nama kunci yang ingin Anda ambil kunci publiknya.
Di baris yang sesuai dengan versi kunci yang ingin Anda ambil kunci publiknya, klik View More
.Klik Dapatkan kunci publik.
Kunci publik akan ditampilkan dalam perintah. Anda dapat menyalin kunci publik ke {i>clipboard<i} Anda. Untuk mendownload kunci publik, klik Download.
Jika Anda tidak melihat opsi Dapatkan kunci publik, pastikan hal berikut:
- Kuncinya adalah kunci asimetris.
- Versi kunci diaktifkan.
- Anda memiliki izin
cloudkms.cryptoKeyVersions.viewPublicKey
.
Nama file kunci publik yang didownload dari Google Cloud Console berbentuk:
KEY_RING-KEY_NAME-KEY_VERSION.pub
Setiap bagian nama file dipisahkan dengan tanda hubung, misalnya
ringname-keyname-version.pub
gcloud
Untuk menggunakan Cloud KMS di command line, Instal atau upgrade Google Cloud CLI ke versi terbaru terlebih dahulu.
gcloud kms keys versions get-public-key KEY_VERSION \ --key KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --output-file OUTPUT_FILE_PATH
Ganti kode berikut:
KEY_VERSION
: nomor versi kunci.KEY_NAME
: nama kunci.KEY_RING
: nama key ring yang berisi kunci.LOCATION
: lokasi Cloud KMS key ring.OUTPUT_FILE_PATH
: jalur tempat Anda ingin menyimpan file kunci publik, misalnya,public-key.pub
.
Untuk mengetahui informasi tentang semua tanda dan nilai yang memungkinkan, jalankan perintah dengan
tanda --help
.
C#
Untuk menjalankan kode ini, siapkan lingkungan pengembangan C# terlebih dahulu lalu instal Cloud KMS C# SDK.
Go
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Go terlebih dahulu lalu instal Cloud KMS Go SDK.
Java
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Java terlebih dahulu dan instal Java SDK Cloud KMS.
Node.js
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Node.js terlebih dahulu, lalu instal Node.js SDK Cloud KMS.
PHP
Untuk menjalankan kode ini, pelajari cara menggunakan PHP di Google Cloud terlebih dahulu dan instal PHP SDK Cloud KMS.
Python
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Python terlebih dahulu lalu instal Cloud KMS Python SDK.
Ruby
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Ruby terlebih dahulu dan instal Ruby SDK Cloud KMS.
API
Contoh ini menggunakan curl sebagai klien HTTP untuk menunjukkan penggunaan API. Untuk informasi selengkapnya tentang kontrol akses, lihat Mengakses Cloud KMS API.
Ambil kunci publik dengan memanggil metode CryptoKeyVersions.getPublicKey.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/KEY_VERSION/publicKey" \ --request "GET" \ --header "authorization: Bearer TOKEN"
Ganti kode berikut:
PROJECT_ID
: ID project yang berisi key ring.LOCATION
: lokasi Cloud KMS key ring.KEY_RING
: nama key ring yang berisi kunci.KEY_NAME
: nama kunci.KEY_VERSION
: nomor versi kunci.
Output-nya akan terlihat seperti berikut:
{ "pem": "-----BEGIN PUBLIC KEY-----\nQ29uZ3JhdHVsYXRpb25zLCB5b3UndmUgZGlzY292ZX JlZCB0aGF0IHRoaXMgaXNuJ3QgYWN0dWFsbHkgYSBwdWJsaWMga2V5ISBIYXZlIGEgbmlj ZSBkYXkgOik=\n-----END PUBLIC KEY-----\n", "algorithm": "ALGORITHM", "pemCrc32c": "2561089887", "name": "projects/PROJECT_ID/locations/LOCATION/keyRings/ KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/ KEY_VERSION", "protectionLevel": "SOFTWARE" }
Mengonversi kunci publik ke format JWK
Cloud KMS dapat Anda gunakan untuk mengambil kunci publik dalam format PEM. Beberapa aplikasi mungkin memerlukan format kunci lainnya seperti JSON Web Key (JWK). Untuk informasi selengkapnya tentang format JWK, lihat RFC 7517.
Untuk mengonversi kunci publik ke format JWK, ikuti langkah-langkah berikut:
Go
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Go terlebih dahulu lalu instal Cloud KMS Go SDK.
Java
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Java terlebih dahulu dan instal Java SDK Cloud KMS.
Python
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Python terlebih dahulu lalu instal Cloud KMS Python SDK.
Mengontrol akses ke kunci asimetris
Penanda tangan atau validator memerlukan izin atau peran yang sesuai pada kunci asimetris.
Untuk pengguna atau layanan yang akan melakukan penandatanganan, berikan izin
cloudkms.cryptoKeyVersions.useToSign
pada kunci asimetris.Untuk pengguna atau layanan yang akan mengambil kunci publik, berikan
cloudkms.cryptoKeyVersions.viewPublicKey
pada kunci asimetris. Kunci publik diperlukan untuk validasi tanda tangan.
Pelajari izin dan peran dalam rilis Cloud KMS di bagian Izin dan peran.
Membuat kunci penandatanganan MAC
Konsol
Di konsol Google Cloud, buka halaman Key Management.
Klik nama key ring yang akan Anda buat kunci.
Klik Create key.
Untuk Nama kunci, masukkan nama kunci Anda.
Untuk Tingkat perlindungan, pilih Software atau HSM.
Untuk Key material, pilih Generated key.
Untuk Tujuan, pilih MAC signing/verification.
Opsional: untuk Algorithm, pilih algoritma penandatanganan HMAC.
Klik Create.
gcloud
Untuk menggunakan Cloud KMS di command line, Instal atau upgrade Google Cloud CLI ke versi terbaru terlebih dahulu.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "mac" \ --default-algorithm "ALGORITHM" \ --protection-level "PROTECTION_LEVEL"
Ganti kode berikut:
KEY_NAME
: nama kunci.KEY_RING
: nama key ring yang berisi kunci.LOCATION
: lokasi Cloud KMS key ring.ALGORITHM
: algoritma penandatanganan HMAC—misalnya,hmac-sha256
. Untuk melihat semua algoritma HMAC yang didukung, lihat algoritma penandatanganan HMAC.PROTECTION_LEVEL
: tingkat perlindungan kunci—misalnya,hsm
. Anda dapat menghilangkan flag--protection-level
untuk kuncisoftware
.
Untuk mengetahui informasi tentang semua tanda dan nilai yang memungkinkan, jalankan perintah dengan
tanda --help
.
C#
Untuk menjalankan kode ini, siapkan lingkungan pengembangan C# terlebih dahulu lalu instal Cloud KMS C# SDK.
Go
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Go terlebih dahulu lalu instal Cloud KMS Go SDK.
Java
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Java terlebih dahulu dan instal Java SDK Cloud KMS.
Node.js
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Node.js terlebih dahulu, lalu instal Node.js SDK Cloud KMS.
PHP
Untuk menjalankan kode ini, pelajari cara menggunakan PHP di Google Cloud terlebih dahulu dan instal PHP SDK Cloud KMS.
Python
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Python terlebih dahulu lalu instal Cloud KMS Python SDK.
Ruby
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Ruby terlebih dahulu dan instal Ruby SDK Cloud KMS.
API
Contoh ini menggunakan curl sebagai klien HTTP untuk menunjukkan penggunaan API. Untuk informasi selengkapnya tentang kontrol akses, lihat Mengakses Cloud KMS API.
Untuk membuat kunci, gunakan
metode
CryptoKey.create
:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"purpose": "MAC", "versionTemplate": { "protectionLevel": "PROTECTION_LEVEL", "algorithm": "ALGORITHM" }}'
Ganti kode berikut:
PROJECT_ID
: ID project yang berisi key ring.LOCATION
: lokasi Cloud KMS key ring.KEY_RING
: nama key ring yang berisi kunci.KEY_NAME
: nama kunci.PROTECTION_LEVEL
: tingkat perlindungan kunci, misalnyaSOFTWARE
atauHSM
.ALGORITHM
: algoritma penandatanganan HMAC, misalnyaHMAC_SHA256
. Untuk melihat semua algoritma HMAC yang didukung, lihat algoritma penandatanganan HMAC.
Langkah selanjutnya
- Pelajari rotasi kunci.
- Pelajari cara Membuat dan memvalidasi tanda tangan.
- Pelajari Mengenkripsi dan mendekripsi data dengan kunci RSA.
- Pelajari cara Mengambil kunci publik.