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.enablepermission. Learn how to grant roles.Debes tener el permiso
iam.serviceAccounts.signBlobpara la cuenta de servicio que utilices en esta guía. El permisoiam.serviceAccounts.signBlobestá 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_INFORMATIONes una cadena que se va a firmar o un documento de política. En ambos casos, el contenido debe estar codificado en Base64.
Usa
cURLpara 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_NAMEes el nombre del archivo que has creado en el paso 2.SERVICE_ACCOUNT_EMAILes la dirección de correo de la cuenta de servicio que quieres usar para crear la firma. Por ejemplo,example-service-account@my-pet-project.iam.gserviceaccount.com.
Si se realiza correctamente, se devuelve un resumen del mensaje en el campo
signedBlobde 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.