Aplicaciones cliente-servidor seguras

Protege las aplicaciones cliente-servidor con el conector de clientes

Descripción general

BeyondCorp Enterprise es la solución de confianza cero de Google Cloud que proporciona acceso seguro a aplicaciones privadas con protección integrada de datos y contra amenazas. BeyondCorp Enterprise usa Chrome para proporcionar acceso seguro a todas las aplicaciones basadas en la Web (HTTPS).

El conector de clientes de BeyondCorp Enterprise extiende la compatibilidad a las aplicaciones no web, ya que crea una conexión segura a las aplicaciones que se ejecutan en entornos de Google Cloud y que no son de Google Cloud con contexto completo y acceso adaptado a la identidad.

Cómo funciona

En el siguiente diagrama, se proporciona una descripción general de la arquitectura de alto nivel del conector de cliente.

Componentes del conector de clientes de BeyondCorp Enterprise

A continuación, se presentan los componentes clave que conforman el conector de cliente:

Verificación de extremos y agente de cliente: El conector de cliente se integra en la Verificación de extremos, una extensión de Chrome con un agente ligero nativo que se ejecuta en las laptops o computadoras de escritorio del usuario y, además, informa la información del dispositivo. La Verificación de extremos también actúa como el plano de control para que el usuario final inicie y detenga conexiones a las puertas de enlace del cliente.

Puertas de enlace de cliente: Son componentes regionales del lado del servidor a los que los clientes pueden conectarse. Los administradores implementan las puertas de enlace de clientes. Las puertas de enlace se comunican con el sistema de aplicación de BeyondCorp Enterprise para aplicar las verificaciones contextuales. El sistema de aplicación de BeyondCorp Enterprise usa Identity-Aware Proxy y Access Context Manager, un motor flexible de políticas de confianza cero de BeyondCorp Enterprise.

El conector de cliente envía tráfico a tus aplicaciones protegidas desde dispositivos del usuario final y del cliente a través de un canal seguro, una puerta de enlace. Puedes conectarte a aplicaciones web y no web que se ejecuten en Google Cloud o fuera de este servicio. Puedes usar Cloud VPN o Cloud Interconnect para conectarte a las aplicaciones que no están en Google Cloud.

Antes de comenzar

Antes de habilitar el conector de clientes de BeyondCorp Enterprise, asegúrate de tener lo siguiente:

Habilita el conector de clientes de BeyondCorp Enterprise

Configura el acceso privado a servicios

El conector de cliente usa el acceso privado a servicios para habilitar la conectividad entre la red de VPC administrada por Google y la red de VPC del consumidor. Esto garantiza que el tráfico de los usuarios se enrute a la red de VPC del consumidor.

Consola

  1. El acceso privado a servicios requiere que reserves un rango de direcciones IP para que no haya colisiones de direcciones IP entre tu red de VPC y la red de VPC administrada por Google. Completa los siguientes pasos para asignar un rango de IP:

    1. Ve a la página Redes de VPC en la consola de Google Cloud.
      Ir a las redes de VPC

    2. Selecciona la red de VPC que está conectada a tu aplicación.

    3. Selecciona la pestaña Conexión privada a servicios.

    4. En la pestaña Conexión privada a servicios, selecciona la pestaña Rangos de IP asignados para servicios.

    5. Haz clic en Asigna rangos de IP.

    6. Ingresa un Nombre y una Descripción para el rango de IP que se asignará.

    7. Especifica un Rango de IP para la asignación:

      • Para especificar un rango de direcciones IP, selecciona Personalizado y luego ingresa un bloque CIDR, como 192.168.0.0/16.
      • Para especificar la longitud de un prefijo y permitir que Google seleccione un rango disponible, selecciona Automático y luego ingresa la longitud de un prefijo, como 16.

      Especifica una red de no menos de /24.

    8. Haz clic en Asignar para crear un rango asignado.

  2. Para crear una conexión de intercambio de tráfico entre redes de VPC, completa los siguientes pasos:

    1. Ve a la página Redes de VPC en la consola de Google Cloud.
      Ir a las redes de VPC
    2. Selecciona la red de VPC que está conectada a tu aplicación.
    3. Selecciona la pestaña Conexión privada a servicios.
    4. En la pestaña Conexión privada a servicios, selecciona la pestaña Conexiones privadas a los servicios.
    5. Haz clic en Crear conexión para crear una conexión privada entre tu red y el servicio de conector de cliente.
    6. En la ventana que se abre, deja el valor predeterminado para Connected Service Producer. En Asignación designada, selecciona el rango asignado que creaste en el paso anterior.
    7. Haz clic en Conectar para crear la conexión.
  3. Cree una regla de firewall.

    1. En la consola de Google Cloud, ve a la página Firewall.
      Ir a la página Firewall
    2. Haz clic en Crear regla de firewall.
    3. Ingresa un Nombre para la regla de firewall.
      Este nombre debe ser único para el proyecto.
    4. Opcional: Puedes habilitar los registros de reglas de firewall:
      • Haz clic en Registros > Activados.
      • Para omitir los metadatos, expande Detalles de los registros y, luego, borra Incluir metadatos.
    5. Especifica la Red que está conectada a tu aplicación.
    6. Especifica la Prioridad de la regla. Cuanto más bajo sea el número, más alta será la prioridad.
    7. En Dirección del tráfico, selecciona Entrada.
    8. En Acción en caso de coincidencia, selecciona Permitir.
    9. En Destinos, haz clic en Todas las instancias de la red.
    10. En Filtro de fuente, selecciona Rangos de IPv4 y, luego, ingresa los valores address y prefixLength del Paso 1 para representar el rango de IP asignado en formato CIDR. Usa el formato 0.0.0.0/0 para cualquier fuente IPv4.
    11. En Protocolos y puertos, selecciona Permitir todos para que la regla se aplique a todos los protocolos y puertos de destino.
    12. Haz clic en CREAR.

gcloud

  1. El acceso privado a servicios requiere que reserves un rango de direcciones IP para que no haya colisiones de direcciones IP entre tu red de VPC y la red de VPC administrada por Google. Ejecuta el siguiente comando para asignar un rango de IP:

    gcloud compute addresses create RESERVED_RANGE \
      --network=CONSUMER_NETWORK \
      --project=CONSUMER_PROJECT \
      --prefix-length=16 \
      --purpose=VPC_PEERING \
      --global
    

    Reemplaza lo siguiente:

    • RESERVED_RANGE: Es el nombre del rango de direcciones IP que se reservará para el intercambio de tráfico de VPC. El nombre solo puede contener letras minúsculas, números y guiones.
    • CONSUMER_NETWORK: Es el nombre de la red de VPC conectada a la aplicación.
    • CONSUMER_PROJECT: Es el ID del proyecto que aloja el CONSUMER_NETWORK.
  2. Crea la conexión de intercambio de tráfico de VPC.

    gcloud services vpc-peerings connect \
      --network=CONSUMER_NETWORK \
      --project=CONSUMER_PROJECT \
      --ranges=RESERVED_RANGE \
      --service="servicenetworking.googleapis.com"
    

    Reemplaza lo siguiente:

    • CONSUMER_NETWORK: Es el nombre de la red de VPC conectada a la aplicación.
    • CONSUMER_PROJECT: Es el ID del proyecto que aloja el CONSUMER_NETWORK.
    • RESERVED_RANGE: El nombre del rango reservado para el intercambio de tráfico de VPC.
  3. Obtén los detalles del rango de IP asignado.

    gcloud compute addresses describe RESERVED_RANGE \
      --global \
      --project=CONSUMER_PROJECT
    

    Reemplaza lo siguiente:

    • RESERVED_RANGE: El nombre del rango reservado para el intercambio de tráfico de VPC.
    • CONSUMER_PROJECT: Es el ID del proyecto que aloja el CONSUMER_NETWORK.
  4. Usa los valores address y prefixLength del resultado del paso anterior para representar el rango de IP asignado en formato CIDR y, luego, crea una regla de firewall.

    gcloud compute firewall-rules create "allow-peered-ingress" \
      --network=CONSUMER_NETWORK \
      --project=CONSUMER_PROJECT \
      --direction ingress \
      --action allow \
      --source-ranges={Allocated IP range in CIDR format i.e. address/prefixLength} \
      --rules=all
    

    Reemplaza lo siguiente:

    • CONSUMER_NETWORK: Es el nombre de la red de VPC conectada a la aplicación.
    • CONSUMER_PROJECT: Es el ID del proyecto que aloja el CONSUMER_NETWORK.

Para obtener información sobre la configuración de reglas de firewall, consulta Usa reglas de firewall de VPC.

Configura los recursos del conector de cliente

Existen dos tipos de recursos que debes configurar:

  • Servicio de conector de cliente: Define una configuración común para un grupo de puertas de enlace de clientes.
  • Puerta de enlace del cliente: Hace referencia al servicio del conector de cliente y controla las regiones en las que deseas administrar el tráfico del usuario.

Solo se permite un servicio de conector de cliente por dominio y una puerta de enlace de cliente por región por servicio de conector de cliente. Además, solo puedes usar las siguientes regiones para alojar el servicio del conector de cliente y los recursos de puerta de enlace: asia-east1, europe-west1, us-east1 y us-central1.

Crea el servicio del conector de cliente

Consola

  1. Ve a la página de administrador de IAP.

    Ve a IAP

  2. Haz clic en CONECTORES > HABILITAR EL CONECTOR DE CLIENTES.

  3. Ingresa la red de VPC que recibirá el tráfico de los clientes administrados.

  4. Selecciona las regiones a las que se pueden conectar tus clientes. Ten en cuenta que las puertas de enlace del cliente se crean en este paso, por lo que no es necesario que las crees en el procedimiento Crea, verifica o quita puertas de enlace de clientes.

  5. Ingresa el rango de direcciones IP para las aplicaciones a las que quieres que llegue el conector de cliente.

  6. Haz clic en HABILITAR EL CONECTOR DE CLIENTES. La creación del conector puede tardar varios minutos.

gcloud

Ejecuta el siguiente comando:

gcloud beta beyondcorp client-connector services create CLIENT_CONNECTOR_SERVICE_NAME \
  --project=CONSUMER_PROJECT \
  --location=SERVICE_LOCATION \
  --config-from-file=/path/to/file/config.json

donde config.json es:

   {
     "ingress": {
       "config": {
         "transportProtocol": "TCP",
         "destinationRoutes": [{
           "address": "DESTINATION_ADDRESS",
           "netmask": "DESTINATION_MASK"
         }]
       }
     },
     "egress": {
       "peeredVpc": {
         "networkVpc": "projects/CONSUMER_PROJECT/global/networks/CONSUMER_NETWORK"
       }
     }
   }

Reemplaza lo siguiente:

  • CLIENT_CONNECTOR_SERVICE_NAME: Es el nombre de tu servicio de conector de cliente.
  • CONSUMER_PROJECT: Es el ID del proyecto que aloja el CONSUMER_NETWORK.
  • SERVICE_LOCATION: Es la región en la que se creará el servicio de conector del cliente. Puedes especificar que se admitan una de las siguientes regiones: asia-east1, europe-west1, us-east1 y us-central1.
  • DESTINATION_ADDRESS: Es la dirección del host de la subred de destino que aloja la aplicación. Por ejemplo, si tu aplicación usa 10.0.0.0/28, la dirección es 10.0.0.0.
  • DESTINATION_MASK: Es la máscara de red de la subred de destino que aloja la aplicación. Por ejemplo, si tu aplicación usa 10.0.0.0/28, la máscara es 255.255.255.240.
  • CONSUMER_NETWORK: Es el nombre de la red de VPC conectada a la aplicación.

API

Ejecuta el siguiente comando:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d @config.json \
https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices?client_connector_service_id=CLIENT_CONNECTOR_SERVICE_NAME

donde config.json es:

   {
     "ingress": {
       "config": {
         "transportProtocol": "TCP",
         "destinationRoutes": [{
           "address": "DESTINATION_ADDRESS",
           "netmask": "DESTINATION_MASK"
         }]
       }
     },
     "egress": {
       "peeredVpc": {
         "networkVpc": "projects/CONSUMER_PROJECT/global/networks/CONSUMER_NETWORK"
       }
     }
   }

Reemplaza lo siguiente:

  • DESTINATION_ADDRESS: Es la dirección del host de la subred de destino que aloja la aplicación. Por ejemplo, si tu aplicación usa 10.0.0.0/28, la dirección es 10.0.0.0.
  • DESTINATION_MASK: Es la máscara de red de la subred de destino que aloja la aplicación. Por ejemplo, si tu aplicación usa 10.0.0.0/28, la máscara es 255.255.255.240.
  • CONSUMER_PROJECT: Es el ID del proyecto que aloja el CONSUMER_NETWORK.
  • CONSUMER_NETWORK: Es el nombre de la red de VPC conectada a la aplicación.
  • SERVICE_LOCATION: Es la región en la que se creará el servicio de conector del cliente.
  • CLIENT_CONNECTOR_SERVICE_NAME: Es el nombre de tu servicio de conector de cliente.

Enumere el servicio para verificar que se creó el servicio del conector de cliente

Consola

  1. Ve a la página de administrador de IAP.

    Ve a IAP

  2. Haz clic en CONECTORES. El conector debería aparecer en la sección Conector de cliente y tener una marca de verificación verde para su estado.

gcloud

Ejecuta el siguiente comando.

gcloud beta beyondcorp client-connector services list \
  --project=CONSUMER_PROJECT \
  --location=SERVICE_LOCATION

Reemplaza lo siguiente:

  • CONSUMER_PROJECT: Es el ID del proyecto que aloja el CONSUMER_NETWORK.
  • SERVICE_LOCATION: Es la región en la que se creará el servicio de conector del cliente.

API

Ejecuta el siguiente comando:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices

Reemplaza lo siguiente:

  • CONSUMER_PROJECT: Es el ID del proyecto que aloja el CONSUMER_NETWORK.
  • SERVICE_LOCATION: Es la región en la que se encuentra el servicio del conector de cliente.

Opcional: Actualiza un servicio de conector de cliente

Consola

Para actualizar las rutas de destino, completa los siguientes pasos:

  1. Ve a la página de administrador de IAP.

    Ve a IAP

  2. Haz clic en CONECTORES.

  3. En la sección Conector de cliente, haz clic en el ícono de lápiz junto al conector de cliente que deseas actualizar.

  4. Ingresa las nuevas direcciones de host y las máscaras de red de las subredes de destino que alojan las aplicaciones y, luego, haz clic en UPDATE CLIENT CONNECTOR.

gcloud

Actualiza las rutas de destino mediante la ejecución del siguiente comando:

gcloud beta beyondcorp client-connector services update CLIENT_CONNECTOR_SERVICE_NAME \
  --project=CONSUMER_PROJECT \
  --location=SERVICE_LOCATION \
  --config-from-file=/path/to/file/config.json

donde config.json es:

{
  "ingress":{
    "config":{
      "destinationRoutes":[
        {
          "address":"NEW_DESTINATION_ADDRESS1",
          "netmask":"NEW_DESTINATION_MASK1"
        },
        {
          "address":"NEW_DESTINATION_ADDRESS2",
          "netmask":"NEW_DESTINATION_MASK2"
        }
      ]
    }
  }
}

Reemplaza lo siguiente:

  • CLIENT_CONNECTOR_SERVICE_NAME: Es el nombre de tu servicio de conector de cliente.
  • CONSUMER_PROJECT: Es el ID del proyecto que aloja el CONSUMER_NETWORK.
  • SERVICE_LOCATION: Es la región en la que se encuentra el servicio del conector de cliente.
  • NEW_DESTINATION_ADDRESS1, NEW_DESTINATION_ADDRESS2: Son las nuevas direcciones de host de las subredes de destino que alojan las aplicaciones.
  • NEW_DESTINATION_MASK1, NEW_DESTINATION_MASK2: Las máscaras de red nuevas para las subredes de destino.

API

Para actualizar las rutas de destino, ejecuta el siguiente comando:

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d @update.json \
https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices/CLIENT_CONNECTOR_SERVICE_NAME?update_mask=ingress.config.destinationRoutes

En el ejemplo anterior, update.json es:

{
  "ingress":{
    "config":{
      "destinationRoutes":[
        {
          "address":"NEW_DESTINATION_ADDRESS1",
          "netmask":"NEW_DESTINATION_MASK1"
        },
        {
          "address":"NEW_DESTINATION_ADDRESS2",
          "netmask":"NEW_DESTINATION_MASK2"
        }
      ]
    }
  }
}

Reemplaza lo siguiente:

  • CONSUMER_PROJECT: Es el ID del proyecto que aloja el CONSUMER_NETWORK.
  • SERVICE_LOCATION: Es la región en la que se encuentra el servicio del conector de cliente.
  • CLIENT_CONNECTOR_SERVICE_NAME: Es el nombre de tu servicio de conector de cliente.
  • NEW_DESTINATION_ADDRESS1, NEW_DESTINATION_ADDRESS2: Son las nuevas direcciones de host de las subredes de destino que alojan las aplicaciones.
  • NEW_DESTINATION_MASK1, NEW_DESTINATION_MASK2: Las máscaras de red nuevas para las subredes de destino.

Opcional: Quita un servicio de conector de cliente

Consola

  1. Ve a la página de administrador de IAP.

    Ve a IAP

  2. Haz clic en CONECTORES.

  3. En la sección Conector de cliente, haz clic en el ícono de la papelera para quitar el servicio del conector de cliente y las puertas de enlace. Esto puede tomar varios minutos.

gcloud

Ejecuta el siguiente comando.

gcloud beta beyondcorp client-connector services delete CLIENT_CONNECTOR_SERVICE_NAME \
  --project CONSUMER_PROJECT \
  --location SERVICE_LOCATION

Reemplaza lo siguiente:

  • CLIENT_CONNECTOR_SERVICE_NAME: Es el nombre de tu servicio de conector de cliente.
  • CONSUMER_PROJECT: Es el ID del proyecto que aloja el CONSUMER_NETWORK.
  • SERVICE_LOCATION: Es la región en la que se encuentra el servicio del conector de cliente.

API

Ejecuta el siguiente comando.

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices/CLIENT_CONNECTOR_SERVICE_NAME

Reemplaza lo siguiente:

  • CONSUMER_PROJECT: Es el ID del proyecto que aloja el CONSUMER_NETWORK.
  • SERVICE_LOCATION: Es la región en la que se encuentra el servicio del conector de cliente.
  • CLIENT_CONNECTOR_SERVICE_NAME: Es el nombre de tu servicio de conector de cliente.

Crea, verifica o quita puertas de enlace de clientes

Consola

  1. Si usas la consola para configurar el conector de cliente, las puertas de enlace de cliente se crean cuando creas el servicio del conector de cliente en un paso anterior.

  2. Para verificar que las puertas de enlace del cliente estén en funcionamiento, sigue estos pasos:

    1. Ve a la página de administrador de IAP.

      Ve a IAP

    2. Haz clic en CONECTORES. El conector y las puertas de enlace asociadas deben aparecer en la sección Conector de cliente y deben tener una marca de verificación verde en su estado.
  3. Opcional: Para quitar una puerta de enlace de cliente, completa los siguientes pasos.

    1. Ve a la página de administrador de IAP.

      Ve a IAP

    2. Haz clic en CONECTORES.

    3. En la sección Conector de cliente, haz clic en el ícono de lápiz junto al conector de cliente en el que deseas quitar una puerta de enlace.

    4. Para quitar una región del servicio del conector, desmarca la casilla de verificación de la región en la lista desplegable Regiones de puerta de enlace y, luego, haz clic en ACTUALIZAR CONECTOR DE CLIENTE.

gcloud

  1. Crea una puerta de enlace de cliente.

    gcloud beta beyondcorp client-connector gateways create CLIENT_GATEWAY_NAME \
      --project CONSUMER_PROJECT \
      --location GATEWAY_LOCATION \
      --client-connector-service \
      projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices/CLIENT_CONNECTOR_SERVICE_NAME
    

    Reemplaza lo siguiente:

    • CLIENT_GATEWAY_NAME: El nombre de la puerta de enlace de cliente
    • CONSUMER_PROJECT: Es el ID del proyecto que aloja el CONSUMER_NETWORK.
    • GATEWAY_LOCATION: Es la región en la que se creará la puerta de enlace del cliente.
    • SERVICE_LOCATION: Es la región en la que se encuentra el servicio del conector de cliente.
    • CLIENT_CONNECTOR_SERVICE_NAME: Es el nombre de tu servicio de conector de cliente.
  2. Verifica que las puertas de enlace del cliente estén en funcionamiento.

    gcloud beta beyondcorp client-connector gateways list \
      --project CONSUMER_PROJECT \
      --location GATEWAY_LOCATION
    

    Reemplaza lo siguiente:

    • CONSUMER_PROJECT: Es el ID del proyecto que aloja el CONSUMER_NETWORK.
    • GATEWAY_LOCATION: La región en la que se encuentra la puerta de enlace del cliente.
  3. Quita una puerta de enlace de cliente (opcional).

    gcloud beta beyondcorp client-connector gateways delete CLIENT_GATEWAY_NAME \
      --project CONSUMER_PROJECT \
      --location GATEWAY_LOCATION
    

    Reemplaza lo siguiente:

    • CLIENT_GATEWAY_NAME: El nombre de la puerta de enlace de cliente
    • CONSUMER_PROJECT: Es el ID del proyecto que aloja el CONSUMER_NETWORK.
    • GATEWAY_LOCATION: La región en la que se encuentra la puerta de enlace del cliente.

API

  1. Ejecuta el siguiente comando.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d "{client_connector_service: \"projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices/CLIENT_CONNECTOR_SERVICE_NAME\"}" \
    https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/GATEWAY_LOCATION/clientGateways?client_gateway_id=CLIENT_GATEWAY_NAME
    

    Reemplaza lo siguiente:

    • CONSUMER_PROJECT: Es el ID del proyecto que aloja el CONSUMER_NETWORK.
    • SERVICE_LOCATION: Es la región en la que se encuentra el servicio del conector de cliente.
    • CLIENT_CONNECTOR_SERVICE_NAME: Es el nombre de tu servicio de conector de cliente.
    • GATEWAY_LOCATION: Es la región en la que se creará la puerta de enlace del cliente.
    • CLIENT_GATEWAY_NAME: El nombre de la puerta de enlace de cliente

    Este paso puede tardar varios minutos en completarse.

  2. Verifica que las puertas de enlace del cliente estén en funcionamiento.

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/GATEWAY_LOCATION/clientGateways
    

    Reemplaza lo siguiente:

    • CONSUMER_PROJECT: Es el ID del proyecto que aloja el CONSUMER_NETWORK.
    • GATEWAY_LOCATION: La región en la que se encuentra la puerta de enlace del cliente.
  3. Quita una puerta de enlace de cliente (opcional).

    curl -X DELETE \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/GATEWAY_LOCATION/clientGateways/CLIENT_GATEWAY_NAME
    

    Reemplaza lo siguiente:

    • CONSUMER_PROJECT: Es el ID del proyecto que aloja el CONSUMER_NETWORK.
    • GATEWAY_LOCATION: La región en la que se encuentra la puerta de enlace del conector de cliente.
    • CLIENT_GATEWAY_NAME: El nombre de la puerta de enlace de cliente

Configura políticas de acceso adaptado al contexto

  1. Determina las Principales o crea un grupo de usuarios. Identifica a los usuarios que requieren acceso a las aplicaciones protegidas que no son web. Como alternativa, puedes crear un grupo de usuarios para simplificar la configuración y la administración.

  2. Opcional: Crea un nivel de acceso en Access Context Manager para definir una regla adaptada al contexto y que puedas usar para restringir el acceso a tu aplicación.

  3. Configura una política de IAM para el recurso del servicio de conector del cliente y otorga a la principal o al grupo de usuarios el rol de usuario del servicio del conector de clientes de Cloud BeyondCorp (roles/beyondcorp.clientConnectorServiceUser) necesario para acceder a las apps que no son web. De manera opcional, puedes especificar una condición de IAM para aprovisionar la función solo cuando se cumpla un nivel de acceso. Puedes usar la consola o la API a fin de actualizar la política de IAM para un recurso.

    En la consola, completa los siguientes pasos:

    1. Ve a la página de administrador de IAP.

      Ve a IAP

    2. Haz clic en APLICACIONES.
    3. Si todavía no configuraste una pantalla de consentimiento de OAuth, debes hacerlo para completar este paso. En la sección CONECTAR NUEVA APLICACIÓN, selecciona tu conector en Aplicaciones no web.
    4. En la ventana que se abre, haz clic en AGREGAR PRINCIPAL.
    5. Otorga a la principal o al grupo de usuarios el rol Cloud BeyondCorp Client Connector Service User (roles/beyondcorp.clientConnectorServiceUser), necesario para acceder a apps que no son web. De manera opcional, puedes especificar un nivel de acceso para aprovisionar la función solo cuando se cumpla el nivel de acceso. Para especificar un nivel de acceso, debes ser administrador de la organización o tener los permisos view y edit para los niveles de acceso de la organización.
    6. Haz clic en GUARDAR.

Actualizar una política de IAM

Consola

  1. Ve a la página de administrador de IAP.

    Ve a IAP

  2. Haz clic en la pestaña Aplicaciones y, en la lista Recurso, expande Aplicaciones no web.
  3. Selecciona tu conector de cliente. Se abrirá una sección con los permisos de IAM asociados con tu conector.
  4. Puedes actualizar las políticas de IAM asociadas con tu conector de cliente en la sección que se abre.

gcloud

  1. Lee la política existente. El método getIamPolicy() lee la política de IAM existente para el recurso del servicio del conector de cliente en policy.json.

    gcloud beta beyondcorp client-connector services get-iam-policy CLIENT_CONNECTOR_SERVICE_NAME \
      --project=CONSUMER_PROJECT \
      --location=SERVICE_LOCATION > policy.json
    

    Reemplaza lo siguiente:

    • CLIENT_CONNECTOR_SERVICE_NAME: Es el nombre de tu servicio de conector de cliente.
    • CONSUMER_PROJECT: Es el ID del proyecto que aloja el CONSUMER_NETWORK.
    • SERVICE_LOCATION: Es la región en la que se encuentra el servicio de conector del cliente.
  2. Edita la política que se muestra. Actualiza las vinculaciones en policy.json para incluir la asignación de la función de IAM nueva. Puedes hacerlo en un editor de texto o de manera programática. Ejemplo:

    {
                "bindings": [
                  {
                    "role": "roles/beyondcorp.clientConnectorServiceUser",
                    "members": [
                      "user:EXAMPLE_USER@EXAMPLE.COM",
                      "group:EXAMPLE_GROUP@EXAMPLE.COM",
                    ],
                    "condition":
                     {
                       "expression":
            "'accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME' in
            request.auth.access_levels",
                      "title": "CONDITION_NAME"
                    }
                  }
                ]
    }
    

    Reemplaza lo siguiente:

    • POLICY_NAME: Es el nombre numérico de la política de acceso de Access Context Manager.
    • LEVEL_NAME: Es el nombre de tu nivel de acceso de Access Context Manager.
    • CONDITION_NAME: Es el texto del título para la condición de IAM.
  3. Escribe la política actualizada: Puedes usar el método setIamPolicy() para escribir la política de IAM actualizada. Ejemplo:

    gcloud beta beyondcorp client-connector services set-iam-policy CLIENT_CONNECTOR_SERVICE_NAME policy.json \
      --project=CONSUMER_PROJECT \
      --location=SERVICE_LOCATION

    Reemplaza lo siguiente:

    • CLIENT_CONNECTOR_SERVICE_NAME: Es el nombre del servicio de conector de cliente.
    • CONSUMER_PROJECT: Es el ID del proyecto que aloja el CONSUMER_NETWORK.
    • SERVICE_LOCATION: Es la región en la que se encuentra el servicio del conector de cliente.

API

  1. Lee la política existente. El método getIamPolicy() lee la política de IAM existente para el recurso del servicio del conector de cliente en policy.json.

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices/CLIENT_CONNECTOR_SERVICE_NAME:getIamPolicy > policy.json
    

    Reemplaza lo siguiente:

    • CONSUMER_PROJECT: Es el ID del proyecto que aloja el CONSUMER_NETWORK.
    • SERVICE_LOCATION: Es la región en la que se encuentra el servicio del conector de cliente.
    • CLIENT_CONNECTOR_SERVICE_NAME: Es el nombre del servicio de conector de cliente.
  2. Edita la política que se muestra. Actualiza las vinculaciones en policy.json para incluir la asignación de la función de IAM nueva. Puedes hacerlo en un editor de texto o de manera programática. Ejemplo:

     {
       "policy": {
          "bindings": [
            {
              "role": "roles/beyondcorp.clientConnectorServiceUser",
              "members": [
                "user:EXAMPLE_USER@EXAMPLE.COM",
                "group:EXAMPLE_GROUP@EXAMPLE.COM",
             ],
             "condition":
              {
                "expression":
     "'accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME' in
     request.auth.access_levels",
                "title": "CONDITION_NAME"
              }
           }
         ]
       }
     }
     

    Reemplaza lo siguiente:

    • POLICY_NAME: Es el nombre numérico de la política de acceso de Access Context Manager.
    • LEVEL_NAME: Es el nombre de tu nivel de acceso de Access Context Manager.
    • CONDITION_NAME: Es el texto del título para la condición de IAM.
  3. Escribe la política actualizada: Puedes usar el método setIamPolicy() para escribir la política de IAM actualizada. Ejemplo:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d @policy.json \
    https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices/CLIENT_CONNECTOR_SERVICE_NAME:setIamPolicy
     

    Reemplaza lo siguiente:

    • CONSUMER_PROJECT: Es el ID del proyecto que aloja el CONSUMER_NETWORK.
    • SERVICE_LOCATION: Es la región en la que se encuentra el servicio del conector de cliente.
    • CLIENT_CONNECTOR_SERVICE_NAME: Es el nombre del servicio de conector de cliente.

Instala el agente del conector de cliente en los dispositivos de extremos (Windows o macOS)

  1. Para habilitar la extensión Verificación de extremos, sigue los pasos que se indican en Configura la Verificación de extremos en tus dispositivos.

  2. Después de que la Verificación de extremos esté en funcionamiento, la extensión de Verificación de extremos del usuario actualizado mostrará el botón INICIAR CONEXIÓN. Para acceder a la aplicación protegida que no es web, los usuarios pueden hacer clic en el botón INICIAR CONEXIÓN.

Cuando un usuario inicia una conexión por primera vez, la Verificación de extremos le solicita descargar y, luego, instalar los objetos binarios del conector de cliente. Como alternativa, puedes descargar los objetos binarios del conector de cliente en las siguientes URL:

Después de que se establece una conexión, un usuario puede acceder al recurso protegido. Los usuarios pueden optar por finalizar la conexión haciendo clic en el botón FINALIZAR CONEXIÓN.

Soluciona problemas

Si tienes problemas para usar el conector de cliente, la siguiente información proporciona pasos para solucionarlos.

No puedes acceder a tu aplicación

La puerta de enlace del conector de cliente se está ejecutando y la conexión se estableció de forma correcta, pero aún no puedes acceder a tu aplicación.

A continuación, se muestran los motivos más comunes y las posibles soluciones para este problema:

  • No anunciaste el rango de IP asignado en Cloud VPN. Si usas Cloud VPN para conectarte a la aplicación que no es de Google Cloud, asegúrate de anunciar también el rango de IP asignado para el acceso privado a servicios en el router del intercambio de tráfico a través del protocolo de puerta de enlace fronteriza (BGP). Si quieres obtener más información para hacerlo, consulta Cómo especificar anuncios en un Cloud Router.

  • Especificaste una dirección y una máscara incorrectas en las rutas de destino. Asegúrate de que los bits enmascarados sean cero cuando proporciones la dirección. Por ejemplo, 10.0.10.1 es una dirección no válida para proporcionar una máscara de red 255.255.255.0 (/24). La dirección correcta es 10.0.10.0.

  • Posibles conflictos de IP entre el rango de IP asignado para el Acceso privado a servicios y las subredes de IP que usa la red que aloja la aplicación. Asegúrate de que estos rangos sean mutuamente excluyentes. Este problema se produce con mayor frecuencia cuando la aplicación se aloja en una red que no es de Google Cloud.

Recibes el mensaje Unable to connect to the network.

Si recibes el mensaje Unable to connect to the network. Check your network connection and try again., significa que la conexión a Internet de tu dispositivo no está activa.

Resolución: Asegúrate de que la conexión a Internet esté activa y, luego, intenta volver a conectarte.

Registros de auditoría

Si eres administrador, puedes ver los registros de auditoría de BeyondCorp Enterprise, incluidos los registros de auditoría del conector de cliente, en la página Logging de la consola de Google Cloud. Para obtener más información, consulta el registro de auditoría del servicio de BeyondCorp Enterprise.

Si eres un usuario final, sigue estos pasos para acceder a los registros de conexión:

  1. Haz clic con el botón derecho en la extensión de Verificación de extremos en el navegador.
  2. Haz clic en Opciones.
  3. Selecciona el nivel de detalle para el nivel de registro. De forma predeterminada, el nivel de detalle es Información.
  4. Haz clic en Mostrar registro.

¿Qué sigue?