En esta página, se te guía por el proceso para proteger tus aplicaciones SaaS a través de la puerta de enlace segura de Chrome Enterprise Premium.
Una puerta de enlace segura de Chrome Enterprise Premium funciona como un proxy de reenvío, aplica un framework de acceso de confianza cero y ofrece un control detallado y adaptado al contexto sobre quién accede a tus aplicaciones de SaaS.
Cómo funciona la protección del acceso a las aplicaciones de SaaS
A continuación, se incluye una descripción general de alto nivel sobre cómo una puerta de enlace segura protege tus aplicaciones SaaS:
- La configuración del navegador del cliente enruta el tráfico de la aplicación a través de un proxy de puerta de enlace seguro.
- La puerta de enlace segura verifica las políticas de acceso adaptado al contexto para autorizar el acceso del cliente (usuario y dispositivo).
- Si se permite, la puerta de enlace reenvía el tráfico a la aplicación con direcciones IP de origen únicas asignadas a esa puerta de enlace y a la región de Google Cloud . Puedes usar esas direcciones IP de origen dedicadas para implementar reglas de listas de IPs permitidas.
Antes de comenzar
Antes de configurar la puerta de enlace segura, verifica que tengas lo siguiente:
- Una licencia de Chrome Enterprise Premium
- Acceso a la Consola del administrador de Google con una cuenta de administrador
- Un proyecto Google Cloud con una cuenta de facturación asignada y la siguiente API habilitada: API de BeyondCorp
El siguiente rol de Identity and Access Management (IAM) se otorga al administrador que configura las opciones: Nivel del proyecto: Administrador de Cloud BeyondCorp (
beyondcorp.admin
).Una aplicación de SaaS que deseas proteger La aplicación debe admitir
IP allowlisting
para aplicar verificaciones de seguridad por parte de la infraestructura de Google.
Limitaciones
Una puerta de enlace segura de Chrome Enterprise Premium tiene la siguiente limitación: Una puerta de enlace segura no admite aplicaciones SaaS que solo permiten la conectividad IPv6.
Configura tu entorno de shell
Para optimizar el proceso de configuración y, luego, interactuar con las APIs de la puerta de enlace segura, define las siguientes variables de entorno en tu shell de trabajo.
Parámetros generales
API="beyondcorp.googleapis.com" API_VERSION=v1 PROJECT_ID=MY_PROJECT_ID APPLICATION_ID=MY_APPLICATION_ID APPLICATION_DISPLAY_NAME="MY_APPLICATION_DISPLAY_NAME" HOST_NAME=MY_HOST_NAME
Reemplaza lo siguiente:
- MY_PROJECT_ID: Es el ID del proyecto en el que se crea la puerta de enlace segura.
- MY_APPLICATION_ID: Es el ID de tu aplicación. Por ejemplo,
github
. El nombre puede tener un máximo de 63 caracteres y puede contener letras minúsculas, números y guiones. El primer carácter debe ser una letra, y el último puede ser una letra o un número. - MY_APPLICATION_DISPLAY_NAME: Es el nombre legible que se mostrará.
MY_HOST_NAME: Es el nombre de host de tu aplicación. Por ejemplo,
github.com
El nombre de host puede tener hasta 253 caracteres y debe cumplir con uno de los siguientes formatos:- Una dirección IPv4 válida
- Una dirección IPv6 válida
- Un nombre de DNS válido
- Un asterisco (*)
- Un asterisco (*) seguido de un nombre de DNS válido
Parámetros de puerta de enlace seguros
SECURITY_GATEWAY_ID=MY_SECURITY_GATEWAY_ID SECURITY_GATEWAY_DISPLAY_NAME="MY_SECURITY_GATEWAY_DISPLAY_NAME"
Reemplaza lo siguiente:
- MY_SECURITY_GATEWAY_ID: ID de la puerta de enlace segura. El ID puede tener un máximo de 63 caracteres y puede contener letras en minúscula, números y guiones. El primer carácter debe ser una letra y el último puede ser una letra o un número.
- MY_SECURITY_GATEWAY_DISPLAY_NAME: Es el nombre legible de la puerta de enlace segura. El nombre puede tener hasta 63 caracteres y puede incluir caracteres imprimibles.
Crea una puerta de enlace segura
Una puerta de enlace segura de Chrome Enterprise Premium es un componente básico fundamental para establecer conexiones seguras con tus aplicaciones. Asigna un proyecto y una red dedicados, lo que proporciona aislamiento y seguridad.
Para crear una puerta de enlace segura, completa los siguientes pasos.
Crea un archivo llamado
securityGateway.json
con el siguiente ejemplo.{ "display_name": "MY_SECURITY_GATEWAY_DISPLAY_NAME", "hubs": { "us-central1": {} } }
En el ejemplo,
hubs
representa los recursos regionales necesarios para habilitar la conectividad de salida a la aplicación de destino. Puedes tener un concentrador para una región, y cada concentrador proporciona dos direcciones IP.Puedes especificar las siguientes regiones:
africa-south1
asia-east1
asia-south1
asia-south2
asia-southeast1
europe-central2
europe-north1
europe-southwest1
europe-west1
europe-west2
europe-west3
europe-west4
europe-west8
europe-west9
northamerica-northeast1
northamerica-northeast2
northamerica-south1
southamerica-east1
southamerica-west1
us-central1
us-east1
us-east4
us-east5
us-west1
Llama a la API de
Create
para crear un recurso de puerta de enlace seguro.curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -X POST \ -d @securityGateway.json \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways?security_gateway_id=${SECURITY_GATEWAY_ID}"
Configura una aplicación de SaaS
Después de crear una puerta de enlace segura, puedes configurar tus aplicaciones de SaaS para que la usen y accedan de forma segura.
Obtén las direcciones IP que asigna la puerta de enlace segura para cada centro. Se asignan dos direcciones IP para una región.
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}"
A continuación, se muestra una respuesta de
GET
de ejemplo de una puerta de enlace segura con concentradores. En el ejemplo, los hubs se crean en las regionesus-central1
yus-east1
, y todas las direcciones IP que se devuelven en la respuesta se deben permitir en la aplicación de SaaS.{ "securityGateways": [ { "name": "projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}", "createTime": "CREATE_TIME", "updateTime": "UPDATE_TIME", "displayName": "My security gateway", "state": "RUNNING", "hubs": { "us-central1": { "internetGateway": { "assignedIps": [ "IP_ADDRESS_1", "IP_ADDRESS_2", "IP_ADDRESS_3", "IP_ADDRESS_4", "IP_ADDRESS_5" ] } }, "us-east1": { "internetGateway": { "assignedIps": [ "IP_ADDRESS_1", "IP_ADDRESS_2", "IP_ADDRESS_3", "IP_ADDRESS_4", "IP_ADDRESS_5" ] } } } } ] }
Agrega las direcciones IP a la lista de IP permitidas de tu aplicación SaaS. Por ejemplo, para una aplicación de GitHub, puedes seguir esta guía: Administra las direcciones IP permitidas para tu organización.
Crea un recurso de aplicación
La siguiente información te guía a través del proceso de configuración de un recurso de aplicación de puerta de enlace segura.
Crea un recurso de aplicación de puerta de enlace segura en Google Cloud
El recurso de la aplicación Google Cloud es un subrecurso del recurso de puerta de enlace segura. Llama a la API de Create
para crear un recurso de aplicación.
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -X POST \ -d "{ \"display_name\": \"${APPLICATION_DISPLAY_NAME}\", \"endpoint_matchers\": [{hostname: \"${HOST_NAME}\"}] }" \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}/applications?application_id=${APPLICATION_ID}"
Cómo configurar el modo de proxy de Google Chrome
Para enrutar el tráfico del recurso de la aplicación a través de la puerta de enlace segura, configura Chrome aplicando un archivo PAC en la configuración de Chrome en la Consola del administrador de Google.
Crea o actualiza un archivo PAC.
Si es la primera vez que creas una aplicación, crea un archivo
pac_config.js
con el siguiente archivo PAC de ejemplo.Si creas una segunda aplicación o una posterior, actualiza tu archivo
pac_config.js
existente y agrega los dominios de tu nueva aplicación al array de sitios, como se muestra en el siguiente ejemplo de archivo PAC.
function FindProxyForURL(url, host) { const PROXY = "HTTPS ingress.cloudproxy.app:443"; const sites = ["MY_HOST_NAME"]; for (const site of sites) { if (shExpMatch(url, 'https://' + site + '/*') || shExpMatch(url, '*.' + site + '/*')) { return PROXY; } } return 'DIRECT'; }
Si usas un archivo PAC existente que no es específico para una puerta de enlace segura, combina los archivos PAC agregando los dominios de tu aplicación al array de sitios.
Sube el archivo para que se pueda descargar públicamente. Por ejemplo, puedes subir el archivo a Cloud Storage y hacer que todos los usuarios puedan descargarlo de forma pública otorgándoles el rol de Storage Object User en el bucket.
Para verificar que el archivo subido sea siempre la versión más reciente, puedes ajustar su comportamiento de almacenamiento en caché configurando el encabezado
Cache-Control
enno-cache
. Este parámetro de configuración evita que los navegadores y los servidores intermedios almacenen una copia del archivo, de modo que Chrome siempre descargue la versión más reciente.Para obtener más información sobre
Cache-Control
y cómo afecta al almacenamiento en caché del navegador, consulta Encabezado Cache-Control.Copia la URL pública del archivo subido.
Actualiza la configuración del modo de proxy
- Ve a la Consola del administrador de Google.
- Haz clic en Dispositivos -> Chrome -> Configuración.
- Selecciona una unidad organizativa o un grupo y, luego, haz clic en Modo de proxy.
- En la página Modo de proxy, selecciona Usar siempre la configuración automática de proxy que se especifica a continuación y, luego, ingresa la URL del archivo PAC de Cloud Storage.
Configura una política de acceso
Puedes aplicar una política de acceso a nivel de la puerta de enlace segura o de la aplicación:
- Recurso de puerta de enlace segura: Aplica una política a nivel de la puerta de enlace segura para controlar el acceso a todas las aplicaciones asociadas.
- Aplicación individual: Para obtener un control más detallado, puedes aplicar una política de acceso a una aplicación individual.
Crea un archivo en formato JSON llamado
setIamPolicy.json
y agrega lo siguiente.{ "policy": { object (POLICY) } }
Reemplaza POLICY por una política de permisos de IAM. El
etag
de la política debe ser el mismo que eletag
de la política activa, que puedes obtener llamando al métodogetIamPolicy
.Para permitir que un grupo específico use la puerta de enlace segura, otórgale el rol
roles/beyondcorp.securityGatewayUser
.{ "policy": { "version": 3, "bindings": [ { "role": "roles/beyondcorp.securityGatewayUser", "members": [ "group:
" ] } ], "etag": "AA1jlb" } } Para obtener más identificadores, como
serviceAccount
,user
,group
,principal
yprincipalSet
, en las vinculaciones de políticas, consulta Principal de IAM.Aplica la política de acceso en la puerta de enlace segura especificada en el archivo JSON llamando a la API de
setIamPolicy
.curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -X POST \ -d @setIamPolicy.json \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}:setIamPolicy"
Para aplicar la política de acceso en una aplicación, usa el siguiente comando:
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -X POST \ -d @setIamPolicy.json \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}/applications/${APPLICATION_ID}:setIamPolicy"
También puedes establecer políticas de acceso con niveles de acceso como condición, como se muestra en el siguiente ejemplo.
{ "policy": { "version": 3, "bindings": [ { "role": "roles/beyondcorp.securityGatewayUser", "members": [ "group:" ], "condition": { "expression": "'accessPolicies/1234567890/accessLevels/in_us' in request.auth.access_levels", "title": "Source IP must be in US" } } ], "etag": "A1jlb" } }'
Instala la extensión de Chrome Enterprise Premium
La extensión de Chrome Enterprise Premium es una parte integral de una puerta de enlace segura y ayuda con la autenticación. Instala la extensión para todos los usuarios de la puerta de enlace segura. Para obtener información sobre la implementación de la extensión, consulta Cómo ver y configurar apps y extensiones.
- Ve a la Consola del administrador de Google.
- Haz clic en Navegador Chrome -> Apps y extensiones.
- Haz clic en la pestaña Usuarios y navegadores.
- Para agregar una extensión de Chrome, haz clic en el botón +.
- Busca
ekajlcmdfcigmdbphhifahdfjbkciflj
y, luego, fuerza la instalación para todos los usuarios de la unidad organizativa o el grupo. Haz clic en la extensión instalada y, luego, ve al campo Política para extensiones y proporciona el siguiente valor JSON:
{ "securityGateway": { "Value": { "authentication": {}, "context": { "resource": "projects/MY_PROJECT_ID/locations/global/securityGateways/MY_SECURITY_GATEWAY_ID" } } } }
Experiencia del usuario final
Cuando se completa la configuración, se otorga o deniega el acceso a los usuarios finales que acceden a la aplicación SaaS protegida según la política de acceso aplicada a la aplicación.
Cómo acceder a la aplicación en Chrome
Se requiere la extensión de Chrome Enterprise Premium para dirigir el tráfico a través de la puerta de enlace segura. La extensión controla la autenticación entre el usuario y la puerta de enlace segura. La extensión se instala automáticamente a través de la política del dominio.
Cuando los usuarios acceden a la aplicación de SaaS que configuraste, su tráfico pasa por la puerta de enlace segura, que verifica si cumplen con la política de acceso. Si los usuarios pasan las verificaciones de la política de acceso, se les otorga acceso a la aplicación.
Cuando la política de autorización rechaza el acceso del navegador a la aplicación, los usuarios reciben un mensaje de Access denied
.