Orquestador Rocketbot – R.O.C. Infraestructura

Infraestructura de Rocketbot Orchestrator Center

Base

  • La infraestructura está diseñada para ser escalable y resiliente, aprovechando las distintas Availability Zones que ofrece AWS.
  • Monitoreo constante de la utilización de recursos para poder escalar la infraestructura arriba o abajo según sea necesario.
  • Amazon CloudWatch para monitorear la salud y el rendimiento de las instancias EC2, ELB y RDS.
  • S3 para almacenar los robots encriptados.
  • Conexión HTTPS / TLS1.2
  • JWT en cabezeras.

Load Balancer – WAF

  • Tipo: Elastic Load Balancer (ELB)
  • Configuración adicional: Web Application Firewall (WAF) para protección contra ataques comunes como SQL Injection, Cross-Site Scripting, etc.

Instancias EC2

Estas instancias actuarán como los servidores de aplicaciones principales. Utilizar diferentes Availability Zones aumenta la resiliencia del sistema

  • Tipo: t3.small
  • CPU: 2 vCPUs
  • RAM:2GB
  • Cantidad: 2 instancias

Base de Datos RDS

La base de datos RDS con configuración Multi-AZ asegura que la información esté siempre disponible, incluso si una zona de disponibilidad sufre un fallo.

  • Motor: MySQL
  • Clase de Instancia: db.m6g.large
  • CPU: 2 vCPUs
  • RAM:8GB
  • Configuración: Multi-AZ para alta disponibilidad

Nomenclatura

JWT: JSON Web Token es un estándar abierto (RFC 7519) que define una forma compacta y autónoma para transmitir de forma segura información entre las partes como un objeto JSON.
Más información: https://auth0.com/docs/jwt

TLS 1.2: Transport Layer Security (TLS; en español seguridad de la capa de transporte) y su antecesor Secure Sockets Layer (SSL; en español capa de puertos seguros) son protocolos criptográficos, que proporcionan comunicaciones seguras por una red, comúnmente Internet.
Más información: https://es.wikipedia.org/wiki/Transport_Layer_Security

WAF: AWS WAF lo ayuda a protegerse de los exploits y bots web comunes que podrían afectar la disponibilidad, poner en riesgo la seguridad o consumir demasiados recursos.
Más información: https://aws.amazon.com/es/waf/

RDS: Amazon Relational Database Service (Amazon RDS) es una colección de servicios administrados que facilita las tareas de configuración, operación y escalado de una base de datos en la nube. Elija entre siete motores populares, Amazon Aurora con compatibilidad con MySQLAmazon Aurora con compatibilidad con PostgreSQLMySQLMariaDBPostgreSQLOracle y SQL Server, e implemente en las instalaciones con Amazon RDS en AWS Outposts.
Más información: https://aws.amazon.com/es/rds/

EC2: Amazon Elastic Compute Cloud (Amazon EC2) ofrece la plataforma de computación más amplia y completa.
Más información: https://aws.amazon.com/es/rds/




Orquestador Rocketbot – Acceso y Autentificación

El Orquestador de Rocketbot o R.O.C. cuenta con acceso basado en roles RBAC y doble autentificaión o 2FA.

Acceso basado en Roles – RBAC

El acceso a las partes y componentes del Orquestador (R.O.C.) están controladas por RBAC (Role-Based Access Control) la cual permite dependiendo el ROL del usuario realizar una acción como ejecutar un robot o ver el log.

Cuando Rocketbot crea una cuenta para EMPRESA se genera un usuario administrador para esa empresa. Este administrador tiene la tarea de designar los roles necesarios ademas del rol “Administrador” existente.

Crear un ROL

Para crear un rol debe:

  1. Hacer click en el menú Users&Roles -> Roles.
  2. Click en el boton Add Role
  3. Asignar un nombre y habilitar la acciones posibles
    Roles

Asignar un ROL

Para asignar un ROL se debe crear o editar un Usuario y seleccionar el rol para ese usuario.

Ver imagen

Doble Autentificación 2FA

El Orquestador de Rocketbot cuenta con Doble autentificación o two-factor 2FA.
Esto exigirá que para el inicio de sesión debera tener un token a través de una app de autentificación.

Aplicaciones móbiles compatibles.

Habilitar 2FA

Para habilitar autentificación por 2 pasos o 2FA debe ingresar a su perfil y habilitar 2FA, aparecerá un QR en su vista de perfil y deberá escanearlo con su aplicación de Autentificación.

Seguridad

Todas las conexiones se encuentran protegidas por protocolo https TLS 1.2 y se envía información protegida con JWT.

Las contraseñas se guardan encriptadas en base de datos (Mysql/SqlServer/Postgres).
El método usado es pasar las contraseñas por Hash Argon2 y bcrypt.

JWT asegura la sesión y RBAC el acceso y permisos CRUD

Nomenclatura

JWT: JSON Web Token es un estándar abierto (RFC 7519) que define una forma compacta y autónoma para transmitir de forma segura información entre las partes como un objeto JSON.
Más información: https://auth0.com/docs/jwt

bcrypt: es un algoritmo diseñado específicamente para hash de contraseñas. MD5 y SHA1 son algoritmos de hash de propósito general. Por diseño, además, bcrypt permite agregar un salt al proceso de generación del hash, lo que, de entrada, lo hace inmune a ataques de diccionario.
Más información: https://en.wikipedia.org/wiki/Bcrypt

Argon2i and Argon2id variants).: Argon2 es una función de derivación clave que se seleccionó como ganadora del concurso de hash de contraseñas en julio de 2015 siendo una de las más fuertes hasta el dia de hoy.
Más información: https://en.wikipedia.org/wiki/Argon2

TLS 1.2: Transport Layer Security (TLS; en español seguridad de la capa de transporte) y su antecesor Secure Sockets Layer (SSL; en español capa de puertos seguros) son protocolos criptográficos, que proporcionan comunicaciones seguras por una red, comúnmente Internet.
Más información: https://es.wikipedia.org/wiki/Transport_Layer_Security




Orquestador Rocketbot – Conexión

El Orquestador permite conexión con los desarrolladores y con el Runner Rocketbot Studio. Para ello necesitará una cuenta de orquestador con los accesos necesarios para modificar el robot en caso de subir una actualizacion. Tanto el desarrollador como Runner de Rocketbot Studio necesitarán una cuenta habilitada. Para mas información puede revisar el documento Orquestador Rocketbot – Acceso y Autentificación

Conexión Rocketbot Studio Develop a Orquestador.

Para conectar RocketbotStudio Develop se debe utilizar el addons Ochestrator disponible dentro de Rocketbot Studio.
En la sección de addons a la derecha de Rocketbot Studio encontrará el addon.

Al hacer click sobre se abrira la pestaña de configuración y opción de subir el robot.

Complete los datos de Server URL, por ejemplo https://orchestrator.myrb.io.

Recibirá el endpoint / URL correspondiente en su correo al momento de crear su cuenta de Usuario

Ingrese los datos de usuario en la cual tiene 2 opciones:

  1. Ingresa Usuario y Contraseña.
  2. Ingresa API Key.

Ingreso desde Studio por API Key.

Para ingresar por Api Key debe obtener su api key desde el orquestador.

  1. Para ello diríjase a la seccion de usuarios del orquestador.
  2. Haga click en el botón [ API KEY ].
  3. Copie el API Key y péguelo en el addon en la seccion Apikey.
  4. Oprima el botón [ Test ] y podrá probar si la conexión es correcta.
  5. Oprima el botón [ Save ] para guardar la configuración

Actualizar el robot en el Orquestador desde Addons.

Si la conexion es correcta el addons le mostrara los proyectos habilitados , al seleccionar un proyecto podrá ver los procesos disponibles.
Para subir un robot siga los siguientes pasos:

  1. Seleccionar un proyecto.
  2. Seleccionar un proceso.
  3. Oprimir el botón [ Export and Upload ]

Con estos pasos el robot quedará actualizado en el Orquestador.

Recuerde que necesitará los permisos adecuados para modificar el robot en el orquestador.

Conectar Rocketbot Runner con Orquestador.

Para conectar Rocketbot Runner con el Orquestador necesita tener:

  1. Configurar un instancia/máquina/VM con Rocketbot Studio y una licencia de producción
    Instalar en Windows | Instalar en Windows Video
  2. Descargar cliente de Orquestador N.O.C.
  3. Configurar el archivo noc.ini N.O.C.
  4. Iniciar N.O.C. con noc.exe

Instalar cliente de Orquestador N.O.C.

  1. Descargar cliente desde el orquestador: Haga click en el boton del menu superior del orquestod “ROC Client” para descargar el ZIP con el cliente.
  2. Descomprima noc.zip en una carpeta donde tenga permisos de escritura, no se recomienda que sea en la carpeta personal o desktop. Recomendacion : C:\\rocketbot\\noc

Configurar y conexión cliente de Orquestador N.O.C.

  1. Configurar archivo noc.ini con:
    a. Apikey: Credenciales de usuario con un ROL con permisos limitados

    b. Key: Ingrese al proceso dentro del proyecto, una vez adicionado una instancia le mostrará una Key

    c. Server: Url de orquestador, ej: https://roc.myrb.io/s4 (sin / final) d. Ruta de instalación de Rocketbot, incluyendo ejecutable. por ejemplo c:\\rocketbot

    d. Path: Copie la direccion de la carpeta donde se encuentra el archivo rocketbot.exe

  2. Complete los datos en el archivo noc.ini
  3. Ejecute noc.exe y el cliente de orquestador mostrara que la instancia está conectada.

Recuerde que necesitará los permisos adecuados para modificar el robot en el orquestador.




Orquestador Rocketbot – Logs

Rocketbot almacena todos los eventos que va ejecutando el runner para poder ser auditados.
Uno de los puntos más importantes es que Rocketbot no ejecuta los eventos sin guardar en el log el dato de entrada y almacena todos los errores determinando en cual componente falló.
Podrá conectar a través de un set de API’s con aplicaciones externas para extraer datos de logs y generar dashboards personalizados.

Tipos de Logs

El Orquestador de Rocketbot cuenta con 4 tipos de logs:

  1. Logs de Robot: Acciones que realiza el robot en la automatización.
  2. Logs de Proceso: Actividad de un proceso, inicio y fin.
  3. Logs de Usuario: Actividades que realiza el Usuario dentro del Orquestador.
  4. Logs de Instancia: Envia información de recursos consumidos por la instancia y el robot.

Logs de Robots.

Los robots conectados a través del cliente de orquestador NOC envian logs cada 10 segundos hacia el orquestador con los datos de las acciones realizadas. Para mas información de como conectar robots al orquestador.

Los datos volcados en el log son:

  • Fecha y Hora
  • Robot
  • Tipo: Info, Error, Warning, Personal
  • Linea
  • Comando
  • ID
  • Parametros del comando
Ejemplo de Log de un robot

Ver Logs de Robots desde Orquestador.

Para ver los logs de robot dentro del orquestador debe

  1. Ingresar a Proyecto.
  2. Seleccionar Proceso.
  3. Click Menú de instancia
  4. Click en

Menu instance
Menú en instancia

Menu desplegado
Menú desplegado


Logs de Procesos

Cada proceso creado en el orquestador genera una entrada de log al ejecutarse.
Los datos de logs de proceso son:

  • Proceso: Nombre del proceso.
  • Instancia: Nombre de la instancia.
  • Robot: Nombre del robot.
  • Inicio: Fecha de inicio formato YYYY-MM-DD HH-mm-ss
  • Fin: Fecha de fin formato YYYY-MM-DD HH-mm-ss
  • Duración: Desde el inicio al fin formato HH-mm-ss

Ver Logs de Procesos

Para revisar los logs de ejecución de proceso debe ingresar a la sección Process Execution en el menú lateral.

Podrá realizar un filtro para buscar por proceso, instancia y fecha

Filtros
Resultado

Logs de Usuario

Cada accion que realiza un usuario dentro del orquestador queda registrado.
Los datos que se almacenan son:

  • Evento: Acción que se realizó (Login, PROCESS VIEW, etc)
  • Mensaje: Mensaje explicativo por ej: “PROCESS VIEW [Project NAME: test]”
  • Usuario: Nombre de usuario que generó el evento.
  • IP: Direccion de ip pública desde donde se generó el evento.
  • Fecha: Fecha de evento con formato YYYY-MM-DD HH-mm-ss.

Ver Logs de Usuarios

Para revisar los logs de usuarios debe ingresar a la sección Logs en el menú lateral. Logs
Podrá realizar un filtro para buscar por usuario, evento y fecha.

Vista de logs de usuarios
Logs de usuarios

Logs de Instancia

Cada 10 segundos el cliente de orquestador NOC envia estado de recursos de la instancia.
Puede revisar este link para: ¿Como conectar una instancia?
Los datos transmitidos en este PING son:

  • Sistema Operativo: Tipo de sistema (Linux/Mac/Windows).
  • Nombre de CPU: Tipo de cpu y nommbre.
  • % CPU: Porcentaje de uso de cpu.
  • % RAM: Total y uso de memoria RAM.
  • % Disco: Total y uso de disco rígido.

Ver Logs de Instancia

Para ver los logs de robot dentro del orquestador debe

  1. Ingresar a Proyecto.
  2. Seleccionar Proceso.

Vista de instancia