Cómo configurar el control de acceso basado en roles (RBAC) para logs

Información general

En muchas organizaciones, los logs pueden contener información confidencial que requiere depuración o acceso restringido para garantizar el cumplimiento y la privacidad. El control de acceso basado en roles (RBAC) permite gestionar los permisos de acceso de los usuarios de forma eficaz, permitiendo que sólo el personal autorizado acceda a logs y funciones específicos. Esta guía detalla cómo configurar RBAC para logs en Datadog, centrándose en la creación de roles personalizados y la asignación de los permisos adecuados.

Esta guía cubre los siguientes temas:

  1. Requisitos previos para administradores: Detalla los requisitos previos necesarios.
  2. Configuración de roles para el equipo ACME**: Instrucciones para crear roles y asignar miembros al equipo.
  3. Limitación del acceso a logs: Cómo emplear consultas de restricción para controlar el acceso a logs.
  4. Configuración de permisos en recursos de logs**: Pautas para configurar permisos en pipelines, índices y archivos.

Gestión de varios equipos

Consideremos una organización con varios equipos, como el equipo ACME, que gestiona logs de ACME de resolución de problemas y auditoría. Dentro del equipo ACME, hay dos categorías principales de usuarios:

  • Administrador ACME: Estos usuarios gestionan la recopilación, los pipelines y los filtros de exclusión de logs de ACME.
  • Usuario ACME: Estos usuarios acceden a logs de ACME y crean monitores o dashboards basados en estos logs.

Puedes personalizar esta configuración para adaptarla a tus necesidades organizativas, ya sea consolidando los permisos en un único rol o creando varios roles para un control de acceso más detallado. Los principios aquí expuestos pueden adaptarse a otros equipos de tu organización.

En Datadog, los permisos son aditivos. Los usuarios que pertenecen a varios equipos se benefician de permisos combinados en todos los roles asignados.

Rol de administrador Datadog

Como administrador de Datadog, puedes configurar un entorno seguro para que los miembros del equipo ACME gestionen sus logs sin afectar a logs de otros equipos. En esta guía se explican los pasos para configurar los roles y los permisos para restringir el acceso a los logs específicamente a los usuarios ACME. También puedes adaptar la configuración para que los administradores ACME actúen como administradores Datadog si es necesario.

Requisitos previos

Etiquetado de logs entrantes

En primer lugar, etiqueta los logs de ACME entrantes con una etiqueta (tag) team:acme, lo que ayuda a categorizar los logs a medida que pasan por Datadog. Por ejemplo, al recopilar logs de Docker, se aplica la etiqueta (tag) team:acme utilizando etiquetas (labels) de Docker como etiquetas (tags).

Para obtener información general sobre el etiquetado, consulta Empezando con etiquetas (tags).

Aplicar una etiqueta (tag) de equipo a tus logs

Inicio de sesión como administrador Datadog

Para realizar las acciones de esta guía, debes tener permisos de administrador Datadog. Asegúrate de que tu cuenta de usuario puede crear roles, asignar usuarios y gestionar pipelines, índices y archivos de logs. Para obtener más información sobre permisos, consulta Permisos de rol en Datadog.

Ve a la lista de usuarios para verificar que tienes todos estos permisos. Si no los tienes, solicítalos a un administrador Datadog.

Obtener una clave de API y una clave de aplicación

Si tienes previsto utilizar la API Datadog, necesitas una clave de API y una clave de aplicación de un usuario administrador. Puedes generar claves de API y de aplicación en tus parámetros de organización. Asegúrate de que la clave de aplicación está asociada a un usuario que dispone de los permisos necesarios. Para obtener más información, consulta Claves de API y de aplicación.

En esta guía, sustituye <DATADOG_API_KEY> y <DATADOG_APP_KEY> por tu clave de API y de aplicación Datadog, respectivamente. También se necesita un terminal con CURL.

Obtener identificadores de permiso

Nota: Esta sección sólo es necesaria si tienes intención de utilizar la API Datadog para la configuración del RBAC.

Si tienes previsto utilizar la API Datadog, utiliza la API de permisos para obtener todos los permisos existentes. Necesitarás el ID del permiso para realizar acciones como conceder específicos a roles. Nota: Los ID de permisos cambian en función del sitio Datadog seleccionado ().

curl -X GET "https://app.datadoghq.com/api/v2/permissions" -H "Content-Type: application/json" -H "DD-API-KEY: <DATADOG_API_KEY>" -H "DD-APPLICATION-KEY: <DATADOG_APP_KEY>"

Configuración de roles

Esta sección te guiará a través de la creación de dos roles, ACME Admin y ACME User, la concesión de permisos de log básicos y la asignación de usuarios a estos roles.

Creación de un rol

  1. Ve a la sección Roles en Parámetros de organización de Datadog.
  2. Haz clic en New Role (Nuevo rol) para crear los roles ACME Admin y ACME User.
  3. Asigne acceso estándar y permisos básicos, como Logs Read Index Data y Logs Live Tail.
Añadir un nuevo rol

Para obtener más información sobre la creación de roles, consulta Control de acceso.

  1. Crea los roles ACME Admin y ACME User utilizando la API de creación de roles. En el siguiente ejemplo, dcf7c550-99cb-11ea-93e6-376cebac897c es el ID del rol.
    curl -X POST "https://app.datadoghq.com/api/v2/roles" -H "Content-Type: application/json" -H "DD-API-KEY: <DATADOG_API_KEY>" -H "DD-APPLICATION-KEY: <DATADOG_APP_KEY>" -d '{"data": {"type": "roles","attributes": {"name": "ACME Admin"}}}'
    
    [...]
    "type": "roles",
    "id": "dcf7c550-99cb-11ea-93e6-376cebac897c",
    "attributes": { "name": "ACME Admin", [...] }
    [...]
    
  2. Asigna los permisos necesarios utilizando la API de concesión de permisos.

Asignación de roles a usuarios

  1. En la sección de usuarios de Datadog, selecciona un usuario y asígnale el rol ACME Admin o ACME User.
Asignación de roles a usuarios en la pantalla de modificación de usuarios
  1. Recupera los ID de usuario utilizando la API de listado de usuarios.
  2. Asigna usuarios a roles con la API de asignación de roles.

Restringir el acceso a logs

Concede a los miembros del equipo ACME acceso exclusivo a los logs de team:acme utilizando el permiso logs_read_data con consultas de restricción.

Como práctica recomendada, evita ampliar los permisos de los usuarios ACME para acceder a logs adicionales. Asimismo, evita aplicar la misma consulta de restricción team:acme a otros roles. En su lugar, asigna usuarios a varios roles en función de sus necesidades de acceso individuales.

En esta sección se explica cómo:

  1. Crear una restricción de consultas team:acme.
  2. Adjuntar esta restricción de consultas a los roles ACME.

Nota: Cada rol sólo puede tener asociada una consulta de restricción. Adjuntar una nueva consulta de restricción a un rol sustituye cualquier consulta existente para ese rol.

Definición de una consulta de restricción

  1. Ve a la página Acceso a datos.
  2. Crea una consulta de restricción team:acme y aplícala a los roles ACME.
Restringir el acceso a logs
  1. Crea una consulta de restricción utilizando la API de creación de consultas de restricción.
  2. Realiza un seguimiento del ID de la consulta de restricción.
  3. Adjunta la consulta de restricción a los roles ACME con la API de consultas de restricción.
  4. Habilita los permisos de logs_read_data en el rol utilizando la API de concesión de permisos. Consulta la sección Obtención de ID de permisos para obtener el ID correspondiente a este permiso.
  5. (Opcional) Confirma la configuración:
    • Obtén la lista de los roles adjuntos a la consulta utilizando la API de obtención de roles. En los resultados, sólo deberías ver ACME Admin y ACME User.
    • A la inversa, puedes obtener la restricción de consultas adjunta a cualquiera de los roles utilizando la API de obtención de restricciones de consultas. En los resultados, deberías ver la restricción de consultas team:acme.

Restringir el acceso a recursos de logs

Concede al rol ACME Admin permisos para gestionar loguear pipelines, índices y archivos de logs sin afectar a otros equipos.

Esto garantiza que:

  • Los miembros ACME Admin (y sólo los miembros ACME Admin) puedan interactuar con recursos de logs de ACME.
  • Ni los miembros ACME Admin, ni los miembros ACME User puedan interferir con recursos de otros equipos.
  • Ni los miembros ACME Admin, ni los miembros ACME User puedan interferir con configuraciones de “Administrador” de nivel superior, como qué logs se transfieren hacia sus recursos, las limitaciones presupuestarias o las reglas de restricción de acceso a logs.

Pipelines de logs

Crea un pipeline para logs team:acme. Concede el permiso logs_write_processors al rol ACME Admin.

Índices de logs

Crea índices para logs team:acme, para un control detallado del presupuesto. Concede el permiso logs_write_exclusion_filters al rol ACME Admin.

Archivos de logs

Crea uno o varios archivos para logs team:acme. Asigna el permiso logs_read_archives a los miembros de ACME Admin. Para la rehidratación, asigna el permiso logs_write_historical_view a ACME Admin.

Crea uno o varios archivos para logs team:acme. Asigna el permiso Leer archivos a los miembros de ACME Admin.

Referencias adicionales