Recopila registros de acceso a API Gateway de AWS
En este documento, se explica cómo transferir registros de acceso de Amazon API Gateway a Google Security Operations con AWS CloudWatch Logs y Kinesis Data Firehose. Amazon API Gateway proporciona APIs de REST y HTTP para compilar y administrar APIs a gran escala. Los registros de acceso ayudan a supervisar el uso de la API y a solucionar problemas. Esta integración transmite estos registros a Google SecOps para su análisis y supervisión.
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos:
- Instancia de Google SecOps
- Acceso privilegiado a AWS
Habilita el registro de acceso de Amazon API Gateway (en CloudWatch Logs)
- Ve a Consola de AWS > API Gateway.
En el caso de las APIs de REST:
- Abre Stage > Logs/Tracing > habilita Access logging.
Formato de registro: Selecciona JSON.
{ "requestId":"$context.requestId", "ip":"$context.identity.sourceIp", "requestTime":"$context.requestTime", "httpMethod":"$context.httpMethod", "routeKey":"$context.routeKey", "status":"$context.status", "protocol":"$context.protocol", "responseLength":"$context.responseLength", "integrationLatency":"$context.integrationLatency", "error":"$context.error.message" }
Grupo de registros de CloudWatch Logs: Elige o crea un grupo de registros (por ejemplo,
/aws/apigateway/access
).
Para las APIs de HTTP:
- Selecciona API > Monitor > Logging.
- Selecciona Stage > Edit.
- Habilita Registro de acceso.
- Usa el mismo formato de registro JSON que se mostró anteriormente.
- Grupo de registros de CloudWatch Logs: Elige o crea un grupo de registros (por ejemplo,
/aws/apigateway/access
).
Haz clic en Guardar.
Configura un feed en Google SecOps para transferir registros de Amazon API Gateway
- Ve a Configuración de SIEM > Feeds.
- Haz clic en + Agregar feed nuevo.
- En el campo Nombre del feed, ingresa
Amazon API Gateway - CloudWatch via Firehose
. - Selecciona Amazon Data Firehose como el Tipo de fuente.
- Selecciona Amazon API Gateway como el Tipo de registro.
- Haz clic en Siguiente.
- Especifica valores para los siguientes parámetros de entrada:
- Delimitador de división:
n
opcional - Espacio de nombres del activo:
aws.api_gateway
- Etiquetas de transferencia: Por ejemplo,
source=apigw_access
,aws_region=<your-region>
- Delimitador de división:
- Haz clic en Siguiente.
- Revisa la configuración del feed y haz clic en Enviar.
- En los Detalles del feed, haz clic en Generar clave secreta y copia la Clave secreta.
- Copia la URL del extremo HTTPS del feed de Endpoint Information.
- Crea una clave de API de Google Cloud en APIs y servicios > Credenciales > Crear credenciales > Clave de API y restrínsela a la API de Google SecOps.
- Copia y guarda la clave de API en una ubicación segura.
Configura Amazon Kinesis Data Firehose (directamente en Google SecOps)
- En la consola de AWS, ve a Kinesis > Data Firehose > Create delivery stream.
- Proporciona los siguientes detalles de configuración:
- Fuente: Selecciona Carga directa o fuentes externas.
- Destino: Elige Extremo HTTP.
- URL del extremo HTTP: Ingresa
ENDPOINT_URL?key=API_KEY
(usa la URL del extremo HTTPS del feed y la clave de API del paso anterior). - Método HTTP: Selecciona POST.
- Clave de acceso: Pega la clave secreta generada en el feed.
- Sugerencias de almacenamiento en búfer: Establece Tamaño del búfer = 1 MiB y Intervalo del búfer = 60 segundos.
- Compresión: Selecciona Inhabilitada.
- Copia de seguridad de S3: Selecciona Inhabilitada.
- Deja la configuración de reintentos y registros con sus valores predeterminados.
- Haz clic en Crear flujo de entrega. (Por ejemplo,
cwlogs-to-secops
).
Configura los permisos de IAM y suscríbete al grupo de registros
- En la consola de AWS, ve a IAM > Políticas > Crear política > JSON.
- En el editor de JSON, ingresa la siguiente política:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch" ], "Resource": "arn:aws:firehose:<region>:<account-id>:deliverystream/cwlogs-to-secops" } ] }
- Reemplaza
<region>
y<account-id>
por tu región de AWS y tu ID de cuenta.
Asigna el nombre
CWLtoFirehoseWrite
a la política y haz clic en Crear política.Ve a IAM > Roles > Crear rol.
Selecciona Política de confianza personalizada y, luego, ingresa lo siguiente:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logs.<your-region>.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Adjunta la política
CWLtoFirehoseWrite
al rol.Asigna el nombre
CWLtoFirehoseRole
al rol y haz clic en Crear rol.Ve a CloudWatch > Registros > Grupos de registros.
Selecciona el grupo de registros de API Gateway que creaste antes.
Abre la pestaña Filtros de suscripción y haz clic en Crear.
Elige Create Amazon Kinesis Data Firehose subscription filter.
Configura lo siguiente:
- Destino: Flujo de entrega
cwlogs-to-secops
. - Otorga permiso: Rol
CWLtoFirehoseRole
. - Nombre del filtro: Ingresa
all-events
. - Patrón de filtro: Déjalo vacío para enviar todos los eventos.
- Destino: Flujo de entrega
Haz clic en Iniciar transmisión.
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.