Usa estas instrucciones para configurar el IDS de Cloud en tu aplicación. Para obtener información conceptual sobre el IDS de Cloud, consulta la descripción general del IDS de Cloud.
Antes de comenzar
Antes de configurar el IDS de Cloud, debes completar los siguientes requisitos.
Configura permisos de IAM para el IDS de Cloud
IDS de Cloud tiene varios roles de Identity and Access Management (IAM). Puedes usar los comandos de ejemplo para otorgar a una principal los permisos de IAM necesarios.
Función Administrador de IDS de Cloud (
roles/ids.admin
). Las principales del proyecto con esta función pueden crear extremos de IDS. Si eres propietario de un proyecto, ya tienes este permiso y no necesitas una funciónids.admin
explícita para crear extremos de IDS.gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/ids.admin \ --member=user:USER_NAME ;
Esta función habilita las siguientes operaciones:
- Crear extremo
- Borrar extremo
- Obtener extremo
- Mostrar extremo
Rol de visualizador de IDS de Cloud (
roles/ids.viewer
). Los visualizadores del proyecto y las principales con este rol tienen acceso de solo lectura a los extremos del IDS. Si eres propietario, editor o visualizador de un proyecto, ya tienes este permiso.gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/ids.viewer \ --member=user:USER_NAME ;
Función de usuario de duplicación de paquetes de Compute (
roles/compute.packetMirroringUser
). Una función necesaria para conectar una política de duplicación de paquetes al extremo de IDS. Si tienes la funcióncompute.securityAdmin
ocontainer.serviceAgent
, ya tienes este permiso. Para obtener más información sobre esta función, consulta la referencia de funciones básicas y predefinidas de IAM.gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/compute.packetMirroringUser \ --member=user:USER_NAME ;
Función de visualizador de registros (
roles/logging.viewer
). Es una función adicional necesaria para ver las amenazas recientes, que es una función principal y fundamental del IDS de Cloud. Para obtener más información sobre esta función, 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, debes tener los siguientes permisos:
compute.regions.list
compute.zones.list
Configura el acceso privado a servicios
Para crear extremos de IDS, debes habilitar la API de Service Networking y configurar el intercambio de tráfico entre redes para la red de nube privada virtual (VPC). Solo se debe hacer una vez por proyecto del cliente y se puede hacer con la consola de Google Cloud o Google Cloud CLI. Cuando asignas un rango de direcciones IP, debe ser un rango de direcciones IP privadas que cumpla con RFC 1918 (10.0.0.0/8
, 172.16.0.0/12
o 192.168.0.0/16
) o, de lo contrario, la creación del extremo falla.
Sigue estos pasos para configurar el acceso privado a los servicios:
Habilita la API de Service Networking con el siguiente comando. Reemplaza
PROJECT_ID
por el ID del proyecto.gcloud services enable servicenetworking.googleapis.com \ --project=PROJECT_ID
Si aún no asignaste un rango de direcciones IP en tu red, debes asignar un rango de IP para los servicios de Google en tu red de VPC. En el siguiente comando, puedes omitir el campo
addresses
y Google Cloud selecciona un rango 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
Reemplaza lo siguiente:
RESERVED_RANGE_NAME
: Es un nombre para el rango asignado, comomy-allocated-range
.DESCRIPTION
: Es una descripción para el rango, comoallocated for my-service
.VPC_NETWORK
: Es el nombre de tu red de VPC, comomy-vpc-network
.
Crea una conexión privada a un productor de servicios. La conexión privada establece una conexión de intercambio de tráfico entre redes de VPC entre tu red de VPC y la del productor de servicios.
Si ya tienes una conexión privada existente, 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 muestra un nombre de operación.gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --ranges=RESERVED_RANGE_NAME \ --network=VPC_NETWORK \ --project=PROJECT_ID
Reemplaza lo siguiente:
RESERVED_RANGE_NAME
: Es el nombre de uno o más rangos asignados.VPC_NETWORK
: Es el nombre de la red de VPC.PROJECT_ID
: El ID del proyecto que contiene tu red de VPC
Para verificar si la operación se realizó correctamente, usa el comando
gcloud services vpc-peerings operations describe
:gcloud services vpc-peerings operations describe \ --name=OPERATION_NAME
Reemplaza
OPERATION_NAME
por el nombre de la operación que se mostró en el paso anterior.
Repite los pasos 2 y 3 para cada red de VPC que desees supervisar.
Habilita los Controles del servicio de VPC (opcional)
Después de habilitar el acceso a servicios privados, puedes habilitar de manera opcional los Controles del servicio de VPC en el IDS de Cloud.
Si está habilitado, ejecuta el comando services vpc-peerings enable-vpc-service-controls
a fin de habilitar los Controles del servicio de VPC para todas tus conexiones de intercambio de tráfico:
gcloud services vpc-peerings enable-vpc-service-controls \ --service=servicenetworking.googleapis.com \ --network=VPC_NETWORK \ --project=PROJECT_ID
Reemplaza lo siguiente:
VPC_NETWORK
es el nombre de tu red de VPC.PROJECT_ID
: El ID del proyecto que contiene tu red de VPC
Crea un extremo de IDS de Cloud
Te recomendamos que crees un extremo de IDS para cada región en la que hayas implementado cargas de trabajo. También puedes crear múltiples extremos de IDS por región. Usa los siguientes pasos para crear un extremo de IDS y asignarle un perfil de servicio de IDS.
Consola
En la consola de Google Cloud, ve a Extremos de IDS.
Configura el extremo:
- Haz clic en Crear extremo.
- Ingresa un nombre en el campo Endpoint name.
- Opcional: Ingresa una descripción en el campo Descripción.
- Haz clic en la lista desplegable Red y selecciona la red que deseas que inspeccione el IDS de Cloud.
- 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 del IDS de Cloud:
- Haz clic en Seleccionar perfil de servicio de IDS.
- En Nivel mínimo de gravedad de amenaza, selecciona el nivel de alerta correcto.
- Haz clic en Crear. El proceso de creación puede tardar entre 10 y 15 minutos.
Después de crear el extremo de IDS, adjunta una política de Duplicación de paquetes al extremo de IDS:
- Selecciona la pestaña Extremos.
- Junto al extremo de IDS, haz clic en Adjuntar.
- En el campo Nombre de la política, ingresa un nombre para la política.
- Haz clic en Siguiente.
- Elige la subred o las instancias que deseas duplicar. Puedes seleccionar varias instancias y subredes.
- Haz clic en Siguiente.
- Determina si deseas duplicar todo el tráfico o filtrarlo:
- Si deseas duplicar todo el tráfico, asegúrate de que esté seleccionada la opción Duplicar todo el tráfico.
- Si deseas filtrar el tráfico según el protocolo, el rango de direcciones IP o el tráfico de entrada o salida, selecciona Duplicar tráfico filtrado:
- Selecciona Permitir todos los protocolos o Permitir protocolos específicos.
- Selecciona Permitir todos los rangos de IP o Permitir rangos de IP específicos.
- Haz clic en Enviar. Se crea el extremo.
Ahora puedes comprobar si se generaron registros de amenazas. Los siguientes pasos son opcionales:
- Haz clic en la pestaña Amenazas de IDS.
- Haz clic en el nombre de una amenaza para ver la página Detalles de la amenaza de esa amenaza.
- Regresa a la pestaña Threats.
- Haz clic en el Menú a la derecha del extremo del 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 nuevo extremo de IDS, sigue estos pasos:
Usa el comando
gcloud ids endpoints create
. ReemplazaENDPOINT_NAME
,VPC_NETWORK
,ZONE
ySEVERITY
con información que coincida con 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 toma uno de los siguientes valores:
- INFORMATIVO
- BAJO
- MEDIO
- ALTO
- CRÍTICO
Después de crear el extremo, adjunta una política de Duplicació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 Duplicació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 Duplicación de paquetes tiene varias marcas opcionales, incluidas las que puedes usar para filtrar el tráfico según el protocolo, el rango 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 la duplicación de paquetes.
Para borrar un extremo de IDS, usa el comando gcloud ids endpoints
delete
. Reemplaza ENDPOINT_NAME
, PROJECT_ID
y ZONE
por información que coincida con tu aplicación:
gcloud ids endpoints delete ENDPOINT_NAME \ [--project=PROJECT_ID] \ [--zone=ZONE] \ [--no-async] \ [GCLOUD_WIDE_FLAG...]
Para describir un extremo de IDS, usa el comando gcloud ids endpoints
describe
. Reemplaza ENDPOINT_NAME
, PROJECT_ID
y ZONE
por información que coincida con tu aplicación:
gcloud ids endpoints describe ENDPOINT_NAME \ [--project=PROJECT_ID] \ [--zone=ZONE] \ [GCLOUD_WIDE_FLAG...]
Para enumerar los extremos del 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 extremo del IDS de Cloud tienen los siguientes campos:
Campo | Tipo | Descripción del campo |
---|---|---|
createTime | string | [Solo salida] Marca de tiempo de creación en formato de texto RFC 3339. |
updateTime | string | [Solo salida] Marca de tiempo de la última actualización en formato de texto RFC 3339. |
name | string | [Solo salida] Nombre del extremo en el formato projects/{project_id}/locations/{locationId}/endpoints/{endpointId} . |
red | string | Nombre de la red de VPC que está conectada al extremo 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 cuando se crea el extremo. |
gravedad, | string | El nivel de gravedad de alerta mínimo que informa el extremo. Los valores posibles son los siguientes:
Este campo es obligatorio cuando se crea el extremo. |
description | string | Una descripción opcional del extremo. |
endpoint_forwarding_rule | string | [Solo salida] Es la URL de la dirección de red del extremo a la que la duplicación de paquetes enviará el tráfico. |
extremo | string | [Solo salida] Dirección IP interna del punto de entrada de la red del extremo. |
Para crear un extremo del IDS de Cloud, usa una solicitud HTTP POST como la siguiente y reemplaza las variables según corresponda. El valor de ENDPOINT_NAME
debe tener entre 1 y 63 caracteres, contener solo letras minúsculas, dígitos y guiones. Además, debe comenzar con una letra minúscula y no puede terminar con un guion.
POST https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME { "network": "NETWORK_NAME", "severity": "SEVERITY_LEVEL", }
Para borrar un extremo de IDS de Cloud, usa una solicitud HTTP DELETE
como la siguiente y reemplaza las variables según corresponda:
DELETE https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME
Para obtener un extremo de IDS de Cloud, usa una solicitud HTTP GET
como la siguiente y reemplaza las variables según corresponda:
GET https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME
Para enumerar todos los extremos del IDS de Cloud en una zona, usa una solicitud HTTP GET
como la siguiente y reemplaza las variables según corresponda:
GET https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints
Como alternativa, para enumerar todos los extremos del IDS de Cloud en todas las zonas, puedes reemplazar ZONE
por un guion como el siguiente:
GET https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/-/endpoints
Opcional: Configura excepciones de amenazas
Puedes inhabilitar los ID de amenazas ruidosos o innecesarios mediante la marca --threat-exceptions
cuando crees o actualices el extremo del IDS de Cloud. En el siguiente ejemplo, se actualiza un extremo de IDS de Cloud existente ENDPOINT_NAME para eximir los ID de amenaza THREAT_ID1 y THREAT_ID2:
gcloud ids endpoints update ENDPOINT_NAME
--threat-exceptions=THREAT_ID1,THREAT_ID2