Las reglas de firewall de la nube privada virtual (VPC) se aplican a un proyecto y una red determinados. Si deseas aplicar reglas de firewall a varias redes de VPC en una organización, consulta Políticas de firewall. En el resto de esta página, solo se tratan las reglas de firewall de VPC.
Las reglas de firewall de VPC permiten o rechazan las conexiones hacia o desde las instancias de máquina virtual (VM) según la configuración que especifiques. Las reglas de firewall de VPC habilitadas siempre se aplican, ya que protegen las instancias sin importar la configuración ni el sistema operativo, incluso si no se iniciaron.
Cada red de VPC funciona como un firewall distribuido. Mientras que las reglas de firewall se definen a nivel de red, las conexiones se permiten o deniegan por instancia. Se puede considerar que las reglas de firewall de VPC existen entre las instancias y otras redes y, también, entre instancias individuales dentro de la misma red.
Nota: Esta página es una descripción general de las reglas de firewall. Si buscas información sobre cómo crear y trabajar con reglas de firewall, consulta Usa reglas de firewall.
Para obtener más información acerca de los firewalls, consulta Firewall (computación).
Reglas de firewall en Google Cloud
Cuando creas una regla de firewall de VPC, especificas una red de VPC y un conjunto de componentes que definen lo que hace la regla. Los componentes te permiten orientar ciertos tipos de tráfico según el protocolo, los puertos de destino, los orígenes y los destinos del tráfico. Para obtener más información, consulta los componentes de las reglas de firewall.
Puedes crear o modificar las reglas de firewall de VPC mediante Google Cloud Console, la herramienta de línea de comandos de gcloud y la API de REST. Cuando creas o modificas una regla de firewall, puedes especificar las instancias a las que se aplicará mediante el componente objetivo de la regla.
Además de las reglas de firewall que creas, Google Cloud tiene otras reglas que pueden afectar las conexiones entrantes (entrada) o salientes (salida):
-
Google Cloud no permite ciertos protocolos de IP, como el tráfico de salida en el puerto TCP 25 dentro de una red de VPC. Para obtener más información, consulta Tráfico que siempre está bloqueado.
-
Google Cloud siempre permite la comunicación entre una instancia de VM y su servidor de metadatos correspondiente en 169.254.169.254. Para obtener más información, consulta Tráfico que siempre está permitido.
-
Cada red tiene dos reglas de firewall implícitas que permiten las conexiones salientes y bloquean las conexiones entrantes. Las reglas de firewall que crees pueden anular estas reglas implícitas.
-
La red predeterminada ya está propagada con reglas de firewall que puedes borrar o modificar.
Especificaciones
Las reglas de firewall de VPC tienen las siguientes características:
-
Cada regla de firewall se aplica a la conexión entrante (entrada) o saliente (salida), pero no a ambas. Para obtener más información, consulta la dirección de la conexión.
-
Las reglas de firewall admiten conexiones IPv4. Las conexiones IPv6 también son compatibles con las redes de VPC que tienen IPv6 habilitado. Cuando especificas un origen para una regla de entrada o un destino para una regla de salida, puedes especificar direcciones o bloques IPv4 o IPv6 en notación de CIDR.
-
Cada regla de firewall puede contener rangos IPv4 o IPv6, pero no ambos.
-
Cada acción de la regla de firewall es allow o deny. La regla afecta a las conexiones, siempre y cuando se aplique. Por ejemplo, puedes inhabilitar una regla para solucionar problemas.
-
Cuando creas una regla de firewall, debes seleccionar una red de VPC. Si bien la regla se aplica a nivel de instancia, su configuración está asociada a una red de VPC. Esto significa que no puedes compartir reglas de firewall entre redes de VPC, incluidas las redes conectadas por el intercambio de tráfico entre redes de VPC o mediante túneles de Cloud VPN.
-
Las reglas de firewall de VPC son reglas con estado.
- Cuando se permite una conexión a través del firewall en cualquier dirección, también se permite el tráfico de retorno que coincide con esta conexión. No se puede configurar una regla de firewall para denegar el tráfico de respuesta asociado.
- El tráfico de retorno debe coincidir con la tupla de 5 elementos (IP de origen, IP de destino, puerto de origen, puerto de destino y protocolo) del tráfico de solicitudes aceptado, pero con las direcciones de origen, las de destino y los puertos revertidos.
- Google Cloud asocia los paquetes de entrada a los paquetes de salida correspondientes mediante una tabla de seguimiento de conexiones.
- Google Cloud implementa el seguimiento de conexiones sin importar si el protocolo admite conexiones. Si se permite una conexión entre un origen y un objetivo (para una regla de entrada) o entre un objetivo y un destino (para una regla de salida), se permite todo el tráfico de respuesta, siempre y cuando el estado de seguimiento de la conexión del firewall esté activo. El estado de seguimiento de una regla de firewall se considera activo si se envía al menos un paquete cada 10 minutos.
- El tráfico de respuesta ICMP, como “ICMP TYPE 3, DESTINATION UNREACHABLE”, se genera en respuesta a una conexión TCP/UDP permitida a través del firewall. Este comportamiento es coherente con RFC 792.
-
Las reglas de firewall de VPC no vuelven a ensamblar los paquetes TCP fragmentados. Por lo tanto, una regla de firewall aplicable al protocolo TCP solo puede aplicarse al primer fragmento porque contiene el encabezado TCP. Las reglas de firewall aplicables al protocolo TCP no se aplican a los fragmentos de TCP posteriores.
-
La cantidad máxima de conexiones con seguimiento en la tabla de reglas de firewall depende de la cantidad de conexiones con estado compatibles con el tipo de máquina de la instancia. Si se excede la cantidad máxima de conexiones con seguimiento, el seguimiento se detiene para las conexiones que tienen el intervalo de inactividad más largo a fin de permitir el seguimiento de las conexiones nuevas.
Tipo de máquina de la instancia Cantidad máxima de conexiones con estado Tipos de máquinas de núcleo compartido 130,000 Instancias que cuentan con 1 a 8 CPU virtuales 130,000 conexiones por CPU virtual Instancias con más de 8 CPU virtuales 1,040,000 (130,000 × 8) conexiones en total
Reglas implícitas
Cada red de VPC tiene dos reglas de firewall IPv4 implícitas. Si IPv6 está habilitado en una red de VPC, la red también tiene dos reglas de firewall IPv6 implícitas. Estas reglas no se muestran en Cloud Console.
Las reglas de firewall IPv4 implícitas están presentes en todas las redes de VPC, sin importar cómo se crean las redes ni si son redes de VPC de modo automático o de modo personalizado. La red predeterminada tiene las mismas reglas implícitas.
-
Regla de permiso de salida IPv4 implícita. Una regla de salida cuya acción es allow, el destino es 0.0.0.0/0 y la prioridad es la más baja posible (65535) permite que cualquier instancia envíe tráfico a cualquier destino, excepto el tráfico bloqueado por Google Cloud. Una regla de firewall de mayor prioridad puede restringir el acceso saliente. Se permite el acceso a Internet si ninguna otra regla de firewall deniega el tráfico saliente y si la instancia tiene una dirección IP externa o usa una instancia de Cloud NAT. Para obtener más información, consulta Requisitos de acceso a Internet.
-
Regla de denegación de entrada IPv4 implícita. Una regla de entrada cuya acción es deny, el origen es 0.0.0.0/0 y la prioridad es la más baja posible (65535) protege todas las instancias cuando bloquea las conexiones entrantes a ellas. Una regla de mayor prioridad podría permitir el acceso entrante. La red predeterminada incluye algunas reglas adicionales que anulan esta, lo que permite ciertos tipos de conexiones entrantes.
Si IPv6 está habilitado, la red de VPC también tiene estas dos reglas implícitas:
-
Regla de permiso de salida IPv6 implícita. Una regla de salida cuya acción es allow, el destino es ::/0 y la prioridad es la más baja posible (65535) permite que cualquier instancia envíe tráfico a cualquier destino, excepto el tráfico bloqueado por Google Cloud. Una regla de firewall de mayor prioridad puede restringir el acceso saliente. Se permite el acceso a Internet si ninguna otra regla de firewall deniega el tráfico saliente y si la instancia tiene una dirección IP externa.
-
Regla de denegación de entrada IPv6 implícita. Una regla de entrada cuya acción es deny, el origen es ::/0 y la prioridad es la más baja posible (65535) protege todas las instancias cuando bloquea las conexiones entrantes a ellas. Una regla de mayor prioridad podría permitir el acceso entrante.
Las reglas implícitas no se pueden quitar, pero tienen la menor prioridad posible. Puedes crear reglas que las anulen siempre que tengan prioridades más altas (números de prioridad menores que 65535). Debido a que las reglas deny tienen prioridad sobre las reglas allow de la misma prioridad, una regla allow de entrada con una prioridad de 65535 nunca se aplica.
Reglas ya propagadas en la red predeterminada
La red predeterminada se propaga de forma previa con reglas de firewall que permiten las conexiones entrantes a las instancias. Estas reglas se pueden quitar o modificar según sea necesario:
- default-allow-internal
Permite conexiones de entrada para todos los protocolos y puertos entre las instancias en la red. Esta regla tiene la segunda prioridad más baja, que es de 65534, y permite las conexiones entrantes a instancias de VM desde otras en la misma red. Esta regla permite el tráfico en 10.128.0.0/9 (de 10.128.0.1 a 10.255.255.254), un rango que abarca todas las subredes de la red. - default-allow-ssh
Permite conexiones de entrada en el puerto TCP 22 de destino desde cualquier origen hasta cualquier instancia en la red. Esta regla tiene una prioridad de 65534. - default-allow-rdp
Permite conexiones de entrada en el puerto TCP 3389 de destino desde cualquier origen hasta cualquier instancia en la red. Esta regla tiene una prioridad de 65534 y permite conexiones a instancias que ejecutan el protocolo de escritorio remoto de Microsoft (RDP). - default-allow-icmp
Permite el tráfico ICMP de entrada desde cualquier origen hasta cualquier instancia en la red. Esta regla tiene una prioridad de 65534 y habilita herramientas como ping.
Nota: Estas reglas se incluyen en la red predeterminada, pero puedes crear tus propias reglas que permitan estos tipos de conexiones en las otras redes.
Tráfico que siempre está bloqueado
Google Cloud siempre bloquea el tráfico que se describe en la siguiente tabla. Las reglas de firewall no se pueden usar para permitir este tráfico.
Tráfico que siempre está bloqueado | Se aplica a |
---|---|
Protocolos diferentes a TCP, UDP, ICMP, IPIP, AH, ESP, SCTP y GRE a direcciones IP externas de los recursos de Google Cloud | El tipo de recurso puede limitar aún más el protocolo. Las reglas de reenvío para el reenvío de protocolos o el balanceo de cargas pasan solo el tráfico del protocolo y puerto configurados. |
Tráfico de salida al puerto de destino TCP 25 (SMTP) | Tráfico de: • instancias a direcciones IP externas en Internet • instancias a direcciones IP externas de instancias |
Tráfico que siempre está permitido
Google Cloud ejecuta un servidor de metadatos local junto con cada instancia en 169.254.169.254. Este servidor es esencial para el funcionamiento de la instancia, por lo que la instancia puede acceder a él sin importar las reglas de firewall que configures. El servidor de metadatos proporciona los siguientes servicios básicos a la instancia:
- DHCP
- Para la resolución de DNS, sigue el orden de resolución de nombres de la red de VPC. A menos que hayas configurado un servidor de nombres alternativo, la resolución de DNS incluye buscar DNS internos de Compute Engine y consultar zonas de Cloud DNS y nombres de DNS públicos.
- Metadatos de la instancia
- Protocolo NTP
Nota: Las reglas de firewall no pueden bloquear el tráfico que una instancia envía a una de sus propias direcciones IP porque ese tráfico nunca sale de la VM. Estas direcciones incluyen la dirección IP interna principal, cualquier alias de dirección IP y direcciones de bucle invertido. Además, si la instancia participa como un backend para un balanceador de cargas interno, también se le asigna la dirección IP del balanceador de cargas.
Reglas de firewall de GKE
Google Kubernetes Engine crea reglas de firewall automáticamente cuando se crean los siguientes recursos:
- Clústeres de GKE
- Servicios de GKE
- Entradas de GKE
Para obtener más información, consulta la sección sobre Reglas de firewall creadas automáticamente.
Componentes de reglas de firewall
Cada regla de firewall consiste en los siguientes componentes de configuración:
-
La dirección de la conexión: Las reglas de entrada se aplican a las conexiones entrantes de los orígenes especificados a los objetivos de Google Cloud, y las reglas de salida se aplican a las conexiones que se dirigen a destinos especificados desde los objetivos
-
Una prioridad numérica, que determina si se aplica la regla. Solo se aplica la regla con la prioridad más alta (número de prioridad más bajo), cuyos otros componentes coinciden con el tráfico. Se ignoran las reglas en conflicto con prioridades más bajas
-
Una acción en caso de coincidencia, ya sea allow o deny, que determina si la regla permite o bloquea las conexiones
-
El estado de aplicación de la regla de firewall: Puedes habilitar e inhabilitar reglas de firewall sin tener que borrarlas.
-
Un objetivo, que define las instancias (incluidos los clústeres de GKE y las instancias del entorno flexible de App Engine) a las que se aplica la regla
-
Un filtro de origen para las reglas de entrada o un filtro de destino para las reglas de salida.
-
El protocolo (como TCP, UDP o ICMP) y el puerto de destino
-
Una opción booleana de registros que registra las conexiones que coinciden con la regla con Cloud Logging.
Dirección del tráfico
La dirección de una regla de firewall puede ser de entrada o salida. La dirección siempre se define desde la perspectiva de la VM a la que se aplica la regla de firewall (el objetivo).
-
La dirección de entrada describe las conexiones que se envían de un origen a un objetivo. Las reglas de entrada se aplican a paquetes para sesiones nuevas en las que el destino del paquete es el objetivo.
-
La dirección de salida describe el tráfico enviado de un objetivo a un destino. Las reglas de salida se aplican a paquetes para sesiones nuevas en las que el origen del paquete es el objetivo.
-
Si no especificas una dirección, Google Cloud usa la de entrada.
Considera un ejemplo de conexión entre dos VM en la misma red. El tráfico de VM1 a VM2 se puede controlar con cualquiera de estas reglas de firewall:
-
Una regla de entrada con un objetivo de VM2 y un origen de VM1.
-
Una regla de salida con un objetivo de VM1 y un destino de VM2
Prioridad
La prioridad de la regla de firewall es un número entero de 0 a 65535, inclusive. Los números enteros más bajos indican prioridades más altas. Si no especificas una prioridad cuando creas una regla, se asigna una de 1000.
La prioridad relativa de una regla de firewall determina si es aplicable cuando se evalúa en comparación con otras. La lógica de la evaluación funciona de la siguiente manera:
-
La regla de prioridad más alta aplicable a un objetivo para un tipo de tráfico determinado tiene precedencia. La especificidad del objetivo no es relevante. Por ejemplo: una regla de entrada con prioridad más alta para ciertos protocolos y puertos de destino orientada a todos los objetivos anula una regla definida de manera similar con una prioridad menor para los mismos protocolos y puertos de destino orientada a objetivos específicos.
-
La regla de prioridad más alta aplicable a una definición de puerto de destino y protocolo determinada tiene prioridad, incluso cuando la definición del puerto de destino y el protocolo son más generales. Por ejemplo, una regla de entrada de prioridad más alta que habilita el tráfico a todos los protocolos y puertos destinados a objetivos específicos anula una regla de entrada de prioridad más baja y rechaza al puerto TCP 22 para los mismos objetivos.
-
Una regla con una acción deny anula a otra con una acción allow solo si ambas tienen la misma prioridad. Mediante las prioridades relativas, es posible compilar reglas allow que anulen reglas deny, y reglas deny que anulen a reglas allow.
-
Las reglas con la misma prioridad y la misma acción tienen el mismo resultado. Sin embargo, la regla que se usa durante la evaluación es indefinida. En general, no importa qué regla se use, excepto cuando habilitas el registro de reglas de firewall. Si deseas que los registros muestren las reglas de firewall que se evalúan en un orden coherente y bien definido, asígnales prioridades únicas.
Considera el siguiente ejemplo, en el que hay dos reglas de firewall:
-
Una regla de entrada de orígenes 0.0.0.0/0 (cualquier dirección IPv4) aplicable a todos los objetivos, protocolos y puertos, con una acción deny y una prioridad de 1000
-
Una regla de entrada de orígenes 0.0.0.0/0 (cualquier dirección IPv4) aplicable a objetivos específicos con la etiqueta webserver, para el tráfico en TCP 80, con una acción allow.
La prioridad de la segunda regla determina si se permite el tráfico de TCP en el puerto 80 para los objetivos webserver:
-
Si la prioridad de la segunda regla es un número mayor que 1000, tiene una prioridad más baja, por lo que se aplica la primera regla que rechaza todo el tráfico.
-
Si la prioridad de la segunda regla se establece en 1000, las dos reglas tienen prioridades idénticas, por lo que se aplica la primera regla que niega todo el tráfico.
-
Si la prioridad de la segunda regla es un número menor que 1000, tiene una prioridad más alta, de modo que permite el tráfico en TCP 80 para objetivos webserver. En ausencia de otras reglas, la primera regla rechazaría otros tipos de tráfico a los objetivos webserver y, también, rechazaría todo el tráfico, incluido el de TCP 80, a instancias sin la etiqueta webserver.
En el ejemplo anterior, se demuestra cómo puedes usar las prioridades para crear reglas allow selectivas y reglas deny globales a fin de implementar una práctica recomendada de seguridad de privilegio mínimo.
Nota: Cada red tiene dos reglas de firewall implícitas de prioridad baja que no se pueden quitar, y la red predeterminada incluye reglas de firewall adicionales que sí se pueden quitar. Para obtener más información, consulta Reglas implícitas y predeterminadas.
Acción en casos de coincidencia
El componente de acción de una regla de firewall determina si esta permite o bloquea el tráfico y está sujeto a los otros componentes de la regla:
-
Una acción allow permite conexiones que coinciden con los otros componentes especificados.
-
Una acción deny bloquea conexiones que coinciden con los otros componentes especificados.
Nota: Una regla de firewall solo puede tener un componente de acción. allow y deny no se pueden especificar en la misma regla. Para definir el orden en el que se deben aplicar las reglas, crea reglas de firewall independientes con prioridades diferentes.
Aplicación
Puedes cambiar si una regla de firewall se aplica mediante la configuración de su estado en enabled o disabled. Inhabilitar una regla es útil para solucionar problemas o brindar acceso temporal a las instancias. Es mucho más fácil inhabilitar una regla, probarla y volver a habilitarla, que borrarla y crearla de nuevo.
A menos que especifiques lo contrario, todas las reglas de firewall están habilitadas (enabled) cuando se crean. También puedes optar por crear una regla en un estado disabled.
El estado de aplicación para las reglas de firewall se puede cambiar de enabled a disabled y, viceversa, si se actualiza la regla.
Cuando cambias el estado de aplicación de una regla de firewall, el cambio solo se aplica a las conexiones nuevas. Las conexiones existentes no se ven afectadas por el cambio en el estado de aplicación.
Considera inhabilitar una regla de firewall en las siguientes situaciones:
- Para solucionar problemas: Si no estás seguro de si una regla de firewall está bloqueando o permitiendo el tráfico, inhabilítala de forma temporal para determinar si el tráfico está permitido o bloqueado. Esto es útil para solucionar problemas con relación al efecto de una regla junto con otras.
- Para realizar tareas de mantenimiento: Inhabilitar reglas de firewall puede hacer que el mantenimiento periódico sea más simple. Supongamos que tienes una regla de firewall que bloquea las conexiones SSH entrantes en los objetivos (por ejemplo, instancias por etiqueta de objetivo) y que esa regla es enabled. Cuando necesites realizar tareas de mantenimiento, puedes inhabilitar la regla. Después de terminar, habilita la regla nuevamente.
Objetivo
Para una regla de entrada (entrante), el parámetro objetivo designa las instancias de VM de destino, incluidos los clústeres de GKE y las instancias del entorno flexible de App Engine. Para una regla de salida (saliente), el objetivo designa las instancias de origen. Por lo tanto, usa siempre el parámetro objetivo para designar instancias de Google Cloud. Sin embargo, si un objetivo es un destino o un origen de tráfico depende de la dirección de la regla.
Puedes especificar un objetivo mediante una de las siguientes opciones:
-
Todas las instancias en la red: La regla de firewall se aplica a todas las instancias en la red.
-
Instancias por etiqueta de objetivo: La regla de firewall se aplica solo a las instancias con una etiqueta de red que coincida.
-
Instancias por cuentas de servicio de objetivo: La regla de firewall solo se aplica a las instancias que usan una cuenta de servicio específica. Para conocer la cantidad máxima de cuentas de servicio de objetivo que puedes aplicar por regla de firewall, consulta Cuotas de recursos de VPC.
Para obtener información sobre los beneficios y las limitaciones de las etiquetas de objetivo y las cuentas de servicio de objetivo, consulta la comparación entre el filtrado por cuenta de servicio y por etiqueta de red.
Objetivos y direcciones IP
El objetivo de una regla de firewall de entrada se aplica a todo el tráfico que llega a la interfaz de red de una instancia (NIC) en la red de VPC, sin importar cómo se especifique el objetivo. Una regla de firewall de entrada se aplica a los paquetes cuyos destinos coinciden con una de las siguientes direcciones IP:
-
La dirección IPv4 interna principal que se asigna a la interfaz de red de la instancia en la red de VPC
-
Cualquier rango de IP de alias que se configura en la interfaz de red de la instancia en la red de VPC
-
La dirección IPv4 externa que está asociada a la interfaz de red de la instancia en la red de VPC
-
Si se configura IPv6 en la subred, cualquiera de las direcciones IPv6 asignadas a la VM
-
Una dirección IPv4 interna o externa asociada con una regla de reenvío, para el balanceo de cargas o el reenvío de protocolos, si la instancia es un backend para el balanceador de cargas o una instancia de destino para el reenvío de protocolos
El objetivo de una regla de firewall de salida se aplica a todo el tráfico que sale de la interfaz de red de una instancia de VM (NIC) en la red de VPC, sin importar cómo se especifica el objetivo:
-
De forma predeterminada, el reenvío de IP está inhabilitado. Una regla de firewall de salida se aplica a los paquetes cuyos orígenes coinciden con alguna de las siguientes opciones:
-
La dirección IPv4 interna principal de la NIC de una instancia
-
Cualquier rango de alias de IP que se configura en la NIC de una instancia
-
Si se configura IPv6 en la subred, cualquiera de las direcciones IPv6 asignadas a la VM
-
Una dirección IPv4 interna o externa asociada con una regla de reenvío, para el balanceo de cargas o el reenvío de protocolos, si la instancia es un backend para el balanceador de cargas o una instancia de destino para el reenvío de protocolos
-
-
Cuando el reenvío de IP está habilitado, la VM puede enviar paquetes con cualquier origen
Origen o destino
Especifica cualquier origen o destino, pero no ambos, según la dirección del firewall que crees:
-
Para las reglas de entrada (entrantes), el parámetro objetivo especifica las instancias de destino para el tráfico; no se puede usar el parámetro destino. Para especificar el origen, usa el parámetro origen.
-
Para las reglas de salida (salientes), el parámetro objetivo especifica las instancias de origen para el tráfico; no se puede usar el parámetro origen. Para especificar el destino, usa el parámetro destino.
Orígenes
El parámetro origen solo es aplicable a reglas de entrada. Debe ser una de las siguientes opciones:
-
Rango de IPv4 de origen o rangos de IPv6 de origen: puedes especificar rangos de direcciones IP como orígenes para paquetes. Los rangos pueden ser direcciones IPv4 o IPv6, pero no una combinación de ambas. Los rangos pueden incluir direcciones dentro de la red de VPC y direcciones fuera de ella.
-
Etiquetas de origen: Si identificas las instancias de origen con una etiqueta de red coincidente, puedes definir el origen de los paquetes como la dirección IP interna principal de la interfaz de red de las instancias de VM en la misma red de VPC. Las etiquetas de origen solo se aplican al tráfico enviado desde la interfaz de red de otra instancia aplicable en la red de VPC. Una etiqueta de origen no puede controlar los paquetes cuyos orígenes sean direcciones IP externas, incluso si estas direcciones pertenecen a instancias. Para conocer la cantidad máxima de etiquetas de origen que puedes aplicar por regla de firewall, consulta las cuotas de recursos de VPC.
-
Cuentas de servicio de origen: Si identificas las instancias de origen con las cuentas de servicio que usan, puedes definir el origen de los paquetes como la dirección IP interna principal de la interfaz de red de las instancias en la misma red de VPC. Las cuentas de servicio de origen solo se aplican al tráfico enviado desde la interfaz de red de otra instancia aplicable en la red de VPC. Una cuenta de servicio de origen no puede controlar los paquetes cuyos orígenes sean direcciones IP externas, incluso si estas direcciones pertenecen a instancias. Para conocer la cantidad máxima de cuentas de servicio de origen que puedes aplicar por regla de firewall, consulta las cuotas de recursos de VPC.
-
Se puede usar una combinación de rangos de IP de origen y etiquetas de origen.
-
Se puede usar una combinación de rangos de IP de origen y cuentas de servicio de origen.
-
Si todos los rangos de IP de origen ,etiquetas de origen y cuentas de servicio de origen se omiten, Google Cloud define el origen como cualquier dirección IPv4 (0.0.0.0/0). Las fuentes de IPv6 no están incluidas.
Importante: Las etiquetas de red y las cuentas de servicio no se pueden usar en la misma regla de firewall. Para obtener más información, consulta la comparación entre el filtrado por cuenta de servicio y por etiqueta de red.
Orígenes y direcciones IP
Puedes especificar un origen mediante los siguientes métodos:
- Etiquetas de origen
- Cuentas de servicio de origen
- Una especificación de origen que incluye etiquetas de origen o cuentas de servicio de origen
Cuando especificas una fuente mediante estos métodos, Google Cloud considera las fuentes como las siguientes direcciones IP:
-
La dirección IPv4 interna principal de la interfaz de red de la VM en la red de VPC
-
Cualquier dirección IPv6 asignada a la interfaz de red de la VM en la red de VPC
Los rangos de alias de IP para esa NIC y las direcciones IP para las reglas de reenvío asociadas no se incluyen cuando se usan etiquetas de origen o cuentas de servicio de origen.
Si necesitas incluir los rangos de alias de IP de una VM, agrégalos a una lista de rangos de origen para una regla de entrada. Puedes usar rangos de origen y etiquetas de origen juntos; y también puedes usar rangos de origen y cuentas de servicio de origen juntos.
Destinos
El parámetro destino solo es aplicable a reglas de salida. El parámetro destino solo acepta rangos de direcciones IP. Los rangos pueden incluir direcciones dentro de la red de VPC y direcciones fuera de ella.
Si no se especifica un rango de destino, Google Cloud define el destino como todas las direcciones IPv4 (0.0.0.0/0). Los destinos de IPv6 no están incluidos.
Protocolos y puertos
Para limitar el alcance de una regla de firewall, especifica protocolos o protocolos y puertos de destino. Puedes especificar un protocolo o una combinación de protocolos y sus puertos. Si omites los protocolos y los puertos, la regla de firewall se aplica a todo el tráfico en cualquier protocolo y cualquier puerto de destino. Solo puedes especificar puertos de destino. No se admiten reglas basadas en puertos de origen.
Para establecer una regla de firewall específica, primero debes indicar un protocolo. Si el protocolo admite puertos, puedes optar por especificar un número de puerto de destino o un rango de puertos. Sin embargo, no todos los protocolos admiten puertos. Por ejemplo, existen puertos para TCP y UDP, pero no para ICMP (ICMP tiene tipos de ICMP diferentes, pero no son puertos y no se pueden especificar en una regla de firewall).
Puedes usar los siguientes nombres de protocolo en reglas de firewall: tcp, udp, icmp (en ICMP para IPv4), esp, ah, sctp y ipip. Para todos los demás protocolos, usa los números de protocolo de IANA
Muchos protocolos usan el mismo nombre y número en IPv4 y en IPv6, pero algunos protocolos, como ICMP, no.
El protocolo IPv6 de salto por salto no es compatible con las reglas de firewall.
Las reglas de firewall de Google Cloud usan información de puertos para hacer referencia al puerto de destino de un paquete, no al de origen:
-
Para las reglas de firewall de entrada (entrantes), los puertos de destino son puertos en sistemas identificados por el parámetro objetivo de la regla (en las reglas de entrada, el parámetro objetivo especifica las VM de destino para el tráfico).
-
Para las reglas de firewall de salida (salientes), los puertos de destino representan puertos en los sistemas identificados por el parámetro destino de la regla.
En la siguiente tabla, se resumen las combinaciones válidas de especificación de protocolos y puertos para las reglas de firewall de Google Cloud.
Especificación | Ejemplo | Explicación |
---|---|---|
Sin protocolo ni puerto | — | Si no especificas un protocolo, la regla de firewall aplica a todos los protocolos y a sus puertos aplicables. |
Protocolo | tcp | Si especificas un protocolo sin información de puertos, la regla de firewall se aplica a ese protocolo y a todos los puertos aplicables. |
Protocolo y puerto único | tcp:80 | Si especificas un protocolo y un puerto de destino único, la regla de firewall se aplica a ese puerto de destino del protocolo. |
Protocolo y rango de puerto | tcp:20-22 | Si especificas un protocolo y un rango de puertos, la regla de firewall aplica a ese rango de puertos de destino para el protocolo. |
Combinaciones | icmp,tcp:80 tcp:443 udp:67-69 |
Puedes especificar varias combinaciones de protocolos y puertos de destino a los que se aplica la regla de firewall. Para obtener más información, consulta Crea reglas de firewall. |
Importante: Un puerto no se puede especificar por sí solo. Si solo especificas un número, Google Cloud lo interpreta como un protocolo de IP decimal. Por ejemplo, si especificas 80 por sí solo, Google Cloud lo interpreta como un protocolo de IP 80 (ISO-IP), que no es lo mismo que un puerto TCP 80 (tcp:80).
Filtra origen y objetivo por cuenta de servicio
Puedes usar cuentas de servicio para crear reglas de firewall que son de tipo más específico:
-
Para las reglas de entrada y de salida, puedes usar cuentas de servicio a fin de especificar objetivos.
-
Para las reglas de entrada, puedes especificar el origen de los paquetes entrantes como la dirección IP interna principal de cualquier VM en la red en que la VM usa una cuenta de servicio particular.
La cuenta de servicio se debe crear en el mismo proyecto que la regla de firewall antes de que crees una regla de firewall que se base en ella. Si bien el sistema no te impide crear una regla que use una cuenta de servicio de un proyecto diferente, la regla no se aplica si la cuenta de servicio no existe en el proyecto de la regla de firewall.
Las reglas de firewall que usan cuentas de servicio para identificar instancias se aplican a las instancias nuevas que se crearon y asociaron a la cuenta de servicio y, también, a las instancias existentes si cambias sus cuentas de servicio. Si deseas cambiar la cuenta de servicio asociada con una instancia, debes pararla y reiniciarla. Puedes asociar cuentas de servicio a instancias individuales y plantillas de instancias que usan los grupos de instancias administrados.
Nota: En proyectos con una VPC independiente (una VPC que no participa en una VPC compartida), solo puedes usar cuentas de servicio de ese proyecto como criterios de la regla de firewall. En los proyectos en los que se usa una VPC compartida, puedes usar cuentas de servicio del proyecto host o de cualquier proyecto de servicio como criterios de la regla de firewall. Si creas una regla de firewall que usa cuentas de servicio que no coinciden con estas dos situaciones, la regla de firewall no se aplicará.
Filtrado por cuenta de servicio en comparación con etiqueta de red
En esta sección, se destacan los puntos clave que debes tener en cuenta cuando decides si debes usar cuentas de servicio o etiquetas de red para definir objetivos y orígenes (en las reglas de entrada).
Si necesitas un control estricto sobre cómo las reglas de firewall se aplican a las VM, usa las cuentas de servicio de objetivo y las cuentas de servicio de origen en lugar de etiquetas de objetivo y etiquetas de origen:
-
Una etiqueta de red es un atributo arbitrario. Una o más etiquetas de red pueden asociarse a una instancia de cualquier principal de la administración de identidades y accesos (IAM) que tenga permiso para editarla. Los principales de IAM que cuentan con la función de administrador de instancias de Compute Engine para un proyecto tienen este permiso. Los principales de IAM que pueden editar una instancia pueden cambiar las etiquetas de red, lo que podría cambiar el conjunto de reglas de firewall aplicables para esa instancia.
-
Una cuenta de servicio representa una identidad asociada con una instancia. Solo se puede asociar una cuenta de servicio con una instancia. Puedes controlar el acceso a la cuenta de servicio si controlas la asignación de la función de usuario de cuenta de servicio para otros principales de IAM. Para que un principal de IAM inicie una instancia mediante una cuenta de servicio, debe tener la función de usuario de cuenta de servicio al menos en esa cuenta de servicio y los permisos adecuados para crear instancias (por ejemplo, tener la función de administrador de instancias de Compute Engine en el proyecto).
No puedes mezclar y combinar cuentas de servicio y etiquetas de red en ninguna regla de firewall:
-
No puedes usar cuentas de servicio de objetivo junto con etiquetas de objetivo en ninguna regla de firewall (de entrada o de salida).
-
Si especificas objetivos por etiqueta de objetivo o cuenta de servicio de objetivo, los siguientes orígenes no son válidos para las reglas de firewall de entrada.
Objetivos Orígenes no válidos Etiquetas de objetivo Cuentas de servicio de origen
Combinación de rangos de IP de origen y cuentas de servicio de origenCuenta de servicio de objetivo Etiquetas de origen
Combinación de rangos de IP de origen y etiquetas de origen
A continuación, se incluyen consideraciones operativas para las cuentas de servicio y las etiquetas de red:
-
Para cambiar una cuenta de servicio de una instancia, es necesario detener y reiniciar la instancia. Se pueden agregar o quitar etiquetas mientras la instancia está en ejecución.
-
Existe una cantidad máxima de cuentas de servicio de objetivo, cuentas de servicio de origen, etiquetas de red de objetivo y etiquetas de red de origen que se pueden especificar para las reglas de firewall. Para obtener más información, consulta las cuotas de recursos de VPC.
-
Si identificas instancias por etiqueta de red, la regla de firewall se aplica a la dirección IP interna principal de la instancia.
-
Las reglas de firewall de la cuenta de servicio se aplican al nodo de GKE, no al Pod de GKE.
Casos de uso
Los casos prácticos a continuación demuestran cómo funcionan las reglas de firewall. En estos ejemplos, se habilitaron todas las reglas de firewall.
Casos de entrada
Las reglas de firewall de entrada controlan las conexiones entrantes de un origen a instancias de destino en la red de VPC. El origen para una regla de entrada se puede definir como una de las siguientes opciones:
- Un rango de direcciones IPv4 o IPv6. El valor predeterminado es cualquier dirección IPv4 (0.0.0.0/0).
- Otras instancias en la red de VPC identificadas por etiquetas de red
- Otras instancias en la red de VPC identificadas por cuenta de servicio
- Otras instancias en tu red de VPC identificadas por rango de direcciones IPv4 o IPv6 y por etiqueta de red
- Otras instancias en la red de VPC identificadas por rango de direcciones IPv4 o IPv6 y por cuenta de servicio
El origen predeterminado es cualquier dirección IPv4 (0.0.0.0/0). Si deseas controlar las conexiones entrantes para orígenes externos a la red de VPC, incluidos otros orígenes en Internet, usa un rango de direcciones IP en formato CIDR.
Las reglas de entrada con una acción allow permiten el tráfico entrante según los otros componentes de la regla. Además de especificar el origen y el objetivo de la regla, puedes limitar la regla para hacer que se aplique a protocolos y puertos de destino específicos. Del mismo modo, las reglas de entrada con una acción deny se pueden usar para proteger instancias mediante el bloqueo del tráfico entrante según los componentes de la regla de firewall.
Precaución: También puedes usar cuentas de servicio de objetivo o etiquetas de objetivo para especificar los destinos de entrada. Si lo haces, limitas la forma en que puedes especificar el origen de la regla. Para obtener más información, consulta la comparación entre el filtrado por cuenta de servicio y por etiqueta de red.
Ejemplos de entrada
En el siguiente diagrama, se ilustran algunos ejemplos en los que las reglas de firewall pueden controlar las conexiones de entrada. Los ejemplos usan el parámetro de objetivo en la asignación de reglas para aplicar reglas a instancias específicas.
-
Una regla de entrada con prioridad 1000 es aplicable a la VM 1. Esta regla permite el tráfico de TCP entrante desde cualquier origen IPv4 (0.0.0.0/0). Se permite el tráfico de TCP de otras instancias en la red de VPC, sujeto a las reglas de salida aplicables para esas otras instancias. La VM 4 se puede comunicar con la VM 1 a través de TCP, ya que la VM 4 no tiene una regla de salida que bloquee esa comunicación (solo se aplica la regla de permiso de salida implícita). Debido a que la VM 1 tiene una IP externa, esta regla también permite el tráfico de TCP entrante desde hosts externos en Internet y desde la VM 2 a través de direcciones IP externas.
-
La VM 2 no tiene una regla de firewall de entrada especificada, por lo que la regla de denegación de entrada implícita bloquea todo el tráfico entrante. Se bloquean las conexiones desde otras instancias en la red, sin importar las reglas de salida para las otras instancias. Debido a que la VM 2 tiene una IP externa, hay una ruta de acceso a ella desde hosts externos en Internet, pero la regla de denegación de entrada implícita también bloquea el tráfico entrante externo.
-
Una regla de entrada con una prioridad de 1000 es aplicable a la VM 3. Esta regla permite el tráfico de TCP desde instancias en la red con la etiqueta de red client, como la VM 4. Se permite el tráfico de TCP de la VM 4 a la VM 3, ya que la VM 4 no tiene una regla de salida que bloquee esa comunicación (solo se aplica la regla de permiso de salida implícita). Debido a que la VM 3 no tiene una IP externa, no existe una ruta de acceso a ella desde hosts externos en Internet.
Casos de salida
Las reglas de firewall de salida controlan las conexiones salientes desde instancias de objetivo en la red de VPC. Las reglas de salida con una acción allow permiten el tráfico de instancias basadas en los otros componentes de la regla. Por ejemplo, puedes permitir el tráfico saliente a destinos específicos, como un rango de direcciones IPv4, en los protocolos y los puertos de destino que especifiques. Del mismo modo, las reglas de salida con una acción deny bloquean el tráfico en función de los demás componentes de la regla.
Toda regla de salida necesita un destino. El destino predeterminado es cualquier dirección IPv4 (0.0.0.0/0), pero puedes crear un destino más específico si usas un rango de direcciones IPv4 o IPv6 en formato CIDR. Cuando especificas un rango de direcciones IP, puedes controlar el tráfico a instancias en la red y a destinos fuera de ella, incluidos los destinos en Internet.
Ejemplos de salida
En el siguiente diagrama, se ilustran algunos ejemplos en los que las reglas de firewall pueden controlar las conexiones de salida. Los ejemplos usan el parámetro de objetivo en la asignación de reglas para aplicar reglas a instancias específicas.
-
La VM 1 no tiene una regla de firewall de salida especificada, por lo que la regla de permiso de salida implícita le permite enviar tráfico a cualquier destino. Se permiten conexiones a otras instancias en la red de VPC. Esto está sujeto a las reglas de entrada aplicables para esas otras instancias. La VM 1 puede enviar tráfico a la VM 4 porque la VM 4 tiene una regla de entrada que permite el tráfico entrante desde cualquier rango de direcciones IP. Debido a que la VM 1 tiene una dirección IP externa, puede enviar tráfico a hosts externos en Internet. Se permiten respuestas entrantes al tráfico enviado por la VM 1 debido a que las reglas de firewall tienen estado.
-
Una regla de salida con prioridad 1000 es aplicable a la VM 2. Esta regla rechaza todo el tráfico saliente a todos los destinos IPv4 (0.0.0.0/0). Se bloquea el tráfico saliente a otras instancias en la red de VPC, sin importar las reglas de entrada aplicadas a las otras instancias. Aunque la VM 2 tiene una dirección IP externa, esta regla de firewall bloquea el tráfico saliente hacia hosts externos en Internet.
-
Una regla de salida con una prioridad de 1000 es aplicable a la VM 3. Esta regla bloquea el tráfico de TCP saliente hacia cualquier destino en el rango de IP 192.168.1.0/24. Aunque las reglas de entrada para la VM 4 permiten todo el tráfico entrante, la VM 3 no puede enviar tráfico de TCP a la VM 4. Sin embargo, la VM 3 puede enviar tráfico de UDP a la VM 4 porque la regla de salida solo se aplica al protocolo TCP.
Además, la VM 3 puede enviar tráfico a otras instancias en la red de VPC fuera del rango de IP 192.168.1.0/24, siempre que esas otras instancias tengan reglas de entrada para permitir ese tráfico. Debido a que no tiene una dirección IP externa, no cuenta con una ruta de acceso para enviar tráfico fuera de la red de VPC.