Los grupos de direcciones te permiten combinar varias direcciones IP y rangos de direcciones IP en una sola unidad lógica con nombre, que puedes usar en varios productos. En este documento, se muestra cómo usar grupos de direcciones con políticas de seguridad de Google Cloud Armor. Necesitas una suscripción activa a Google Cloud Armor Enterprise para usar los grupos de direcciones.
Antes de comenzar
Antes de configurar los grupos de direcciones, primero debes habilitar la API de seguridad de redes
networksecurity.googleapis.com.
Roles de IAM
Para crear y administrar un grupo de direcciones, necesitas el
rol de administrador de red de Compute (roles/compute.networkAdmin). También puedes definir
un rol personalizado con un conjunto equivalente de permisos.
En la siguiente tabla, se proporciona una lista de los permisos de Identity and Access Management (IAM) necesarios para realizar un conjunto de tareas en grupos de direcciones.
| Tarea | Nombre de la función de IAM | Permisos de IAM |
|---|---|---|
| Crea y administra grupos de direcciones de |
Administrador de red de Compute |
networksecurity.addressGroups.* |
| Descubre y visualiza grupos de direcciones de |
Usuario de red de Compute |
networksecurity.addressGroups.list networksecurity.addressGroups.get networksecurity.addressGroups.use |
Para obtener más información sobre qué roles incluyen permisos específicos de IAM, consulta el Índice de roles y permisos de IAM.
Usa grupos de direcciones con permiso del proyecto
En las siguientes secciones, se explica cómo usar la consola de Google Cloud o Google Cloud CLI para crear y modificar grupos de direcciones con alcance de proyecto, y cómo usar grupos de direcciones con alcance de proyecto con tus políticas de seguridad.
Crea o modifica grupos de direcciones con permiso del proyecto
En las siguientes secciones, se explica cómo crear grupos de direcciones con permiso del proyecto, cómo agregar y quitar direcciones de grupos de direcciones con permiso del proyecto y cómo borrar grupos de direcciones con permiso del proyecto.
Crear un grupo de direcciones con permiso del proyecto
Cuando creas un grupo de direcciones, debes especificar su capacidad y la versión de la dirección IP
con las marcas --capacity y --type, respectivamente. No puedes
cambiar estos valores después de crear el grupo de direcciones.
Además, la capacidad máxima de Cloud Armor puede ser mayor que la capacidad máxima de otros productos, como Cloud Next Generation Firewall. Por lo tanto, si deseas usar el mismo grupo de direcciones en más de un producto, debes establecer la capacidad para que sea menor o igual que la capacidad máxima más baja entre esos productos.
Console
- En la consola de Google Cloud , ve a la página Grupos de direcciones.
- En el menú de selección de proyectos, si está disponible, elige tu proyecto.
- Haz clic en Crear grupo de direcciones.
- En el campo Nombre, ingresa un nombre.
- Opcional: En el campo Descripción, agrega una descripción.
- En Alcance, elige Global.
- En Tipo, elige IPv4 o IPv6.
En Propósito, elige Cloud Armor; de manera alternativa, elige Firewall y Cloud Armor si también planeas usar el grupo de direcciones con las políticas de Cloud Next Generation Firewall.
Para obtener más información sobre cómo elegir un propósito, consulta las especificaciones del grupo de direcciones.
En el campo Capacidad, ingresa la capacidad del grupo de direcciones.
En el campo Direcciones IP, enumera las direcciones IP o los rangos de direcciones IP que quieres incluir en el grupo de direcciones, separados por comas. Por ejemplo,
1.1.1.0/24,1.2.0.0.La cantidad de direcciones IP o rangos de IP no puede exceder la capacidad configurada.
Haz clic en Crear.
gcloud
En el siguiente ejemplo, se usa el
comando gcloud network-security address-groups create
para crear un grupo de direcciones llamado GROUP_NAME con una
capacidad de 1,000 direcciones IPv4, que se pueden usar con
Cloud Armor o Cloud NGFW:
gcloud network-security address-groups create GROUP_NAME \
--location global \
--description "address group description" \
--capacity 1000 \
--type IPv4 \
--purpose DEFAULT,CLOUD_ARMOR
Como alternativa, puedes crear un grupo de direcciones con una capacidad mayor si
estableces el propósito exclusivamente en CLOUD_ARMOR. En el siguiente ejemplo,
crearás un grupo de direcciones con una capacidad de 10,000 rangos de direcciones IP
IPv6:
gcloud network-security address-groups create GROUP_NAME \
--location global \
--description "address group description" \
--capacity 10000 \
--type IPv6 \
--purpose CLOUD_ARMOR
Agrega elementos a un grupo de direcciones con permiso del proyecto
Después de crear un grupo de direcciones, puedes agregar elementos.
Console
- En la consola de Google Cloud , ve a la página Grupos de direcciones.
- En el menú de selección de proyectos, si está disponible, elige tu proyecto.
- Para editar un grupo de direcciones, haz clic en su nombre.
- Haz clic en Editar.
- En el campo Direcciones IP, agrega los elementos nuevos a la lista de direcciones IP separadas por comas. Como alternativa, puedes hacer clic en Importar direcciones para subir un archivo CSV con una lista de direcciones IP.
- Haz clic en Guardar.
gcloud
En el siguiente ejemplo, usarás el
comando gcloud network-security address-groups add-items
para agregar las direcciones IP 192.168.1.2,
192.168.1.8 y 192.168.1.9 al grupo de direcciones
GROUP_NAME. Proporciona una lista de elementos separados por comas con la marca --item:
gcloud network-security address-groups add-items GROUP_NAME \
--location global \
--items 192.168.1.2,192.168.1.8,192.168.1.9
Quita elementos de un grupo de direcciones con permiso del proyecto
Sigue estos pasos para quitar elementos de un grupo de direcciones:
Console
- En la consola de Google Cloud , ve a la página Grupos de direcciones.
- En el menú de selección de proyectos, si está disponible, elige tu proyecto.
- Para editar un grupo de direcciones, haz clic en su nombre.
- Haz clic en Editar.
- En el campo Direcciones IP, borra los elementos que quieras quitar de la lista de direcciones IP separadas por comas.
- Haz clic en Guardar.
gcloud
En el siguiente ejemplo, se usa el
comando gcloud network-security address-groups remove-items
para quitar las direcciones IP 192.168.1.2, 192.168.1.8 y 192.168.1.9
que agregaste en el comando anterior:
gcloud network-security address-groups remove-items GROUP_NAME \
--location global \
--items 192.168.1.2,192.168.1.8,192.168.1.9
Clona un grupo de direcciones con permiso del proyecto
Sigue estos pasos para clonar elementos de un grupo de direcciones:
Console
- En la consola de Google Cloud , ve a la página Grupos de direcciones.
- En el menú de selección de proyectos, si está disponible, elige tu proyecto.
- Para clonar un grupo de direcciones, haz clic en su nombre.
- Haz clic en Clonar.
- En el campo Nombre, ingresa el nombre del grupo de direcciones clonado que se creará.
- Haz clic en Clonar.
gcloud
En el siguiente ejemplo, se usa el
comando
gcloud network-security address-groups clone-items
para clonar las direcciones IP de un grupo de direcciones de origen
SOURCE_GROUP_NAME
en un grupo de direcciones de destino GROUP_NAME:
gcloud network-security address-groups clone-items GROUP_NAME \
--location global \
--source SOURCE_GROUP_NAME
Borra un grupo de direcciones con permiso del proyecto
No puedes borrar un grupo de direcciones si un recurso hace referencia a él, incluida una política de firewall o de seguridad. Sigue estos pasos para borrar un grupo de direcciones:
Console
- En la consola de Google Cloud , ve a la página Grupos de direcciones.
- En el menú de selección de proyectos, si está disponible, elige tu proyecto.
- Selecciona la casilla de verificación junto al grupo de direcciones que deseas borrar. Asegúrate de que ninguna política de firewall o de seguridad haga referencia al grupo de direcciones seleccionado.
- Haz clic en Borrar y, luego, en Borrar de nuevo para confirmar.
gcloud
En el siguiente ejemplo, se usa el
comando gcloud network-security address-groups delete
para borrar un grupo de direcciones llamado GROUP_NAME.
gcloud network-security address-groups delete GROUP_NAME \
--location global
Usa grupos de direcciones con permiso del proyecto con políticas de seguridad
Después de crear un grupo de direcciones y agregarle direcciones IP, puedes usarlo con cualquier política de seguridad de backend de Cloud Armor existente. En los siguientes ejemplos, se muestran dos formas diferentes de usar los grupos de direcciones.
Rechaza un grupo de direcciones IP
Para este ejemplo, imagina que tienes un grupo de direcciones IP llamado
MALICIOUS_IPS con 10,000 direcciones IP que sabes
que son maliciosas. Puedes denegar todas estas direcciones IP con una sola regla deny de política de seguridad con la siguiente condición de coincidencia:
evaluateAddressGroup('MALICIOUS_IPS', origin.ip)
Reutiliza un grupo de rangos de direcciones IP en varias políticas de seguridad
Para este ejemplo, imagina que tienes la misma lista de 10,000 direcciones IP que
en el ejemplo anterior, pero que se sabe que algunas de las direcciones IP son
rastreadores web. Quieres bloquear todas estas direcciones IP de algunos servicios de backend, pero permitir que los rastreadores web accedan a otros servicios de backend para mejorar
la optimización para motores de búsqueda (SEO). Sigue estos pasos para denegar el acceso de todas las direcciones a BACKEND_SERVICE_1, mientras permites que los rangos de direcciones IP 66.249.77.32/27 y 66.249.77.64/27 accedan a BACKEND_SERVICE_2:
- Crea una política de seguridad de backend llamada
POLICY_1y adjúntala aBACKEND_SERVICE_1. En
POLICY_1, crea una regladenycon la siguiente condición de coincidencia:evaluateAddressGroup('MALICIOUS_IPS', origin.ip)Crea una segunda política de seguridad de backend llamada
POLICY_2y adjúntala aBACKEND_SERVICE_2.En
POLICY_2, crea una regladenycon la siguiente condición de coincidencia, que excluye66.249.77.32/27y66.249.77.64/27:evaluateAddressGroup('MALICIOUS_IPS', origin.ip, [66.249.77.32/27, 66.249.77.64/27])
Usa un grupo de direcciones para que coincida con las direcciones IP de los usuarios
Para usar un grupo de direcciones que coincida con las direcciones IP del cliente de origen ("usuario"),
debes configurar userIpRequestHeaders[] en la política de seguridad.
Es importante tener en cuenta que, en las siguientes condiciones, recibes la dirección IP de origen de la solicitud y no la dirección IP del cliente de origen, ya que el valor de origin.user_ip se establece de forma predeterminada en el valor de origin.ip:
- No configuras la opción
userIpRequestHeaders[]. - Los encabezados configurados no están presentes.
- Los encabezados configurados contienen valores de dirección IP no válidos.
Para este ejemplo, imagina que tienes un grupo de direcciones IP llamado
MALICIOUS_IPS con 10,000 direcciones IP que sabes
que son maliciosas. Además, usas un proxy upstream, que incluye
información sobre los clientes de origen en el encabezado. Puedes denegar todas estas direcciones IP con una sola regla deny de política de seguridad con la siguiente condición de coincidencia:
evaluateAddressGroup('MALICIOUS_IPS', origin.user_ip)
Para obtener más información sobre las direcciones IP, consulta Atributos.
Para obtener más información sobre las direcciones IP de los usuarios, consulta Descripción general de las direcciones IP de los usuarios.
Usa grupos de direcciones con permiso de la organización
En las siguientes secciones, se explica cómo crear y modificar grupos de direcciones con alcance de organización con la consola de Google Cloud o Google Cloud CLI, y cómo usar grupos de direcciones con alcance de organización con tus políticas de seguridad.
Crea o modifica grupos de direcciones con permiso de la organización
Puedes usar grupos de direcciones con permiso de la organización con políticas de seguridad a nivel de servicio y políticas de seguridad jerárquicas.
En las siguientes secciones, se explica cómo crear grupos de direcciones con permiso de la organización, cómo agregar y quitar direcciones de estos grupos y cómo borrarlos.
Crea un grupo de direcciones con permiso de la organización
Cuando creas un grupo de direcciones, debes especificar su capacidad y la versión de la dirección IP
con las marcas --capacity y --type, respectivamente. No puedes
cambiar estos valores después de crear el grupo de direcciones.
Además, la capacidad máxima de Cloud Armor puede ser mayor que la capacidad máxima de otros productos, como Cloud Next Generation Firewall. Por lo tanto, si deseas usar el mismo grupo de direcciones en más de un producto, debes establecer la capacidad para que sea menor o igual que la capacidad máxima más baja entre esos productos.
Console
- En la consola de Google Cloud , ve a la página Grupos de direcciones.
- En el menú de selección de proyectos, si está disponible, selecciona tu organización.
- Haz clic en Crear grupo de direcciones.
- En el campo Nombre, ingresa un nombre.
- Opcional: En el campo Descripción, agrega una descripción.
- En Alcance, elige Global.
- En Tipo, elige IPv4 o IPv6.
En Propósito, elige Cloud Armor. Como alternativa, elige Cloud NGFW y Cloud Armor si también planeas usar el grupo de direcciones con las políticas de firewall de Cloud Next Generation Firewall.
Para obtener más información sobre cómo elegir un propósito para un grupo de direcciones, consulta Especificación.
En el campo Capacidad, ingresa la capacidad del grupo de direcciones.
En el campo Direcciones IP, enumera las direcciones IP o los rangos de direcciones IP que quieres incluir en el grupo de direcciones, separados por comas. Por ejemplo,
1.1.1.0/24,1.2.0.0.La cantidad de direcciones IP o rangos de IP no puede exceder la capacidad configurada.
Haz clic en Crear.
gcloud
En el siguiente ejemplo, se usa el
comando gcloud network-security org-address-groups create
para crear un grupo de direcciones centrado en la organización llamado
GROUP_NAME con una capacidad de 1,000 direcciones IPv4,
que se puede usar con Cloud Armor o Cloud NGFW:
gcloud network-security org-address-groups create GROUP_NAME \
--location global \
--description "org address group description" \
--capacity 1000 \
--type IPv4 \
--purpose DEFAULT,CLOUD_ARMOR
Como alternativa, puedes crear un grupo de direcciones centrado en la organización con una
capacidad mayor si configuras el propósito exclusivamente como CLOUD_ARMOR. En el
siguiente ejemplo, crearás un grupo de direcciones con una capacidad de 10,000 rangos de direcciones IP
IPv6:
gcloud network-security org-address-groups create GROUP_NAME \
--location global \
--description "org address group description" \
--capacity 10000 \
--type IPv6 \
--purpose CLOUD_ARMOR
Agrega elementos a un grupo de direcciones con alcance de organización
Después de crear un grupo de direcciones con alcance de organización, puedes agregar elementos.
Console
- En la consola de Google Cloud , ve a la página Grupos de direcciones.
- En el menú de selección de proyectos, si está disponible, selecciona tu organización.
- Para editar un grupo de direcciones, haz clic en su nombre.
- Haz clic en Editar.
- En el campo Direcciones IP, agrega los elementos nuevos a la lista de direcciones IP separadas por comas. Como alternativa, puedes hacer clic en Importar direcciones para subir un archivo CSV con una lista de direcciones IP.
- Haz clic en Guardar.
gcloud
En el siguiente ejemplo, usas el
comando gcloud network-security org-address-groups add-items
para agregar las direcciones IP 192.168.1.2,
192.168.1.8 y 192.168.1.9 al grupo de direcciones con permiso de la organización
GROUP_NAME. Proporciona una lista de elementos separados por comas con la marca --items:
gcloud network-security org-address-groups add-items GROUP_NAME \
--location global \
--items 192.168.1.2,192.168.1.8,192.168.1.9
Quita elementos de un grupo de direcciones con permiso de organización
Sigue estos pasos para quitar elementos de un grupo de direcciones con permiso de organización:
Console
- En la consola de Google Cloud , ve a la página Grupos de direcciones.
- En el menú de selección de proyectos, si está disponible, selecciona tu organización.
- Para editar un grupo de direcciones, haz clic en su nombre.
- Haz clic en Editar.
- En el campo Direcciones IP, borra los elementos que quieras quitar de la lista de direcciones IP separadas por comas.
- Haz clic en Guardar.
gcloud
En el siguiente ejemplo, se usa el
comando gcloud network-security org-address-groups remove-items
para quitar las direcciones IP 192.168.1.2, 192.168.1.8 y 192.168.1.9
que agregaste en el comando anterior:
gcloud network-security org-address-groups remove-items GROUP_NAME \
--location global \
--items 192.168.1.2,192.168.1.8,192.168.1.9
Clona un grupo de direcciones con permiso de la organización
Sigue estos pasos para clonar elementos de un grupo de direcciones:
Console
- En la consola de Google Cloud , ve a la página Grupos de direcciones.
- En el menú de selección de proyectos, si está disponible, selecciona tu organización.
- Para clonar un grupo de direcciones, haz clic en su nombre.
- Haz clic en Clonar.
- En el campo Nombre, ingresa el nombre del grupo de direcciones clonado que se creará.
- Haz clic en Clonar.
gcloud
En el siguiente ejemplo, usarás
el comando
gcloud network-security org-address-groups clone-items
para clonar las direcciones IP de un grupo de direcciones de origen
SOURCE_GROUP_NAME
en un grupo de direcciones de destino GROUP_NAME:
gcloud network-security org-address-groups clone-items GROUP_NAME \
--location global \
--source SOURCE_GROUP_NAME
Borra un grupo de direcciones con permiso de la organización
No puedes borrar un grupo de direcciones con alcance de organización si un recurso hace referencia a él, incluida una política de firewall o de seguridad. Sigue estos pasos para borrar un grupo de direcciones:
Console
- En la consola de Google Cloud , ve a la página Grupos de direcciones.
- En el menú de selección de proyectos, si está disponible, selecciona tu organización.
- Selecciona la casilla de verificación junto al grupo de direcciones que deseas borrar. Asegúrate de que ninguna política de firewall o de seguridad haga referencia al grupo de direcciones seleccionado.
- Haz clic en Borrar y, luego, en Borrar de nuevo para confirmar.
gcloud
En el siguiente ejemplo, se usa el
comando gcloud network-security org-address-groups delete
para borrar un grupo de direcciones llamado GROUP_NAME.
gcloud network-security org-address-groups delete GROUP_NAME \
--location global
Usa grupos de direcciones con alcance de organización con políticas de seguridad
Después de crear un grupo de direcciones y agregarle direcciones IP, puedes usarlo con cualquier política de seguridad de backend de Cloud Armor existente. En los siguientes ejemplos, se muestran dos formas diferentes de usar los grupos de direcciones.
Deniega un grupo de direcciones IP para todos los servicios de backend de una organización
Para este ejemplo, imagina que tienes un grupo de direcciones IP con alcance de organización
llamado MALICIOUS_IPS con 10,000 direcciones IP que
sabes que son maliciosas. Puedes denegar todas estas direcciones IP para todos los
servicios de backend de tu organización con una sola
política de seguridad jerárquica. Crea una política de seguridad jerárquica y, luego, agrega una
regla deny con la siguiente condición de coincidencia:
evaluateOrganizationAddressGroup('MALICIOUS_IPS', origin.ip)
Por último, asocia la política de seguridad jerárquica a todos los servicios de backend
de tu organización. Para ello, reemplaza POLICY_NAME
por el nombre de tu política de seguridad jerárquica y
ORGANIZATION_ID por el ID de tu organización:
gcloud compute org-security-policies associations create \
--security-policy=POLICY_NAME \
--organization=ORGANIZATION_ID
Reutiliza un grupo de rangos de direcciones IP para todos los servicios de backend de una organización
Para este ejemplo, imagina que tienes la misma lista de 10,000 direcciones IP que en el ejemplo anterior, pero que se sabe que algunas de las direcciones IP son rastreadores web. Quieres impedir que las direcciones IP de los rastreadores web accedan a todos los servicios de backend de tu organización, pero quieres permitir que las políticas de seguridad con alcance de proyecto determinen si los rastreadores web pueden acceder a tus servicios de backend para mejorar la optimización para motores de búsqueda (SEO).
Sigue estos pasos para denegar el acceso de todas las direcciones a
BACKEND_SERVICE_1, mientras permites que los rangos de direcciones IP
66.249.77.32/27 y 66.249.77.64/27 accedan a
BACKEND_SERVICE_2:
- Crea una política de seguridad de backend llamada
BACKEND_POLICY_1. Agrega una regla
denyaBACKEND_POLICY_1con la siguiente condición de coincidencia, que bloquea todas las direcciones IP enMALICIOUS_IPS:evaluateOrganizationAddressGroup('MALICIOUS_IPS', origin.ip)Usa el siguiente comando para asociar
BACKEND_POLICY_1conBACKEND_SERVICE_1:gcloud compute backend-services update BACKEND_SERVICE_1 \ --security-policy BACKEND_POLICY_1Crea una segunda política de seguridad de backend llamada
BACKEND_POLICY_2.Agrega una regla
denyaBACKEND_POLICY_2con la siguiente condición de coincidencia, que bloquea todas las direcciones IP enMALICIOUS_IPS, excepto66.249.77.32/27y66.249.77.64/27:evaluateOrganizationAddressGroup('MALICIOUS_IPS', origin.ip, [`66.249.77.32/27`, `66.249.77.64/27`])Usa el siguiente comando para asociar
BACKEND_POLICY_2conBACKEND_SERVICE_2. ReemplazaORG_IDpor el ID de tu organización:gcloud compute backend-services update BACKEND_SERVICE_2 \ --security-policy BACKEND_POLICY_2
Usa un grupo de direcciones para que coincida con las direcciones IP de los usuarios de todos los servicios de backend de una organización
Para este ejemplo, imagina que tienes un grupo de direcciones IP llamado
MALICIOUS_IPS con 10,000 direcciones IP que sabes
que son maliciosas. Además, usas un proxy upstream, que incluye
información sobre la dirección IP del cliente de origen en el encabezado. Puedes denegar
el acceso de todas estas direcciones IP a todos los servicios de backend de tu
organización con una sola regla de política de seguridad deny con la siguiente
condición de coincidencia:
evaluateOrganizationAddressGroup('MALICIOUS_IPS', origin.user_ip)
Para obtener más información sobre las direcciones IP, consulta Atributos.
Para obtener más información sobre las direcciones IP de los usuarios, consulta Descripción general de las direcciones IP de los usuarios.