Supervisión de los registros de auditoría en Amazon OpenSearch Service - OpenSearch Servicio Amazon

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Supervisión de los registros de auditoría en Amazon OpenSearch Service

Si tu dominio de Amazon OpenSearch Service utiliza un control de acceso detallado, puedes habilitar los registros de auditoría para tus datos. Los registros de auditoría son altamente personalizables y te permiten realizar un seguimiento de la actividad de los usuarios en tus OpenSearch clústeres, incluidas las autenticaciones correctas y fallidas, las solicitudes, los cambios de indexación y las consultas de búsqueda entrantes. OpenSearch La configuración predeterminada realiza un seguimiento de un conjunto común de acciones de usuario, pero recomendamos adaptar la configuración a las necesidades exactas.

Al igual que los registros de OpenSearch aplicaciones y los registros lentos, OpenSearch Service publica los registros de auditoría en CloudWatch Logs. Si está activado, se aplica el CloudWatch precio estándar.

nota

Para habilitar los registros de auditoría, su rol de usuario debe estar asignado al security_manager rol, lo que le da acceso a la API OpenSearch plugins/_security REST. Para obtener más información, consulte Modificar el usuario maestro.

Limitaciones

Los registros de auditoría presentan las siguientes limitaciones:

  • Los registros de auditoría no incluyen peticiones de búsqueda entre clústeres rechazadas por la política de acceso al dominio de destino.

  • El tamaño máximo de cada mensaje de registro de auditoría es de 10 000 caracteres. El mensaje del registro de auditoría se trunca si se supera este límite.

Habilitación de los registros de auditoría

La habilitación de registros de auditoría es un proceso de dos pasos. En primer lugar, debe configurar su dominio para publicar los registros de auditoría en CloudWatch Logs. A continuación, habilita los registros de auditoría en los OpenSearch paneles de control y los configura para que se adapten a sus necesidades.

importante

Si encuentra un error al seguir estos pasos, consulte No se pueden habilitar los registros de auditoría para obtener información para la resolución de problemas.

Paso 1: Habilitar los registros de auditoría y configurar una política de acceso

En estos pasos se describe cómo habilitar los registros de auditoría con la consola. También puede habilitarlos mediante la AWS CLI API de servicio o la API de OpenSearch servicio.

Para habilitar los registros de auditoría para un dominio de OpenSearch servicio (consola)
  1. Seleccione el dominio para abrir su configuración y, a continuación, vaya a la pestaña Registros.

  2. Seleccione Registros de auditoría y, luego Habilitar.

  3. Cree un grupo de CloudWatch registros o elija uno existente.

  4. Seleccione una política de acceso que contenga los permisos adecuados o cree una política mediante el JSON que proporciona la consola:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "es.amazonaws.com" }, "Action": [ "logs:PutLogEvents", "logs:CreateLogStream" ], "Resource": "cw_log_group_arn" } ] }

    Le recomendamos que agregue las claves de condición aws:SourceAccount y aws:SourceArn para protegerse contra la política problema del suplente confuso. La cuenta de origen es la propietaria del dominio y el ARN de origen es el ARN del dominio. Su dominio debe estar en el software de servicio R20211203 o posterior para agregar estas claves de condición.

    Por ejemplo, podría agregar el siguiente bloque de condición a la política:

    "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:es:region:account-id:domain/domain-name" } }
  5. Seleccione Habilitar.

Paso 2: Activa los registros de auditoría en los OpenSearch paneles

Después de habilitar los registros de auditoría en la consola de OpenSearch servicio, también debe habilitarlos en los OpenSearch paneles y configurarlos para que se adapten a sus necesidades.

  1. Abre los OpenSearch paneles de control y selecciona Seguridad en el menú de la izquierda.

  2. Seleccione Registros de auditoría.

  3. Seleccione Habilitar registro de auditoría.

La interfaz de usuario de Dashboards ofrece un control total de la configuración del registro de auditoría en Configuración general y en Configuración de la conformidad. Para obtener una descripción de todas las opciones de configuración, consulte Configuración del registro de auditoría.

Habilite el registro de auditorías mediante AWS CLI

El siguiente AWS CLI comando habilita los registros de auditoría en un dominio existente:

aws opensearch update-domain-config --domain-name my-domain --log-publishing-options "AUDIT_LOGS={CloudWatchLogsLogGroupArn=arn:aws:logs:us-east-1:123456789012:log-group:my-log-group,Enabled=true}"

También puede habilitar registros de auditoría al crear un dominio. Para obtener más información, consulte la Referencia de comandos de la AWS CLI.

Habilite el registro de auditoría con la API de configuración

La siguiente solicitud a la API de configuración habilita los registros de auditoría en un dominio existente:

POST https://es.us-east-1.amazonaws.com/2021-01-01/opensearch/domain/my-domain/config { "LogPublishingOptions": { "AUDIT_LOGS": { "CloudWatchLogsLogGroupArn":"arn:aws:logs:us-east-1:123456789012:log-group1:sample-domain", "Enabled":true } } }

Para obtener más información, consulta la referencia de la API OpenSearch de Amazon Service.

Categorías y capas de registro de auditoría

La comunicación del clúster se produce a través de dos capas independientes: la capa REST y la capa de transporte.

  • La capa REST cubre la comunicación con clientes HTTP como curl, Logstash, OpenSearch Dashboards, el cliente REST de alto nivel de Java y la biblioteca de solicitudes de Python, todas las solicitudes HTTP que llegan al clúster.

  • La capa de transporte se encarga de la comunicación entre nodos. Por ejemplo, después de que una petición de búsqueda llega al clúster (en la capa REST), el nodo de coordinación que se encarga de la solicitud envía la consulta a otros nodos, recibe sus respuestas, reúne los documentos necesarios y los reúne en la respuesta final. Las operaciones como la asignación de particiones y el reequilibrio también se producen en la capa de transporte.

Puede habilitar o deshabilitar los registros de auditoría para capas enteras, así como las categorías de auditoría individuales de una capa. La siguiente tabla contiene un resumen de las categorías de auditoría y las capas para las que están disponibles.

Categoría Descripción Disponible para REST Disponible para transporte

FAILED_LOGIN

Una solicitud contenía credenciales no válidas y la autenticación falló.

MISSING_PRIVILEGES

Un usuario no poseía los privilegios para realizar la solicitud.

GRANTED_PRIVILEGES

Un usuario poseía los privilegios para realizar la solicitud.

OPENSEARCH_SECURITY_INDEX_ATTEMPT

Una solicitud intentó modificar el índice .opendistro_security. No

AUTHENTICATED

Una solicitud contenía credenciales válidas y la autenticación se realizó correctamente.

INDEX_EVENT

Una solicitud realizó una operación administrativa con un índice, como crearlo, establecer un alias o realizar una combinación de fuerza. La lista completa de indices:admin/ acciones que incluye esta categoría está disponible en la documentación. OpenSearch No

Además de estas categorías estándar, el control de acceso detallado ofrece varias categorías adicionales diseñadas para cumplir con los requisitos de conformidad de los datos.

Categoría Descripción

COMPLIANCE_DOC_READ

Una solicitud realizó un evento de lectura en un documento en un índice.

COMPLIANCE_DOC_WRITE

Una solicitud realizó un evento de escritura en un documento en un índice.

COMPLIANCE_INTERNAL_CONFIG_READ

Una solicitud realizó un evento de lectura en el índice .opendistro_security.

COMPLIANCE_INTERNAL_CONFIG_WRITE

Una solicitud realizó un evento de escritura en el índice .opendistro_security.

Puede utilizar cualquier combinación de categorías y atributos de mensaje. Por ejemplo, si envía una solicitud REST para indexar un documento, podría ver las siguientes líneas en los registros de auditoría:

  • AUTHENTICATED en la capa REST (autenticación)

  • GRANTED_PRIVILEGE en la capa de transporte (autorización)

  • COMPLIANCE_DOC_WRITE (documento escrito en un índice)

Configuración de registros de auditoría

Los registros de auditoría cuentan con numerosas opciones de configuración.

Configuración general

La configuración general permite habilitar o deshabilitar categorías individuales o capas enteras. Recomendamos encarecidamente mantener GRANTED_PRIVILEGES y AUTHENTICATED como categorías excluidas. De lo contrario, estas categorías se registran en cada solicitud válida al clúster.

Nombre Configuración del backend Descripción

Capa REST

enable_rest

Habilite o deshabilite los eventos que se producen en la capa REST.

Categorías REST deshabilitadas

disabled_rest_categories

Especifique las categorías de auditoría que se omitirán en la capa REST. La modificación de estas categorías puede aumentar drásticamente el tamaño de los registros de auditoría.

Capa de transporte

enable_transport

Habilite o deshabilite eventos que ocurren en la capa de transporte.

Categorías de transporte deshabilitadas

disabled_transport_categories

Especifique las categorías de auditoría que deben omitirse en la capa de transporte. La modificación de estas categorías puede aumentar drásticamente el tamaño de los registros de auditoría.

La configuración de atributos permite personalizar la cantidad de detalles en cada línea de registro.

Nombre Configuración del backend Descripción

Solicitudes masivas

resolve_bulk_requests

Habilitar esta configuración genera un registro para cada documento de una solicitud masiva, lo que puede aumentar drásticamente el tamaño de los registros de auditoría.

Cuerpo de la solicitud

log_request_body

Incluya el cuerpo de la solicitud de las solicitudes.

Resolver índices

resolve_indices

Resolver alias a índices.

Utilice la configuración de ignorar para excluir un conjunto de usuarios o rutas de API:

Nombre Configuración del backend Descripción

Usuarios ignorados

ignore_users

Especifique los usuarios que desea excluir.

Solicitudes ignoradas

ignore_requests

Especifique los patrones de solicitud que desea excluir.

Configuración de la conformidad

La configuración de la conformidad permite ajustar el acceso a nivel del índice, del documento o del campo.

Nombre Configuración del backend Descripción

Registro de conformidad

enable_compliance

Para habilitar o deshabilitar el registro de conformidad.

Puede especificar la siguiente configuración para el registro de eventos de lectura y escritura.

Nombre Configuración del backend Descripción

Registro de configuración interno

internal_config

Habilite o deshabilite el registro de eventos en el índice .opendistro_security.

Puede especificar la siguiente configuración para el registro de eventos de lectura.

Nombre Configuración del backend Descripción

Metadatos de lectura

read_metadata_only

Incluya solo metadatos para eventos de lectura. No incluya ningún campo de documento.

Usuarios ignorados

read_ignore_users

No incluya ciertos usuarios para eventos de lectura.

Campos observados

read_watched_fields

Especifique los índices y campos que se van a observar en busca de eventos de lectura. Agregar campos vigilados genera un registro por cada acceso a los documentos, lo que puede aumentar drásticamente el tamaño de los registros de auditoría. Los campos observados admiten patrones de índice y patrones de campo:

{ "index-name-pattern": [ "field-name-pattern" ], "logs*": [ "message" ], "twitter": [ "id", "user*" ] }

Puede especificar la siguiente configuración para eventos de escritura.

Nombre Configuración del backend Descripción

Metadatos de escritura

write_metadata_only

Incluya solo metadatos para eventos de escritura. No incluya ningún campo de documento.

Diferencias de registro

write_log_diffs

Si write_metadata_only es falso, incluya solo las diferencias entre los eventos de escritura.

Usuarios ignorados

write_ignore_users

No incluya ciertos usuarios para eventos de escritura.

Índices de seguimiento

write_watched_indices

Especifique los índices o patrones de índice para observar los eventos de escritura. Agregar campos vigilados genera un registro por cada acceso a los documentos, lo que puede aumentar drásticamente el tamaño de los registros de auditoría.

Ejemplo de registro de auditoría

Esta sección incluye un ejemplo de configuración, una petición de búsqueda y el registro de auditoría resultante para todos los eventos de lectura y escritura de un índice.

Paso 1: configurar los registros de auditoría

Después de habilitar la publicación de los registros de auditoría en un grupo de CloudWatch registros, vaya a la página de registro de auditorías del OpenSearch panel de control y seleccione Habilitar el registro de auditoría.

  1. En Configuración general, seleccione Configurar y asegúrese de que la capa REST esté habilitada.

  2. En Configuración de la conformidad, seleccione Configurar.

  3. En Escritura, en Campos observados, agregue accounts para todos los eventos de escritura en este índice.

  4. En Lectura, en Campos observados, agregue los campos ssn y id- del índiceaccounts:

    { "accounts-": [ "ssn", "id-" ] }

Paso 2: realizar eventos de lectura y escritura

  1. Diríjase a OpenSearch los paneles, elija Herramientas de desarrollo e indexe un documento de muestra:

    PUT accounts/_doc/0 { "ssn": "123", "id-": "456" }
  2. Para probar un evento de lectura, envíe la siguiente solicitud:

    GET accounts/_search { "query": { "match_all": {} } }

Paso 3: observar los registros

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

  2. En el panel de navegación, seleccione Grupos de registro.

  3. Seleccione el grupo de registros que especificó al habilitar registros de auditoría. Dentro del grupo de registros, OpenSearch Service crea un flujo de registros para cada nodo de su dominio.

  4. En Flujos de registros, seleccione Buscar todos.

  5. Para los eventos de lectura y escritura, consulte los registros correspondientes. Puede existir una demora de 5 segundos antes de que aparezca el registro.

    Ejemplo de registro de auditoría de escritura

    { "audit_compliance_operation": "CREATE", "audit_cluster_name": "824471164578:audit-test", "audit_node_name": "be217225a0b77c2bd76147d3ed3ff83c", "audit_category": "COMPLIANCE_DOC_WRITE", "audit_request_origin": "REST", "audit_compliance_doc_version": 1, "audit_node_id": "3xNJhm4XS_yTzEgDWcGRjA", "@timestamp": "2020-08-23T05:28:02.285+00:00", "audit_format_version": 4, "audit_request_remote_address": "3.236.145.227", "audit_trace_doc_id": "lxnJGXQBqZSlDB91r_uZ", "audit_request_effective_user": "admin", "audit_trace_shard_id": 8, "audit_trace_indices": [ "accounts" ], "audit_trace_resolved_indices": [ "accounts" ] }

    Ejemplo de registro de auditoría de lectura

    { "audit_cluster_name": "824471164578:audit-docs", "audit_node_name": "806f6050cb45437e2401b07534a1452f", "audit_category": "COMPLIANCE_DOC_READ", "audit_request_origin": "REST", "audit_node_id": "saSevm9ASte0-pjAtYi2UA", "@timestamp": "2020-08-31T17:57:05.015+00:00", "audit_format_version": 4, "audit_request_remote_address": "54.240.197.228", "audit_trace_doc_id": "config:7.7.0", "audit_request_effective_user": "admin", "audit_trace_shard_id": 0, "audit_trace_indices": [ "accounts" ], "audit_trace_resolved_indices": [ "accounts" ] }

Para incluir el cuerpo de la solicitud, vuelva a la configuración de conformidad en los OpenSearch paneles y desactive Escribir metadatos. Para excluir eventos de un usuario específico, agregue el usuario a Usuarios ignorados.

Para obtener una descripción de cada campo de registro de auditoría, consulte la Referencia de campo del registro de auditoría. Para obtener información sobre la búsqueda y el análisis de los datos del registro de auditoría, consulte Análisis de los datos de registro con CloudWatch Logs Insights en la Guía del usuario de Amazon CloudWatch Logs.

Configuración de registros de auditoría mediante la API REST

Recomendamos usar OpenSearch paneles de control para configurar los registros de auditoría, pero también puede usar la API REST de control de acceso detallada. Esta sección contiene una solicitud de ejemplo. La documentación completa sobre la API REST está disponible en la documentación. OpenSearch

PUT _opendistro/_security/api/audit/config { "enabled": true, "audit": { "enable_rest": true, "disabled_rest_categories": [ "GRANTED_PRIVILEGES", "AUTHENTICATED" ], "enable_transport": true, "disabled_transport_categories": [ "GRANTED_PRIVILEGES", "AUTHENTICATED" ], "resolve_bulk_requests": true, "log_request_body": true, "resolve_indices": true, "exclude_sensitive_headers": true, "ignore_users": [ "kibanaserver" ], "ignore_requests": [ "SearchRequest", "indices:data/read/*", "/_cluster/health" ] }, "compliance": { "enabled": true, "internal_config": true, "external_config": false, "read_metadata_only": true, "read_watched_fields": { "read-index-1": [ "field-1", "field-2" ], "read-index-2": [ "field-3" ] }, "read_ignore_users": [ "read-ignore-1" ], "write_metadata_only": true, "write_log_diffs": false, "write_watched_indices": [ "write-index-1", "write-index-2", "log-*", "*" ], "write_ignore_users": [ "write-ignore-1" ] } }