Los grupos de direcciones te permiten combinar varias direcciones IP y rangos de 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 las políticas de seguridad de Google Cloud Armor. Necesitas una suscripción activa a Google Cloud Armor Enterprise para usar grupos de direcciones.
Antes de comenzar
Antes de configurar los grupos de direcciones, primero debes habilitar la API de Network Security networksecurity.googleapis.com
.
Funciones 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 | Administrador de red de Compute (roles/compute.networkAdmin )
|
networksecurity.addressGroups.* |
Descubre y visualiza grupos de direcciones | Usuario de la red de Compute (roles/compute.networkUser ) |
networksecurity.addressGroups.list
|
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 crear y modificar grupos de direcciones con permiso del proyecto, y cómo usar estos grupos 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 estos grupos, y cómo borrarlos.
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 Google Cloud Armor puede ser mayor que la 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 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 o, si también planeas usar el grupo de direcciones con las políticas de Cloud Next Generation Firewall, elige Firewall y Cloud Armor.
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
Usa el siguiente ejemplo de 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 puede usar con Google 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, se crea un grupo de direcciones con una capacidad de 10,000 rangos de direcciones IP de 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 con la consola de Google Cloud o elcomando gcloud network-security address-groups add-items
.
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 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, agregarás las direcciones IP 192.168.1.2
, 192.168.1.8
y 192.168.1.9
al grupo de direcciones GROUP_NAME
. Proporcionas 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
Puedes quitar elementos de un grupo de direcciones con la Google Cloud consola
o el
comando gcloud network-security address-groups remove-items
.
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 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
El siguiente comando quita 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
Borra un grupo de direcciones con permiso del proyecto
No puedes borrar un grupo de direcciones si un recurso, incluida una política de firewall o una política de seguridad, hace referencia a él. 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 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 Google Cloud Armor existente. En los siguientes ejemplos, se muestran dos formas diferentes de usar los grupos de direcciones.
Cómo rechazar 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 de política de seguridad deny
con la siguiente condición de coincidencia:
evaluateAddressGroup('MALICIOUS_IPS', origin.ip)
Cómo reutilizar 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
y permitir 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_1
y vincúlala aBACKEND_SERVICE_1
. En
POLICY_1
, crea una regla dedeny
con la siguiente condición de coincidencia:evaluateAddressGroup('MALICIOUS_IPS', origin.ip)
Crea una segunda política de seguridad de backend llamada
POLICY_2
y vincúlala aBACKEND_SERVICE_2
.En
POLICY_2
, crea una regladeny
con la siguiente condición de coincidencia, que excluye66.249.77.32/27
y66.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 hacer coincidir las direcciones IP de los usuarios
Para usar un grupo de direcciones y hacer coincidir 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, recibirás 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 configures la opción
userIpRequestHeaders[]
. - No se encuentran los encabezados configurados.
- 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 de 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 de los usuarios, consulta Atributos.
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 permiso de la organización, y cómo usar estos grupos con tus políticas de seguridad.
Crear o modificar grupos de direcciones con permiso de la organización
Los grupos de direcciones con permiso de la organización se pueden usar con políticas de seguridad a nivel del 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 Google Cloud Armor puede ser mayor que la 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 o, si también planeas usar el grupo de direcciones con políticas de Cloud Next Generation Firewall, elige Cloud NGFW y Cloud Armor.
Para obtener más información sobre cómo elegir un propósito para un grupo de direcciones, consulta las especificaciones.
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
Usa el siguiente ejemplo de 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 Google Cloud Armor o Cloud NGFW:
gcloud beta 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 con alcance para la organización y una mayor capacidad estableciendo 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 de IPv6:
gcloud beta 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 centrado en la organización
Después de crear un grupo de direcciones centrado en la organización, puedes agregar elementos con la consola de Google Cloud o elcomandogcloud network-security org-address-groups add-items
.
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, agregarás las direcciones IP 192.168.1.2
, 192.168.1.8
y 192.168.1.9
al grupo de direcciones GROUP_NAME
centrado en la organización. Proporcionas 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
Puedes quitar elementos de un grupo de direcciones con permiso de organización usando la consola deGoogle Cloud o el comando gcloud network-security org-address-groups remove-items
.
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
El siguiente comando quita 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
Borra un grupo de direcciones centrado en la organización
No puedes borrar un grupo de direcciones con alcance en la organización si un recurso, incluida una política de firewall o una política de seguridad, hace referencia a él. 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 permiso de la 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 Google Cloud Armor existente. En los siguientes ejemplos, se muestran dos formas diferentes de usar los grupos de direcciones.
Cómo rechazar 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 la 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 de 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 beta compute org-security-policies associations create \ --security-policy=POLICY_NAME \ --organization=ORGANIZATION_ID
Cómo reutilizar un grupo de rangos de direcciones IP para todos los servicios de backend dentro 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 bloquear el acceso de las direcciones IP de los rastreadores que no son web a todos los servicios de backend de tu organización, pero quieres permitir que las políticas de seguridad con alcance para el 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
y permitir 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
deny
aBACKEND_POLICY_1
con 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_1
conBACKEND_SERVICE_1
:gcloud compute backend-services update BACKEND_SERVICE_1 \ --security-policy BACKEND_POLICY_1
Crea una segunda política de seguridad de backend llamada
BACKEND_POLICY_2
.Agrega una regla
deny
aBACKEND_POLICY_2
con la siguiente condición de coincidencia, que bloquea todas las direcciones IP enMALICIOUS_IPS
, excepto66.249.77.32/27
y66.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_2
conBACKEND_SERVICE_2
. ReemplazaORG_ID
por el ID de tu organización:gcloud compute backend-services update BACKEND_SERVICE_2 \ --security-policy BACKEND_POLICY_2
Usar un grupo de direcciones para hacer coincidir las direcciones IP del usuario con 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 rechazar 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 de los usuarios, consulta Atributos.