Valida la firma de una solicitud aprobada
Cada solicitud de Aprobación de acceso aprobada se firma con una clave criptográfica asimétrica para validar la aprobación. Las solicitudes aprobadas se pueden firmar con una Google-owned and managed key o con una clave de Cloud KMS proporcionada por el cliente.
Cuando validas una firma, puedes asegurarte de que la cadena de bytes de la solicitud aprobada serializada sea válida. Para terminar de validar el contenido de la aprobación, debes deserializar el mensaje y compararlo con el contenido de la solicitud aprobada.
Antes de comenzar
Para asegurarte de que la cuenta de servicio de Aprobación de acceso de tu
recurso tenga los permisos necesarios
para verificar las firmas de solicitudes aprobadas,
pídele a tu administrador que otorgue el
rol de IAM de Firmante/Verificador de CryptoKey de Cloud KMS (roles/cloudkms.signerVerifier) a la cuenta de servicio de Aprobación de acceso de tu
recurso en la clave, el llavero o el proyecto de clave.
Es posible que tu administrador también pueda otorgar a la cuenta de servicio de Aprobación de acceso de tu recurso los permisos necesarios a través de roles personalizados o de otros roles predefinidos .
Valida una solicitud firmada con una clave de Cloud KMS proporcionada por Google Google-owned and managed key
En la Google Cloud consola, ve a la página Aprobación de acceso.
Busca y selecciona la solicitud de Aprobación de acceso aprobada que deseas validar. Se abrirá la página Detalles de la solicitud.
En Clave pública administrada por Google, haz clic en content_copy Copiar.
Abre Cloud Shell y, luego, guarda la clave pública como un archivo nuevo llamado
public_key:echo GOOGLE_MANAGED_PUBLIC_KEY > ./public_keyReemplaza
GOOGLE_MANAGED_PUBLIC_KEYpor el contenido del campo Clave pública administrada por Google.En la Google Cloud consola de, en la página Detalles de la solicitud, en Firma, haz clic en content_copy Copiar.
Abre Cloud Shell y, luego, guarda la firma como un archivo nuevo llamado
signature.txt:echo SIGNATURE > ./signature.txtReemplaza
SIGNATUREpor el contenido del campo Firma.Decodifica la firma con el comando
base64y guarda el resultado comodecoded_signature:base64 ./signature.txt -d > ./decoded_signatureEn la Google Cloud consola de, en la página Detalles de la solicitud, en Solicitud de aprobación serializada, haz clic en content_copy Copiar.
Abre Cloud Shell y, luego, guarda la solicitud de aprobación serializada como un archivo nuevo llamado
serialized_approval_request.txt:echo SERIALIZED_APPROVAL_REQUEST > ./serialized_approval_request.txtReemplaza
SERIALIZED_APPROVAL_REQUESTpor el contenido del campo Solicitud de aprobación serializada.Decodifica la solicitud de aprobación serializada y guarda el resultado como
decoded_serialized_approval_request:base64 ./serialized_approval_request.txt -d > ./decoded_serialized_approval_requestUsa
opensslpara verificar la firma:openssl dgst \ -sha256 \ -verify ./public_key \ -signature ./decoded_signature \ ./decoded_serialized_approval_requestSi la firma es válida, el resultado debería ser
Verified OK. Esto confirma que la solicitud de aprobación serializada es válida.
Valida una solicitud firmada con una clave proporcionada por el cliente
En la Google Cloud consola, ve a la página Aprobación de acceso.
Busca y selecciona la solicitud de Aprobación de acceso aprobada que deseas validar. Se abrirá la página Detalles de la solicitud.
En la Google Cloud consola de, en la página Detalles de la solicitud, en Firma, haz clic en content_copy Copiar.
Abre Cloud Shell y, luego, guarda la firma como un archivo nuevo llamado
signature.txt:echo SIGNATURE > ./signature.txtReemplaza
SIGNATUREpor el contenido del campo Firma.Decodifica la firma y guarda el resultado como
decoded_signature:base64 ./signature.txt -d > ./decoded_signatureEn la Google Cloud consola de, en la página Detalles de la solicitud, en Solicitud de aprobación serializada, haz clic en content_copy Copiar.
Abre Cloud Shell y, luego, guarda la solicitud de aprobación serializada como un archivo nuevo llamado
serialized_approval_request.txt:echo SERIALIZED_APPROVAL_REQUEST > ./serialized_approval_request.txtReemplaza
SERIALIZED_APPROVAL_REQUESTpor el contenido del campo Solicitud de aprobación serializada.Decodifica la solicitud de aprobación serializada y guarda el resultado como
decoded_serialized_approval_request:base64 ./serialized_approval_request.txt -d > ./decoded_serialized_approval_requestEn Clave administrada por el cliente, toma nota del identificador de recurso de la clave.
Recupera la clave pública de la clave que identificaste en el paso anterior. Guarda la clave pública descargada en formato PEM como
./public_key.Usa
opensslpara verificar la firma:openssl dgst \ -sha256 \ -verify ./public_key \ -signature ./decoded_signature \ ./decoded_serialized_approval_requestSi la firma es válida, el resultado debería ser
Verified OK. Esto confirma que la solicitud de aprobación serializada es válida.