Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Ta funkcja jest dostępna w publicznej wersji testowej.
W tym samouczku przedstawiono sposób konfigurowania polityk kontroli dostępu opartych na atrybutach (ABAC) w Unity Catalog, obejmujących filtr wiersza oraz maskę kolumn.
W tym przykładzie amerykański zespół analityczny nie powinien mieć dostępu do rekordów klientów z UE ani sieci SSN. Powinny jednak mieć dostęp do innych klientów i danych klientów w tej samej tabeli. Ten samouczek obejmuje następujące kroki:
- Tworzenie tagu zarządzanego
- Utwórz katalog Unity Catalog, schemat i tabelę.
- Nakładanie tagów na kolumny podlegające reglamentacji
- Utwórz funkcję zdefiniowaną przez użytkownika do ukrywania danych członków UE
- Utwórz zasady filtrowania wierszy
- Utwórz funkcję UDF do ukrywania numerów ubezpieczenia społecznego (SSN)
- Tworzenie zasad maski kolumn
- Wybierz swoją tabelę według zasad
Aby zapoznać się z pokazem konfigurowania usługi ABAC, zobacz Odnajdywanie kontroli dostępu Attribute-Based (ABAC) przy użyciu wykazu aparatu Unity.
Wymagania dotyczące obliczeń
- Należy użyć obliczeń w środowisku Databricks Runtime 16.4 lub nowszym.
- Bezserwerowe obliczenia zawsze działają z modelem ABAC.
Środowisko obliczeniowe ze starszymi środowiskami uruchomieniowymi nie może uzyskać dostępu do tabel zabezpieczonych przez usługę ABAC. Jako tymczasowe obejście można skonfigurować funkcję ABAC tak, aby miała zastosowanie tylko do określonej grupy. Dodaj użytkowników, których chcesz ograniczyć do tej grupy. Użytkownicy, którzy nie znajdują się w grupie, nadal mogą uzyskiwać dostęp do tabel.
Krok 1. Tworzenie tagu zarządzanego
Aby utworzyć tag zarządzany, musisz mieć uprawnienia CREATE tagu zarządzanego na poziomie konta. Administratorzy kont i obszarów roboczych domyślnie mają uprawnienia CREATE.
W obszarze roboczym usługi Azure Databricks kliknij
Wykaz.
Kliknij przycisk Zarządzane tagi > .
Kliknij pozycję Utwórz tag zarządzany.
Wprowadź klucz tagu
pii.Wprowadź opis tagu zarządzanego.
Wprowadź dozwolone wartości tagu:
ssniaddress. Do tego klucza tagu można przypisać tylko te wartości.
Kliknij pozycję Utwórz.
Ostrzeżenie
Dane tagów są przechowywane jako zwykły tekst i mogą być replikowane globalnie. Nie używaj nazw tagów, wartości ani deskryptorów, które mogą naruszyć bezpieczeństwo zasobów. Na przykład nie należy używać nazw tagów, wartości ani deskryptorów zawierających informacje osobiste lub poufne.
Krok 2: Utwórz tabelę klientów
Aby wykonać te kroki, musisz mieć CREATE CATALOG uprawnienie do metastore katalogu Unity. Tabelę możesz również utworzyć w schemacie, do którego masz uprawnienia CREATE TABLE.
- Na pasku bocznym kliknij pozycję +Nowy>Notes.
- Wybierz
SQLjako język notesu. - Kliknij pozycję Połącz i dołącz notes do zasobu obliczeniowego.
- Dodaj następujące polecenia do notesu i uruchom je:
-- 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');
Krok 3: Dodaj zarządzane tagi do kolumn PII
- Dodaj następujące polecenie do notesu i uruchom je:
-- 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');
Krok 4: Utwórz funkcję zdefiniowaną przez użytkownika, aby znaleźć adresy UE
- Dodaj następujące polecenie do notesu i uruchom je:
-- 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
);
Ta funkcja UDF sprawdza, czy ten ciąg znaków nie wydaje się odnosić do Europy ani UE. Jeśli którykolwiek z tych podciągów zostanie znaleziony, funkcja zwraca wartość FALSE, co oznacza, że jest to adres w UE. Jeśli żaden z podciągów znaków nie zostanie znaleziony, zwraca wartość TRUE (co oznacza, że nie jest to adres w Unii Europejskiej).
Krok 5. Tworzenie zasad filtru wierszy
Aby utworzyć politykę na obiekcie, musisz mieć MANAGE na obiekcie lub być jego właścicielem.
Aby dodać UDF do polityki, musisz mieć EXECUTE w UDF i musi znajdować się w katalogu Unity.
Kliknij
Wykaz.
Kliknij katalog
abacutworzony wcześniej.Kliknij kartę Zasady .
Kliknij pozycję Nowe zasady.
Ogólnie:
- W polu Nazwa wprowadź
hide_eu_customers. - W polu Opis wprowadź opis zasad.
- W polu Zastosowano do... wyszukaj i wybierz uczestników, do których mają zastosowanie zasady. W tym przykładzie możesz użyć grupy Wszyscy użytkownicy konta.
- Pozostaw z wyjątkiem... puste.
- W Zakresie wybierz katalog
abaci Wszystkie schematy.
- W polu Nazwa wprowadź
W obszarze Cel wybierz pozycję Ukryj wiersze tabeli.
W warunkach kliknij Wybierz istniejący. Następnie kliknij
Wybierz funkcję.
W menu Wybierz funkcję kliknij katalog
abac, schematcustomers, a następnie funkcję, którą utworzyłeś wcześniejis_not_eu_address.Kliknij opcję Wybierz.
Opcjonalnie możesz przetestować funkcję maskowania, rozwijając pozycję Funkcja Test i podając dane wejściowe. Na przykład wprowadzenie
78 Berliner Str., Berlin, Germany E.U.i kliknięcie polecenia Uruchom test poprawnie zwraca wartośćFALSE (Hide row).
W Parametrach funkcji:
- Wybierz Mapuj kolumnę na parametr, jeśli ma konkretny tag.
- Wyszukaj
pii. Wybierz opcjępii : address.
Kliknij pozycję Create policy (Utwórz zasady).
Krok 6. Testowanie zasad
- Wróć do notesu i uruchom następujące polecenie:
SELECT DISTINCT * FROM abac.customers.profiles
Zwracane są tylko wiersze dotyczące rezydentów spoza UE.
| First_Name | Nazwisko | Numer telefonu | Adres | numer ubezpieczenia społecznego (SSN) |
|---|---|---|---|---|
| Wdzięk | Wilson | 890-123-4567 | 852 Elm St, NV | 890-12-3456 |
| Alicja | Johnson | 345-678-9012 | 789 Pine St, TX | 345-67-8901 |
| Bluszcz | Taylor | 012-345-6789 | 159 Aspen St, AZ | 012-34-5678 |
| Szczery | Młynarz | 789-012-3456 | 741 ul. Świerkowa, WA | 789-01-2345 |
| Jane | Borkowski | 234-567-8901 | 456 Oak St, CA | 234-56-7890 |
| John | Łania | 123-456-7890 | 123 Main St, NY | 123-45-6789 |
| Charlie | Davis | 567-890-1234 | 654 Cedar St, IL | 567-89-0123 |
| Emily | Biała | 678-901-2345 | 987 Birch St, WA | 678-90-1234 |
| Hank | Moore | 901-234-5678 | 963 Walnut ul., CO | 901-23-4567 |
| Robert | Brązowy | 456-789-0123 | 321 Maple St, FL | 456-78-9012 |
Możesz nadal tworzyć zasady maski kolumn.
Krok 7: Utwórz funkcję zdefiniowaną przez użytkownika w celu maskowania numerów SSN
- Dodaj następujące polecenie do notesu i uruchom je:
-- Masks any SSN input by returning a fully masked value
CREATE FUNCTION mask_SSN(ssn STRING)
RETURN '***-**-****' ;
Ta funkcja UDF zwraca w pełni zamaskowany ciąg SSN ('***-**-****'),
Krok 8. Tworzenie zasad maski kolumn
Aby utworzyć politykę na obiekcie, musisz mieć MANAGE na obiekcie lub być jego właścicielem.
Aby dodać UDF do polityki, musisz mieć EXECUTE w UDF i musi znajdować się w katalogu Unity.
Kliknij
Wykaz.
Kliknij katalog
abacutworzony wcześniej.Kliknij kartę Zasady .
Kliknij pozycję Nowe zasady.
Ogólnie:
- W polu Nazwa wprowadź
mask_ssn. - W polu Opis wprowadź opis zasad.
- W polu Zastosowano do... wyszukaj i wybierz uczestników, do których mają zastosowanie zasady. W tym przykładzie możesz użyć grupy Wszyscy użytkownicy konta.
- Pozostaw z wyjątkiem... puste.
- W Zakresie wybierz katalog
abaci Wszystkie schematy.
- W polu Nazwa wprowadź
W obszarze Cel wybierz pozycję Maskuj dane kolumny.
W warunkach:
- Wybierz pozycję Maskuj kolumnę, jeśli ma określony tag. Wyszukaj
piii wybierzpii : ssn. - Kliknij pozycję Wybierz istniejącą. Następnie kliknij
Wybierz funkcję.
- W menu Wybierz funkcję kliknij katalog
abac, schematcustomers, a następnie funkcję, którą utworzyłeś wcześniejmask_ssn.
- Wybierz pozycję Maskuj kolumnę, jeśli ma określony tag. Wyszukaj
Kliknij opcję Wybierz.
Opcjonalnie możesz przetestować funkcję maskowania, rozwijając pozycję Funkcja Test i podając dane wejściowe. Na przykład wprowadzenie
901-234-5678i kliknięcie polecenia Uruchom test poprawnie zwraca wartość***-**-****.
Kliknij pozycję Create policy (Utwórz zasady).
Krok 9. Testowanie zasad
- Wróć do notesu i uruchom następujące polecenie:
SELECT * FROM abac.customers.profiles
Numery SSN są teraz zwracane jako ***-***-***. Zwracani są tylko mieszkańcy spoza UE, ponieważ włączona jest również maska filtru wiersza.
| First_Name | Nazwisko | Numer telefonu | Adres | numer ubezpieczenia społecznego (SSN) |
|---|---|---|---|---|
| Jane | Borkowski | 234-567-8901 | 456 Oak St, CA | ***-**-**** |
| Alicja | Johnson | 345-678-9012 | 789 Pine St, TX | ***-**-**** |
| Charlie | Davis | 567-890-1234 | 654 Cedar St, IL | ***-**-**** |
| Wdzięk | Wilson | 890-123-4567 | 852 Elm St, NV | ***-**-**** |
| Robert | Brązowy | 456-789-0123 | 321 Maple St, FL | ***-**-**** |
| Hank | Moore | 901-234-5678 | 963 Walnut ul., CO | ***-**-**** |
| Bluszcz | Taylor | 012-345-6789 | 159 Aspen St, AZ | ***-**-**** |
| Emily | Biała | 678-901-2345 | 987 Birch St, WA | ***-**-**** |
| Szczery | Młynarz | 789-012-3456 | 741 ul. Świerkowa, WA | ***-**-**** |
| John | Łania | 123-456-7890 | 123 Main St, NY | ***-**-**** |