Sigue estas instrucciones para configurar Cloud IDS en tu aplicación. Para obtener información conceptual sobre Cloud IDS, consulta la información general sobre Cloud IDS.
Antes de empezar
Antes de configurar Cloud IDS, debes cumplir los siguientes requisitos.
Configurar permisos de gestión de identidades y accesos para Cloud IDS
Cloud IDS tiene varios roles de Gestión de Identidades y Accesos (IAM). Puedes usar los comandos de ejemplo para conceder a una principal los permisos de gestión de identidades y accesos necesarios.
Rol de administrador de Cloud IDS (
roles/ids.admin
). Los principales de proyecto con este rol pueden crear endpoints de IDS. Si eres propietario de un proyecto, ya tienes este permiso y no necesitas un rolids.admin
explícito para crear endpoints de IDS.gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/ids.admin \ --member=user:USER_NAME ;
Este rol permite realizar las siguientes operaciones:
- Crear punto final
- Eliminar punto final
- Obtener endpoint
- Mostrar endpoint
Rol Lector de Cloud IDS (
roles/ids.viewer
). Los lectores de proyectos y los principales que tengan este rol tendrán acceso de solo lectura a los endpoints de IDS. Si eres propietario, editor o lector de un proyecto, ya tienes este permiso.gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/ids.viewer \ --member=user:USER_NAME ;
Rol de usuario de la replicación de paquetes de Compute (
roles/compute.packetMirroringUser
): rol necesario para asociar una política de replicación de paquetes al endpoint de IDS. Si tienes el rolcompute.securityAdmin
ocontainer.serviceAgent
, ya tienes este permiso. Para obtener más información sobre este rol, consulta la referencia de roles básicos y predefinidos de gestión de identidades y accesos.gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/compute.packetMirroringUser \ --member=user:USER_NAME ;
Rol Lector de registros (
roles/logging.viewer
). Se necesita un rol adicional para ver las amenazas recientes, que es una función principal esencial de Cloud IDS. Para obtener más información sobre este rol, consulta la guía de control de acceso.gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/logging.viewer \ --member=user:USER_NAME ;
Además, necesitas los siguientes permisos varios:
compute.regions.list
compute.zones.list
Configurar el acceso privado a servicios
Para crear endpoints de IDS, debes habilitar la API Service Networking y configurar el emparejamiento de redes de la red de nube privada virtual (VPC). Solo es necesario hacerlo una vez por proyecto de cliente y se puede hacer mediante laGoogle Cloud consola o la CLI de Google Cloud. Cuando asignes un intervalo de direcciones IP, debe ser un intervalo de direcciones IP privadas que cumpla el estándar RFC 1918 (10.0.0.0/8
, 172.16.0.0/12
o 192.168.0.0/16
). De lo contrario, no se podrá crear el endpoint.
Para configurar el acceso privado a servicios, sigue estos pasos:
Habilita la API Service Networking con el siguiente comando. Sustituye
PROJECT_ID
por el ID de tu proyecto.gcloud services enable servicenetworking.googleapis.com \ --project=PROJECT_ID
Si aún no has asignado un intervalo de direcciones IP en tu red, debes asignar un intervalo de IP para los servicios de Google en tu red VPC. En el siguiente comando, puedes omitir el campo
addresses
yGoogle Cloud selecciona un intervalo de direcciones sin usar en tu red de VPC:gcloud compute addresses create RESERVED_RANGE_NAME \ --global \ --purpose=VPC_PEERING \ --addresses=192.168.0.0 \ --prefix-length=16 \ --description="DESCRIPTION" \ --network=VPC_NETWORK
Haz los cambios siguientes:
RESERVED_RANGE_NAME
: un nombre para el intervalo asignado, comomy-allocated-range
DESCRIPTION
: descripción del intervalo, comoallocated for my-service
VPC_NETWORK
: el nombre de tu red de VPC, comomy-vpc-network
Crea una conexión privada con un productor de servicios. La conexión privada establece una conexión de emparejamiento de redes de VPC entre tu red de VPC y la red del productor de servicios.
Si ya tienes una conexión privada, usa el comando
gcloud services vpc-peerings update
para actualizarla:gcloud services vpc-peerings update \ --service=servicenetworking.googleapis.com \ --ranges=RESERVED_RANGE_NAME \ --network=VPC_NETWORK \ --project=PROJECT_ID
Si aún no tienes una conexión privada, usa el comando
gcloud services vpc-peerings connect
. Este comando inicia una operación de larga duración que devuelve un nombre de operación.gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --ranges=RESERVED_RANGE_NAME \ --network=VPC_NETWORK \ --project=PROJECT_ID
Haz los cambios siguientes:
RESERVED_RANGE_NAME
: el nombre de uno o varios intervalos asignadosVPC_NETWORK
: el nombre de tu red de VPCPROJECT_ID
: el ID del proyecto que contiene tu red de VPC
Para comprobar si la operación se ha realizado correctamente, usa el comando
gcloud services vpc-peerings operations describe
:gcloud services vpc-peerings operations describe \ --name=OPERATION_NAME
Sustituye
OPERATION_NAME
por el nombre de la operación que se ha devuelto en el paso anterior.
Repite los pasos 2 y 3 con cada red de VPC que quieras monitorizar.
Opcional: Habilitar Controles de Servicio de VPC
Una vez habilitado el acceso a servicios privados, puedes habilitar Controles de Servicio de VPC en Cloud IDS.
Si está habilitado, ejecuta el comando services vpc-peerings enable-vpc-service-controls
para habilitar Controles de Servicio de VPC en todas tus conexiones de peering:
gcloud services vpc-peerings enable-vpc-service-controls \ --service=servicenetworking.googleapis.com \ --network=VPC_NETWORK \ --project=PROJECT_ID
Haz los cambios siguientes:
VPC_NETWORK
: el nombre de tu red de VPCPROJECT_ID
: el ID del proyecto que contiene tu red VPC
Crear un endpoint de Cloud IDS
Te recomendamos que crees un endpoint de IDS para cada región en la que hayas implementado cargas de trabajo. También puedes crear varios endpoints de IDS por región. Sigue estos pasos para crear un endpoint de IDS y asignarle un perfil de servicio de IDS.
Consola
En la Google Cloud consola, ve a Puntos finales de IDS.
Configura el endpoint:
- Haz clic en Crear endpoint.
- Escribe un nombre en el campo Nombre del endpoint.
- Opcional: Escribe una descripción en el campo Descripción.
- Haz clic en la lista desplegable Red y selecciona la red que quieras que inspeccione Cloud IDS.
- Elige la región y la zona de tu red o subred en las listas desplegables Región y Zona.
- Haz clic en Continuar.
Selecciona el perfil de servicio de Cloud IDS:
- Haz clic en Seleccionar perfil de servicio de IDS.
- En Nivel de gravedad mínimo de la amenaza, selecciona el nivel de alerta correcto.
- Haz clic en Crear. El proceso de creación puede tardar entre 10 y 15 minutos.
Una vez creado el endpoint de IDS, asocia una política de replicación de paquetes al endpoint de IDS:
- Selecciona la pestaña Endpoints.
- Junto al endpoint de IDS, haz clic en Adjuntar.
- En el campo Nombre de la política, introduce un nombre para la política de réplica de paquetes.
- Haz clic en Siguiente.
- Elige la subred o las instancias que quieras replicar. Puedes seleccionar varias subredes e instancias.
- Haz clic en Siguiente.
- Determina si quieres replicar todo el tráfico o filtrarlo:
- Si quiere replicar todo el tráfico, asegúrese de que la opción Replicar todo el tráfico esté seleccionada.
- Si quiere filtrar el tráfico en función del protocolo, del intervalo de direcciones IP o del tráfico de entrada o salida, seleccione Replicar tráfico filtrado:
- Seleccione Permitir todos los protocolos o Permitir protocolos específicos.
- Seleccione Permitir todos los intervalos de IP o Permitir intervalos de IP específicos.
- Haz clic en Enviar. El endpoint se ha creado.
Ahora puedes comprobar si se han generado registros de amenazas. Los siguientes pasos son opcionales:
- Haz clic en la pestaña Amenazas de IDS.
- Haga clic en el nombre de una amenaza para ver la página Detalles de la amenaza correspondiente.
- Vuelve a la pestaña Amenazas.
- Haz clic en el Menú situado a la derecha de tu endpoint de IDS y selecciona Ver registros de amenazas.
gcloud
Marcas opcionales
Los comandos de esta sección pueden tener algunas o todas las siguientes marcas opcionales:
--no-async
--filter=EXPRESSION
--flatten
, --sort-by
, --filter
y --limit
.
--limit=LIMIT
--flatten
, --sort-by
, --filter
y --limit
.
--page-size=PAGE_SIZE
--filter
y --limit
, según el servicio.
--sort-by=[FIELD,…]
--flatten
, --sort-by
, --filter
y --limit
.
--uri
--threat-exceptions
Instrucciones
Para crear un endpoint de IDS, sigue estos pasos:
Usa el comando
gcloud ids endpoints create
. SustituyeENDPOINT_NAME
,VPC_NETWORK
,ZONE
ySEVERITY
por la información que corresponda a tu aplicación.gcloud ids endpoints create ENDPOINT_NAME \ --network=VPC_NETWORK \ --zone=ZONE \ --severity=SEVERITY \ [--no-async] \ [GCLOUD_WIDE_FLAG...]
La marca de gravedad es obligatoria y tiene uno de los siguientes valores:
- INFORMATIVA
- BAJA
- MEDIA
- ALTO
- CRÍTICA
Una vez creado el endpoint, adjúntale una política de replicación de paquetes. Primero, obtén la URL del campo
endpoint_forwarding_rule
con el siguiente comando:gcloud ids endpoints describe ENDPOINT_NAME
Crea la política de replicación de paquetes con el siguiente comando:
gcloud compute packet-mirrorings create POLICY_NAME \ --region=REGION --collector-ilb=ENDPOINT_FORWARDING_RULE \ --network=VPC_NETWORK --mirrored-subnets=SUBNET
La función de duplicación de paquetes tiene varias marcas opcionales, incluidas las que puede usar para filtrar el tráfico en función del protocolo, el intervalo de direcciones IP o el tráfico de entrada o salida. Para obtener más información sobre estas marcas opcionales, consulta la referencia de Packet Mirroring.
Para eliminar un endpoint de IDS, usa el comando gcloud ids endpoints
delete
. Sustituye ENDPOINT_NAME
, PROJECT_ID
y ZONE
por la información que corresponda a tu aplicación:
gcloud ids endpoints delete ENDPOINT_NAME \ [--project=PROJECT_ID] \ [--zone=ZONE] \ [--no-async] \ [GCLOUD_WIDE_FLAG...]
Para describir un endpoint de IDS, usa el comando gcloud ids endpoints
describe
. Sustituye ENDPOINT_NAME
, PROJECT_ID
y ZONE
por la información que corresponda a tu aplicación:
gcloud ids endpoints describe ENDPOINT_NAME \ [--project=PROJECT_ID] \ [--zone=ZONE] \ [GCLOUD_WIDE_FLAG...]
Para enumerar los puntos finales de IDS, usa el comando gcloud ids endpoints list
:
gcloud ids endpoints list / [--filter=EXPRESSION] \ [--limit=LIMIT] \ [--page-size=PAGE_SIZE] \ [--sort-by=[FIELD,...]] \ [--uri] \ [GCLOUD_WIDE_FLAG...]
API
Los recursos de endpoint de Cloud IDS tienen los siguientes campos:
Campo | Tipo | Descripción del campo |
---|---|---|
createTime | cadena | [Solo salida] Marca de tiempo de creación en formato de texto RFC 3339. |
updateTime | cadena | [Solo salida] Marca de tiempo de la última actualización en formato de texto RFC 3339. |
name | cadena | [Solo salida] Nombre del endpoint con el formato projects/{project_id}/locations/{locationId}/endpoints/{endpointId} . |
red | cadena | Nombre de la red de VPC conectada al endpoint de IDS. Puede contener el nombre de la red de VPC (como "src-net" ) o la URL completa de la red (como "projects/{project_id}/global/networks/src-net" ).
Este campo es obligatorio al crear el endpoint. |
gravedad | cadena | Nivel de gravedad mínimo de las alertas que comunica el endpoint. Estos son los valores posibles:
Este campo es obligatorio al crear el endpoint. |
description | cadena | Descripción opcional del endpoint. |
endpoint_forwarding_rule | cadena | [Solo salida] URL de la dirección de red del endpoint a la que Packet Mirroring debe enviar el tráfico. |
punto final | cadena | [Solo salida] Dirección IP interna del punto de entrada de la red del endpoint. |
Para crear un endpoint de Cloud IDS, usa una solicitud HTTP POST como la siguiente y sustituye las variables según corresponda. El
ENDPOINT_NAME
debe tener entre 1 y 63 caracteres, solo puede contener letras minúsculas, números y guiones, debe empezar por una letra minúscula y no puede acabar en un guion.
POST https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME { "network": "NETWORK_NAME", "severity": "SEVERITY_LEVEL", }
Para eliminar un endpoint de Cloud IDS, usa una solicitud HTTP DELETE
como la siguiente y sustituye las variables según corresponda:
DELETE https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME
Para obtener un endpoint de Cloud IDS, usa una solicitud HTTP GET
como la siguiente y sustituye las variables según corresponda:
GET https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME
Para obtener una lista de todos los endpoints de Cloud IDS de una zona, usa una solicitud HTTP GET
como la siguiente y sustituye las variables según corresponda:
GET https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints
También puedes sustituir ZONE
por un guion para mostrar todos los endpoints de Cloud IDS de todas las zonas, como se indica a continuación:
GET https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/-/endpoints
Opcional: Configurar excepciones de amenazas
Puedes inhabilitar los IDs de amenazas innecesarios o que generen mucho ruido mediante la marca --threat-exceptions
al crear o actualizar tu endpoint de Cloud IDS. En el siguiente ejemplo se actualiza un punto final de Cloud IDS ENDPOINT_NAME para excluir los IDs de amenazas THREAT_ID1 y THREAT_ID2:
gcloud ids endpoints update ENDPOINT_NAME
--threat-exceptions=THREAT_ID1,THREAT_ID2