Crear firmas

En esta página, se muestra cómo usar el métodoTrusted 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

  1. Enable the Service Account Credentials API.

    Enable the API

  2. Debes tener el permiso iam.serviceAccounts.signBlob para la cuenta de servicio que usas en esta guía. Este permiso iam.serviceAccounts.signBlob se incluye en el rol roles/iam.serviceAccountTokenCreator.

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

  1. Tener la gcloud CLI instalada e inicializada, lo 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"
    }

    Aquí:

  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"

    Aquí:

    • JSON_FILE_NAME es el nombre del archivo que creaste en el paso 2.

    • SERVICE_ACCOUNT_EMAIL es la dirección de correo electrónico de la cuenta de servicio que deseas usar para crear la firma. Por ejemplo, service-7550275089395@my-pet-project.s3ns-system.iam.gserviceaccount.com

    Si se ejecuta de forma correcta, se muestra 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 esté decodificado en base64 y, luego, codifícalo en hexadecimal.

¿Qué sigue?