Crear firmas

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

  1. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  2. Debes tener el permiso iam.serviceAccounts.signBlob para la cuenta de servicio que utilices en esta guía. El permiso iam.serviceAccounts.signBlob está incluido en el rol roles/iam.serviceAccountTokenCreator.

  3. 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

  1. Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado Authorization.

  2. Crea un archivo JSON que contenga la siguiente información:

    {
      "payload": "REQUEST_INFORMATION"
    }

    Donde:

  3. Usa cURL para llamar a la API de IAM con una solicitud signBlob:

    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.

  4. 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