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.
Funciones de IAM
Para crear y administrar un grupo de direcciones, necesitas el rol de administrador de red (compute.networkAdmin
) o el rol de administrador de seguridad (compute.securityAdmin
). También puedes definir una función personalizada 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.
Crear o modificar grupos de direcciones
En las siguientes secciones, se explica cómo crear grupos de direcciones, cómo agregar y quitar direcciones de los grupos de direcciones 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 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, 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 especificación 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 IP que 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
Comando gcloud network-security address-groups create
para crear un grupo de direcciones llamado GROUP_NAME con una
de 1,000 direcciones IPv4
, que se pueden usar
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 estableciendo
el propósito exclusivo de 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ú del selector de proyectos, si está disponible, selecciona tu proyecto.
Para editar un grupo de direcciones, haz clic en el nombre de tu grupo de direcciones.
Haz clic en Edit.
En el campo Direcciones IP, agrega los elementos nuevos a la lista de direcciones IP separadas por comas. También puedes hacer clic en Importar direcciones para sube un archivo CSV con una lista de direcciones IP.
Haz clic en Guardar.
gcloud
En el siguiente ejemplo, agregas 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
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ú del selector de proyectos, si está disponible, selecciona tu proyecto.
Para editar un grupo de direcciones, haz clic en el nombre de tu grupo de direcciones.
Haz clic en Edit.
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, como un política de firewall o de seguridad. Sigue estos pasos para borrar una dirección grupo:
Console
En la consola de Google Cloud, ve a la página Grupos de direcciones.
En el menú del selector de proyectos, si está disponible, selecciona tu proyecto.
Selecciona la casilla de verificación junto al grupo de direcciones que deseas eliminar. Asegúrate de que ninguna política de seguridad ni de firewall 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 usarla con cualquier política de seguridad de backend existente de Google Cloud Armor. El Los siguientes ejemplos muestran dos formas distintas de utilizar 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. Tú
puede rechazar todas estas direcciones IP con una única política
Regla deny
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 de
deny
con la siguiente coincidencia. condición, 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 buscar coincidencias con 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. En
además, se usa un proxy upstream, que incluye información sobre el
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 coincidencia
condición:
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.