Configura grupos de direcciones

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 del rol 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 red de Compute (roles/compute.networkUser)

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 la Google Cloud CLI para crear y modificar grupos de direcciones con alcance en el proyecto, y cómo usar estos grupos con tus políticas de seguridad.

Crear o modificar 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 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 a la capacidad máxima más baja entre esos productos.

Console

  1. En la consola de Google Cloud , ve a la página Grupos de direcciones.

    Ve a Grupos de direcciones

  2. En el menú de selección de proyectos, si está disponible, selecciona tu proyecto.
  3. Haz clic en Crear grupo de direcciones.
  4. En el campo Nombre, ingresa un nombre.
  5. Opcional: En el campo Descripción, agrega una descripción.
  6. En Alcance, elige Global.
  7. En Tipo, elige IPv4 o IPv6.
  8. 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.

  9. En el campo Capacidad, ingresa la capacidad del grupo de direcciones.

  10. 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.

  11. 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 puede 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 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 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.

Console

  1. En la consola de Google Cloud , ve a la página Grupos de direcciones.

    Ve a Grupos de direcciones

  2. En el menú de selección de proyectos, si está disponible, selecciona tu proyecto.
  3. Para editar un grupo de direcciones, haz clic en su nombre.
  4. Haz clic en Editar.
  5. 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.
  6. 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. 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

Sigue estos pasos para quitar elementos de un grupo de direcciones:

Console

  1. En la consola de Google Cloud , ve a la página Grupos de direcciones.

    Ve a Grupos de direcciones

  2. En el menú de selección de proyectos, si está disponible, selecciona tu proyecto.
  3. Para editar un grupo de direcciones, haz clic en su nombre.
  4. Haz clic en Editar.
  5. En el campo Direcciones IP, borra los elementos que quieras quitar de la lista separada por comas de direcciones IP.
  6. 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

  1. En la consola de Google Cloud , ve a la página Grupos de direcciones.

    Ve a Grupos de direcciones

  2. En el menú de selección de proyectos, si está disponible, selecciona tu proyecto.
  3. Para clonar un grupo de direcciones, haz clic en su nombre.
  4. Haz clic en Clonar.
  5. En el campo Nombre, ingresa el nombre del grupo de direcciones clonado que se creará.
  6. 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, como 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

  1. En la consola de Google Cloud , ve a la página Grupos de direcciones.

    Ve a Grupos de direcciones

  2. En el menú de selección de proyectos, si está disponible, selecciona tu proyecto.
  3. 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.
  4. 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.

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:

  1. Crea una política de seguridad de backend llamada POLICY_1 y vincúlala a BACKEND_SERVICE_1.
  2. En POLICY_1, crea una regla de deny con la siguiente condición de coincidencia:

    evaluateAddressGroup('MALICIOUS_IPS', origin.ip)
    
  3. Crea una segunda política de seguridad de backend llamada POLICY_2 y vincúlala a BACKEND_SERVICE_2.

  4. En POLICY_2, crea una regla deny con la siguiente condición de coincidencia, que excluye 66.249.77.32/27 y 66.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 rechazar 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.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 la Descripción general de las direcciones IP de los usuarios.