En esta página se explica cómo crear, inhabilitar y eliminar claves de código de autenticación de mensajes basado en hash (HMAC) asociadas a cuentas de servicio de tu proyecto.
Antes de empezar
Antes de usar esta función en Cloud Storage, debes cumplir los siguientes requisitos:
Tener permisos suficientes para trabajar con claves HMAC en el proyecto seleccionado:
Si eres el propietario del proyecto, lo más probable es que tengas los permisos necesarios.
Deberías tener los permisos de gestión de identidades y accesos que tengan el prefijo
storage.hmacKeys
en el proyecto. Consulta Usar permisos de gestión de identidades y accesos para obtener instrucciones sobre cómo conseguir un rol, como Administrador de claves HMAC de Storage, que tenga estos permisos.
Tener una cuenta de servicio en el proyecto para la que quieras crear claves HMAC. Si no tienes ninguna, consulta el artículo Crear una cuenta de servicio.
Asegúrate de que las siguientes restricciones de política de organización estén inhabilitadas:
constraints/storage.restrictAuthTypes
(debe inhabilitarse para la autenticación con clave HMAC)
Consulta Crear y gestionar políticas de la organización para obtener instrucciones sobre cómo comprobar y inhabilitar restricciones.
Crear una clave HMAC
Para crear una clave HMAC de una cuenta de servicio, sigue estos pasos:
Consola
- En la Google Cloud consola, ve a la página Configuración de Cloud Storage.
Selecciona la pestaña Interoperabilidad.
Haz clic en add_box Crear una clave para una cuenta de servicio.
Selecciona la cuenta de servicio a la que quieras asociar la clave HMAC.
Haz clic en Crear clave.
Para saber cómo obtener información detallada sobre los errores de las operaciones de Cloud Storage en la consola, consulta la sección Solución de problemas. Google Cloud
Línea de comandos
Usa el comando hmac create
:
gcloud storage hmac create SERVICE_ACCOUNT_EMAIL
Donde SERVICE_ACCOUNT_EMAIL
es la dirección de correo asociada a tu cuenta de servicio. Por ejemplo, service-7550275089395@my-pet-project.iam.gserviceaccount.com
.
Si la solicitud se completa correctamente, la respuesta contiene un recurso de clave HMAC, incluidos los valores de accessId
y secret
.
Bibliotecas de cliente
C++
Para obtener más información, consulta la documentación de referencia de la API C++ de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
C#
Para obtener más información, consulta la documentación de referencia de la API C# de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Go
Para obtener más información, consulta la documentación de referencia de la API Go de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Java
Para obtener más información, consulta la documentación de referencia de la API Java de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Node.js
Para obtener más información, consulta la documentación de referencia de la API Node.js de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
PHP
Para obtener más información, consulta la documentación de referencia de la API PHP de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Python
Para obtener más información, consulta la documentación de referencia de la API Python de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Ruby
Para obtener más información, consulta la documentación de referencia de la API Ruby de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Terraform
Puedes usar un recurso de Terraform para crear una clave HMAC. Esta muestra también incluye un recurso para crear una cuenta de servicio.
APIs REST
API JSON
Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado
Authorization
.Usa
cURL
para llamar a la API JSON con una solicitudPOST
hmacKeys:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/projects/PROJECT_IDENTIFIER/hmacKeys?serviceAccountEmail=SERVICE_ACCOUNT_EMAIL"
Donde:
PROJECT_IDENTIFIER
es el ID o el número del proyecto asociado a la clave que quieres crear. Por ejemplo,my-pet-project
.SERVICE_ACCOUNT_EMAIL
es la dirección de correo asociada a tu cuenta de servicio. Por ejemplo,service-7550275089395@my-pet-project.iam.gserviceaccount.com
.
API XML
Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado
Authorization
.Usa
cURL
para llamar a la API XML con una solicitud dePOST
clave HMAC:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/?Action=CreateAccessKey&UserName=SERVICE_ACCOUNT_EMAIL"
Donde
SERVICE_ACCOUNT_EMAIL
es la dirección de correo asociada a tu cuenta de servicio. Por ejemplo,service-7550275089395@my-pet-project.iam.gserviceaccount.com
.
Obtener información de una clave HMAC
Para mostrar las claves HMAC de un proyecto y obtener información sobre ellas, sigue estos pasos:
Consola
- En la Google Cloud consola, ve a la página Configuración de Cloud Storage.
Selecciona la pestaña Interoperabilidad.
Las cuentas de servicio que tienen claves HMAC asociadas aparecen en la subsección Claves de acceso de cuentas de servicio de la sección HMAC de cuentas de servicio.
Haga clic en el nombre de una cuenta de servicio específica para ver las claves HMAC asociadas a ella y el estado de esas claves.
Línea de comandos
Usa el comando
hmac list
para enumerar las claves HMAC de tu proyecto:gcloud storage hmac list
Si la acción se realiza correctamente, el comando devuelve una lista de IDs de acceso de clave HMAC, junto con el estado de cada clave y la cuenta de servicio asociada a cada clave.
Usa el comando
hmac describe
para recuperar los metadatos de una clave específica:gcloud storage hmac describe KEY_ACCESS_ID
Donde
KEY_ACCESS_ID
es el ID de acceso de la clave que quieras.
Bibliotecas de cliente
C++
Para obtener más información, consulta la documentación de referencia de la API C++ de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se obtiene una lista de claves HMAC asociadas a un proyecto:
En el siguiente ejemplo se obtiene información de una clave HMAC específica:
C#
Para obtener más información, consulta la documentación de referencia de la API C# de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se obtiene una lista de claves HMAC asociadas a un proyecto:
En el siguiente ejemplo se obtiene información de una clave HMAC específica:
Go
Para obtener más información, consulta la documentación de referencia de la API Go de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se obtiene una lista de claves HMAC asociadas a un proyecto:
En el siguiente ejemplo se obtiene información de una clave HMAC específica:
Java
Para obtener más información, consulta la documentación de referencia de la API Java de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se obtiene una lista de claves HMAC asociadas a un proyecto:
En el siguiente ejemplo se obtiene información de una clave HMAC específica:
Node.js
Para obtener más información, consulta la documentación de referencia de la API Node.js de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se obtiene una lista de claves HMAC asociadas a un proyecto:
En el siguiente ejemplo se obtiene información de una clave HMAC específica:
PHP
Para obtener más información, consulta la documentación de referencia de la API PHP de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se obtiene una lista de claves HMAC asociadas a un proyecto:
En el siguiente ejemplo se obtiene información de una clave HMAC específica:
Python
Para obtener más información, consulta la documentación de referencia de la API Python de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se obtiene una lista de claves HMAC asociadas a un proyecto:
En el siguiente ejemplo se obtiene información de una clave HMAC específica:
Ruby
Para obtener más información, consulta la documentación de referencia de la API Ruby de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se obtiene una lista de claves HMAC asociadas a un proyecto:
En el siguiente ejemplo se obtiene información de una clave HMAC específica:
APIs REST
API JSON
Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado
Authorization
.Usa
cURL
para llamar a la API JSON con una solicitudLIST
hmacKeys:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/projects/PROJECT_IDENTIFIER/hmacKeys"
Donde
PROJECT_IDENTIFIER
es el ID o el número del proyecto asociado a las claves que quieres enumerar. Por ejemplo,my-pet-project
.
API XML
Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado
Authorization
.Usa
cURL
para llamar a la API XML con una solicitud deGET
clave HMAC:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/?Action=ListAccessKeys&UserName=SERVICE_ACCOUNT_EMAIL"
Donde
SERVICE_ACCOUNT_EMAIL
es la dirección de correo asociada a tu cuenta de servicio. Por ejemplo,service-7550275089395@my-pet-project.iam.gserviceaccount.com
.
Actualizar el estado de una clave HMAC
Para cambiar el estado de una clave HMAC de activa a inactiva (o viceversa), sigue estos pasos:
Consola
- En la Google Cloud consola, ve a la página Configuración de Cloud Storage.
Selecciona la pestaña Interoperabilidad.
En la subsección Claves de acceso para cuentas de servicio, haz clic en el nombre de la cuenta de servicio asociada a la clave HMAC cuyo estado quieras actualizar.
Haz clic en el estado de la clave que quieras actualizar.
Si vas a cambiar el estado de la clave de Inactivo a Activo, haz clic en Desactivar en la ventana que aparece.
Si cambias el estado de la clave de Activa a Inactiva, no es necesario que hagas nada más.
Línea de comandos
Usa el comando hmac update
:
gcloud storage hmac update ACCESS_KEY_ID STATE
Donde:
ACCESS_KEY_ID
es el ID de acceso asociado a la clave que estás actualizando.STATE
puede ser--activate
o--deactivate
.
Si la acción se realiza correctamente, el comando devuelve los metadatos actualizados de la clave HMAC.
Bibliotecas de cliente
C++
Para obtener más información, consulta la documentación de referencia de la API C++ de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se desactiva una clave HMAC:
En el siguiente ejemplo se activa una clave HMAC:
C#
Para obtener más información, consulta la documentación de referencia de la API C# de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se desactiva una clave HMAC:
En el siguiente ejemplo se activa una clave HMAC:
Go
Para obtener más información, consulta la documentación de referencia de la API Go de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se desactiva una clave HMAC:
En el siguiente ejemplo se activa una clave HMAC:
Java
Para obtener más información, consulta la documentación de referencia de la API Java de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se desactiva una clave HMAC:
En el siguiente ejemplo se activa una clave HMAC:
Node.js
Para obtener más información, consulta la documentación de referencia de la API Node.js de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se desactiva una clave HMAC:
En el siguiente ejemplo se activa una clave HMAC:
PHP
Para obtener más información, consulta la documentación de referencia de la API PHP de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se desactiva una clave HMAC:
En el siguiente ejemplo se activa una clave HMAC:
Python
Para obtener más información, consulta la documentación de referencia de la API Python de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se desactiva una clave HMAC:
En el siguiente ejemplo se activa una clave HMAC:
Ruby
Para obtener más información, consulta la documentación de referencia de la API Ruby de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se desactiva una clave HMAC:
En el siguiente ejemplo se activa una clave HMAC:
APIs REST
API JSON
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:
{"state": "STATE"}
Donde
STATE
es el estado que quieres aplicar a la clave. Por ejemplo,INACTIVE
.Usa
cURL
para llamar a la API JSON con una solicitudPUT
hmacKeys:curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/projects/PROJECT_IDENTIFIER/hmacKeys/ACCESS_KEY_ID"
Donde:
JSON_FILE_NAME
es la ruta del archivo que has creado en el paso 2.PROJECT_IDENTIFIER
es el ID o el número del proyecto asociado a la clave que quieres actualizar. Por ejemplo,my-pet-project
.ACCESS_KEY_ID
es el ID de acceso asociado a la clave que estás actualizando.
API XML
Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado
Authorization
.Usa
cURL
para llamar a la API XML con una solicitud dePOST
clave HMAC:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/?Action=UpdateAccessKey&AccessKeyId=ACCESS_KEY_ID&Status=STATUS"
Donde:
ACCESS_KEY_ID
es el ID de acceso asociado a la clave que estás actualizando.STATUS
es el estado que quieres aplicar a la clave. Por ejemplo,Inactive
.
Cuando cambias el estado de una clave HMAC, el cambio tarda hasta 3 minutos en propagarse por el sistema de Cloud Storage. Por este motivo, debes esperar al menos 3 minutos entre la desactivación y la eliminación de una clave HMAC.
Eliminar una clave HMAC
Para eliminar una clave HMAC, debe estar inactiva. Para eliminar una clave HMAC inactiva, sigue estos pasos:
Consola
- En la Google Cloud consola, ve a la página Configuración de Cloud Storage.
Selecciona la pestaña Interoperabilidad.
En la subsección Claves de acceso para cuentas de servicio, haga clic en el nombre de la cuenta de servicio asociada a la clave HMAC que quiera eliminar.
Haz clic en el icono de la papelera asociado a la clave que quieras eliminar.
En el cuadro de diálogo que aparece, introduce los 10 primeros caracteres del ID de la clave de acceso tal como se muestran en la ventana.
Haz clic en Eliminar.
Línea de comandos
Usa el comando hmac delete
:
gcloud storage hmac delete ACCESS_KEY_ID
Donde ACCESS_KEY_ID
es el ID de acceso asociado a la clave que vas a eliminar.
Si la acción se realiza correctamente, el comando no devuelve ninguna respuesta.
Bibliotecas de cliente
C++
Para obtener más información, consulta la documentación de referencia de la API C++ de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
C#
Para obtener más información, consulta la documentación de referencia de la API C# de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Go
Para obtener más información, consulta la documentación de referencia de la API Go de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Java
Para obtener más información, consulta la documentación de referencia de la API Java de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Node.js
Para obtener más información, consulta la documentación de referencia de la API Node.js de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
PHP
Para obtener más información, consulta la documentación de referencia de la API PHP de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Python
Para obtener más información, consulta la documentación de referencia de la API Python de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Ruby
Para obtener más información, consulta la documentación de referencia de la API Ruby de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
APIs REST
API JSON
Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado
Authorization
.Usa
cURL
para llamar a la API JSON con una solicitudDELETE
hmacKeys:curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/projects/PROJECT_IDENTIFIER/hmacKeys/ACCESS_KEY_ID"
Donde:
PROJECT_IDENTIFIER
es el ID o el número del proyecto asociado a la clave que quieres eliminar. Por ejemplo,my-pet-project
.ACCESS_KEY_ID
es el ID de acceso asociado a la clave que vas a eliminar.
API XML
Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado
Authorization
.Usa
cURL
para llamar a la API XML con una solicitud dePOST
clave HMAC:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/?Action=DeleteAccessKey&AccessKeyId=ACCESS_KEY_ID"
Donde
ACCESS_KEY_ID
es el ID de acceso asociado a la clave que vas a eliminar.
Siguientes pasos
- Siga las directrices para migrar de claves HMAC de cuentas de usuario a claves HMAC de cuentas de servicio.
- Usar una clave HMAC en una solicitud autenticada.