En este documento, se describe cómo puedes usar el acceso adaptado al contexto para proteger diferentes tipos de apps y recursos. El acceso adaptado al contexto es un enfoque de seguridad en el que controlas el acceso de los usuarios en función de la solidez de su autenticación, la postura del dispositivo, la ubicación de la red, la ubicación geográfica o cualquier otro atributo. Este enfoque va más allá del uso de identidades básicas de usuario para el acceso de seguridad y puede ayudarte a implementar un modelo de seguridad de confianza cero para mejorar tu posición de seguridad general. Para obtener detalles sobre las prácticas recomendadas, consulta Prácticas recomendadas para proteger apps y recursos con el acceso según el contexto.
Para proteger tus apps y recursos de Google Cloud , puedes definir controles de acceso detallados basados en una variedad y combinación de factores contextuales. Puedes usar Access Context Manager para definir políticas de acceso, que contienen niveles de acceso y parámetros de servicio.
Este documento está dirigido a cualquier profesional de seguridad responsable de Identity and Access Management (IAM) y la seguridad de los recursos y las apps de Google Cloud . En este documento, se supone que ya conoces Access Context Manager,Google Cloudy la administración de IAM.
Niveles de acceso
Los niveles de acceso te permiten definir un conjunto de requisitos que los usuarios y sus dispositivos deben cumplir para alcanzar un cierto nivel de confianza.
Por ejemplo, puedes usar Access Context Manager para configurar los siguientes niveles de acceso para tu organización:
- Básico: Es un conjunto básico de requisitos que consideras el nivel mínimo.
- Medio: Es un conjunto de requisitos más estrictos que esperas que cumplan los empleados y los dispositivos corporativos. Es posible que este nivel de acceso excluya a los usuarios de la personal externo y a los dispositivos que no son corporativos.
- Alta: Requisitos estrictos que solo cumplen ciertos empleados y dispositivos.
Un nivel de acceso por sí solo no tiene ningún efecto inmediato en los usuarios o los dispositivos. El nivel de acceso especifica requisitos, pero no define los usuarios, las apps ni los recursos en los que se deben aplicar esos requisitos. Un nivel de acceso es como una pieza de configuración reutilizable a la que puedes hacer referencia cuando configuras el acceso a apps o recursos específicos.
Google Cloud te permite usar niveles de acceso para varios tipos diferentes de apps o recursos, incluidos los siguientes, que se describen en este documento:
- Google Workspace y otras apps y servicios fuera de Google Cloud
- La consola de Google Cloud y las APIs de Google Cloud
- Perímetros de servicio de la nube privada virtual (VPC)
- Identity-Aware Proxy (IAP) para el acceso a SSH y RDP
- IAP para apps web
Apps y recursos
En las siguientes secciones, se describe cómo puedes aplicar niveles de acceso a los diferentes tipos de apps y recursos, y cómo difieren los procesos entre los distintos tipos.
Google Workspace y otras apps y servicios fuera de Google Cloud
Las apps y los servicios fuera de Google Cloud que admiten el acceso adaptado al contexto incluyen los siguientes:
- Consola del administrador de Google
- Apps de Google Workspace, como Gmail, Google Meet y el Calendario de Google
- Otras apps de Google, como Gemini o Looker Studio
- Apps de SAML personalizadas
Para restringir el acceso a Google Workspace y a las apps y los servicios fuera deGoogle Cloud, configura el acceso adaptado al contexto para cada servicio o app de forma individual en la Consola del administrador. En la Consola del administrador, haz lo siguiente:
Define el alcance para el que deseas aplicar un nivel de acceso. Un alcance es una combinación de lo siguiente:
- Es un servicio o una app SAML específicos que se protegerán.
- Una unidad organizativa (UO) o un grupo que contiene usuarios relevantes.
Selecciona el nivel de acceso que se aplicará al alcance seleccionado.
Cuando asignas un nivel de acceso, también puedes cambiar la configuración de ese nivel. Puedes especificar que el nivel de acceso solo se aplique cuando los usuarios accedan directamente a la app web. También puedes especificar que el nivel se aplique cuando las apps para dispositivos móviles y otras apps accedan a la API. Para obtener más información, consulta Comportamiento de la app según la configuración del nivel de acceso en "Asigna niveles de acceso adaptado al contexto a las apps".
Puede haber más de una asignación que se aplique a un usuario y una app en particular. Por ejemplo, un usuario puede ser miembro de la UO Employees y del equipo all-apac. Es posible que la UO y el grupo respectivos tengan diferentes niveles de acceso asignados. En este caso, Cloud Identity y Google Workspace solo aplican una de las asignaciones, que es la que tiene la prioridad más alta:
- Las asignaciones basadas en grupos tienen mayor prioridad que las asignaciones basadas en UO.
- Dentro de los grupos, puedes personalizar su prioridad relativa.
- Dentro de las UO, la UO raíz tiene la prioridad relativa más baja.
Cloud Identity y Google Workspace te permiten revisar y analizar los eventos de acceso adaptado al contexto en el registro de acceso adaptado al contexto.
La consola de Google Cloud y las APIs de Google Cloud
Puedes configurar el acceso adaptado al contexto para la consola de Google Cloud y las APIs deGoogle Cloud con vinculaciones de acceso.
Google Cloud Las APIs usan OAuth 2.0 para la autenticación. Para usar una API de Google Cloud, los usuarios necesitan un token de acceso de OAuth válido emitido por Google, y el token debe emitirse para uno de los Google Cloud alcances de OAuth. Las vinculaciones de acceso restringen la capacidad de los usuarios para adquirir esos tokens de acceso. Como resultado, las vinculaciones de acceso limitan el acceso a la consola de Google Cloud y a todas las apps de OAuth que usan permisos de OAuth de Google Cloud , como los siguientes:
- La gcloud CLI
- Herramientas de terceros, como Terraform
- Apps de OAuth que creaste tú mismo y que usan un permiso de OAuth Google Cloud
Una vinculación de acceso vincula un grupo a un nivel de acceso. Cada grupo solo puede tener una vinculación de acceso. Cada vinculación de acceso puede definir las siguientes configuraciones:
- Es una lista de
scopedAccessSettings
que asigna niveles de acceso a apps de OAuth individuales. - Es un nivel de acceso predeterminado.
Si una vinculación de acceso especifica tanto un parámetro de configuración de acceso con alcance como un nivel de acceso predeterminado, los dos niveles de acceso se combinan con la semántica de OR
.
Luego, el usuario solo debe cumplir con uno de los niveles de acceso para acceder a la app de OAuth.
Una vinculación de acceso se aplica a los miembros directos e indirectos del grupo. Si un usuario es miembro de varios grupos, se le podrían aplicar varias vinculaciones de acceso, lo que podría generar varios niveles de acceso. En este caso, los niveles de acceso también se combinan con la semántica de OR
, lo que significa que el usuario solo necesita cumplir con uno de los niveles de acceso.
Perímetros de servicio de VPC
Cuando creas un perímetro de servicio de VPC, especificas una lista de servicios restringidos. Se puede acceder a los servicios restringidos desde dentro del perímetro de servicio, pero, de forma predeterminada, no se puede acceder a ellos desde fuera del perímetro de servicio.
Para permitir el acceso desde fuera del perímetro de servicio, debes usar reglas de entrada. Las reglas de entrada te permiten especificar las condiciones bajo las cuales deseas permitir el acceso externo. Puedes usar niveles de acceso para permitir que una regla de entrada aplique el acceso adaptado al contexto.
Un perímetro de servicio de VPC puede tener varias reglas de entrada. Como resultado, es posible que se aplique más de una regla de entrada a un usuario y una app en particular, y estas reglas de entrada podrían requerir diferentes niveles de acceso. En este caso, los niveles de acceso se evalúan con la semántica de OR
, y el usuario solo debe cumplir con uno de los niveles de acceso.
Puedes combinar vinculaciones de acceso con reglas de entrada del perímetro de servicio de VPC. Si las vinculaciones de acceso y las reglas de entrada especifican diferentes niveles de acceso para un usuario y una app en particular, los niveles se combinan con la semántica de AND
. En ese caso, el usuario debe cumplir con ambos niveles de acceso.
Para revisar y analizar los intentos de acceso a los recursos en un perímetro de servicio de VPC, puedes usar los registros de auditoría de los Controles del servicio de VPC o el analizador de incumplimientos de los Controles del servicio de VPC.
Acceso SSH y RDP a las VMs
Puedes configurar el acceso adaptado al contexto para el acceso a VMs a través de SSH y RDP con el reenvío de TCP de IAP.
El reenvío de TCP de IAP admite vinculaciones de acceso y reglas de entrada del perímetro de servicio de VPC. Tus vinculaciones de acceso para la Google Cloud consola y las API de Cloud se aplican automáticamente al redireccionamiento de TCP de IAP.
Si tu perímetro de servicio incluye el servicio iaptunnel.googleapis.com
como un servicio restringido, tus reglas de entrada se aplican automáticamente al reenvío de TCP de IAP. Para obtener detalles sobre las prácticas recomendadas, consulta Incluye el reenvío de TCP de IAP como un servicio restringido.
También puedes configurar el acceso adaptado al contexto con las condiciones de IAM. Puedes usar las condiciones de IAM como alternativa a las vinculaciones de acceso y las reglas de entrada del perímetro de servicio de VPC, o bien usar todas juntas.
Otorga a un usuario o grupo el rol de usuario de túnel protegido con IAP (
roles/iap.tunnelResourceAccessor
). Luego, en la vinculación del rol, agrega una expresión de condición de IAM que requiera que el usuario cumpla con un determinado nivel de acceso. Por ejemplo, la expresión podría ser similar a la siguiente:"accessPolicies/123/accessLevels/fully-trusted" in request.auth.access_levels
De manera opcional, puedes personalizar la condición de IAM para requerir varios niveles de acceso o incluir otras verificaciones.
Un usuario y una app en particular pueden estar sujetos a una vinculación de acceso, una regla de ingreso y una condición de IAM cuando el usuario y la app acceden al reenvío de TCP de IAP. En este caso, los niveles de acceso se combinan con la semántica AND
, y el usuario debe cumplir con todos los niveles de acceso.
Para revisar y analizar los intentos de acceder al reenvío de TCP de IAP, debes habilitar los registros de auditoría de acceso a los datos para IAP.
Apps web
Puedes configurar el acceso adaptado al contexto para las apps web con IAP.
El IAP para apps web difiere de su contraparte de reenvío de TCP de IAP:
- Las vinculaciones de acceso no se aplican a las apps web configuradas con IAP porque la app de OAuth que usa IAP no utiliza ningún alcance de Google Cloud OAuth.
- Las reglas de entrada del perímetro de servicio de VPC no se aplican a las apps web configuradas con IAP, ya que IAP no es una API deGoogle Cloud y no se puede configurar como un servicio restringido.
Para configurar el acceso adaptado al contexto para apps web con IAP, debes usar condiciones de IAM:
Otorga a un usuario o grupo el rol de Usuario de aplicación web protegida con IAP (
roles/iap.httpsResourceAccessor
). Luego, en la vinculación del rol, agrega una expresión de condición de IAM que requiera que el usuario cumpla con un determinado nivel de acceso. Por ejemplo, la expresión podría ser similar a la siguiente:"accessPolicies/123/accessLevels/fully-trusted" in request.auth.access_levels
De manera opcional, puedes personalizar la condición de IAM para requerir varios niveles de acceso o incluir otras verificaciones.
Para revisar y analizar los intentos de acceder a las apps web configuradas con IAP, debes habilitar los registros de auditoría de acceso a los datos para IAP.
Próximos pasos
- Prácticas recomendadas para proteger apps y recursos con el acceso adaptado al contexto.
- Para obtener más información sobre las arquitecturas de referencia, los diagramas y las prácticas recomendadas, explora Cloud Architecture Center.
Colaboradores
Autor: Johannes Passing | Arquitecto de soluciones de Cloud
Otro colaborador: Ido Flatow | Arquitecto de Soluciones de Cloud