Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Эта функция доступна в бета-версии.
В этом руководстве объясняется, как настроить политики управления доступом на основе атрибутов (ABAC) с использованием фильтров строк и масок столбцов в каталоге Unity Catalog.
В этом примере команда аналитики США не должна иметь доступ к записям клиентов ЕС или SSN, однако они должны иметь доступ к другим клиентам и данным клиентов в той же таблице. В этом руководстве приведено следующее:
- Включение политик тегов и бета-версий ABAC
- Создание политики тегов
- Создание каталога Unity, схемы и таблицы
- Применение управляемых тегов к столбцам
- Создание UDF для скрытия данных члена ЕС
- Создание политики фильтрации строк
- Создайте UDF для скрытия номеров SSN
- Создание политики маски столбцов
- Выбор таблицы с помощью политик
Шаг 1. Включение политик тегов и бета-версий ABAC
Войдите в консоль учетной записи в качестве администратора учетной записи.
На боковой панели щелкните предварительный просмотр.
Установите переключатель для политики тегов на "Вкл".
В качестве администратора рабочей области щелкните имя пользователя в верхней строке рабочей области Azure Databricks.
В меню выберите "Предварительные просмотры".
Установите переключатель управления доступом на основе атрибутов в значение On.
Шаг 2. Создание политики тегов
Чтобы создать политику тегов, необходимо иметь разрешение на создание политики тегов на уровне аккаунта. Администраторы учетных записей и рабочих областей по умолчанию имеют разрешение на создание.
В рабочей области Azure Databricks щелкните
Каталог.
На странице быстрого доступа нажмите кнопку "Политики тегов > ".
Нажмите кнопку "Создать политику тегов".
Введите ключ тега
pii
.Введите описание политики тегов.
Введите допустимые значения для тега:
ssn
иaddress
. Только эти значения можно назначить этому ключу тега.Нажмите кнопку Создать.
Это важно
Данные тегов можно реплицировать глобально. Не используйте имена тегов или значения, которые могут нарушить безопасность ваших ресурсов. Например, не используйте имена тегов, содержащие личную или конфиденциальную информацию.
Шаг 3. Создание таблицы клиентов
Чтобы выполнить эти действия, необходимо иметь CREATE CATALOG
разрешение в метахранилище каталога Unity. Вы также можете создать таблицу в схеме, для которой у вас есть CREATE TABLE
разрешение.
- На боковой панели нажмите +Создать>записную книжку.
- Выберите
SQL
язык записной книжки. - Нажмите кнопку "Подключить" и подключите записную книжку к вычислительному ресурсу.
- Добавьте следующие команды в записную книжку и запустите их:
-- Create catalog (if not already exists)
CREATE CATALOG IF NOT EXISTS abac;
USE CATALOG abac;
-- Create schema
CREATE SCHEMA IF NOT EXISTS customers;
USE SCHEMA customers;
-- Create table
CREATE TABLE IF NOT EXISTS profiles (
First_Name STRING,
Last_Name STRING,
Phone_Number STRING,
Address STRING,
SSN STRING
)
USING DELTA;
-- Insert data
INSERT INTO profiles (First_Name, Last_Name, Phone_Number, Address, SSN)
VALUES
('John', 'Doe', '123-456-7890', '123 Main St, NY', '123-45-6789'),
('Jane', 'Smith', '234-567-8901', '456 Oak St, CA', '234-56-7890'),
('Alice', 'Johnson', '345-678-9012', '789 Pine St, TX', '345-67-8901'),
('Bob', 'Brown', '456-789-0123', '321 Maple St, FL', '456-78-9012'),
('Charlie', 'Davis', '567-890-1234', '654 Cedar St, IL', '567-89-0123'),
('Emily', 'White', '678-901-2345', '987 Birch St, WA', '678-90-1234'),
('Frank', 'Miller', '789-012-3456', '741 Spruce St, WA', '789-01-2345'),
('Grace', 'Wilson', '890-123-4567', '852 Elm St, NV', '890-12-3456'),
('Hank', 'Moore', '901-234-5678', '963 Walnut St, CO', '901-23-4567'),
('Ivy', 'Taylor', '012-345-6789', '159 Aspen St, AZ', '012-34-5678'),
('Liam', 'Connor', '111-222-3333', '12 Abbey Street, Dublin, Ireland EU', '111-22-3333'),
('Sophie', 'Dubois', '222-333-4444', '45 Rue de Rivoli, Paris, France Europe', '222-33-4444'),
('Hans', 'Müller', '333-444-5555', '78 Berliner Str., Berlin, Germany E.U.', '333-44-5555'),
('Elena', 'Rossi', '444-555-6666', '23 Via Roma, Milan, Italy Europe', '444-55-6666'),
('Johan', 'Andersson', '555-666-7777', '56 Drottninggatan, Stockholm, Sweden EU', '555-66-7777');
Шаг 4. Добавление управляемых тегов в столбцы PII
- Добавьте следующую команду в записную книжку и запустите ее:
-- Add the governed tag to ssn column
ALTER TABLE abac.customers.profiles
ALTER COLUMN SSN
SET TAGS ('pii' = 'ssn');
-- Add governed tag to address column
ALTER TABLE abac.customers.profiles
ALTER COLUMN Address
SET TAGS ('pii' = 'address');
Шаг 5. Создание UDF для поиска адресов ЕС
- Добавьте следующую команду в записную книжку и запустите ее:
-- Determine if an address is not in the EU
CREATE OR REPLACE FUNCTION is_not_eu_address(address STRING)
RETURNS BOOLEAN
RETURN (
SELECT CASE
WHEN LOWER(address) LIKE '%eu%'
OR LOWER(address) LIKE '%e.u.%'
OR LOWER(address) LIKE '%europe%'
THEN FALSE
ELSE TRUE
END
);
Этот UDF проверяет, не ссылается ли данная строка на Европу или ЕС. Если найдены какие-либо из этих подстроок, возвращает значение FALSE (то есть адрес ЕС). Если ни одна из подстроок не найдена, возвращает значение TRUE (то есть это не адрес ЕС).
Шаг 6. Создание политики фильтрации строк
Щелкните
Каталог.
Рядом с каталогом
abac
щелкнитеНажмите кнопку "Открыть" в обозревателе каталогов.
Перейдите на вкладку "Политики ".
Щелкните Создать политику.
В разделе Общие сведения введите имя
hide_eu_customers
и описание для вашей политики.В субъектах:
- В приложении "Применено к...", найдите и выберите субъекты, к которым применяется политика. В этом примере можно использовать группу всех пользователей учетной записи.
- Оставьте Кроме... пустым.
В типе и целевом объекте:
- В типе политики выберите "Фильтр строк".
- В целевом объекте политики выберите
abac
каталог для области политики. - Оставьте условие уровня таблицы пустым.
В Функции выберите
is_not_eu_address
функцию, которую вы создали вabac.customers
.Рядом с столбцом "Когда" выберите значение тега.
В "Ключ" выберите
pii
, а в "Значение" выберитеaddress
.Нажмите кнопку "Создать политику".
Шаг 7. Проверка политики
- Вернитесь в записную книжку и выполните следующую команду:
SELECT DISTINCT * FROM abac.customers.profiles
Возвращаются исключительно строки данных, не являющиеся резидентами ЕС.
First_Name | Фамилия | Номер телефона | Адрес | Номер социального страхования |
---|---|---|---|---|
Грация | Уилсон | 890-123-4567 | 852 Elm St, NV | 890-12-3456 |
Алиса | Джонсон | 345-678-9012 | 789 улица Пайн, TX | 345-67-8901 |
Плющ | Тейлор | 012-345-6789 | 159 ул. Аспен, AZ | 012-34-5678 |
Откровенный | Миллер | 789-012-3456 | 741 Spruce St, WA | 789-01-2345 |
Джейн | Иванов | 234-567-8901 | улица Оук, 456, CA | 234-56-7890 |
Джон | Доу | 123-456-7890 | улица Главная, 123, Нью-Йорк | 123-45-6789 |
Чарли | Дэвис | 567-890-1234 | 654 Кедр Ст, IL | 567-89-0123 |
Эмили | Белый | 678-901-2345 | 987 Берч Улица, WA | 678-90-1234 |
Хэнк | Мур | 901-234-5678 | 963 улица Грецкий орех, CO | 901-23-4567 |
Боб | Коричневый | 456-789-0123 | 321 улица Кленовая, Флорида | 456-78-9012 |
Вы можете продолжить создание политики маскирования столбцов.
Шаг 8. Создание UDF для маскирования SSN
- Добавьте следующую команду в записную книжку и запустите ее:
-- Masks any SSN input by returning a fully masked value
CREATE FUNCTION mask_SSN(ssn STRING)
RETURN '***-**-****' ;
Этот UDF возвращает полностью маскированную строку SSN ('*-****')
Шаг 9. Создание политики маски столбцов
Щелкните
Каталог.
Рядом с каталогом
abac
щелкнитеНажмите кнопку "Открыть" в обозревателе каталогов.
Перейдите на вкладку "Политики ".
Щелкните Создать политику.
В разделе Общие сведения введите имя
mask_ssn
и описание для вашей политики.В субъектах:
- В приложении "Применено к...", найдите и выберите субъекты, к которым применяется политика. В этом примере можно использовать группу всех пользователей учетной записи.
- Оставьте Кроме... пустым.
В типе и целевом объекте:
- В типе политики выберите "Маска столбца".
- В целевом объекте политики выберите
abac
каталог для области политики. - Оставьте условие уровня таблицы пустым.
В Функции выберите
mask_SSN
функцию, которую вы создали вabac.customers
.Рядом с столбцом "Когда" выберите значение тега.
В "Ключ" выберите
pii
, а в "Значение" выберитеssn
.Нажмите кнопку "Создать политику".
Шаг 10. Тестирование политики
- Вернитесь в записную книжку и выполните следующую команду:
SELECT * FROM abac.customers.profiles
Теперь номера социального страхования возвращаются как ***-***-***
. Возвращаются только жители, не являющиеся гражданами ЕС, поскольку маска фильтрации строк также включена.
First_Name | Фамилия | Номер телефона | Адрес | Номер социального страхования |
---|---|---|---|---|
Джейн | Иванов | 234-567-8901 | улица Оук, 456, CA | ***-**-**** |
Алиса | Джонсон | 345-678-9012 | 789 улица Пайн, TX | ***-**-**** |
Чарли | Дэвис | 567-890-1234 | 654 Кедр Ст, IL | ***-**-**** |
Грация | Уилсон | 890-123-4567 | 852 Elm St, NV | ***-**-**** |
Боб | Коричневый | 456-789-0123 | 321 улица Кленовая, Флорида | ***-**-**** |
Хэнк | Мур | 901-234-5678 | 963 улица Грецкий орех, CO | ***-**-**** |
Плющ | Тейлор | 012-345-6789 | 159 ул. Аспен, AZ | ***-**-**** |
Эмили | Белый | 678-901-2345 | 987 Берч Улица, WA | ***-**-**** |
Откровенный | Миллер | 789-012-3456 | 741 Spruce St, WA | ***-**-**** |
Джон | Доу | 123-456-7890 | улица Главная, 123, Нью-Йорк | ***-**-**** |