Memvalidasi tanda tangan permintaan yang disetujui
Setiap permintaan Persetujuan Akses yang disetujui ditandatangani dengan kunci kriptografis assimetris untuk memvalidasi persetujuan. Permintaan yang disetujui dapat ditandatangani dengan kunci yang dikelola Google atau kunci Cloud KMS yang disediakan pelanggan.
Saat memvalidasi tanda tangan, Anda dapat yakin bahwa bytestring permintaan yang disetujui dan diserialisasi valid. Untuk menyelesaikan validasi konten persetujuan, Anda harus mendeserialisasi pesan dan membandingkan pesan yang dideserialisasi dengan konten permintaan yang disetujui.
Sebelum memulai
Untuk memastikan bahwa akun layanan Access Approval untuk resource Anda memiliki izin yang diperlukan untuk memverifikasi tanda tangan permintaan yang disetujui, minta administrator untuk memberikan akun layanan Access Approval untuk resource Anda peran IAM Cloud KMS CryptoKey Signer/Verifier (roles/cloudkms.signerVerifier
) pada kunci, ring kunci, atau project kunci.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Administrator Anda mungkin juga dapat memberikan izin yang diperlukan kepada akun layanan Access Approval untuk resource Anda melalui peran kustom atau peran bawaan lainnya.
Memvalidasi permintaan yang ditandatangani menggunakan kunci yang dikelola Google
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_key
Ganti
GOOGLE_MANAGED_PUBLIC_KEY
dengan konten kolom Kunci publik yang dikelola Google.Di konsol Google Cloud, pada halaman Request details, di bagian Signature, klik content_copy Copy.
Buka Cloud Shell, lalu simpan tanda tangan sebagai file baru bernama
signature.txt
:echo SIGNATURE > ./signature.txt
Ganti
SIGNATURE
dengan konten kolom Signature.Dekode tanda tangan menggunakan perintah
base64
dan simpan hasilnya sebagaidecoded_signature
:base64 ./signature.txt -d > ./decoded_signature
Di konsol Google Cloud, pada halaman Request details, di bagian Serialized Approval Request, klik content_copy Copy.
Buka Cloud Shell, lalu simpan permintaan persetujuan yang diserialisasi sebagai file baru bernama
serialized_approval_request.txt
:echo SERIALIZED_APPROVAL_REQUEST > ./serialized_approval_request.txt
Ganti
SERIALIZED_APPROVAL_REQUEST
dengan konten kolom Permintaan Persetujuan Serialisasi.Dekode permintaan persetujuan yang diserialisasi dan simpan hasilnya sebagai
decoded_serialized_approval_request
:base64 ./serialized_approval_request.txt -d > ./decoded_serialized_approval_request
Gunakan
openssl
untuk memverifikasi tanda tangan:openssl dgst \ -sha256 \ -verify ./public_key \ -signature ./decoded_signature \ ./decoded_serialized_approval_request
Jika tanda tangan valid, outputnya akan berupa
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, pada halaman Request details, di bagian Signature, klik content_copy Copy.
Buka Cloud Shell, lalu simpan tanda tangan sebagai file baru bernama
signature.txt
:echo SIGNATURE > ./signature.txt
Ganti
SIGNATURE
dengan konten kolom Signature.Dekode tanda tangan dan simpan hasilnya sebagai
decoded_signature
:base64 ./signature.txt -d > ./decoded_signature
Di konsol Google Cloud, pada halaman Request details, di bagian Serialized Approval Request, klik content_copy Copy.
Buka Cloud Shell, lalu simpan permintaan persetujuan yang diserialisasi sebagai file baru bernama
serialized_approval_request.txt
:echo SERIALIZED_APPROVAL_REQUEST > ./serialized_approval_request.txt
Ganti
SERIALIZED_APPROVAL_REQUEST
dengan konten kolom Permintaan Persetujuan Serialisasi.Dekode permintaan persetujuan yang diserialisasi dan simpan hasilnya sebagai
decoded_serialized_approval_request
:base64 ./serialized_approval_request.txt -d > ./decoded_serialized_approval_request
Di 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
openssl
untuk memverifikasi tanda tangan:openssl dgst \ -sha256 \ -verify ./public_key \ -signature ./decoded_signature \ ./decoded_serialized_approval_request
Jika tanda tangan valid, outputnya akan berupa
Verified OK
. Hal ini mengonfirmasi bahwa permintaan persetujuan yang diserialisasi valid.