Skip to content

$maskedAccess() - Campos enmascarados ​

Esta palabra clave se usa para mostrar, dentro de la instancia actual, valores que están almacenados en una definición separada y con acceso controlado, sin duplicar nunca esos valores en la definición actual. A diferencia de $restricted(), que oculta un campo de la instancia actual a los usuarios que no pertenecen a un grupo determinado, $maskedAccess() mantiene los datos sensibles en una definición propia — con sus propios permisos que rigen el acceso directo a ella — y los trae, enmascarados, solo allí donde se necesitan.

$maskedAccess() se aplica a un campo de tipo grupo. Los campos dentro de ese grupo usan $maskedInfo() para elegir qué campos de la definición protegida se muestran.

Instalación ​

cob-cli customize masked-access

Uso: ​ ​

$maskedAccess(definition_name,reference_field)

Opciones:

  • definition_name: el nombre de la definición protegida que contiene los campos sensibles
  • reference_field: el nombre del campo de referencia en la definición protegida que apunta a la definición actual. RecordM lo utiliza para encontrar qué instancia de la definición protegida corresponde a la instancia que se está mostrando
ParámetroDescripción
definition_nameLa definición protegida donde se almacenan los valores sensibles. Sus propias palabras clave de campo ($restricted(), $editForGroup(), …) y permisos siguen aplicándose.
reference_fieldEl campo de referencia declarado en la definición protegida, que apunta a la definición actual. La instancia protegida es aquella cuyo reference_field coincide con la instancia actual.

WARNING

$maskedAccess() debe usarse en un campo que también esté declarado como $group. La palabra clave no tiene efecto en un campo normal. Normalmente se combina con $expanded para que el bloque enmascarado aparezca abierto cuando se muestra la instancia.

$maskedInfo() - Mostrar un campo enmascarado ​ ​

Cada campo dentro de un grupo $maskedAccess() declara qué campo de la definición protegida muestra.

$maskedInfo(remote_field)

Opciones:

  • remote_field: el nombre del campo de la definición protegida cuyo valor se muestra en la instancia actual

WARNING

$maskedInfo() solo es válido en un campo hijo directo de un grupo configurado con $maskedAccess(). No se resuelve en campos situados fuera de ese grupo, ni en campos anidados un nivel más abajo dentro de un subgrupo suyo — los valores enmascarados deben listarse inmediatamente debajo del grupo $maskedAccess().

Cómo se muestran los valores ​ ​

Un grupo $maskedAccess() se presenta como un bloque destacado, separado visualmente del resto de la instancia, con un botón para revelar (el ojo tachado) que alterna los valores entre su forma enmascarada y su valor real.

INFO

Los valores dentro del grupo siempre aparecen enmascarados cuando se muestra la instancia — cada uno se muestra como ************ — y solo se revelan cuando el usuario hace clic deliberadamente en el botón del ojo. Abrir, imprimir o compartir una instancia en pantalla nunca expone por sí solo los datos sensibles; siempre hace falta una acción explícita del usuario. Los valores nunca se almacenan en la definición actual: se leen de la definición protegida cada vez que se muestra la instancia.

$maskedAccess() es un mecanismo de enmascaramiento y auditoría, no una barrera de acceso en la instancia que los muestra. Cualquier usuario con privilegios para ver la instancia que contiene la información sensible podrá revelarla: el ojo tachado existe para que los valores no queden expuestos por accidente cuando la instancia se abre, se imprime o se comparte en pantalla, y para que cada revelación quede registrada. Restringir quién puede llegar a los valores se hace de la forma habitual, mediante los permisos de la definición protegida, que rigen el acceso directo a ella, y mediante las palabras clave de campo declaradas en el grupo, no mediante $maskedAccess() en sí.

Crear y actualizar la instancia protegida ​ ​

El grupo $maskedAccess() también puede llevar al usuario directamente a la definición protegida, de modo que los valores sensibles puedan mantenerse sin tener que buscar la instancia correcta en ella. El enlace que se muestra depende de si existe una instancia protegida y de los permisos del usuario en la definición protegida:

SituaciónLo que ve el usuario
Existe una instancia protegida y el usuario tiene privilegios de actualización sobre ellaUn enlace Click here to update junto al título del grupo, que abre esa instancia en la definición protegida.
Todavía no existe ninguna instancia protegida y el usuario puede crear instancias en la definición protegidaUn enlace Click here to create new dentro del grupo, que permite al usuario crear una instancia en la definición protegida.
El usuario no tiene ninguno de los dos privilegiosNingún enlace. Los valores enmascarados (si los hay) se muestran como de costumbre.

INFO

Estos enlaces no conceden ningún acceso adicional: solo aparecen cuando el usuario ya tiene el privilegio correspondiente en la definición protegida, y la creación o actualización se realiza en la propia definición protegida, bajo sus propios permisos y palabras clave de campo.

Ejemplos ​ ​

1. Credenciales de dispositivos fuera del inventario de equipos ​ ​

La definición Devices es el inventario de equipos de la operación: todo el equipo de soporte la consulta para encontrar el fabricante, el modelo y la dirección de gestión de un dispositivo. Las credenciales de acceso de esos dispositivos se necesitan en el mismo lugar — un operador que está resolviendo una incidencia en un dispositivo no debería tener que buscarlas en otro sitio —, pero no deberían estar a la vista en el inventario, deberían existir en un único lugar en vez de copiarse en cada registro de dispositivo, y cada vez que alguien las consulte debería quedar constancia.

Por eso, las credenciales se almacenan en su propia definición, Device Credentials, que tiene un campo de referencia Device que apunta a Devices:

Device              $ref(Devices)
Admin Password
Enable Password
SNMP Community

Devices las muestra entonces a través de un grupo enmascarado:

Name                $instanceLabel
Management IP
Credentials         $group $expanded $maskedAccess(Device Credentials,Device)
  Admin Password        $maskedInfo(Admin Password)
  Enable Password       $maskedInfo(Enable Password)
  SNMP Community        $maskedInfo(SNMP Community)

En este ejemplo:

  • Credentials es el grupo que lleva el acceso enmascarado. $expanded lo mantiene abierto cuando se muestra la instancia.
  • Device Credentials es la definición que contiene las contraseñas. Es el único lugar donde están, y la única cuyos permisos hay que revisar para el acceso directo.
  • Device es el campo de referencia dentro de Device Credentials que apunta a Devices. Las credenciales que se muestran son aquellas cuyo Device es el dispositivo que se está mostrando.
  • Cada campo hijo muestra un campo de esa instancia protegida.

WARNING

Esto mantiene las credenciales enmascaradas y sus revelaciones trazables, pero no impide que un usuario de soporte las revele: quien pueda abrir la instancia de Devices puede hacer clic en el ojo. Si las credenciales no deben ser accesibles en absoluto para usuarios ajenos al equipo de redes, restrinja el propio grupo Credentials para que el bloque solo se muestre a ese grupo.

Definición Devices con un grupo $maskedAccess

Definición Device Credentials que referencia a Devices

La instancia muestra entonces un bloque Credentials con los tres valores enmascarados, listos para revelarse cuando el usuario haga clic en el icono del ojo:

Instancia de dispositivo mostrando los campos enmascarados

Cada vez que un usuario revela los valores, RecordM registra el acceso como una instancia de la definición Masked Access Audit:

Instancia de Masked Access Audit que registra una revelación

El registro contiene:

  • Access Date: cuándo se revelaron los valores.
  • User: quién los reveló.
  • Source Instance: la instancia en la que se revelaron los valores, en este caso la instancia core-sw-lis-01 de Devices.
  • Referred Instance: la instancia protegida de la que se leyeron los valores, en este caso la instancia de Device Credentials de ese dispositivo.
  • Information Accessed: los nombres de los campos que se revelaron (Admin Password, Enable Password, SNMP Community).

INFO

El registro de auditoría indica qué campos se revelaron, nunca sus valores, por lo que los datos sensibles no se copian en el rastro de auditoría.