Memvalidasi tanda tangan permintaan yang disetujui
Setiap permintaan Persetujuan Akses yang disetujui ditandatangani dengan kunci kriptografi asimetris untuk memvalidasi persetujuan. Permintaan yang disetujui dapat ditandatangani dengan kunci Cloud KMS Google-owned and managed key atau yang disediakan pelanggan.
Saat memvalidasi tanda tangan, Anda dapat memastikan bahwa string byte dari permintaan yang disetujui yang diserialisasi valid. Untuk menyelesaikan validasi konten persetujuan, Anda harus melakukan deserialisasi pesan dan membandingkan pesan yang telah dideserialisasi dengan konten permintaan yang disetujui.
Sebelum memulai
Untuk memastikan bahwa akun layanan Persetujuan Akses untuk resource Anda memiliki izin yang diperlukan untuk memverifikasi tanda tangan permintaan yang disetujui, minta administrator untuk memberikan peran IAM Penanda Tangan/Pemverifikasi CryptoKey Cloud KMS (roles/cloudkms.signerVerifier) pada kunci, ring kunci, atau project kunci kepada akun layanan Persetujuan Akses untuk resource Anda.
Administrator Anda mungkin juga dapat memberikan izin yang diperlukan kepada akun layanan Persetujuan Akses untuk resource Anda melalui peran khusus atau peran bawaan lainnya.
Memvalidasi permintaan yang ditandatangani menggunakan Google-owned and managed key
Di konsol Google Cloud , buka halaman Access Approval.
Cari dan pilih permintaan Persetujuan Akses yang disetujui yang ingin Anda validasi. Halaman Request details akan terbuka.
Di bagian Kunci publik yang dikelola Google, klik content_copy Salin.
Buka Cloud Shell, lalu simpan kunci publik sebagai file baru bernama
public_key:echo GOOGLE_MANAGED_PUBLIC_KEY > ./public_keyGanti
GOOGLE_MANAGED_PUBLIC_KEYdengan konten kolom Kunci publik yang dikelola Google.Di konsol Google Cloud , di halaman Detail permintaan, di bagian Tanda tangan, klik content_copy Salin.
Buka Cloud Shell, lalu simpan tanda tangan sebagai file baru bernama
signature.txt:echo SIGNATURE > ./signature.txtGanti
SIGNATUREdengan konten kolom Signature.Dekode tanda tangan menggunakan perintah
base64dan simpan hasilnya sebagaidecoded_signature:base64 ./signature.txt -d > ./decoded_signatureDi konsol Google Cloud , di halaman Detail permintaan, di bagian Permintaan Persetujuan yang Diserialisasi, klik content_copy Salin.
Buka Cloud Shell, lalu simpan permintaan persetujuan yang diserialisasi sebagai file baru bernama
serialized_approval_request.txt:echo SERIALIZED_APPROVAL_REQUEST > ./serialized_approval_request.txtGanti
SERIALIZED_APPROVAL_REQUESTdengan konten kolom Serialized Approval Request.Dekode permintaan persetujuan yang diserialisasi dan simpan hasilnya sebagai
decoded_serialized_approval_request:base64 ./serialized_approval_request.txt -d > ./decoded_serialized_approval_requestGunakan
openssluntuk memverifikasi tanda tangan:openssl dgst \ -sha256 \ -verify ./public_key \ -signature ./decoded_signature \ ./decoded_serialized_approval_requestJika tanda tangan valid, outputnya harus
Verified OK. Hal ini mengonfirmasi bahwa permintaan persetujuan yang diserialisasi valid.
Memvalidasi permintaan yang ditandatangani menggunakan kunci yang disediakan pelanggan
Di konsol Google Cloud , buka halaman Access Approval.
Cari dan pilih permintaan Persetujuan Akses yang disetujui yang ingin Anda validasi. Halaman Request details akan terbuka.
Di konsol Google Cloud , di halaman Detail permintaan, di bagian Tanda tangan, klik content_copy Salin.
Buka Cloud Shell, lalu simpan tanda tangan sebagai file baru bernama
signature.txt:echo SIGNATURE > ./signature.txtGanti
SIGNATUREdengan konten kolom Signature.Dekode tanda tangan dan simpan hasilnya sebagai
decoded_signature:base64 ./signature.txt -d > ./decoded_signatureDi konsol Google Cloud , di halaman Detail permintaan, di bagian Permintaan Persetujuan yang Diserialisasi, klik content_copy Salin.
Buka Cloud Shell, lalu simpan permintaan persetujuan yang diserialisasi sebagai file baru bernama
serialized_approval_request.txt:echo SERIALIZED_APPROVAL_REQUEST > ./serialized_approval_request.txtGanti
SERIALIZED_APPROVAL_REQUESTdengan konten kolom Serialized Approval Request.Dekode permintaan persetujuan yang diserialisasi dan simpan hasilnya sebagai
decoded_serialized_approval_request:base64 ./serialized_approval_request.txt -d > ./decoded_serialized_approval_requestDi bagian Kunci yang dikelola pelanggan, catat ID resource kunci.
Ambil kunci publik untuk kunci yang Anda identifikasi di langkah sebelumnya. Simpan kunci publik yang didownload dalam format PEM sebagai
./public_key.Gunakan
openssluntuk memverifikasi tanda tangan:openssl dgst \ -sha256 \ -verify ./public_key \ -signature ./decoded_signature \ ./decoded_serialized_approval_requestJika tanda tangan valid, outputnya harus
Verified OK. Hal ini mengonfirmasi bahwa permintaan persetujuan yang diserialisasi valid.