Halaman ini menunjukkan cara mengambil bagian kunci publik dari versi kunci asimetris yang diaktifkan.
Format kunci publik bergantung pada apakah kunci tersebut menggunakan algoritma pasca-komputasi kuantum (PQC) atau algoritma konvensional:
Untuk algoritma non-PQC, format default kunci publik adalah format Privacy-enhanced Electronic Mail (PEM). Anda juga dapat mengambil kunci publik non-PQC dalam format Distinguished Encoding Rules (DER). Untuk mengetahui informasi selengkapnya, lihat RFC 7468, khususnya bagian "General Considerations" dan "Textual Encoding of Subject Public Key Info".
Untuk algoritma PQC yang distandardisasi oleh NIST, Anda dapat mengambil kunci publik dalam format yang diidentifikasi dalam standar NIST PCQ untuk algoritma tersebut. Untuk mengetahui informasi selengkapnya, lihat FIPS-203, FIPS-204, dan FIPS-205. Format PEM dan DER hanya didukung untuk kunci ML-DSA.
Untuk X-Wing, Anda dapat mengambil kunci publik dalam format byte mentah yang ditentukan oleh standar X-Wing. Format PEM dan DER tidak didukung untuk kunci ini.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk mengambil kunci publik, minta administrator untuk memberi Anda peran IAM Cloud KMS CryptoKey Public Key Viewer (roles/cloudkms.publicKeyViewer) pada kunci 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 mengambil kunci publik. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk mengambil kunci publik:
-
cloudkms.cryptoKeyVersions.viewPublicKey -
cloudkms.locations.get -
cloudkms.locations.list -
resourcemanager.projects.get
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Mengambil kunci publik
Anda dapat menentukan format yang diinginkan untuk mengambil kunci publik.
Jika format ditentukan, kunci akan ditampilkan dalam format yang ditentukan di kolom public_key respons. Jika tidak, kunci akan ditampilkan di kolom pem respons.
Untuk mendownload kunci publik untuk versi kunci asimetris yang diaktifkan:
Konsol
Di Google Cloud konsol, 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.
Di baris yang sesuai dengan versi kunci yang kunci publiknya ingin Anda ambil, klik Lihat Selengkapnya .
Klik Dapatkan kunci publik.
Kunci publik akan ditampilkan dalam 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 tersebut adalah kunci asimetris.
- Versi kunci diaktifkan.
- Anda memiliki izin
cloudkms.cryptoKeyVersions.viewPublicKey.
Nama file kunci publik yang didownload dari Google Cloud konsol 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 versi terbaru Google Cloud CLI.
gcloud kms keys versions get-public-key KEY_VERSION \
--key KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--public-key-format PUBLIC_KEY_FORMAT \
--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 dari key ring.PUBLIC_KEY_FORMAT: format yang diinginkan untuk mengekspor kunci publik. Untuk algoritma NIST PQC, gunakannist-pqcdan untuk X-Wing gunakanxwing-raw-bytes. Untuk semua kunci lainnya, Anda dapat menggunakanpem,der, atau menghapus parameter ini.OUTPUT_FILE_PATH: jalur tempat Anda ingin menyimpan file kunci publik—misalnya,public-key.pub.
Untuk mengetahui informasi tentang semua flag dan nilai yang mungkin, jalankan perintah dengan flag --help.
C#
Untuk menjalankan kode ini, pertama-tama siapkan lingkungan pengembangan C# dan instal Cloud KMS C# SDK.
Go
Untuk menjalankan kode ini, pertama-tama siapkan lingkungan pengembangan Go dan instal Cloud KMS Go SDK.
Java
Untuk menjalankan kode ini, pertama-tama siapkan lingkungan pengembangan Java dan instal Cloud KMS Java SDK.
Node.js
Untuk menjalankan kode ini, pertama-tama siapkan lingkungan pengembangan Node.js dan instal Cloud KMS Node.js SDK.
PHP
Untuk menjalankan kode ini, pertama-tama pelajari cara menggunakan PHP di Google Cloud dan instal 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, pertama-tama siapkan lingkungan pengembangan Ruby dan instal Cloud KMS Ruby SDK.
API
Contoh ini menggunakan curl sebagai klien HTTP untuk menunjukkan cara menggunakan API. Untuk mengetahui 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?public_key_format=PUBLIC_KEY_FORMAT" \
--request "GET" \
--header "authorization: Bearer TOKEN"
Ganti kode berikut:
PROJECT_ID: ID project yang berisi key ring.LOCATION: lokasi Cloud KMS dari key ring.KEY_RING: nama key ring yang berisi kunci.KEY_NAME: nama kunci.KEY_VERSION: nomor versi kunci.PUBLIC_KEY_FORMAT: format yang diinginkan untuk mengekspor kunci publik. Untuk algoritma PQC, gunakanNIST_PQC. Untuk semua kunci lainnya, Anda dapat menggunakanPEMatau menghapus parameter ini.
Jika format kunci publik dihapus untuk kunci non-PQC, outputnya akan mirip dengan berikut ini:
{ "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" }
Untuk algoritma PQC dengan format kunci publik NIST_PQC, outputnya akan mirip dengan berikut ini:
{ "publicKeyFormat": "NIST_PQC", "publicKey": { "crc32cChecksum": "1985843562", "data": "kdcOIrFCC5kN8S4i0+R+AoSc9gYIJ9jEQ6zG235ZmCQ=" } "algorithm": "ALGORITHM", "name": "projects/PROJECT_ID/locations/LOCATION/keyRings/ KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/ KEY_VERSION", "protectionLevel": "PROTECTION_LEVEL" }