En esta página se explica cómo proteger tus aplicaciones SaaS a través de la pasarela segura de Chrome Enterprise Premium.
Una pasarela segura de Chrome Enterprise Premium funciona como un proxy directo, aplica un framework de acceso de confianza cero y ofrece un control granular y contextual sobre quién accede a tus aplicaciones SaaS.
Cómo funciona la protección del acceso a aplicaciones de SaaS
A continuación, se ofrece un resumen general de cómo protege una pasarela segura tus aplicaciones SaaS:
- La configuración del navegador del lado del cliente dirige el tráfico de la aplicación a través de un proxy de pasarela seguro.
- La pasarela segura comprueba las políticas de acceso contextual para autorizar el acceso de los clientes (usuarios y dispositivos).
- Si se permite, la pasarela reenvía el tráfico a la aplicación mediante direcciones IP de origen únicas asignadas a esa pasarela y a esa Google Cloud región. Para controlar el acceso, puedes añadir estas direcciones IP de origen dedicadas a una lista de permitidas en tu aplicación SaaS.
Antes de empezar
Antes de configurar la pasarela segura, comprueba que tienes lo siguiente:
- Una licencia de Chrome Enterprise Premium
- Acceso a la consola de administración de Google con una cuenta de administrador
- Un proyecto con una cuenta de facturación asignada y la siguiente API habilitada: API BeyondCorp Google Cloud
El administrador que configura las opciones tiene asignado el siguiente rol de Gestión de Identidades y Accesos (IAM): Nivel de proyecto: administrador de Cloud BeyondCorp (
beyondcorp.admin
).Una aplicación SaaS que quieras proteger. La aplicación debe admitir
IP allowlisting
para aplicar comprobaciones de seguridad mediante Secure Gateway.
Limitaciones
Una pasarela segura de Chrome Enterprise Premium tiene la siguiente limitación: una pasarela segura no admite aplicaciones SaaS que solo permitan la conectividad IPv6.
Configurar el entorno de shell
Para simplificar el proceso de configuración e interactuar con las APIs de pasarela 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
Haz los cambios siguientes:
MY_PROJECT_ID
: ID del proyecto en el que se crea la pasarela segura.MY_APPLICATION_ID
: el ID de tu aplicación, comogithub
. El nombre puede tener hasta 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
: el nombre legible por humanos que se va a mostrar.MY_HOST_NAME
: el nombre de host de tu aplicación. Por ejemplo,github.com
. El nombre de host puede tener hasta 253 caracteres y debe cumplir 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 pasarela segura
SECURITY_GATEWAY_ID=
MY_SECURITY_GATEWAY_ID
SECURITY_GATEWAY_DISPLAY_NAME="MY_SECURITY_GATEWAY_DISPLAY_NAME
"Haz los cambios siguientes:
MY_SECURITY_GATEWAY_ID
: ID de la pasarela segura. El ID puede tener hasta 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_SECURITY_GATEWAY_DISPLAY_NAME
: nombre legible por humanos de la pasarela segura. El nombre puede tener hasta 63 caracteres y solo puede contener caracteres imprimibles.
Crear una pasarela segura
Una pasarela segura de Chrome Enterprise Premium es un componente fundamental para establecer conexiones seguras con tus aplicaciones. Asigna un proyecto y una red dedicados, lo que proporciona aislamiento y seguridad.
Para crear un recurso de pasarela segura, utilice uno de los siguientes métodos.
gcloud
Ejecuta el siguiente comando: En el caso de la marca --hubs
, especifique
una o varias regiones de la siguiente lista.
gcloud beta beyondcorp security-gateways create ${SECURITY_GATEWAY_ID} \
--project=${PROJECT_ID} \
--location=global \
--display-name="MY_SECURITY_GATEWAY_DISPLAY_NAME
" \
--hubs=us-central1
REST
Llama al método de la API Create con los detalles de la pasarela en el cuerpo de la solicitud. En el objeto hubs
, especifica una o varias regiones de la siguiente lista.
curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-X POST \
-d '{ "display_name": "MY_SECURITY_GATEWAY_DISPLAY_NAME
", "hubs": { "us-central1": {} } }' \
"https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways?security_gateway_id=${SECURITY_GATEWAY_ID}"
hubs
representa los recursos regionales necesarios para habilitar la conectividad de salida a la aplicación de destino. Puedes tener un centro por región y cada centro proporciona dos direcciones IP. Puede 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
Configurar una aplicación SaaS
Después de crear una pasarela segura, puedes configurar tus aplicaciones SaaS para que la usen y así acceder de forma segura.
Obtén las direcciones IP asignadas por la pasarela segura a cada centro. Se asignan dos direcciones IP a una región.
gcloud
gcloud beta beyondcorp security-gateways describe ${SECURITY_GATEWAY_ID} \ --project=${PROJECT_ID} \ --location=global
REST
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 un ejemplo de respuesta
GET
de una pasarela segura conhubs
. En el ejemplo, se creanhubs
en las regionesus-central1
yus-east1
, y todas las direcciones IP devueltas en la respuesta deben permitirse en la aplicación SaaS.gcloud
createTime: 'CREATE_TIME' displayName: My security gateway hubs: us-central1: internetGateway: assignedIps: - IP_ADDRESS_1 - IP_ADDRESS_2 us-east1: internetGateway: assignedIps: - IP_ADDRESS_1 - IP_ADDRESS_2 name: projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID} state: RUNNING updateTime: 'UPDATE_TIME'
REST
{ "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", ] } }, "us-east1": { "internetGateway": { "assignedIps": [ "IP_ADDRESS_1", "IP_ADDRESS_2", ] } } } } ] }
Añade las direcciones IP a la lista de permitidos de tu aplicación SaaS. Por ejemplo, en el caso de una aplicación de GitHub, puedes seguir esta guía: Gestionar las direcciones IP permitidas de tu organización.
Crear un recurso de aplicación
La siguiente información te guía por el proceso de configuración de un recurso de aplicación de pasarela segura.
Crea un recurso de aplicación de pasarela segura en Google Cloud
El recurso de aplicación es un subrecurso del recurso de pasarela segura. Google Cloud Crea un recurso de aplicación llamando a la API
Create
.
gcloud
gcloud beta beyondcorp security-gateways applications create ${APPLICATION_ID} \ --project=${PROJECT_ID} \ --security-gateway=${SECURITY_GATEWAY_ID} \ --location=global \ --display-name="${APPLICATION_DISPLAY_NAME}" \ --endpoint-matchers="hostname=${HOST_NAME}"
REST
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}"
Configurar el modo proxy de Google Chrome
Para enrutar el tráfico del recurso de la aplicación a través de la pasarela segura, configura Chrome aplicando un archivo PAC en los ajustes de Chrome de la consola de administración de Google.
Crea o actualiza un archivo PAC.
Si vas a crear tu primera aplicación, crea un archivo
pac_config.js
con el siguiente archivo PAC de ejemplo.Si va a crear una segunda aplicación o una posterior, actualice su archivo
pac_config.js
y añada los dominios de su nueva aplicación a la matriz de sitios, tal 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 que no es específico de una pasarela segura, combina los archivos PAC añadiendo los dominios de tu aplicación a la matriz de sitios.
Sube el archivo para que se pueda descargar públicamente. Por ejemplo, puedes subir el archivo a Cloud Storage y hacer que se pueda descargar públicamente concediendo a todos los usuarios el rol Usuario de objeto de Storage en el segmento.
Para verificar que el archivo subido sea siempre la versión más reciente, puede ajustar su comportamiento de almacenamiento en caché configurando el encabezado
Cache-Control
enno-cache
. Esta opción impide 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 el artículo Encabezado Cache-Control.Copia la URL pública del archivo subido.
Actualizar la configuración del modo proxy
- Ve a la consola de administración de Google.
- Haz clic en Dispositivos > Chrome > Configuración.
- Selecciona una unidad organizativa o un grupo y, a continuación, haz clic en Modo proxy.
- En la página Modo proxy, seleccione Utilizar siempre el proxy de configuración automática especificado a continuación e introduzca la URL del archivo PAC de Cloud Storage.
Configurar una política de acceso
Puedes aplicar una política de acceso para controlar el acceso a nivel de la pasarela segura, lo que afecta a todas las aplicaciones asociadas, o a nivel de aplicación individual para tener un control más detallado.
Actualizar una política de acceso de forma segura
El comando setIamPolicy
sustituye toda la política actual por la que proporciones. Para evitar que se eliminen permisos por error, te recomendamos que sigas un patrón de lectura, modificación y escritura. De esta forma, te aseguras de que solo añades contenido a la política actual y no la sobrescribes.
Lectura: primero, obtén la política de acceso actual.
Modificar: edita el archivo de política de forma local para añadir o cambiar permisos.
Escritura: aplica el archivo de política actualizado.
Obtener la política actual
Recupera la política actual antes de hacer cambios.
El campo etag
de la política actúa como identificador de versión. Evita que se produzcan conflictos si varios administradores hacen cambios simultáneamente.
El siguiente comando obtiene la política y la guarda en un archivo llamado policy.json
.
Obtén la política de una pasarela segura:
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}:getIamPolicy" > policy.json
Obtener la política de una aplicación concreta:
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}/applications/${APPLICATION_ID}:getIamPolicy" > policy.json
Después de ejecutar el comando, se crea un archivo policy.json
que contiene la política actual.
Modificar el archivo de políticas
Abre el archivo policy.json
en un editor de texto. Para conceder acceso a un grupo para usar la
pasarela segura, añade el grupo a la lista members
del rol
roles/beyondcorp.securityGatewayUser
.
Tu policy.json
debería ser similar al siguiente ejemplo:
{
"policy": {
"version": 3,
"bindings": [
{
"role": "roles/beyondcorp.securityGatewayUser",
"members": [
"group:existing-group@example.com"
]
}
],
"etag": "BwXN8_d-bOM="
}
}
Para añadir un grupo, añade una entrada nueva a la matriz members
. Incluye una coma
después de la entrada anterior.
En el siguiente ejemplo se añade new-group@example.com
:
{
"policy": {
"version": 3,
"bindings": [
{
"role": "roles/beyondcorp.securityGatewayUser",
"members": [
"group:existing-group@example.com",
"group:new-group@example.com"
]
}
],
"etag": "BwXN8_d-bOM="
}
}
También puedes añadir otros tipos de miembros, como serviceAccount
, user
, group
, principal
y principalSet
, en las vinculaciones de políticas. Consulta Principales de IAM para obtener más información.
Aplicar la política actualizada
Después de editar y guardar el archivo policy.json
, aplícalo al recurso con el comando setIamPolicy
. Este comando usa el etag
de tu archivo para asegurarse de que actualizas la versión correcta.
Aplica la política a una pasarela segura:
jq '{policy: .}' policy.json | curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @- \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}:setIamPolicy"
Aplica la política a una aplicación concreta:
jq '{policy: .}' policy.json | curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @- \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}/applications/${APPLICATION_ID}:setIamPolicy"
Añadir una política de acceso condicional
También puedes definir políticas de acceso con condiciones. Las condiciones especifican los requisitos, como que la dirección IP de un usuario proceda de una ubicación concreta.
En el siguiente ejemplo se muestra una política que concede acceso solo si la dirección IP de origen está dentro de un nivel de acceso especificado:
{
"policy": {
"version": 3,
"bindings": [
{
"role": "roles/beyondcorp.securityGatewayUser",
"members": [
"group:group@example.com"
],
"condition": {
"expression": "request.auth.access_levels.contains('accessPolicies/1234567890/accessLevels/in_us')",
"title": "Source IP must be in US"
}
}
],
"etag": "BwXN8_d-bOM="
}
}
Para aplicar esta política, sigue los pasos que se han descrito anteriormente.
Instalar la extensión Chrome Enterprise Premium
La extensión Chrome Enterprise Premium es una parte integral de una pasarela segura y ayuda con la autenticación. Instala la extensión para todos los usuarios de la pasarela segura. Para obtener información sobre cómo implementar la extensión, consulta el artículo Ver y configurar aplicaciones y extensiones.
- Ve a la consola de administración de Google.
- Haz clic en Navegador Chrome > Aplicaciones y extensiones.
- Haz clic en la pestaña Usuarios y navegadores.
- Para añadir una extensión de Chrome, haz clic en el botón +.
- Busca
ekajlcmdfcigmdbphhifahdfjbkciflj
y, a continuación, fuerza la instalación en todos los usuarios de la unidad organizativa o el grupo. Haz clic en la extensión instalada y, a continuación, ve al campo Política de extensiones y proporciona el siguiente valor JSON:
{ "securityGateway": { "Value": { "authentication": {}, "context": { "resource": "projects/MY_PROJECT_ID/locations/global/securityGateways/MY_SECURITY_GATEWAY_ID" } } } }
Experiencia de usuario final
Una vez completada la configuración, se concederá o denegará el acceso a la aplicación SaaS protegida a los usuarios finales en función de la política de acceso aplicada a la aplicación.
Acceder a la aplicación en Chrome
La extensión Chrome Enterprise Premium es necesaria para dirigir el tráfico a través de la pasarela segura. La extensión gestiona la autenticación entre el usuario y la pasarela segura. La extensión se instala automáticamente a través de la política de dominio.
Cuando los usuarios acceden a la aplicación SaaS que has configurado, su tráfico pasa por la pasarela segura, que comprueba si cumplen la política de acceso. Si los usuarios superan las comprobaciones de la política de acceso, se les concede acceso a la aplicación.
Si la política de autorización rechaza el acceso del navegador a la aplicación, los usuarios recibirán un mensaje Access denied
.