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.
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.
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.
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 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.
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.
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 (US1).
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.
Ve a la sección Roles en Parámetros de organización de Datadog.
Haz clic en New Role (Nuevo rol) para crear los roles ACME Admin y ACME User.
Asigne acceso estándar y permisos básicos, como Logs Read Index Data y Logs Live Tail.
Para obtener más información sobre la creación de roles, consulta Control de acceso.
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.
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:
Crear una restricción de consultas team:acme.
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.
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.
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.