Una cuenta de servicio es un tipo especial de cuenta que suele utilizar una aplicación o una carga de trabajo de computación, como una instancia de Compute Engine, en lugar de una persona. Esta cuenta se identifica por su dirección de correo electrónico, que es única.
Las aplicaciones usan cuentas de servicio para hacer llamadas a las APIs autorizadas autenticándose como la propia cuenta de servicio o como usuarios de Google Workspace o Cloud Identity mediante la delegación de todo el dominio. Cuando una aplicación se autentica como una cuenta de servicio, tiene acceso a todos los recursos a los que la cuenta de servicio tiene permiso para acceder.
Puedes usar una cuenta de servicio para identificar la fuente de tráfico y configurar las políticas de proxy web seguro según sea necesario.
En esta guía se explica cómo hacer lo siguiente:
- Crea una instancia de proxy web seguro con una política vacía.
- Crear y adjuntar cuentas de servicio a recursos.
- Usa cuentas de servicio para crear una política de Secure Web Proxy.
- Crea una instancia de proxy web seguro.
- Prueba la conectividad desde tus VMs.
Antes de empezar
Completa los pasos de configuración inicial.
Pide a un administrador de la organización que conceda acceso a una cuenta de servicio.
Comprueba que tienes instalada la versión 406.0.0 o una posterior de la CLI de Google Cloud:
gcloud version | head -n1
Si tienes instalada una versión anterior de la CLI de gcloud, actualízala:
gcloud components update --version=406.0.0
Crear una instancia de proxy web seguro con una política vacía
Para crear una instancia de proxy web seguro, primero crea una política de seguridad vacía y, a continuación, crea un proxy web.
Crear una política de seguridad vacía
Consola
En la Google Cloud consola, ve a la página Políticas de SWP.
Haz clic en
Crear una política.Introduce el nombre de la política que quieras crear, como
myswppolicy
.Introduce una descripción de la política, como
My new swp policy
.En la lista Regiones, selecciona la región en la que quieras crear la política.
Haz clic en Crear.
Cloud Shell
Usa el editor de texto que prefieras para crear el archivo
POLICY_FILE
.yaml. SustituyePOLICY_FILE
por el nombre que quieras darle al archivo de la política.Añade lo siguiente al archivo YAML que has creado:
name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME description: POLICY_DESCRIPTION
Haz los cambios siguientes:
PROJECT_NAME
: el nombre de tu proyectoREGION
: la región a la que se aplica esta políticaPOLICY_NAME
: el nombre de la política que vas a crearPOLICY_DESCRIPTION
: la descripción de la política que vas a crear
Importa la política de seguridad:
gcloud network-security gateway-security-policies import POLICY_NAME \ --source=POLICY_FILE.yaml \ --location=REGION
Crear un proxy web
Consola
En la Google Cloud consola, ve a la página Proxies web.
Haz clic en
Crear un proxy web seguro.Introduce el nombre del proxy web que quieras crear, como
myswp
.Introduce una descripción del proxy web, como
My new swp
.En la lista Regiones, selecciona la región en la que quieras crear el proxy web.
En la lista Red, selecciona la red en la que quieras crear el proxy web.
En la lista Subred, selecciona la subred en la que quieras crear el proxy web.
Opcional: Introduce la dirección IP del proxy web seguro. Puedes introducir una dirección IP del intervalo de direcciones IP de Secure Web Proxy que se encuentre en la subred que has creado en el paso anterior. Si no introduces la dirección IP, tu instancia de Secure Web Proxy elegirá automáticamente una dirección IP de la subred seleccionada.
En la lista Certificado, selecciona el certificado que quieras usar para crear el proxy web.
En la lista Política, seleccione la política que ha creado para asociar el proxy web.
Haz clic en Crear.
Cloud Shell
Usa el editor de texto que prefieras para crear el archivo
GATEWAY_FILE
.yaml. SustituyeGATEWAY_FILE
por el nombre de archivo que quieras para el archivo de proxy web.Añade lo siguiente al archivo YAML que has creado:
name: projects/PROJECT_NAME/locations/REGION/gateways/GATEWAY_NAME type: SECURE_WEB_GATEWAY ports: [GATEWAY_PORT_NUMBERS] certificateUrls: [CERTIFICATE_URLS] gatewaySecurityPolicy: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME network: projects/PROJECT_NAME/global/networks/NETWORK_NAME subnetwork: projects/PROJECT_NAME/regions/REGION/subnetworks/SUBNET_NAME addresses: [GATEWAY_IP_ADDRESS] scope: samplescope
Haz los cambios siguientes:
GATEWAY_NAME
: el nombre de esta instanciaGATEWAY_PORT_NUMBERS
: una lista de números de puerto de esta pasarela, como[80,443]
CERTIFICATE_URLS
: una lista de URLs de certificados SSLSUBNET_NAME
: el nombre de la subred que contieneGATEWAY_IP_ADDRESS
GATEWAY_IP_ADDRESS
: una lista opcional de direcciones IP de tus instancias de Secure Web Proxy en las subredes de proxy que has creado anteriormente en los pasos de configuración inicialSi decides no incluir direcciones IP, omite el campo para que el proxy web elija una dirección IP por ti.
Crea una instancia de proxy web seguro:
gcloud network-services gateways import GATEWAY_NAME \ --source=GATEWAY_FILE.yaml \ --location=REGION
Probar la conectividad
Para probar la conectividad, usa el comando curl
desde cualquier VM de tu red de nube privada virtual (VPC):
curl -x https://GATEWAY_IP_ADDRESS:PORT_NUMBER https://www.example.com --proxy-insecure
Se espera un error 403 Forbidden
.
Crear y adjuntar cuentas de servicio a recursos
Para crear y adjuntar cuentas de servicio, sigue estos pasos:
Crear reglas de Secure Web Proxy
Para crear reglas de proxy web seguro, sigue estos pasos:
Usa el editor de texto que prefieras para crear un archivo
RULE_FILE
.yaml. SustituyeRULE_FILE
por el nombre de archivo que elijas.Para permitir el acceso a una URL desde la cuenta de servicio elegida, añade lo siguiente al archivo YAML:
name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME/rules/RULE_NAME description: RULE_DESCRIPTION enabled: true priority: RULE_PRIORITY sessionMatcher: CEL_EXPRESSION basicProfile: ALLOW
Haz los cambios siguientes:
RULE_NAME
: nombre de esta reglaRULE_DESCRIPTION
: una descripción de la regla que vas a crearRULE_PRIORITY
: la prioridad de esta regla. Un número más bajo corresponde a una prioridad más alta.CEL_EXPRESSION
: una expresión de lenguaje de expresión común (CEL)Para obtener más información, consulta la referencia del lenguaje del buscador de coincidencias de CEL.
Por ejemplo, para permitir el acceso a
example.com
desde el recurso con la cuenta de servicio que quieras, añade lo siguiente al archivo YAML que has creado parasessionMatcher
:sessionMatcher: "source.matchServiceAccount('SERVICE_ACCOUNT') && host() == 'example.com'"
Sustituye
SERVICE_ACCOUNT
por la cuenta de servicio a la que quieras dar acceso. Debe ser la dirección de correo de la cuenta de servicio.
Importa las reglas que has creado:
gcloud network-security gateway-security-policies rules import RULE_NAME \ --source=RULE_FILE.yaml \ --location=REGION \ --gateway-security-policy=POLICY_NAME
Probar la conectividad
Para probar la conectividad, usa el comando curl
del recurso con el SERVICE_ACCOUNT
adjunto:
curl -x https://IPv4_ADDRESS:443 http://example.com
--proxy-insecure
Sustituye IPv4_ADDRESS
por la dirección IPv4 de tu instancia de proxy web seguro.