RBAC, DAC и иерархия защищаемых объектов

Управление, управление данными и совместная работа в Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Знакомство с Claro

  • Глобальное приложение для формирования кредитной истории Фиктивный логотип Claro
Управление, управление данными и совместная работа в Snowflake

Проблема управления доступом

access_control.png

Управление, управление данными и совместная работа в Snowflake

Основные понятия

Привилегия — это разрешение на действие:

  • SELECT: чтение
  • INSERT: запись
  • CREATE: создание
Термин Определение
Привилегия Разрешение на выполнение действия (например, SELECT, INSERT, CREATE)
Объект Любой элемент, на который можно выдать привилегию (таблица, схема, база данных, хранилище)
Роль Сущность, которой назначаются привилегии; может быть выдана пользователям или другим ролям
Пользователь Человек или сервисный аккаунт, подключающийся к Snowflake и имеющий роли
Управление, управление данными и совместная работа в Snowflake

Управление доступом на основе ролей (RBAC): принцип работы

 

Поток слева направо: привилегия, роль, пользователь

Управление, управление данными и совместная работа в Snowflake

Реализация RBAC

Выдача привилегии роли

GRANT SELECT ON TABLE core.credit_scores
  TO ROLE analyst_role;

Назначение роли пользователю

GRANT ROLE analyst_role TO USER maria;
1 [Snowflake: Access Control Privileges](https://docs.snowflake.com/en/user-guide/security-access-control-privileges)
Управление, управление данными и совместная работа в Snowflake

Дискреционное управление доступом (DAC)

Схема DAC до и после передачи прав

  • У каждого объекта есть владелец — роль, а не пользователь
  • RBAC определяет структуру ролей
  • DAC определяет, чем управляет каждая роль
Управление, управление данными и совместная работа в Snowflake

Передача владения

Передача владения другой роли

-- Current owner: SYSADMIN
GRANT OWNERSHIP ON TABLE core.credit_scores
  TO ROLE data_engineer
  REVOKE CURRENT GRANTS;
Управление, управление данными и совместная работа в Snowflake

Иерархия защищаемых объектов

Иерархия защищаемых объектов

Управление, управление данными и совместная работа в Snowflake

Применение USAGE на каждом уровне

GRANT USAGE ON DATABASE <your_database>
  TO ROLE analyst_role;

GRANT USAGE ON SCHEMA core
  TO ROLE analyst_role;

GRANT SELECT ON TABLE core.credit_scores
  TO ROLE analyst_role;
Управление, управление данными и совместная работа в Snowflake

Системные роли

 

Роль Ответственность
ACCOUNTADMIN Полный контроль над аккаунтом
SYSADMIN Создание баз данных и хранилищ
SECURITYADMIN Сетевые политики, политики маскирования, управление ролями
USERADMIN Создание пользователей и назначение ролей
PUBLIC Роль по умолчанию для каждого пользователя
1 [Snowflake: Access Control Overview](https://docs.snowflake.com/en/user-guide/security-access-control-overview)
Управление, управление данными и совместная работа в Snowflake

Lass uns üben!

Управление, управление данными и совместная работа в Snowflake

Preparing Video For Download...