Claves HMAC

En esta página, se tratan las claves del código de autenticación de mensaje basado en hash (HMAC), que puedes usar para autenticar solicitudes en Cloud Storage. Para obtener una guía sobre cómo crear y administrar las claves HMAC de la cuenta de servicio, consulta la página sobre cómo administrar claves HMAC para cuentas de servicio.

Descripción general

Una clave HMAC es un tipo de credencial y se puede asociar con una cuenta de servicio o una cuenta de usuario en Cloud Storage. Usa una clave HMAC a fin de crear firmas, que luego se incluyen en solicitudes a Cloud Storage. Las firmas muestran que un usuario o una cuenta de servicio autorizan una solicitud determinada.

Las claves HMAC constan de dos partes principales, un ID de acceso y un secreto. Tanto el ID de acceso como el secreto identifican exclusivamente una clave HMAC, pero el secreto cuenta con mucha más información sensible, ya que se utiliza para crear firmas.

Las claves HMAC son útiles en el siguiente caso:

  • Deseas mover datos entre otros proveedores de almacenamiento en la nube y Cloud Storage, porque las teclas HMAC te permiten reutilizar tu código existente para acceder a Cloud Storage.

Almacena secretos

Cuando creas una clave HMAC para una cuenta de servicio, se te proporciona el secreto de la clave una vez. Debes guardar el secreto de forma segura junto con el ID de acceso relacionado. Si pierdes el secreto, ni Google ni tú pueden recuperarlo, y deberás crear una nueva clave HMAC para la cuenta de servicio a fin de continuar autenticando solicitudes.

Cuando creas una clave HMAC para una cuenta de usuario, puedes ver el secreto de la clave desde Google Cloud Console. Para hacer esto, debes acceder a Cloud Console con la cuenta de usuario. Los secretos asociados con la cuenta de usuario se encuentran en el menú Configuración de Cloud Storage, en la pestaña Interoperabilidad.

Restricciones

  • Las claves HMAC solo se pueden usar para realizar solicitudes a la API de XML, no a la API de JSON.

  • Puedes tener un máximo de 5 claves HMAC por cuenta de servicio. Las claves borradas no cuentan en este límite.

Migración de claves HMAC de la cuenta de usuario

Generalmente, asociar claves HMAC con cuentas de servicio es una mejor opción que hacerlo con cuentas de usuario, particularmente para cargas de trabajo de producción:

  • Las cuentas de servicio permiten una mejor supervisión administrativa y eliminan las implicaciones de seguridad y privacidad de las cuentas que mantienen los usuarios individuales.

  • Las cuentas de servicio reducen el riesgo de interrupciones del servicio asociado con depender de cuentas de usuario, como cuando una cuenta de usuario está inhabilitada porque el usuario abandona el proyecto o la empresa.

Si actualmente usas claves HMAC con cuentas de usuario, pero deseas migrar a cuentas de servicio, ten en cuenta lo siguiente:

  • Tu proyecto debe tener una cuenta de servicio y tener asociada una clave HMAC.

  • La cuenta de servicio debe tener los permisos necesarios para realizar acciones en Cloud Storage.

    La función Storage Object Admin contiene un permiso general para trabajar con objetos, pero puedes desear tener cuentas de servicio separadas a fin de realizar distintas acciones. Por ejemplo, puedes desear una cuenta de servicio con el propósito de leer, que tendrá la función Storage Object Viewer, y una segunda cuenta de servicio para escribir, que tendrá la función Storage Object Creator.

  • Debes probar para asegurarte de que la cuenta de servicio se comporte como se esperaba antes de enviar cualquier actualización a producción.

  • Después de que tu trabajo de producción se traslade a las claves HMAC de la cuenta de servicio, debes comprobar la siguiente métrica de Stackdriver para verificar que las claves HMAC asociadas a la cuenta de usuario ya no se usen:

    Métrica Descripción
    storage.googleapis.com/authn/authentication_count La cantidad de veces que se usaron las claves HMAC para autenticar solicitudes.

    Puedes configurar las siguientes etiquetas para realizar un seguimiento de las claves de las cuentas de usuario que aún se usan durante el proceso de migración:

    • access_id: Identifica la clave de acceso que realizó la solicitud. También puedes usar access_id durante una rotación de clave para ver cómo el tráfico se traslada de una clave a otra.

    • authentication_method: Identifica si las claves son de una cuenta de usuario o de servicio.

  • Una vez que verificaste que las claves HMAC de la cuenta de usuario ya no se usan, debes borrarlas. Hacerlo reduce el riesgo de acceso inapropiado a los datos.

  • Si la cuenta de usuario ya no se usa para acceder a los recursos de Cloud Storage, revoca cualquier acceso a Cloud Storage que tenga.

Próximos pasos