Servidor Couchbase

Proteja sus datos NoSQL con el control de acceso basado en roles de Couchbase

En un mundo en el que las fugas de datos son cada vez más frecuentes, la necesidad de reforzar las bases de datos y las aplicaciones web es cada vez más importante. Yo, como muchos otros desarrolladores, vengo de trabajar con bases de datos relacionales como MySQL y Oracle, en las que se podían establecer permisos de control de acceso a las bases de datos y a las tablas que contienen. Ahora, con Couchbase 5.0, este mismo control de grano fino puede aplicarse a clústeres, cubos y mucho más.

Vamos a ver algunos ejemplos de cómo el control de acceso basado en roles (RBAC) de Couchbase Server se puede utilizar para bloquear la base de datos y protegerla mejor de los usuarios maliciosos que intentan explotarla.

Seamos claros desde el principio, tener cuentas con control de acceso en tu base de datos no va a ser una solución definitiva cuando se trata de proteger tus datos. Todavía debes seguir las mejores prácticas cuando se trata de diseñar tu aplicación web, pero tener el control de acceso a nivel de base de datos ayudará significativamente a tu causa.

Con el RBAC de Couchbase Server, puedes tener cualquier número de cuentas que puedan ser usadas para acceder a tu base de datos.

Couchbase Role-Based Access Control Accounts

Estas cuentas tendrán privilegios de lectura, escritura, ejecución, gestión y descarga.

Juguemos a crear una cuenta y averigüemos qué ocurre cuando tenemos y no tenemos los privilegios correctos para realizar determinadas tareas.

Creación de un nuevo usuario para Couchbase Server

Asumiendo que ya ha obtenido una copia de Couchbase Server 5.0 o más reciente, inicie sesión en el clúster o instancia utilizando su nombre de usuario y contraseña de administrador.

Couchbase Server Admin Login

El nombre de usuario y contraseña administrativos no van a desaparecer ahora que está disponible el control de acceso basado en roles. Piense en él como su usuario raíz para el clúster de base de datos.

Cuando haya iniciado sesión, busque la opción Seguridad y seleccione AÑADIR USUARIO.

Couchbase Create New RBAC User

Cuando añada un usuario, asegúrese de elegir una combinación segura de nombre de usuario y contraseña.

Hay bastantes roles entre los que elegir a la hora de crear un nuevo usuario. Por ahora, elija el rol Lector de datos papel del Funciones de datos sección. Hacemos esto porque queremos ver qué ocurre cuando intentamos utilizar una cuenta de usuario con muy pocos permisos. Para obtener la máxima seguridad, asegúrese de asignar al usuario sólo los Buckets que necesite, y no utilice la opción todos [*] opción.

Ahora vamos a intentar utilizar esta nueva cuenta con Couchbase.

Realización de tareas con Couchbase Shell

Al instalar Couchbase se le da el Couchbase Shell que es una herramienta CLI que puede hacer bastantes cosas contra la base de datos.

Si utilizas un Mac, ejecuta el siguiente comando:

El comando anterior lanzará el Couchase Shell (CBQ) utilizando el nombre de usuario y la contraseña especificados. Asegúrese de utilizar el nombre de usuario y la contraseña del usuario RBAC que había creado anteriormente.

Si utiliza Microsoft Windows, CBQ debería encontrarse en la siguiente dirección:

Del mismo modo, si utilizas Linux, busca CBQ aquí:

Si desea obtener más información sobre Couchbase Shell, consulte la página documentación oficial.

Con una conexión exitosa a Couchbase Server usando CBQ, intentemos ejecutar una consulta:

Por supuesto, estamos asumiendo que tienes un Bucket llamado por defecto y su usuario tiene acceso a él. Recuerde que sólo tenemos el Lector de datos en nuestro usuario, no uno de los Funciones de consulta. Esto significa que probablemente recibirá un error parecido al siguiente:

Esto es genial porque no queremos que nuestro usuario pueda ejecutar consultas. El Funciones de datos Los privilegios son sólo para operaciones clave-valor, no para N1QL.

Vuelve al panel de administración de Couchbase y modifica los roles de tu usuario. Esta vez dale al usuario el rol Seleccionar consulta papel de Funciones de consulta. Si intentas ejecutar la consulta de nuevo desde CBQ debería tener éxito.

Incluir controles de acceso basados en funciones en una aplicación

En algún momento vas a necesitar construir una aplicación web que se comunique con Couchbase usando uno de los muchos SDKs de Couchbase. A partir de Couchbase 5.0, un usuario RBAC debe estar disponible y el SDK debe autenticarse con él, de lo contrario habrá un error al intentar abrir un Bucket.

Si eres un desarrollador Node.js, podrías hacer algo como esto:

Obsérvese que el openBucket ya no toma una contraseña de Bucket. En su lugar, confiamos en la función autentifique y nuestros controles de acceso.

Cada uno de los SDK sigue un enfoque muy similar para la autenticación. Para más información, consulte la documentación de los SDK en la sección Portal para desarrolladores de Couchbase.

Conclusión

Ser capaz de definir privilegios basados en clusters, Buckets, e incluso servicios es una gran victoria cuando se trata de asegurar tu base de datos NoSQL. Al dar a los usuarios lo mínimo que necesitan para funcionar, estás ayudando a eliminar la posibilidad de una fuga de datos o alguna otra actividad maliciosa.

Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Autor

Publicado por Nic Raboy, Defensor del Desarrollador, Couchbase

Nic Raboy es un defensor de las tecnologías modernas de desarrollo web y móvil. Tiene experiencia en Java, JavaScript, Golang y una variedad de frameworks como Angular, NativeScript y Apache Cordova. Nic escribe sobre sus experiencias de desarrollo relacionadas con hacer el desarrollo web y móvil más fácil de entender.

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.