Revoca el acceso a un proyecto de Google Cloud

En este documento, se describen las prácticas recomendadas, las situaciones y los procedimientos para revocar el acceso de un usuario a un proyecto de Google Cloud. Usa este documento para crear políticas y procedimientos que te permitan revocar el acceso de manera coherente y oportuna.

Un momento crítico en la vida es cuando necesitas quitar a alguien acceso a tus recursos de Google Cloud Platform. Cuando un empleado abandona tu empresa, finaliza tu relación con un contratista o un colaborador se traslada a otros proyectos, debes realizar algunas acciones para revocar por completo el acceso innecesario a tus recursos.

Algunos de estos procesos son opcionales. Debes determinar cuál de estos pasos ejecutar, según tus necesidades de seguridad, productos en uso y confianza en la persona cuyo acceso se está revocando.

Prácticas recomendadas para configurar tu proyecto

Puedes mejorar la capacidad de tu proyecto para revocar los accesos de usuarios con eficacia si tomas decisiones inteligentes en el momento de la configuración.

Federa cuentas de usuario con tu proveedor de identidad existente

Cuando federas cuentas de usuario con el proveedor de identidad existente, puedes sincronizar el estado de tus cuentas de usuario. Cuando quitas una cuenta de usuario de tu proveedor de identidad, la identidad del usuario en Cloud Identity también se borra y el usuario ya no obtiene acceso a los recursos de Google Cloud a través de tus políticas de permisos.

A fin de obtener más información, consulta Prácticas recomendadas para federar Google Cloud con un proveedor de identidad externo.

Con el fin de obtener más prácticas recomendadas relacionadas con la identidad, consulta Prácticas recomendadas para planificar cuentas y organizaciones.

Usa Grupos de Google para administrar el acceso a los recursos del proyecto

Los Grupos de Google te permiten organizar usuarios en función de su membresía del equipo o de otros criterios. Después de crear Grupos de Google, puedes asignar acceso a los proyectos y recursos de Google Cloud según los grupos. Luego, cuando un usuario se transfiere a otro equipo, puedes mover la cuenta de usuario a otro grupo, lo que quita automáticamente el acceso que otorgaron las políticas de permisos al grupo anterior.

Para obtener más información, consulta Administra grupos en la consola de Google Cloud y Crea un grupo en tu organización.

Usa Acceso al SO

Usa el Acceso al SO en lugar de las claves SSH basadas en metadatos para que puedas vincular las cuentas de Linux de tus usuarios a sus identidades de Google. Cuando quitas una cuenta de usuario, las claves se revocan automáticamente.

Para ver las instrucciones, consulta Configura el Acceso al SO.

Restringe el acceso desde cuentas de usuario externo

No se puede otorgar acceso externo al proyecto porque no puedes controlar el ciclo de vida de estas cuentas de usuario. Para restringir usuarios externos, usa la restricción de lista iam.allowedPolicyMemberDomains.

Para ver las instrucciones, consulta Restringe identidades por dominio.

Usa el proxy de autenticación de Cloud SQL cuando te conectes a Cloud SQL

El proxy de autenticación de Cloud SQL te permite conectar cargas de trabajo a Cloud SQL según los permisos de IAM, en lugar del control de acceso basado en IP, como las redes autorizadas. El proxy de autenticación de Cloud SQL valida las conexiones mediante credenciales para un usuario o una cuenta de servicio y une la conexión en una capa SSL/TLS autorizada para la instancia de Cloud SQL. Es un método de conexión más seguro que el uso de certificados SSL/TLS autoadministrados o redes autorizadas. También te permite quitar el acceso a Cloud SQL cuando revocas los permisos de la cuenta de usuario o borras la cuenta de usuario por completo.

Limita el acceso a las VMs

Las máquinas virtuales, como las que usan Compute Engine y Google Kubernetes Engine, son grandes superficies expuestas a ataques potenciales. Si alguien alguna vez tuvo acceso a una VM, especialmente acceso con permisos de administrador o acceso de administrador, es extremadamente difícil garantizar que no hayan modificado la VM y dejado una puerta trasera para poder acceder en el futuro. Limita el acceso a la VM a las personas que tengan una necesidad clara y específica sobre ella.

De forma predeterminada, los editores y propietarios del proyecto tienen acceso de administrador a todas las VMs del proyecto. Quita este acceso predeterminado y usa el principio de privilegio mínimo para el acceso a la VM.

Antes de otorgar acceso a la VM, piensa en qué tareas requieren dicho acceso y determina si hay otras formas de satisfacer esas necesidades si es posible. Por ejemplo, en lugar de otorgar acceso a las VMs a todos los desarrolladores para implementar el código, considera usar herramientas como Chef, Puppet y Salt para administrar las implementaciones.

Prepárate para la rotación de credenciales

Diseña tus proyectos y recursos para permitir una rotación fácil y sin problemas de las credenciales a nivel de proyecto. Estos son secretos vinculados con el proyecto en sí, como claves de cuenta de servicio, secretos del cliente OAuth y secretos específicos de la aplicación, como contraseñas de administrador de la base de datos. Para obtener más información, consulta Controla las credenciales vulneradas de Google Cloud.

Restringe las claves de API

Cuando crees y administres claves de API, restringe el conjunto de sitios web, direcciones IP y aplicaciones que pueden usarlas. Con una cuenta de usuario con funciones como Visualizador o Administrador de claves de API se pueden ver las claves de API de tu proyecto, por lo que cualquier clave sin restricción debe rotar o borrarse para revocar el acceso de facturación. Para obtener más información, consulta Protege una clave de API.

Prácticas recomendadas adicionales

Además de las prácticas recomendadas que se describen en este documento, revisa las siguientes prácticas recomendadas:

Situaciones para revocar el acceso a los proyecto de Google Cloud

Si implementaste las prácticas recomendadas que se enumeran en Prácticas recomendadas para configurar tu proyecto, en la siguiente tabla se resume cómo puedes revocar el acceso.

Situación Revoca opciones de acceso
Un empleado abandona tu empresa. Si configuras la federación entre Cloud Identity o Google Workspace con aprovisionamiento automático de usuarios, la revocación de acceso puede ocurrir automáticamente.

Si no seguiste las prácticas recomendadas y otorgaste a las identidades de usuario externas acceso a tus recursos, debes quitar de forma manual las identidades de tus proyectos y recursos.
Un empleado cambia su cargo. Quitas al empleado del grupo de equipo.
Finalizó un contrato. Si configuras la federación entre Cloud Identity o Google Workspace con aprovisionamiento automático de usuarios, la revocación de acceso puede ocurrir automáticamente.

Si no seguiste las prácticas recomendadas y otorgaste a las identidades de usuario externas acceso a tus recursos, debes quitar de forma manual las identidades de tus proyectos y recursos.
Se vulneró la seguridad de una cuenta. Para ver las instrucciones, consulta Maneja las credenciales vulneradas de Google Cloud.

Revocar acceso

Si tomaste buenas decisiones en la configuración del proyecto, los siguientes procesos serán una manera eficiente de revocar el acceso de una persona.

Para determinar a qué recursos tiene acceso una persona, usa el Analizador de políticas. Para ver las instrucciones, consulta Analiza las políticas de IAM.

Borra la cuenta de usuario de tu proveedor de identidad

Si el usuario abandona tu organización y federaste Cloud Identity o Google Workspace con tu proveedor de identidad, con el aprovisionamiento automático de usuarios, la revocación de acceso puede ocurrir automáticamente.

Asigna la cuenta a otro grupo

Si el usuario cambia los roles, quita la cuenta de usuario de sus Grupos de Google actuales. Si federaste Cloud Identity o Google Workspace con tu proveedor de identidad para administrar la membresía del grupo, la revocación de acceso puede ocurrir automáticamente.

Quita la cuenta de usuario de la membresía del proyecto

  1. En la consola de Google Cloud, dirígete a la página de permisos de IAM.

    Permisos de IAM

  2. Selecciona el proyecto del cual deseas quitar una cuenta de usuario.

  3. Haz clic en la casilla de verificación junto a la fila que contiene la cuenta de usuario que deseas quitar de la lista de miembros y, luego, haz clic en Quitar.

Rota las credenciales del proyecto

Rota las claves de la cuenta de servicio

Si usas claves de cuenta de servicio para autenticarte en una cuenta de servicio, debes rotar las claves. Además, considera si la persona puede haber tenido acceso a claves de cuenta de servicio en algún lugar fuera de las herramientas de Google Cloud, como el repositorio de código fuente o las configuraciones de la aplicación.

  1. En la consola de Google Cloud, dirígete a la página Credenciales de API.

    Credenciales de API

  2. Haz clic en el nombre de la cuenta de servicio que deseas modificar.

  3. En la pestaña Clave, haz clic en Agregar clave.

  4. Haga clic en Crear clave nueva.

  5. Elige el Tipo de clave que deseas crear. En la mayoría de las situaciones, se recomienda JSON, pero P12 está disponible para la compatibilidad con versiones anteriores con código que depende de él.

  6. Haz clic en Crear. Un archivo que contiene la clave nueva se descargará automáticamente a través de tu navegador. Implementa esta clave en cualquier aplicación que la necesite.

  7. Después de confirmar que la clave nueva funciona como se esperaba, regresa a la página de credenciales y borra la clave anterior asociada a esa cuenta de servicio.

Rota los secretos de ID de cliente de OAuth

Los secretos de ID de cliente de OAuth no proporcionan ningún acceso directo a tu proyecto. Sin embargo, si un atacante conoce el secreto de ID de cliente de OAuth, puede falsificar tu aplicación y solicitar acceso a las Cuentas de Google de tus usuarios desde una aplicación maliciosa.

Es posible que debas rotar los secretos del ID de cliente de OAuth si la persona cuyo acceso se revocó tuvo acceso al secreto, incluso en el repositorio de código fuente, en la configuración de la aplicación o en las funciones de IAM.

  1. En la consola de Google Cloud, dirígete a la página Credenciales de API.

    Credenciales de API

  2. Haz clic en el nombre del ID de cliente de OAuth 2.0 que deseas modificar.

  3. En la página de ID de cliente, haz clic en Restablecer secreto.

  4. Haz clic en Restablecer en el diálogo de confirmación para revocar inmediatamente el secreto anterior y configurar uno nuevo. Ten en cuenta que todos los usuarios activos deberán volver a autenticarse tras su siguiente solicitud.

  5. Implementa el nuevo secreto en todas las aplicaciones que lo necesiten.

Rota las claves de API

Las claves de API no dan acceso a tu proyecto o tus datos de usuarios, pero controlan a quién le factura Google las solicitudes a la API. Con una cuenta de usuario con funciones como Visualizador o Administrador de claves de API se pueden ver las claves de API de tu proyecto. Si tienes alguna clave no restringida, necesitas borrarlas o volver a generarlas cuando revocas el acceso de una persona a tu proyecto.

  1. En la consola de Google Cloud, dirígete a la página Credenciales de API.

    Credenciales de API

  2. Haz clic en el nombre de la clave de API que deseas modificar.

  3. Haz clic en Volver a generar clave.

  4. Un diálogo mostrará la clave creada recientemente. Implementa esta clave en cualquier aplicación que use la clave que deseas reemplazar.

  5. Después de confirmar que tus aplicaciones funcionan como se esperaba con la clave nueva, regresa a la página de credenciales y borra la clave sin restricciones anterior.

Revoca el acceso a las VM

Si la persona cuyo acceso estás revocando no tiene acceso a ninguna de las VMs de tu proyecto, puedes omitir este paso.

  1. Quita todas las claves SSH al nivel de proyecto a las que tuvo acceso la persona.

  2. En cada VM a la que la persona tenía acceso con SSH, quita todas las claves de nivel de instancia.

  3. Quita la cuenta de la persona de todas las VM a las que tenían acceso.

  4. Verifica si hay aplicaciones sospechosas que pueda haber instalado la persona para proporcionar un acceso por puerta trasera a la VM. Si tienes dudas acerca de la seguridad de algún código que se ejecuta en la VM, recréala y vuelve a implementar las aplicaciones que necesitas desde la fuente.

  5. Verifica que la configuración de firewall de la VM no se haya cambiado en comparación con tu configuración planificada o esperada.

  6. Si creas VM nuevas desde imágenes base personalizadas, verifica que las imágenes de base no hayan sido modificadas de algún modo que pudiera comprometer la seguridad de las VMs nuevas.

Revoca el acceso a las bases de datos de Cloud SQL

Si tu proyecto no usa los recursos de Cloud SQL, puedes omitir este paso.

  1. En Google Cloud Console, dirígete a la página Instancias de SQL.

    Instancias de SQL

  2. Haz clic en el ID de instancia de la base de datos a la que deseas revocar el acceso.

  3. En el menú de la izquierda, haz clic en Conexiones.

  4. Confirma que la lista de direcciones IP en Redes autorizadas y la lista de aplicaciones en autorización de App Engine coincidan con lo esperado. Si la persona cuyo acceso estás tratando de revocar tiene acceso a las redes o aplicaciones detalladas aquí, pueden acceder a esta base de datos.

  5. En el menú de la izquierda, haz clic en Usuarios.

  6. Borra o cambia la contraseña de las cuentas de usuario a las que tenía acceso la persona. Asegúrate de actualizar las aplicaciones que dependan de esas cuentas de usuario.

Vuelve a implementar App Engine

De forma predeterminada, las aplicaciones de App Engine tienen acceso a una cuenta de servicio que es un editor del proyecto asociado. Los controladores de solicitudes de App Engine pueden crear VMs nuevas y leer o modificar datos en Cloud Storage. Alguien con la capacidad de implementar código en App Engine podría usar esta cuenta de servicio para abrir una puerta trasera a tu proyecto. Si te preocupa la integridad del código de las aplicaciones implementadas, recomendamos volver a implementarlas (incluidos los módulos) con una confirmación correcta conocida desde tu sistema de control de versión.

Verifica que se hayan quitado los permisos

En Google Cloud CLI, ejecuta el método search-all-iam-policies para encontrar los recursos a los que una cuenta de usuario en particular podría tener acceso. Por ejemplo, para determinar si un usuario tiene acceso a tus recursos, ejecuta lo siguiente:

gcloud asset search-all-iam-policies --scope='organizations/ORGANIZATION_ID --query='policy:IDENTITY'

Donde:

  • ORGANIZATION_ID es el número de tu organización.
  • IDENTITY es la identidad del usuario, como una dirección de correo electrónico.

¿Qué sigue?