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 ring kunci baru atau menggunakan ring kunci yang ada. Di halaman ini, Anda 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 Mengimpor kunci.
Sebelum memulai
Sebelum menyelesaikan tugas di halaman ini, Anda memerlukan hal berikut:
- Resource project Google Cloud untuk menyimpan 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 keychain di lokasi yang dekat dengan resource Anda yang lain dan mendukung tingkat perlindungan yang Anda pilih. Untuk melihat lokasi yang tersedia dan tingkat perlindungan yang didukungnya, lihat Lokasi Cloud KMS. Untuk membuat key ring, lihat Membuat key ring.
- Opsional: Untuk menggunakan gcloud CLI, siapkan lingkungan Anda.
In the Google Cloud console, activate Cloud Shell.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk membuat kunci,
minta administrator untuk memberi Anda
peran IAM Cloud KMS Admin (roles/cloudkms.admin
) di project atau resource induk.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin yang diperlukan untuk membuat kunci. Untuk melihat izin yang benar-benar diperlukan, luaskan 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 mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
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 Key name, masukkan nama untuk kunci Anda.
Untuk Protection level, pilih Software atau HSM.
Untuk Materi kunci, pilih Kunci yang dibuat.
Untuk Tujuan, pilih Symmetric encrypt/decrypt.
Setujui nilai default untuk Rotation period dan Starting on.
Klik Create.
gcloud
Untuk menggunakan Cloud KMS di command line, pertama-tama Instal atau upgrade ke Google Cloud CLI versi terbaru.
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 akan digunakan untuk kunci—misalnya,software
atauhsm
. Anda dapat menghilangkan tanda--protection-level
untuk kuncisoftware
.
Untuk mengetahui informasi tentang semua flag dan kemungkinan nilai, jalankan perintah dengan
flag --help
.
C#
Untuk menjalankan kode ini, siapkan lingkungan pengembangan C# terlebih dahulu dan 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 Cloud KMS Java SDK.
Node.js
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Node.js terlebih dahulu dan instal Cloud KMS Node.js SDK.
PHP
Untuk menjalankan kode ini, pertama-tama pelajari cara menggunakan PHP di Google Cloud dan menginstal Cloud KMS PHP SDK.
Python
Untuk menjalankan kode ini, pertama-tama siapkan lingkungan pengembangan Python dan instal Cloud KMS Python SDK.
Ruby
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Ruby terlebih dahulu, lalu instal Cloud KMS Ruby SDK.
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 otomatis versi kunci baru. Anda juga dapat menentukan waktu rotasi berikutnya secara independen, sehingga rotasi berikutnya terjadi lebih awal atau lebih lambat dari satu periode rotasi dari sekarang.
Konsol
Saat Anda menggunakan konsol Google Cloud untuk membuat kunci, Cloud KMS akan 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 Periode rotasi kunci, pilih salah satu opsi.
Untuk Mulai, pilih tanggal saat Anda ingin rotasi otomatis pertama terjadi. Anda dapat membiarkan Mulai pada pada nilai defaultnya untuk memulai rotasi otomatis pertama satu periode rotasi kunci sejak Anda membuat kunci.
gcloud
Untuk menggunakan Cloud KMS di command line, pertama-tama Instal atau upgrade ke Google Cloud CLI versi terbaru.
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 memutar kunci—misalnya,30d
untuk memutar kunci setiap 30 hari. Periode rotasi harus minimal 1 hari dan maksimal 100 tahun. Untuk informasi selengkapnya, lihat CryptoKey.rotationPeriod.NEXT_ROTATION_TIME
: stempel waktu saat rotasi pertama selesai—misalnya,2023-01-01T01:02:03
. Anda dapat menghilangkan--next-rotation-time
untuk menjadwalkan rotasi pertama selama satu periode rotasi sejak Anda menjalankan perintah. Untuk informasi selengkapnya, lihatCryptoKey.nextRotationTime
.
Untuk mengetahui informasi tentang semua flag dan kemungkinan nilai, jalankan perintah dengan
flag --help
.
C#
Untuk menjalankan kode ini, siapkan lingkungan pengembangan C# terlebih dahulu dan 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 Cloud KMS Java SDK.
Node.js
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Node.js terlebih dahulu dan instal Cloud KMS Node.js SDK.
PHP
Untuk menjalankan kode ini, pertama-tama pelajari cara menggunakan PHP di Google Cloud dan menginstal Cloud KMS PHP SDK.
Python
Untuk menjalankan kode ini, pertama-tama siapkan lingkungan pengembangan Python dan instal Cloud KMS Python SDK.
Ruby
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Ruby terlebih dahulu, lalu instal Cloud KMS Ruby SDK.
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 memutar kunci—misalnya,30d
untuk memutar kunci setiap 30 hari. Periode rotasi harus minimal 1 hari dan maksimal 100 tahun. Untuk informasi selengkapnya, lihat CryptoKey.rotationPeriod.NEXT_ROTATION_TIME
: stempel waktu saat rotasi pertama selesai—misalnya,2023-01-01T01:02:03
. Untuk informasi selengkapnya, lihatCryptoKey.nextRotationTime
.
Menetapkan durasi status 'dijadwalkan untuk dimusnahkan'
Secara default, versi kunci di Cloud KMS menghabiskan waktu
30 hari dalam status dijadwalkan untuk dihancurkan
(DESTROY_SCHEDULED
) sebelum dihancurkan. Status dijadwalkan untuk dihancurkan terkadang disebut sebagai
status penghapusan sementara. Durasi versi kunci yang tetap berada dalam status ini
dapat dikonfigurasi, dengan batasan berikut:
- Anda hanya dapat menetapkan durasi selama pembuatan kunci.
- Setelah durasi untuk kunci ditentukan, durasi tersebut tidak dapat diubah.
- Durasi berlaku untuk semua versi kunci yang dibuat di masa mendatang.
- Durasi minimumnya adalah 24 jam untuk semua kunci, kecuali untuk kunci khusus impor yang memiliki durasi minimum 0.
- Durasi maksimumnya adalah 120 hari.
- Durasi defaultnya adalah 30 hari.
Organisasi Anda mungkin memiliki nilai durasi minimum yang dijadwalkan untuk dimusnahkan yang ditentukan oleh kebijakan organisasi. Untuk mengetahui informasi selengkapnya, lihat Mengontrol pemusnahan 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.
Konfigurasikan setelan kunci untuk aplikasi Anda.
Klik Setelan tambahan.
Di Durasi status 'dijadwalkan untuk dihancurkan', pilih jumlah hari saat kunci akan tetap dijadwalkan untuk dihancurkan sebelum dihancurkan secara permanen.
Klik Create key.
gcloud
Untuk menggunakan Cloud KMS di command line, pertama-tama Instal atau upgrade ke Google Cloud CLI versi terbaru.
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 yang diperlukan kunci untuk tetap berada dalam status dijadwalkan untuk dihancurkan sebelum dihancurkan secara permanen.
Untuk mengetahui informasi tentang semua flag dan kemungkinan nilai, jalankan perintah dengan
flag --help
.
Sebaiknya gunakan durasi default 30 hari untuk semua kunci, kecuali jika Anda memiliki persyaratan aplikasi atau peraturan tertentu yang memerlukan nilai yang berbeda.
Membuat kunci asimetris
Bagian berikut menunjukkan cara membuat kunci asimetris.
Membuat kunci dekripsi asimetris
Ikuti langkah-langkah berikut untuk membuat kunci dekripsi asimetris pada ring kunci dan lokasi yang ditentukan. Contoh ini dapat disesuaikan untuk menentukan level perlindungan atau algoritma yang berbeda. Untuk informasi selengkapnya dan nilai alternatif, lihat Algoritma dan Tingkat perlindungan.
Saat Anda pertama kali membuat kunci, versi kunci awal memiliki status Pembuatan tertunda. Saat status berubah menjadi Enabled, Anda dapat menggunakan kunci. 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 Key name, masukkan nama untuk kunci Anda.
Untuk Protection level, pilih Software atau HSM.
Untuk Materi kunci, pilih Kunci yang dibuat.
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, pertama-tama Instal atau upgrade ke Google Cloud CLI versi terbaru.
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 flag dan kemungkinan nilai, jalankan perintah dengan
flag --help
.
C#
Untuk menjalankan kode ini, siapkan lingkungan pengembangan C# terlebih dahulu dan 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 Cloud KMS Java SDK.
Node.js
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Node.js terlebih dahulu dan instal Cloud KMS Node.js SDK.
PHP
Untuk menjalankan kode ini, pertama-tama pelajari cara menggunakan PHP di Google Cloud dan menginstal Cloud KMS PHP SDK.
Python
Untuk menjalankan kode ini, pertama-tama siapkan lingkungan pengembangan Python dan instal Cloud KMS Python SDK.
Ruby
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Ruby terlebih dahulu, lalu instal Cloud KMS Ruby SDK.
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 Algoritma enkripsi asimetris.
Membuat kunci penandatanganan asimetris
Ikuti langkah-langkah berikut untuk membuat kunci penandatanganan asimetris di key ring dan lokasi yang ditentukan. Contoh ini dapat disesuaikan untuk menentukan level perlindungan atau algoritma yang berbeda. Untuk informasi selengkapnya dan nilai alternatif, lihat Algoritma dan Tingkat perlindungan.
Saat Anda pertama kali membuat kunci, versi kunci awal memiliki status Pembuatan tertunda. Saat status berubah menjadi Enabled, Anda dapat menggunakan kunci. 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 Key name, masukkan nama untuk kunci Anda.
Untuk Protection level, pilih Software atau HSM.
Untuk Materi kunci, pilih Kunci yang dibuat.
Untuk Tujuan, pilih Asymmetric sign.
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, pertama-tama Instal atau upgrade ke Google Cloud CLI versi terbaru.
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 flag dan kemungkinan nilai, jalankan perintah dengan
flag --help
.
C#
Untuk menjalankan kode ini, siapkan lingkungan pengembangan C# terlebih dahulu dan 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 Cloud KMS Java SDK.
Node.js
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Node.js terlebih dahulu dan instal Cloud KMS Node.js SDK.
PHP
Untuk menjalankan kode ini, pertama-tama pelajari cara menggunakan PHP di Google Cloud dan menginstal Cloud KMS PHP SDK.
Python
Untuk menjalankan kode ini, pertama-tama siapkan lingkungan pengembangan Python dan instal Cloud KMS Python SDK.
Ruby
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Ruby terlebih dahulu, lalu instal Cloud KMS Ruby SDK.
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 mengetahui daftar algoritma yang didukung, lihat Algoritma penandatanganan assimetris.
Mengambil kunci publik
Saat Anda membuat kunci asimetris, Cloud KMS akan membuat pasangan kunci publik/pribadi. Anda dapat mengambil kunci publik kunci asimetris yang diaktifkan kapan saja setelah kunci dibuat.
Kunci publik dalam format Privacy-enhanced Electronic Mail (PEM). Untuk mengetahui informasi selengkapnya, lihat bagian RFC 7468 Pertimbangan Umum dan Encoding Teks Info Kunci Publik Subjek.
Untuk mendownload kunci publik untuk versi kunci asimetris yang ada, ikuti langkah-langkah berikut:
Konsol
Di konsol Google Cloud, buka halaman Key Management.
Klik nama key ring yang berisi kunci asimetris yang kunci publiknya ingin Anda ambil.
Klik nama kunci yang kunci publiknya ingin Anda ambil.
Pada baris yang sesuai dengan versi kunci yang kunci publiknya ingin Anda ambil, klik Lihat Selengkapnya
.Klik Dapatkan kunci publik.
Kunci publik ditampilkan di perintah. Anda dapat menyalin kunci publik ke papan klip. Untuk mendownload kunci publik, klik Download.
Jika Anda tidak melihat opsi Dapatkan kunci publik, verifikasi hal berikut:
- Kunci ini adalah kunci asimetris.
- Versi kunci diaktifkan.
- Anda memiliki izin
cloudkms.cryptoKeyVersions.viewPublicKey
.
Nama file kunci publik yang didownload dari konsol Google Cloud memiliki format:
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, pertama-tama Instal atau upgrade ke Google Cloud CLI versi terbaru.
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 flag dan kemungkinan nilai, jalankan perintah dengan
flag --help
.
C#
Untuk menjalankan kode ini, siapkan lingkungan pengembangan C# terlebih dahulu dan 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 Cloud KMS Java SDK.
Node.js
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Node.js terlebih dahulu dan instal Cloud KMS Node.js SDK.
PHP
Untuk menjalankan kode ini, pertama-tama pelajari cara menggunakan PHP di Google Cloud dan menginstal Cloud KMS PHP SDK.
Python
Untuk menjalankan kode ini, pertama-tama siapkan lingkungan pengembangan Python dan instal Cloud KMS Python SDK.
Ruby
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Ruby terlebih dahulu, lalu instal Cloud KMS Ruby SDK.
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": "PROTECTION_LEVEL" }
Mengonversi kunci publik ke format JWK
Cloud KMS memungkinkan Anda mengambil kunci publik dalam format PEM. Beberapa aplikasi mungkin memerlukan format kunci lain 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 Cloud KMS Java SDK.
Python
Untuk menjalankan kode ini, pertama-tama siapkan lingkungan pengembangan Python dan 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 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 Key name, masukkan nama untuk kunci Anda.
Untuk Protection level, pilih Software atau HSM.
Untuk Materi kunci, pilih Kunci yang dibuat.
Untuk Tujuan, pilih Penandatanganan/verifikasi MAC.
Opsional: untuk Algorithm, pilih algoritme penandatanganan HMAC.
Klik Create.
gcloud
Untuk menggunakan Cloud KMS di command line, pertama-tama Instal atau upgrade ke Google Cloud CLI versi terbaru.
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 menghapus tanda--protection-level
untuk kuncisoftware
.
Untuk mengetahui informasi tentang semua flag dan kemungkinan nilai, jalankan perintah dengan
flag --help
.
C#
Untuk menjalankan kode ini, siapkan lingkungan pengembangan C# terlebih dahulu dan 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 Cloud KMS Java SDK.
Node.js
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Node.js terlebih dahulu dan instal Cloud KMS Node.js SDK.
PHP
Untuk menjalankan kode ini, pertama-tama pelajari cara menggunakan PHP di Google Cloud dan menginstal Cloud KMS PHP SDK.
Python
Untuk menjalankan kode ini, pertama-tama siapkan lingkungan pengembangan Python dan instal Cloud KMS Python SDK.
Ruby
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Ruby terlebih dahulu, lalu instal Cloud KMS Ruby SDK.
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 cara Mengenkripsi dan mendekripsi data dengan kunci RSA.
- Pelajari cara Mengambil kunci publik.