En esta página, se muestra cómo usar el método signBlob
de Google Cloud con el objetivo de crear una firma de una cadena para firmar o 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.
Debes tener el permiso
iam.serviceAccounts.signBlob
para la cuenta de servicio que usas en esta guía. Este permisoiam.serviceAccounts.signBlob
se 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_INFORMATION
es una cadena para firmar o un documento de políticas. Para ambos, 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"
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.iam.gserviceaccount.com
Si se ejecuta de forma correcta, la firma se muestra en el campo signedBlob
de la respuesta.
¿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 las herramientas de Google Cloud.
- Obtén más información acerca de las firmas.