En esta página se explica cómo usar el método Google Cloud signBlob
para crear una firma a partir de una cadena o un documento de política que se va a firmar. Las firmas se usan como credenciales en determinadas solicitudes, como las URLs firmadas. En esta guía se usan claves RSA para crear firmas.
Antes de empezar
Enable the Service Account Credentials API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.Debes tener el permiso
iam.serviceAccounts.signBlob
para la cuenta de servicio que utilices en esta guía. El permisoiam.serviceAccounts.signBlob
está incluido en el rolroles/iam.serviceAccountTokenCreator
.La cuenta de servicio que utilices en esta guía debe tener permiso para realizar la solicitud codificada en la firma. Por ejemplo, si la firma se va a usar para leer datos de objetos de un segmento, la cuenta de servicio debe tener permiso para leer los datos de objetos.
Crear una firma
Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado
Authorization
.Crea un archivo JSON que contenga la siguiente información:
{ "payload": "REQUEST_INFORMATION" }
Donde:
REQUEST_INFORMATION
es una cadena que se va a firmar o un documento de política. En ambos casos, el contenido debe estar codificado en Base64.
Usa
cURL
para llamar a la API de IAM con una solicitudsignBlob
:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/SERVICE_ACCOUNT_EMAIL:signBlob"
Donde:
JSON_FILE_NAME
es el nombre del archivo que ha creado en el paso 2.SERVICE_ACCOUNT_EMAIL
es la dirección de correo de la cuenta de servicio que quieres usar para crear la firma. Por ejemplo,service-7550275089395@my-pet-project.iam.gserviceaccount.com
.
Si se realiza correctamente, se devuelve un resumen del mensaje en el campo
signedBlob
de la respuesta, que está codificado en base64.Para completar la firma, asegúrate de que el resumen del mensaje se haya decodificado en base64 y, a continuación, codifica el resumen del mensaje en hexadecimal.
Siguientes pasos
- Consulta la página de referencia para firmar blobs con Google Cloud CLI.
- Crea una URL firmada manualmente con la firma que has creado.
- Crea una URL firmada con Google Cloud herramientas.
- Consulta más información sobre las firmas.