Las claves de las cuentas de servicio son claves privadas que te permiten autenticarte como una cuenta de servicio. La rotación de claves es el proceso de reemplazar tus claves existentes con claves nuevas y, luego, invalidar las reemplazadas. Te recomendamos que rotes todas las claves que administras de forma rutinaria, incluidas las claves de tu cuenta de servicio.
La rotación de las claves de cuenta de servicio puede ayudar a reducir el riesgo que presentan las claves filtradas o robadas. Si se filtra una clave, es posible que las personas que actúan de mala fe tarden días o semanas en descubrir la clave. Si rotas las claves de tu cuenta de servicio con regularidad, hay más probabilidades de que las claves filtradas no sean válidas en el momento que una persona/entidad que actúa de mala fe las obtiene.
Tener un proceso establecido para rotar las claves de cuenta de servicio también te ayuda a actuar con rapidez si sospechas que se vulneró una clave de cuenta de servicio.
Con qué frecuencia se deben rotar claves
Recomendamos rotar tus claves al menos cada 90 días para reducir el riesgo que presentan las claves filtradas.
Si crees que se vulneró una clave de cuenta de servicio, te recomendamos que la rotes de inmediato.
Proceso de rotación de claves
Para rotar las claves de la cuenta de servicio, haz lo siguiente:
- Identifica las claves de la cuenta de servicio que se deben rotar.
- Crea claves nuevas para las mismas cuentas de servicio.
- Reemplaza las claves existentes por las nuevas en todas las aplicaciones.
- Inhabilita las claves reemplazadas y supervisa las aplicaciones para confirmar que funcionen como se espera.
- Borra las claves de la cuenta de servicio que se reemplazaron.
Puedes completar estos pasos mediante un servicio de administración de secretos centralizado o un sistema de notificación personalizado.
Servicio centralizado de administración de secretos
Muchos servicios centralizados de administración de secretos, como HashiCorp Vault, proporcionan rotación de secretos automática. Puedes usar estos servicios para almacenar y rotar las claves de tu cuenta de servicio.
No recomendamos usar Secret Manager de Google Cloud para almacenar y rotar las claves de cuenta de servicio. Esto se debe a que, para acceder a los Secrets de Secret Manager, la aplicación necesita una identidad que Google Cloud pueda reconocer. Si la aplicación ya tiene una identidad que Google Cloud puede reconocer, la aplicación puede usarla para autenticarse en Google Cloud en lugar de usar una clave de cuenta de servicio.
El mismo concepto se aplica a otros servicios de administración de secretos basados en la nube, como Azure KeyVault y AWS Secret Manager. Si una aplicación ya tiene una identidad que estos proveedores de servicios en la nube pueden reconocer, podría usar esa identidad para autenticarse en Google Cloud en lugar de usar una clave de cuenta de servicio.
Sistema de notificación personalizado
Otro enfoque para la rotación de claves de cuenta de servicio es crear un sistema que envíe notificaciones cuando se deban rotar las claves. Por ejemplo, podrías crear un sistema que envíe alertas cuando detecte claves que se crearon hace más de 90 días.
En primer lugar, debes identificar las claves que se deben rotar. Para identificar estas claves, recomendamos usar Cloud Asset Inventory a fin de buscar todas las claves de cuentas de servicio que se crearon antes de un momento determinado.
Por ejemplo, mediante el siguiente comando, se enumeran todas las claves de cuenta de servicio que se crearon antes del 2023-03-10 00:00:00 UTC
en la organización con el ID 123456789012
:
gcloud asset search-all-resources \ --scope="organizations/123456789012" \ --query="createTime < 2023-03-10" \ --asset-types="iam.googleapis.com/ServiceAccountKey" \ --order-by="createTime"
Para obtener más información sobre la búsqueda de recursos en Cloud Asset Inventory, consulta Busca recursos. Después de identificar las claves que se deben rotar, puedes enviar notificaciones a los equipos adecuados.
Cuando alguien recibe una notificación para rotar una clave, debe hacer lo siguiente:
- Crear una clave nueva para la cuenta de servicio.
- Reemplazar la clave existente por la nueva clave en todas las aplicaciones.
- Inhabilitar la clave que reemplazaron y supervisar las aplicaciones para confirmar que funcionen como se espera.
- Después de confirmar que las aplicaciones funcionan como se esperaba, borrar la clave reemplazada.
Claves de cuenta de servicio vencidas
No recomendamos usar claves de cuentas de servicio vencidas para la rotación de claves. Esto se debe a que las claves vencidas pueden causar interrupciones si no se rotan de forma correcta. Para obtener más información sobre los casos de uso de las claves de cuentas de servicio vencidas, consulta las fechas de vencimiento de las claves administradas por el usuario.
¿Qué sigue?
- Usa Cloud Asset Inventory para buscar recursos, incluidas las claves de cuenta de servicio, por tiempo de creación.
- Crea, inhabilita y borra claves de cuentas de servicio.