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 los grupos de direcciones.
Antes de comenzar
Antes de configurar los grupos de direcciones, primero debes habilitar la API de seguridad de red networksecurity.googleapis.com
Funciones de IAM
Para crear y administrar un grupo de direcciones, necesitas el rol de administrador de red (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 | compute.networkAdmin
|
networksecurity.addressGroups.* |
Descubre y visualiza grupos de direcciones | compute.networkUser |
networksecurity.addressGroups.list
|
Para obtener más información sobre qué roles incluyen permisos específicos de IAM, consulta Referencia de permisos de IAM.
Crea o modifica grupos de direcciones
En las siguientes secciones, se explica cómo crear grupos de direcciones, cómo agregar y quitar direcciones de ellos, y cómo borrarlos.
Crea un grupo de direcciones
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 podría ser superior a la máxima de otros productos, como Cloud Next Generation Firewall. Por lo tanto, si quieres 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
En la consola de Google Cloud, ve a la página Grupos de direcciones.
En el menú de selección de proyectos, selecciona tu proyecto si está disponible.
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 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
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 configuras el propósito solo en CLOUD_ARMOR
. En el siguiente ejemplo, creas
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
Después de crear un grupo de direcciones, puedes agregar elementos con la consola de Google Cloud
o el
comando 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, selecciona tu proyecto si está disponible.
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, se agregan 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
Cómo quitar elementos de un grupo de direcciones
Puedes quitar elementos de un grupo de direcciones con la consola de Google Cloud
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, selecciona tu proyecto si está disponible.
Para editar un grupo de direcciones, haz clic en su nombre.
Haz clic en Editar.
En el campo Direcciones IP, borra los elementos que deseas 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
No puedes borrar un grupo de direcciones si un recurso hace referencia a él, como 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, selecciona tu proyecto si está disponible.
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 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
En este ejemplo, imagina que tienes un grupo de direcciones IP llamado BAD_IPS con 10,000 direcciones IP que sabes que son maliciosas. Puedes rechazar todas estas direcciones IP con una sola regla deny
de la política de seguridad con la siguiente condición de coincidencia:
evaluateAddressGroup('BAD_IPS', origin.ip)
Cómo volver a usar un grupo de rangos de direcciones IP en varias políticas de seguridad
En 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 de motores de búsqueda (SEO). Sigue estos pasos para denegar el acceso de todas las direcciones a BACKEND_SERVICE_1 y, al mismo tiempo, 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 a BACKEND_SERVICE_1.
En POLICY_1, crea una regla
deny
con la siguiente condición de coincidencia:evaluateAddressGroup('BAD_IPS', origin.ip)
Crea una segunda política de seguridad de backend llamada POLICY_2 y adjúntalo a BACKEND_SERVICE_2.
En POLICY_2, crea una regla
deny
con la siguiente condición de coincidencia, que excluye66.249.77.32/27
y66.249.77.64/27
:evaluateAddressGroup('BAD_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
En este ejemplo, imagina que tienes un grupo de direcciones IP llamado BAD_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 la política de seguridad con la siguiente condición de coincidencia:
evaluateAddressGroup('BAD_IPS', origin.user_ip)
Para obtener más información sobre las direcciones IP de los usuarios, consulta los atributos del lenguaje de reglas.