Configurar grupos de direcciones

Los grupos de direcciones le permiten combinar varias direcciones IP y rangos de direcciones IP en una sola unidad lógica con nombre, que puede usar en varios productos. En este documento se muestra cómo usar grupos de direcciones con políticas de seguridad de Google Cloud Armor. Para usar grupos de direcciones, necesitas una suscripción activa a Google Cloud Armor Enterprise.

Antes de empezar

Antes de configurar grupos de direcciones, debes habilitar la API Network Security networksecurity.googleapis.com.

Roles de gestión de identidades y accesos

Para crear y gestionar un grupo de direcciones, necesitas el rol Administrador de red de Compute (roles/compute.networkAdmin). También puedes definir un rol personalizado con un conjunto de permisos equivalente.

En la siguiente tabla se incluye una lista de los permisos de gestión de identidades y accesos (IAM) necesarios para realizar un conjunto de tareas en grupos de direcciones.

Tarea Nombre del rol de gestión de identidades y accesos Permisos de gestión de identidades y accesos
Crear y gestionar grupos de direcciones

Administrador de red de Compute (roles/compute.networkAdmin)

networksecurity.addressGroups.*
Descubrir y ver 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 los roles que incluyen permisos de gestión de identidades y accesos específicos, consulta el índice de roles y permisos de gestión de identidades y accesos.

Usar grupos de direcciones de ámbito de proyecto

En las siguientes secciones se explica cómo usar la Google Cloud consola o la CLI de Google Cloud para crear y modificar grupos de direcciones de ámbito de proyecto, y cómo usar grupos de direcciones de ámbito de proyecto con tus políticas de seguridad.

Crear o modificar grupos de direcciones de ámbito de proyecto

En las siguientes secciones se explica cómo crear grupos de direcciones de ámbito de proyecto, cómo añadir y quitar direcciones de grupos de direcciones de ámbito de proyecto y cómo eliminar grupos de direcciones de ámbito de proyecto.

Crear un grupo de direcciones con ámbito de 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 una vez que hayas creado el grupo de direcciones.

Además, la capacidad máxima de Cloud Armor puede ser superior a la de otros productos, como Cloud Next Generation Firewall. Por lo tanto, si quiere usar el mismo grupo de direcciones en más de un producto, debe definir una capacidad que sea inferior o igual a la capacidad máxima más baja de esos productos.

Consola

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

    Ir a Grupos de direcciones

  2. En el menú de selección de proyectos, si está disponible, selecciona tu proyecto.
  3. Haga clic en Crear grupo de direcciones.
  4. En el campo Nombre, introduce un nombre.
  5. (Opcional): En el campo Descripción, añade una descripción.
  6. En Ámbito, elige Global.
  7. En Tipo, elige IPv4 o IPv6.
  8. En Propósito, elige Cloud Armor. También puedes elegir Cortafuegos y Cloud Armor si tienes previsto usar el grupo de direcciones con políticas de Cloud Next Generation Firewall.

    Para obtener más información sobre cómo elegir un propósito, consulta la especificación de grupos de direcciones.

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

  10. En el campo Direcciones IP, enumera las direcciones o los intervalos de direcciones IP que quieras incluir en el grupo de direcciones, separados por comas. Por ejemplo, 1.1.1.0/24,1.2.0.0.

    El número de direcciones o intervalos de IP no puede superar 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 1000 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

También puedes crear un grupo de direcciones con una capacidad mayor si le asignas el propósito CLOUD_ARMOR. En el siguiente ejemplo, se crea un grupo de direcciones con una capacidad de 10.000 intervalos 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

Añadir elementos a un grupo de direcciones de ámbito de proyecto

Después de crear un grupo de direcciones, puedes añadir elementos.

Consola

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

    Ir 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, haga clic en su nombre.
  4. Haz clic en Editar.
  5. En el campo Direcciones IP, añade los nuevos elementos a la lista de direcciones IP separadas por comas. También 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, se usa el comando gcloud network-security address-groups add-items para añadir 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 separada por comas de elementos 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

Quitar elementos de un grupo de direcciones de ámbito de proyecto

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

Consola

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

    Ir 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, haga clic en su nombre.
  4. Haz clic en Editar.
  5. En el campo Direcciones IP, elimina los elementos que quieras quitar de la lista de direcciones IP separadas por comas.
  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 has añadido 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

Clonar un grupo de direcciones de ámbito de proyecto

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

Consola

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

    Ir 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, haga clic en su nombre.
  4. Haz clic en Clonar.
  5. En el campo Nombre, introduce el nombre del grupo de direcciones clonado que se va a 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

Eliminar un grupo de direcciones de ámbito de proyecto

No puedes eliminar un grupo de direcciones si un recurso hace referencia a él, como una política de firewall o una política de seguridad. Sigue estos pasos para eliminar un grupo de direcciones:

Consola

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

    Ir a Grupos de direcciones

  2. En el menú de selección de proyectos, si está disponible, selecciona tu proyecto.
  3. Seleccione la casilla situada junto al grupo de direcciones que quiera eliminar. Asegúrate de que ningún cortafuegos ni ninguna política de seguridad hagan referencia al grupo de direcciones seleccionado.
  4. Haz clic en Eliminar y, a continuación, vuelve a hacer clic en Eliminar para confirmar la acción.

gcloud

En el siguiente ejemplo se usa el comando gcloud network-security address-groups delete para eliminar un grupo de direcciones llamado GROUP_NAME.

 gcloud network-security address-groups delete GROUP_NAME \
     --location global

Usar grupos de direcciones de ámbito de proyecto con políticas de seguridad

Una vez que hayas creado un grupo de direcciones y le hayas añadido direcciones IP, podrás usarlo con cualquier política de seguridad de backend de Cloud Armor. En los siguientes ejemplos se muestran dos formas diferentes de usar los grupos de direcciones.

Denegar un grupo de direcciones IP

En este ejemplo, supongamos que tiene un grupo de direcciones IP llamado MALICIOUS_IPS con 10.000 direcciones IP que sabe que son maliciosas. Puede denegar todas estas direcciones IP mediante una sola regla de política de seguridad deny con la siguiente condición de coincidencia:

evaluateAddressGroup('MALICIOUS_IPS', origin.ip)

Reutilizar un grupo de intervalos de direcciones IP en varias políticas de seguridad

En este ejemplo, supongamos que tienes la misma lista de 10.000 direcciones IP que en el ejemplo anterior, pero que se sabe que algunas de ellas son rastreadores web. Quieres bloquear todas estas direcciones IP de algunos servicios backend, pero permitir que los rastreadores web accedan a otros servicios backend para mejorar la optimización en buscadores (SEO). Sigue estos pasos para denegar el acceso a BACKEND_SERVICE_1 a todas las direcciones, pero permitir el acceso a BACKEND_SERVICE_2 a los intervalos de direcciones IP 66.249.77.32/27 y 66.249.77.64/27:

  1. Crea una política de seguridad de backend llamada POLICY_1 y vincúlala a BACKEND_SERVICE_1.
  2. En POLICY_1, cree una regla 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])
    

Usar un grupo de direcciones para buscar coincidencias con las direcciones IP de los usuarios

Para usar un grupo de direcciones con el fin de comparar las direcciones IP del cliente de origen ("usuario"), debe 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 es el valor predeterminado de origin.ip:

  • No configures la opción userIpRequestHeaders[].
  • Los encabezados configurados no están presentes.
  • Los encabezados configurados contienen valores de dirección IP no válidos.

En este ejemplo, supongamos que tiene un grupo de direcciones IP llamado MALICIOUS_IPS con 10.000 direcciones IP que sabe que son maliciosas. Además, utiliza 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 política de seguridad deny que tenga 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, consulte Atributos.

Usar grupos de direcciones de ámbito de organización

En las siguientes secciones se explica cómo crear y modificar grupos de direcciones con ámbito de organización mediante la Google Cloud consola o la CLI de Google Cloud, así como cómo usar grupos de direcciones con ámbito de organización con tus políticas de seguridad.

Crear o modificar grupos de direcciones de ámbito de organización

Puedes usar grupos de direcciones con ámbito de organización tanto con políticas de seguridad a nivel de servicio como con políticas de seguridad jerárquicas.

En las siguientes secciones se explica cómo crear grupos de direcciones con ámbito de organización, cómo añadir y quitar direcciones de estos grupos y cómo eliminarlos.

Crear un grupo de direcciones con ámbito de 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 una vez que hayas creado el grupo de direcciones.

Además, la capacidad máxima de Cloud Armor puede ser superior a la de otros productos, como Cloud Next Generation Firewall. Por lo tanto, si quiere usar el mismo grupo de direcciones en más de un producto, debe definir una capacidad que sea inferior o igual a la capacidad máxima más baja de esos productos.

Consola

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

    Ir a Grupos de direcciones

  2. En el menú de selección de proyectos, si está disponible, selecciona tu organización.
  3. Haga clic en Crear grupo de direcciones.
  4. En el campo Nombre, introduce un nombre.
  5. Opcional: En el campo Descripción, añade una descripción.
  6. En Ámbito, elige Global.
  7. En Tipo, elige IPv4 o IPv6.
  8. En Propósito, elige Cloud Armor. También puedes seleccionar Cloud NGFW y Cloud Armor si tienes previsto usar el grupo de direcciones con políticas de Cloud Next Generation Firewall.

    Para obtener más información sobre cómo elegir un propósito para un grupo de direcciones, consulta la sección Especificación.

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

  10. En el campo Direcciones IP, enumera las direcciones o los intervalos de direcciones IP que quieras incluir en el grupo de direcciones, separados por comas. Por ejemplo, 1.1.1.0/24,1.2.0.0.

    El número de direcciones o intervalos de IP no puede superar la capacidad configurada.

  11. 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 con ámbito de organización llamado GROUP_NAME con una capacidad de 1000 direcciones IPv4, que se puede usar con 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

También puedes crear un grupo de direcciones con ámbito de organización y una capacidad mayor si le asignas el propósito CLOUD_ARMOR. En el siguiente ejemplo, se crea un grupo de direcciones con una capacidad de 10.000 intervalos de direcciones 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

Añadir elementos a un grupo de direcciones con ámbito de organización

Después de crear un grupo de direcciones con ámbito de organización, puedes añadir elementos.

Consola

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

    Ir a Grupos de direcciones

  2. En el menú de selección de proyectos, si está disponible, selecciona tu organización.
  3. Para editar un grupo de direcciones, haga clic en su nombre.
  4. Haz clic en Editar.
  5. En el campo Direcciones IP, añade los nuevos elementos a la lista de direcciones IP separadas por comas. También 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 ejemplo siguiente, se usa el comando gcloud network-security org-address-groups add-items para añadir las direcciones IP 192.168.1.2, 192.168.1.8 y 192.168.1.9 al grupo de direcciones GROUP_NAME, cuyo ámbito es la organización. Proporciona una lista separada por comas de elementos 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

Quitar elementos de un grupo de direcciones de ámbito de organización

Sigue estos pasos para quitar elementos de un grupo de direcciones con ámbito de organización:

Consola

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

    Ir a Grupos de direcciones

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

Clonar un grupo de direcciones con ámbito de organización

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

Consola

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

    Ir a Grupos de direcciones

  2. En el menú de selección de proyectos, si está disponible, selecciona tu organización.
  3. Para clonar un grupo de direcciones, haga clic en su nombre.
  4. Haz clic en Clonar.
  5. En el campo Nombre, introduce el nombre del grupo de direcciones clonado que se va a crear.
  6. Haz clic en Clonar.

gcloud

En el ejemplo siguiente, se usa 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

Eliminar un grupo de direcciones con ámbito de organización

No puedes eliminar un grupo de direcciones con ámbito de organización si hace referencia a él un recurso, como una política de cortafuegos o una política de seguridad. Sigue estos pasos para eliminar un grupo de direcciones:

Consola

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

    Ir a Grupos de direcciones

  2. En el menú de selección de proyectos, si está disponible, selecciona tu organización.
  3. Seleccione la casilla situada junto al grupo de direcciones que quiera eliminar. Asegúrate de que ningún cortafuegos ni política de seguridad haga referencia al grupo de direcciones seleccionado.
  4. Haz clic en Eliminar y, a continuación, vuelve a hacer clic en Eliminar para confirmar la acción.

gcloud

En el siguiente ejemplo se usa el comando gcloud network-security org-address-groups delete para eliminar un grupo de direcciones llamado GROUP_NAME.

 gcloud network-security org-address-groups delete GROUP_NAME \
     --location global

Usar grupos de direcciones con ámbito de organización con políticas de seguridad

Una vez que hayas creado un grupo de direcciones y le hayas añadido direcciones IP, podrás usarlo con cualquier política de seguridad de backend de Cloud Armor. En los siguientes ejemplos se muestran dos formas diferentes de usar los grupos de direcciones.

Denegar un grupo de direcciones IP para todos los servicios de backend de una organización

En este ejemplo, supongamos que tiene un grupo de direcciones IP de ámbito de organización llamado MALICIOUS_IPS con 10.000 direcciones IP que sabe que son maliciosas. Puedes denegar todas estas direcciones IP para todos los servicios backend de tu organización mediante una sola política de seguridad jerárquica. Crea una política de seguridad jerárquica y, a continuación, añade 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 backend de tu organización. Para ello, sustituye 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

Reutilizar un grupo de intervalos de direcciones IP en todos los servicios de backend de una organización

En este ejemplo, supongamos que tienes la misma lista de 10.000 direcciones IP que en el ejemplo anterior, pero que se sabe que algunas de ellas son rastreadores web. Quieres impedir que las direcciones IP de rastreadores que no son web accedan a todos los servicios de backend de tu organización, pero quieres permitir que las políticas de seguridad de ámbito de proyecto determinen si los rastreadores web pueden acceder a tus servicios de backend para mejorar la optimización en buscadores (SEO).

Sigue estos pasos para denegar el acceso a BACKEND_SERVICE_1 a todas las direcciones, pero permitir que los intervalos 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 BACKEND_POLICY_1.
  2. Añade una regla deny a BACKEND_POLICY_1 con la siguiente condición de coincidencia, que bloquea todas las direcciones IP de MALICIOUS_IPS:

    evaluateOrganizationAddressGroup('MALICIOUS_IPS', origin.ip)
    
  3. Usa el siguiente comando para asociar BACKEND_POLICY_1 con BACKEND_SERVICE_1:

     gcloud compute backend-services update BACKEND_SERVICE_1 \
         --security-policy BACKEND_POLICY_1
    
  4. Crea una segunda política de seguridad de backend llamada BACKEND_POLICY_2.

  5. Añade una regla deny a BACKEND_POLICY_2 con la siguiente condición de coincidencia, que bloquea todas las direcciones IP de MALICIOUS_IPS, excepto 66.249.77.32/27 y 66.249.77.64/27:

    evaluateOrganizationAddressGroup('MALICIOUS_IPS', origin.ip, [`66.249.77.32/27`, `66.249.77.64/27`])
    
  6. Usa el siguiente comando para asociar BACKEND_POLICY_2 con BACKEND_SERVICE_2. Sustituye ORG_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 buscar coincidencias con las direcciones IP de los usuarios de todos los servicios backend de una organización

En este ejemplo, supongamos que tiene un grupo de direcciones IP llamado MALICIOUS_IPS con 10.000 direcciones IP que sabe 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 a todas estas direcciones IP a todos los servicios de backend de tu organización mediante una sola regla deny de política de seguridad 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, consulte Atributos.

Siguientes pasos