GNU/Linux >> Tutoriales Linux >  >> Linux

Explicación del control de acceso basado en roles (RBAC) de Snowflake

El control de acceso es uno de los conceptos cruciales en todos los entornos de base de datos. En este artículo, aprenderemos sobre el control de acceso basado en roles (RBAC) de Snowflake y cómo crear roles personalizados y otorgar acceso a los roles desde Snowflake WebUI y mediante el cliente SnowSQL CLI.

1. ¿Qué es el control de acceso basado en roles (RBAC)?

Copo de nieve proporciona control de acceso basado en roles (RBAC) como un mecanismo para otorgar o denegar el acceso a varios objetos de la base de datos y acciones a los principales de seguridad (usuarios, servicios, etc.).

2. ¿Qué es Rol?

Los roles son las entidades que pueden otorgar y revocar derechos sobre objetos asegurables. A los usuarios se les asignan roles que les permiten realizar las actividades necesarias para las funciones comerciales de su organización.

Un usuario puede tener varios roles asignados. Los usuarios pueden intercambiar roles para realizar diferentes tareas con diferentes conjuntos de derechos.

Los roles también se pueden asignar a otros roles, lo que da como resultado una jerarquía de roles. Los usuarios con acceso adecuado pueden crear roles personalizados. Cualquier rol por encima de esa posición en la jerarquía hereda los privilegios asociados con ese rol.

En una cuenta de Snowflake, habrá algunos roles definidos por el sistema que están incorporados. Los roles definidos por el sistema no se pueden eliminar y los privilegios asignados a estos roles no se pueden revocar.

Hay cinco funciones definidas por el sistema y Snowflake determina qué "función" debe cumplir cada función del sistema y cuáles deben seguir los usuarios.

  • ADMINISTRADOR DE CUENTA: El puesto de ACCOUNTADMIN combina las responsabilidades de SYSADMIN y SECURITYADMIN en una sola.
  • ADMINISTRADOR DE ORGANIZACIÓN: A nivel organizacional, este es un rol que administra la operación.
  • ADMINISTRADOR DE SEGURIDAD: Este puesto es responsable de monitorear y administrar usuarios y roles.
  • ADMINISTRADOR DE USUARIO: Este puesto está a cargo de crear roles y usuarios.
  • ADMINISTRADOR DEL SISTEMA: En una cuenta, este rol tiene la capacidad de construir almacenes, bases de datos y otros objetos. Se supone que SYSADMIN acumula todos los roles personalizados.
  • PÚBLICO: Este es un rol que se asigna automáticamente a todos los usuarios y roles en su cuenta.

Además de estos roles definidos por el sistema, se pueden crear roles de acuerdo con los requisitos y asignar privilegios a ese rol. Eso se llama Roles personalizados .

3. Jerarquía de funciones y herencia de privilegios

El siguiente diagrama ilustra cómo se jerarquizan los roles definidos por el sistema y cómo los roles personalizados se pueden asociar con roles definidos por el sistema.

ORGADMIN es un rol de sistema distinto que supervisa las operaciones de toda la organización. La jerarquía de roles del sistema no contiene este rol.

Ejemplo de jerarquía de roles y herencia de privilegios:

En el ejemplo anterior,

  • El rol 2 hereda el privilegio 'Seleccionar'.
  • El rol 1 hereda los privilegios 'Seleccionar' y 'Crear'.
  • Al usuario 1 se le ha asignado el rol 1, lo que significa los tres privilegios.
  • Al usuario 2 se le ha asignado Rol-2, lo que significa privilegios de 'Seleccionar' y 'Crear'.

Nota: Se otorgarán privilegios a los roles y se otorgarán roles a los usuarios para determinar las acciones/operaciones que los usuarios pueden realizar en los objetos del sistema.

4. Cómo crear roles personalizados

Aquí vamos a crear los roles personalizados que discutimos anteriormente. Podemos crear reglas desde WebUI de Snowflake o usando CLI de SnowSQL cliente. Primero, veremos la forma gráfica.

4.1. Crear roles desde Snowflake WebUI

Puede ver los roles definidos por el sistema en la interfaz de usuario de Snowflake. Vaya a Snowflake-UI 🡪 Cuenta 🡪 Roles .

Cree un nuevo Rol llamado 'dev_ostechnix' . Para hacerlo, ve a Snowflake-UI 🡪 Cuenta 🡪 Roles 🡪 Crear .

Complete el nombre del rol, seleccione el rol principal y comente sobre este rol.

El nuevo rol 'dev_ostechnix' se creará una vez que presione el botón 'Finalizar'.

Hemos creado este rol personalizado con el rol definido por el sistema 'ACCOUNTADMIN' . Actualmente, a ningún usuario se le ha otorgado este rol. Como el rol principal es SYSADMIN, el rol 'dev_ostechnix' se otorga a 'SYSADMIN' .

4.2. Cree roles desde la línea de comandos usando SnowSQL

Conecte Snowflake con SnowSQL usando el siguiente comando:

# snowsql -a uz64318.southeast-asia.azure -u OSTECHNIX

Introduzca la contraseña de su cuenta:

Password:
* SnowSQL * v1.2.21
Type SQL statements or !help
OSTECHNIX#[email protected](no database).(no schema)>

ACCOUNT ADMIN es el rol de superprivilegio, hemos iniciado sesión con este rol. Ahora vamos a crear un rol personalizado por el rol ADMINISTRADOR DE CUENTA.

Puede verificar el rol actual usando el siguiente comando:

OSTECHNIX#[email protected](no database).(no schema)>select current_role();
+----------------+
| CURRENT_ROLE() |
|----------------|
| ACCOUNTADMIN   |
+----------------+
1 Row(s) produced. Time Elapsed: 0.133s
OSTECHNIX#[email protected](no database).(no schema)>

Cree el rol 'TEST_OSTECHNIX' con el comentario 'función de tester' usando el siguiente comando.

OSTECHNIX#[email protected](no database).(no schema)>CREATE ROLE "TEST_OSTECHNIX" COMMENT = 'tester role';

Salida de muestra:

+-------------------------------------------+
| status                                    |
|-------------------------------------------|
| Role TEST_OSTECHNIX successfully created. |
+-------------------------------------------+
1 Row(s) produced. Time Elapsed: 0.753s
OSTECHNIX#[email protected](no database).(no schema)>

Puede ver los roles usando el siguiente comando.

OSTECHNIX#[email protected](no database).(no schema)>show ROLES;

A partir de ahora, no se otorgan privilegios al rol 'TEST_OSTECHNIX'.

Verifique las concesiones usando el siguiente comando.

OSTECHNIX#[email protected](no database).(no schema)>show grants to role TEST_OSTECHNIX;

5. Otorgar privilegios al rol

Cada categoría de objeto tendrá su propio conjunto de privilegios. Por ejemplo, 'Almacén virtual' tendrá los siguientes privilegios.

  • MODIFICAR: Permite alterar las propiedades de Warehouse.
  • MONITOR: Permite monitorear las consultas que se ejecutan en el Almacén y el uso de sus estadísticas de Almacén.
  • OPERAR: Permite cambiar el estado del Almacén como Detener, Iniciar, Suspender y Reanudar. También permite ver las consultas pasadas y presentes en el Almacén y abortar las consultas.
  • USO: Permite utilizar el Almacén, es decir, permite ejecutar las consultas en el Almacén.
  • PROPIEDAD: Permite el control total del Almacén. Solo un único rol puede tener este privilegio en un Objeto a la vez.
  • TODOS: Permite todos los privilegios excepto el de PROPIEDAD.

Aquí estamos otorgando privilegios del objeto 'Almacén Virtual' al rol que creamos arriba.

5.1. Otorgue privilegios al rol desde Snowflake WebUI

Puede cambiar el rol si el rol se le ha otorgado al rol. Como estamos usando el rol ADMINISTRADOR DE CUENTA, tendrá un súper control. Cambie el rol haciendo clic en las opciones debajo de Cuenta en la esquina superior derecha.

Ahora estamos en el rol 'ADMINISTRADOR DE CUENTA'. Estará teniendo todos los privilegios sobre los Almacenes en el sistema.

Tan pronto como cambiamos el rol, podemos ver que el rol 'DEV_OSTECHNIX' no puede ver ningún almacén en el sistema. El rol 'DEV_OSTECHNIX' no tiene privilegios.

Para otorgar privilegios, el usuario debe cambiar al rol que tiene privilegios para otorgar el rol. Como estamos usando ACCOUNT_ADMIN, estamos cambiando a él y otorgando privilegios al rol DEV_OSTECHNIX.

Seleccione la fila del Almacén al que desea otorgar privilegios, obtendrá una ventana emergente de privilegios de provisión en el lado derecho.

No se otorgan privilegios ahora. Haga clic en 'Conceder privilegios' para otorgar privilegios al rol.

Seleccione qué privilegio desea otorgar y seleccione el rol al que desea otorgar ese privilegio. Puede hacer clic en + símbolo en la parte superior derecha para agregar los privilegios a otorgar.

Aquí, otorgamos privilegios MODIFICAR y OPERAR al rol DEV_OSTECHNIX.

Puede verificar los privilegios cambiando el rol a DEV_OSTECHNIX.

5.2. Otorgue privilegios a la función mediante el cliente CLI de SnowSQL

Asegúrese de estar en el rol que debería tener privilegios para otorgar. Aquí, estamos usando ACCOUNT_ADMIN en esta demostración.

OSTECHNIX#[email protected](no database).(no schema)>select current_role();
+----------------+
| CURRENT_ROLE() |
|----------------|
| ACCOUNTADMIN   |
+----------------+
1 Row(s) produced. Time Elapsed: 0.133s
OSTECHNIX#[email protected](no database).(no schema)>

Vea los almacenes disponibles en el sistema usando el siguiente comando 'mostrar'.

OSTECHNIX#[email protected](no database).(no schema)>show WAREHOUSES;

Cambie el rol a TEST_OSTECHNIX.

OSTECHNIX#[email protected](no database).(no schema)>use role TEST_OSTECHNIX;

Verifique los privilegios en los Almacenes con solo ver los Almacenes.

A partir de ahora, no se otorgan privilegios al rol TEST_OSTECHNIX.

Para otorgar los privilegios, vuelva a cambiar al rol ACCOUNT_ADMIN.

OSTECHNIX#(no warehouse)@(no database).(no schema)>use role ACCOUNTADMIN;

Otorgue los privilegios en el Almacén 'OSTECH_DEMO_3' al rol TEST_OSTECHNIX.

OSTECHNIX#[email protected](no database).(no schema)>grant MODIFY, OPERATE on warehouse OSTECH_DEMO_3 to role TEST_OSTECHNIX;

Verifique los privilegios cambiando al rol TEST_OSTECHNIX.

OSTECHNIX#[email protected](no database).(no schema)>use role TEST_OSTECHNIX;
OSTECHNIX#(no warehouse)@(no database).(no schema)>show WAREHOUSES;

Ahora puede asegurarse de que el rol TEST_OSTECHNIX puede ver el Almacén OSTECH_DEMO_3 y está en estado Suspendido.

Inicie el Almacén usando el siguiente comando.

OSTECHNIX#(no warehouse)@(no database).(no schema)>alter WAREHOUSE OSTECH_DEMO_3 RESUME;

Verifique el estado usando el comando 'mostrar'.

Ahora podemos asegurarnos de que el rol TEST_OSTECHNIX tiene los privilegios otorgados en el almacén OSTECH_DEMO_3.

Nota: Independientemente de las consultas que estemos usando en la CLI de SnowSQL, las mismas se pueden usar en la hoja de trabajo de Snowflake disponible en WebUI.

Conclusión

En este artículo, analizamos el control de acceso basado en roles (RBAC) en Snowflake. Hemos demostrado el RBAC simplemente creando roles y otorgando privilegios al rol en el objeto 'Almacén virtual'.

Del mismo modo, podemos aprovisionar el acceso a otros objetos como bases de datos, tablas, etc. Tendremos una comprensión detallada de la administración de usuarios y el aprovisionamiento de acceso a los usuarios en el próximo artículo.


Linux
  1. Listas de control de acceso y unidades externas en Linux:lo que necesita saber

  2. Encuentre y ordene archivos según el acceso, la fecha y la hora de modificación en Linux

  3. Una introducción a las listas de control de acceso (ACL) de Linux

  4. Matriz de permisos de control de acceso basado en roles (RBAC) para alojamiento en la nube

  5. UNIX/Linux:Conceptos básicos de las listas de control de acceso (ACL)

Cómo crear roles de Ansible y usarlos en Playbook

Cómo crear un grupo de seguridad (SG) y una lista de control de acceso a la red (NACL) en AWS

Explicación de las listas de control de acceso en Linux

¿Cómo accedo a mi panel de control de Managed.com?

Cómo Acceder al Panel de Control de Mi Hosting

Cómo acceder al panel de control (Plesk)