Publicar registros de flujo en CloudWatch Logs - Amazon Virtual Private Cloud

Publicar registros de flujo en CloudWatch Logs

Los registros de flujo pueden publicar datos de registro de flujo directamente en Amazon CloudWatch. Se aplican costos por incorporación y archivo de datos para los registros a la venta cuando se publican registros de flujo en CloudWatch Logs. Para obtener más información, consulte los precios de Amazon CloudWatch.

Al publicar en CloudWatch Logs, los datos de registro de flujo se publican en un grupo de registros y cada interfaz de red tiene una secuencia de registro única en el grupo de registros. Los flujos de logs contienen registros de logs de flujo. Puede crear varios logs de flujo que publiquen datos en el mismo grupo de logs. Si la misma interfaz de red está presente en uno o varios logs de flujo en el mismo grupo de logs, tendrá un flujo de logs combinado. Si ha especificado que un log de flujo debe capturar el tráfico rechazado y otro log de flujo debe capturar el tráfico aceptado, el flujo de logs combinado capturará todo el tráfico.

En CloudWatch Logs, el campo timestamp (marca temporal) corresponde a la hora de inicio capturada en la entrada de registro de flujo. El campo ingestionTime indica la fecha y hora en que CloudWatch Logs recibió la entrada de registro de flujo. Esta marca de tiempo es posterior a la hora de finalización capturada en el registro de flujo.

Roles de IAM para publicar registros de flujo en CloudWatch Logs

El rol de IAM asociado con el registro de flujo debe tener permisos suficientes para publicar registros de flujo en el grupo de registros especificado en CloudWatch Logs. El rol de IAM debe pertenecer a la cuenta de AWS.

La política de IAM asociada al rol de IAM debe incluir al menos los siguientes permisos.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Effect": "Allow", "Resource": "*" } ] }

Asegúrese también de que el rol tiene una relación de confianza que permite al servicio de logs de flujo asumir ese rol.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "vpc-flow-logs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Puede actualizar una función existente o utilizar el procedimiento siguiente para crear una nueva función y utilizarla con los logs de flujo.

Crear un rol de registros de flujo

Para crear un rol de IAM para registros de flujo

  1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación, elija Roles, Create role.

  3. En Select type of trusted entity (Seleccionar tipo de entidad de confianza), elija AWS service (Servicio de AWS). En Use case (Caso de uso), elija EC2. Elija Next: Permissions.

  4. En la página Attach permissions policies (Asociar políticas de permisos), elija Next: Review (Siguiente: Revisar). Elija Next: Review.

  5. Ingrese un nombre para el rol y, opcionalmente, especifique una descripción. Elija Create role (Crear rol).

  6. Seleccione el nombre de su función. En Permissions (Permisos), elija Add inline policy (Añadir política insertada), JSON.

  7. Copie la primera política de Roles de IAM para publicar registros de flujo en CloudWatch Logs y péguela en la ventana. Elija Review policy (Revisar política).

  8. Escriba un nombre para la política y elija Create policy (Crear política).

  9. Seleccione el nombre de su función. En Trust relationships (Relaciones de confianza), seleccione Edit trust relationship (Editar relación de confianza). En el documento de la política existente, cambie el servicio de ec2.amazonaws.com a vpc-flow-logs.amazonaws.com. Elija Update Trust Policy.

  10. En la página Summary (Resumen), tome nota del ARN de la función. Necesita este ARN para crear su propio log de flujo.

Permisos para que los usuarios de IAM pasen un rol

Los usuarios también deben tener permisos para utilizar la acción iam:PassRole para el rol de IAM que está asociado con registro de flujo.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["iam:PassRole"], "Resource": "arn:aws:iam::account-id:role/flow-log-role-name" } ] }

Crear un registro de flujo que se publique en CloudWatch Logs

Puede crear registros de flujo para sus VPC, subredes o interfaces de red. Si realiza estos pasos como usuario de IAM, asegúrese de que tiene permisos para usar la acción iam:PassRole. Para obtener más información, consulte Permisos para que los usuarios de IAM pasen un rol.

Prerequisite

Cree el grupo de registros de destino. Abra la página de grupos de registro en la consola de CloudWatch y elija Create log group (Crear grupo de registro). Escriba un nombre para el grupo de registros y elija Create (Crear).

Para crear un log de flujo para una interfaz de red utilizando la consola

  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, elija Network Interfaces.

  3. Seleccione las casillas de verificación de una o más interfaces de red y elija Actions (Acciones), Create flow log (Crear registro de flujo).

  4. Para Filter (Filtro), especifique el tipo de tráfico que desea registrar. Elija All (Todos) para registrar el tráfico aceptado y rechazado, Reject (Rechazar) a fin de registrar sólo el tráfico rechazado o Accept (Aceptar) con el objetivo de registrar sólo el tráfico aceptado.

  5. En Maximum aggregation interval (Intervalo máximo de agregación), elija el período de tiempo máximo durante el que se va a capturar el flujo y se va a agregar a un registro de flujo.

  6. En Destination (Destino), elija Send to CloudWatch Logs (Enviar a CloudWatch Logs).

  7. Para Destination log group (Grupo de registros de destino), elija el nombre del grupo de registros de destino que ha creado.

  8. En IAM role (Rol de IAM), especifique el nombre del rol que tiene permisos para publicar registros en CloudWatch Logs.

  9. Para Log record format (Formato de registro de registro), seleccione el formato para el registro de flujo.

    • Para utilizar el formato predeterminado, elija AWS default format (Formato predeterminado de AWS).

    • Para utilizar un formato personalizado, elija Custom format (Formato personalizado) y, a continuación, seleccione campos de Log format (Formato de registro).

    • Para crear un registro de flujo personalizado que incluya los campos predeterminados, elija AWS default format (Formato predeterminado de AWS), copie los campos en Format preview (Vista previa de formato) y, a continuación, elija Custom format (Formato personalizado) y pegue los campos en el cuadro de texto.

  10. (Opcional) Elija Add new tag (Agregar etiqueta nueva) para aplicar etiquetas al registro de flujo.

  11. Elija Create flow log (Crear registro de flujo).

Para crear un log de flujo para una VPC o una subred utilizando la consola

  1. Abra la consola de Amazon VPC en https://console.aws.amazon.com/vpc/.

  2. En el panel de navegación, elija Your VPCs (Sus VPC) o Subnets (Subredes).

  3. Seleccione la casilla de verificación para una o más VPC o subredes y, a continuación, elija Actions (Acciones), Create flow log (Crear registro de flujo).

  4. Para Filter (Filtro), especifique el tipo de tráfico que desea registrar. Elija All (Todos) para registrar el tráfico aceptado y rechazado, Reject (Rechazar) a fin de registrar sólo el tráfico rechazado o Accept (Aceptar) con el objetivo de registrar sólo el tráfico aceptado.

  5. En Maximum aggregation interval (Intervalo máximo de agregación), elija el período de tiempo máximo durante el que se va a capturar el flujo y se va a agregar a un registro de flujo.

  6. En Destination (Destino), elija Send to CloudWatch Logs (Enviar a CloudWatch Logs).

  7. Para Destination log group (Grupo de registros de destino), elija el nombre del grupo de registros de destino que ha creado.

  8. En IAM role (Rol de IAM), especifique el nombre del rol que tiene permisos para publicar registros en CloudWatch Logs.

  9. Para Log record format (Formato de registro de registro), seleccione el formato para el registro de flujo.

    • Para utilizar el formato predeterminado, elija AWS default format (Formato predeterminado de AWS).

    • Para utilizar un formato personalizado, elija Custom format (Formato personalizado) y, a continuación, seleccione campos de Log format (Formato de registro).

    • Para crear un registro de flujo personalizado que incluya los campos predeterminados, elija AWS default format (Formato predeterminado de AWS), copie los campos en Format preview (Vista previa de formato) y, a continuación, elija Custom format (Formato personalizado) y pegue los campos en el cuadro de texto.

  10. (Opcional) Elija Add new tag (Agregar etiqueta nueva) para aplicar etiquetas al registro de flujo.

  11. Elija Create flow log (Crear registro de flujo).

Para crear un registro de flujo mediante la línea de comandos

Utilice uno de los siguientes comandos.

El siguiente ejemplo de la AWS CLI crea un log de flujo que captura todo el tráfico aceptado para la subred subnet-1a2b3c4d. Los registros de flujo se envían a un grupo de registro en CloudWatch Logs denominado my-flow-logs, en la cuenta 123456789101, mediante el rol de IAM publishFlowLogs.

aws ec2 create-flow-logs --resource-type Subnet --resource-ids subnet-1a2b3c4d --traffic-type ACCEPT --log-group-name my-flow-logs --deliver-logs-permission-arn arn:aws:iam::123456789101:role/publishFlowLogs

Procesar entradas de registro de flujo en CloudWatch Logs

Puede trabajar con las entradas de registro de flujo al igual que con los demás eventos de registro recopilados por CloudWatch Logs. Para obtener más información acerca de los datos de registro y filtros de métricas de monitoreo, consulte Búsqueda y filtrado de datos de registros en la Guía del usuario de Amazon CloudWatch.

Ejemplo: crear un filtro de métrica y una alarma de CloudWatch para un registro de flujo

En este ejemplo, tiene un log de flujo para eni-1a2b3c4d. Desea crear una alarma que le avise si ha habido 10 o más intentos rechazados para conectar con su instancia a través del puerto TCP 22 (SSH) en un periodo de 1 hora. En primer lugar, debe crear un filtro de métrica que coincida con el patrón de tráfico para el que va a crear la alarma. A continuación, puede crear una alarma para el filtro de métrica.

Para crear un filtro de métrico para el tráfico SSH rechazado y una alarma para el filtro

  1. Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.

  2. En el panel de navegación, elija Logs.

  3. Elija el valor Metric Filters (Filtros de métricas) asociado para el grupo de registros de su registro de flujo y, a continuación, elija Add Metric Filter (Añadir filtro de métricas).

  4. En Filter Pattern (Patrón de filtro), escriba lo siguiente.

    [version, account, eni, source, destination, srcport, destport="22", protocol="6", packets, bytes, windowstart, windowend, action="REJECT", flowlogstatus]
  5. En Select Log Data to Test (Seleccionar datos de registro para probar), seleccione el flujo de logs para su interfaz de red. (Opcional) Para ver las líneas de los datos de log que coinciden con el patrón de filtro, elija Test Pattern (Probar patrón). Cuando haya terminado, elija Assign Metric.

  6. Proporcione un espacio de nombres y un nombre de métrica, y asegúrese de que el valor de la métrica está establecido en 1. Cuando haya acabado, elija Create Filter.

  7. En el panel de navegación, elija Alarms, Create Alarm.

  8. En la sección Custom Metrics, elija el espacio de nombres para el filtro de métrica que ha creado.

    Puede que la nueva métrica tarde unos minutos en mostrarse en la consola.

  9. Seleccione el nombre de métrica que ha creado y elija Next (Siguiente).

  10. Escriba un nombre y la descripción de la alarma. En los campos is (es), elija >= y escriba 10. En el campo for (durante), deje el valor predeterminado 1 para los periodos consecutivos.

  11. En Period (Periodo), seleccione 1 Hour (1 hora). En Statistic (Estadística), elija Sum (Suma). La estadística Sum le asegura que está capturando el número total de puntos de datos para el periodo especificado.

  12. En la sección Actions (Acciones), puede elegir enviar una notificación a una lista existente. O puede crear una nueva lista y escribir las direcciones de correo electrónico que deben recibir una notificación cuando se dispare la alarma. Cuando haya terminado, elija Create Alarm.