En esta página se muestran ejemplos de implementaciones de políticas de cortafuegos jerárquicas. Se da por hecho que conoces los conceptos descritos en el artículo Políticas de cortafuegos jerárquicas.
Ejemplo 1: Permitir que el verificador acceda a todas las VMs
En este caso práctico, todas las instancias de máquina virtual (VM) de una organización deben analizarse y registrarse mediante sondas desde una dirección IP concreta (10.100.0.1
) a un puerto de destino específico (123
). El administrador de seguridad de la organización se asegura de que ningún administrador de red ni otro administrador de seguridad pueda bloquear ese puerto en ninguna instancia de VM de la organización.
En este ejemplo se presupone que no hay políticas de cortafuegos a nivel de carpeta implementadas.
La configuración de este caso práctico se describe en el siguiente diagrama.
Política aplicable en las VMs
En este ejemplo, la política de cortafuegos de la máquina virtual efectiva después de evaluar las reglas de toda la jerarquía es la siguiente.
Conexiones de entrada
Se permiten las conexiones entrantes con la IP de origen
10.100.0.1
y el puerto de destino123
, tal como se define en la política. Si se encuentra una coincidencia en la política de la organización, se permiten las conexiones de prueba y no se evalúan más reglas en la jerarquía.En el caso de las conexiones entrantes que no procedan de la IP de origen
10.100.0.1
y del puerto de destino123
, no habrá ninguna coincidencia. Por lo tanto, se aplicará la regla de entrada predeterminada de las reglas de cortafuegos de la VPC, que deniega la conexión.
Conexión de salida
- No hay ninguna coincidencia en las reglas definidas por la jerarquía. Por lo tanto, se aplica la regla de salida predeterminada de las reglas de cortafuegos de VPC, lo que permite las conexiones de salida.
Cómo se configura
Crea una política de cortafuegos que contenga la regla:
gcloud compute firewall-policies create \ --organization=123456789012 \ --short-name="example-firewall-policy" \ --description="rules that apply to all VMs in the organization"
Añade la regla a la política de cortafuegos:
gcloud compute firewall-policies rules create 1000 \ --action=allow \ --description="allow-scan-probe" \ --layer4-configs=tcp:123 \ --firewall-policy=example-firewall-policy \ --organization=123456789012 \ --src-ip-ranges=10.100.0.1/32
Asocia la política de cortafuegos a la organización:
gcloud compute firewall-policies associations create \ --firewall-policy=example-firewall-policy \ --organization=123456789012
Ejemplo 2: Denegar todas las conexiones externas excepto las que se realicen a determinados puertos
En este caso práctico, una política de cortafuegos bloquea todas las conexiones de fuentes de Internet externas, excepto las conexiones de los puertos de destino 80
, 443
y 22
. Se bloquea una conexión a Internet de entrada en cualquier puerto que no sea 80
, 443
y 22
, independientemente de las reglas de cortafuegos a nivel de red de VPC. En el caso de las conexiones en los puertos 80
, 443
o 22
, la política delega en el administrador de seguridad de la VPC el comportamiento que quiera aplicar en su respectiva red de VPC para esos puertos.
La configuración de este caso práctico se describe en el siguiente diagrama.
Política aplicable en las VMs
En este ejemplo, la política de cortafuegos de la máquina virtual efectiva después de evaluar las reglas de toda la jerarquía es la siguiente.
Conexiones de entrada
Las conexiones entrantes de
10.0.0.0/8
coinciden con la regla de nivel de organización de mayor prioridaddelegate-internal-traffic
y omiten el resto de las reglas de la política de la organización para evaluarse con las reglas de cortafuegos configuradas a nivel de red de VPC. En la regla de cortafuegos de la VPC, se permiten las conexiones de10.2.0.0/16
y el resto de las conexiones se evalúan en función de la regla de entrada implícita, que esdeny
.Las conexiones de entrada con un intervalo de IPs de origen que no sea
10.0.0.0/8
para los puertos de destino22
,80
y443
se delegan al siguiente nivel, donde se permiten los puertos80
y443
, pero no22
.El resto de las conexiones se bloquean.
Conexiones de salida
- No hay ninguna coincidencia en las reglas definidas por la jerarquía. Por lo tanto, se aplica la regla de salida predeterminada de las reglas de cortafuegos de VPC, lo que permite las conexiones de salida.
Cómo se configura
Crea una política de cortafuegos que contenga la regla:
gcloud compute firewall-policies create \ --organization=123456789012 \ --short-name="example-firewall-policy" \ --description="rules that apply to all VMs in the organization"
Añade una regla para delegar las conexiones internas al propietario del proyecto:
gcloud compute firewall-policies rules create 1000 \ --action=goto_next \ --description="delegate-internal-traffic" \ --organization=123456789012 \ --firewall-policy="example-firewall-policy" \ --src-ip-ranges=10.0.0.0/8
Añade una regla para delegar las reglas de conexiones externas a los puertos
80
/443
/22
al propietario del proyecto:gcloud compute firewall-policies rules create 2000 \ --action=goto_next \ --description="delegate-external-traffic-spec-ports" \ --src-ip-ranges=0.0.0.0/0 \ --layer4-configs=tcp:80,tcp:443,tcp:22 \ --organization=123456789012 \ --firewall-policy="example-firewall-policy"
Añade una regla para denegar todas las demás conexiones externas:
gcloud compute firewall-policies rules create 3000 \ --action=deny \ --description="block-other-external-traffic-spec-ports" \ --organization=123456789012 \ --firewall-policy="example-firewall-policy" \ --src-ip-ranges=0.0.0.0/0
Asocia la política de cortafuegos a la organización:
gcloud compute firewall-policies associations create \ --organization=123456789012 \ --firewall-policy="example-firewall-policy"
En el proyecto, añade una regla de cortafuegos para permitir las conexiones internas desde la subred designada:
gcloud compute firewall-rules create allow-internal-traffic \ --action=allow \ --priority=1000 \ --source-ranges=10.2.0.0/16
En el proyecto, añade una regla de cortafuegos para permitir conexiones TCP externas
80
/443
:gcloud compute firewall-rules create allow-external-traffic \ --action=allow \ --priority=2000 \ --rules=tcp:80,tcp:443
Ejemplo 3: Denegar las conexiones de salida, excepto las de una red de VPC específica
En este caso práctico, el administrador de seguridad de la organización no permite conexiones de salida en ninguna red VPC, excepto las que se originan en la red VPC myvpc
. El administrador delega la decisión de abrir el tráfico de salida al servidor público 203.0.113.1
en el administrador de seguridad myvpc
.
En este ejemplo se presupone que no hay políticas de cortafuegos a nivel de carpeta implementadas. La configuración de este caso práctico se describe en el siguiente diagrama.
Política aplicable en las VMs
En este ejemplo, la política de cortafuegos de la máquina virtual efectiva después de evaluar las reglas de toda la jerarquía es la siguiente.
Conexiones de entrada
- No hay ninguna coincidencia en las reglas definidas por la jerarquía. Por lo tanto, se aplica la regla de entrada predeterminada de las reglas de cortafuegos de VPC, que deniega las conexiones de entrada.
Conexiones de salida
Se permiten todas las conexiones de salida destinadas a
203.0.113.1
, pero se deniegan el resto. Todas las conexiones de salida destinadas a203.0.113.1
coinciden con la regladelegate-egress-my-vpc
y omiten el resto de las reglas de la política de la organización.Las conexiones salientes se evalúan en función de las reglas de cortafuegos configuradas en
myvpc
. La regla predeterminada permite las conexiones de salida. La reglablock-egress-traffic-sepc-ports
de la política a nivel de organización deniega el resto de las conexiones.
Cómo se configura
Crea una política de cortafuegos que contenga la regla:
gcloud compute firewall-policies create \ --organization=123456789012 \ --short-name="example-firewall-policy" \ --description="rules that apply to all VMs in the organization"
Añade una regla para delegar determinadas conexiones de salida:
gcloud compute firewall-policies rules create 1000 \ --action=goto_next \ --description="delegate-egress-myvpc" \ --dest-ip-ranges=203.0.113.1/32 --direction=egress --organization=123456789012 \ --short-name="example-firewall-policy" \ --target-resources=projects/PROJECT_ID/networks/myvpc
Añade una regla para denegar todas las demás conexiones de salida:
gcloud compute firewall-policies rules create 2000 \ --action=deny \ --description="block-egress-external-traffic-spec-ports" \ --direction=egress \ --dest-ip-ranges=0.0.0.0/0 \ --organization=123456789012 \ --short-name="example-firewall-policy"
Asocia la política de cortafuegos a la organización:
gcloud compute firewall-policies associations create \ --organization=123456789012 \ --short-name="example-firewall-policy"
Ejemplo 4: Configurar reglas para toda la organización y para carpetas específicas
En este caso de uso, un administrador de seguridad no permite conexiones entrantes a ninguna VM de la organización, excepto a las que se encuentran en el intervalo que se añade a una lista de permitidas: 203.0.113.0/24
. El administrador delega las decisiones sobre qué hacer con las conexiones de 203.0.113.0/24
en los administradores de seguridad de los niveles de carpeta.
Hay dos carpetas diferentes:
- Folder1, en la que la política permite conexiones solo a los puertos
80
y443
de las VMs de backend, y el resto de los puertos están bloqueados. - Folder2, en la que la política obliga a que ninguna máquina virtual de la carpeta pueda bloquear ningún puerto de destino para el tráfico procedente de la dirección IP
203.0.113.1
. El administrador de seguridad de la carpeta 2 delega otras decisiones en el administrador de seguridad de la VPC, que decide abrir los puertos80
,443
y22
, y denegar el resto.
La configuración de este caso práctico se describe en el siguiente diagrama.
Política aplicable en las VMs
En este ejemplo, la política de cortafuegos de la máquina virtual efectiva después de evaluar las reglas de toda la jerarquía es la siguiente.
Para las máquinas virtuales que pertenecen a my-vpc
Se permiten todas las conexiones entrantes de
203.0.113.0/24
con los puertos de destino TCP80
y443
. Se deniegan todas las demás conexiones de entrada.Todas las conexiones de salida se aceptan según la regla de cortafuegos de la VPC aplicada, ya que no hay ninguna coincidencia en las reglas de políticas de cortafuegos de nivel superior.
Para las máquinas virtuales que pertenecen a vpc2
Se permiten todas las conexiones entrantes de
203.0.113.1
. Las conexiones de entrada de otras fuentes de203.0.113.0/24
que no sean203.0.113.1
solo se permiten en los puertos80
,443
y22
. Se deniegan todas las demás conexiones entrantes.Todas las conexiones de salida se aceptan según la regla de cortafuegos de la VPC aplicada, ya que no hay ninguna coincidencia en las reglas de políticas de cortafuegos de nivel superior.
Cómo se configura
Crea una política de cortafuegos que contenga las reglas de Org_A:
gcloud compute firewall-policies create \ --organization=100000000000 \ --short-name="example-firewall-policy-org-a" \ --description="rules that apply to all VMs in the organization"
Añade una regla para delegar el acceso entrante de
203.0.113.0/24
al propietario del proyecto:gcloud compute firewall-policies rules create 1000 \ --action=goto_next \ --description="delegate-ingress" \ --organization=100000000000 \ --short-name="example-firewall-policy-org-a" \ --src-ip-ranges=203.0.113.0/24
Añade una regla para denegar todas las demás conexiones externas:
gcloud compute firewall-policies rules create 2000 \ --action=deny --description="block-ingress-external-traffic" --organization=100000000000 \ --short-name="example-firewall-policy-org-a" \ --src-ip-ranges=0.0.0.0/0
Asocia la política de cortafuegos a la organización:
gcloud compute firewall-policies associations create \ --organization=100000000000 \ --short-name="example-firewall-policy-org-a"
Crea una política de cortafuegos que contenga las reglas de Folder1:
gcloud compute firewall-policies create \ --organization=100000000000 \ --short-name="example-firewall-policy-folder1" \ --description="rules that apply to all VMs under Folder1"
Añade una regla para permitir todo el tráfico de entrada HTTP(S):
gcloud compute firewall-policies rules create 1000 \ --action=allow \ --description="allow-http-s-ingress" \ --layer4-configs=tcp:80,tcp:443 \ --organization=100000000000 \ --short-name="example-firewall-policy-folder1"
Añade una regla para denegar el acceso en todos los demás puertos o protocolos:
gcloud compute firewall-policies rules create 2000 \ --action=deny \ --description="block-ingress-external-traffic" \ --organization=100000000000 \ --short-name="example-firewall-policy-folder1" \ --src-ip-ranges=0.0.0.0/0
Asocia la política de cortafuegos a Folder1:
gcloud compute firewall-policies associations create \ --organization=100000000000 \ --short-name="example-firewall-policy-folder1" \ --folder=200000000000
Crea una política de cortafuegos que contenga las reglas de Folder2:
gcloud compute firewall-policies create \ --organization=100000000000 \ --short-name="example-firewall-policy-folder2" \ --description="rules that apply to all VMs under Folder2"
Añade una regla para permitir el tráfico entrante de
203.0.113.1
:gcloud compute firewall-policies rules create 1000 \ --action=allow \ --description="allow-vul-scan-ingress" \ --organization=100000000000 \ --short-name="example-firewall-policy-folder2" \ --src-ip-ranges=203.0.113.1/32
Asocia la política de cortafuegos a Folder2:
gcloud compute firewall-policies associations create \ --organization=100000000000 \ --short-name="example-firewall-policy-folder2" \ --folder=300000000000
Añade una regla de cortafuegos para permitir la entrada de conexiones HTTP(S):
gcloud compute firewall-rules create allow-internal-traffic \ --network=vpc2 \ --action=allow \ --rules=tcp:80,tcp:443,tcp:22
Siguientes pasos
- Para crear y modificar reglas y políticas de cortafuegos jerárquicas, consulta Usar políticas de cortafuegos jerárquicas.