En esta página, se muestra cómo usar el métodoGoogle Cloud signBlob para crear una firma a partir de una cadena para firmar o un documento de políticas. Las firmas se usan como credenciales en ciertas solicitudes, como las URLs firmadas. En esta guía, se usan claves RSA para crear firmas.
Antes de comenzar
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 usas en esta guía. Este permisoiam.serviceAccounts.signBlobse incluye en el rolroles/iam.serviceAccountTokenCreator.La cuenta de servicio que uses en esta guía debe tener permiso para realizar la solicitud codificada dentro de la firma. Por ejemplo, si se usará la firma para leer datos de un bucket, la cuenta de servicio debe tener permiso para leer los datos del objeto.
Crea una firma
Tener la gcloud CLI instalada e inicializada, lo 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" }
Aquí:
REQUEST_INFORMATIONes una cadena para firmar o un documento de políticas. Para ambos, 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"
Aquí:
JSON_FILE_NAMEes el nombre del archivo que creaste en el paso 2.SERVICE_ACCOUNT_EMAILes la dirección de correo electrónico de la cuenta de servicio que deseas usar para crear la firma. Por ejemplo,example-service-account@my-pet-project.iam.gserviceaccount.com
Si se ejecuta de forma correcta, se muestra 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 esté decodificado en base64 y, luego, codifícalo en hexadecimal.
¿Qué sigue?
- Consulta la página de referencia para firmar BLOB con Google Cloud CLI.
- Crea una URL firmada de forma manual con la firma que creaste.
- Crea una URL firmada con Google Cloud herramientas.
- Obtén más información acerca de las firmas.