Cómo configurar el control de acceso basado en roles (RBAC) para logs
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:
- Requisitos previos para administradores: Detalla los requisitos previos necesarios.
- Configuración de roles para el equipo ACME**: Instrucciones para crear roles y asignar miembros al equipo.
- Limitación del acceso a logs: Cómo emplear consultas de restricción para controlar el acceso a logs.
- 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).
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
- 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.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", [...] }
[...]
- Asigna los permisos necesarios utilizando la API de concesión de permisos.
Asignación de roles a usuarios
- En la sección de usuarios de Datadog, selecciona un usuario y asígnale el rol
ACME Admin
o ACME User
.
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:
- 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.
Definición de una consulta de restricción
- Ve a la página Acceso a datos.
- Crea una consulta de restricción
team:acme
y aplícala a los roles 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
Más enlaces, artículos y documentación útiles: