Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym samouczku pokazano, jak skonfigurować zasady kontroli dostępu opartego na atrybutach (ABAC) dla filtrowania wierszy i maskowania kolumn w Unity Catalog przy użyciu interfejsu użytkownika Catalog Explorer. Aby uzyskać w pełni opartą na języku SQL wersję, która obejmuje również warunkowe maskowanie wiadomości e-mail, zobacz Samouczek: konfigurowanie usługi ABAC przy użyciu języka SQL.
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
- Utworzenie UDF do identyfikacji danych klientów UE
- Utwórz zasady filtrowania wierszy
- Stwórz FZPU do maskowania numerów ubezpieczenia społecznego.
- Tworzenie zasad maski kolumn
- Wybierz swoją tabelę według zasad
Aby zapoznać się z pokazem konfigurowania Kontroli dostępu opartej na atrybutach (ABAC), zobacz Odkryj Kontrolę dostępu opartą na atrybutach (ABAC) z użyciem Katalogu Unity.
Wymagania wstępne
- Środowisko Databricks Runtime w wersji 16.4 lub nowszej, lub obliczeń bezserwerowych.
- Uprawnienia administratora konta lub administratora obszaru roboczego (aby utworzyć tagi zarządzane).
- Aby zastosować tagi zarządzane do kolumn (krok 3): uprawnienie
ASSIGNdo tagu zarządzanego (administratorzy kont mają je domyślnie) oraz uprawnienieAPPLY TAGdo tabeli docelowej. -
MANAGEuprawnienia do katalogu docelowego lub schematu. -
EXECUTEw UDF.
Ś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ć zarządzany tag, musisz mieć uprawnienia do tworzenia zarządzanych tagów 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ądzaj .
W menu rozwijanym kliknij pozycję 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.
W obszarze identyfikacji zasad:
- W polu Nazwa wprowadź
hide_eu_customers. - W polu Opis wprowadź opis zasad.
- W polu Nazwa wprowadź
W typie polityki wybierz filtr wierszowy.
W podmiotach odpowiedzialnych i zakresie:
- 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.
- Dla Scope wybierz
abackatalog i Wszystkie schematy.
W Condition wybierz tabele w zakresie, do których odnosi się zasada. W tym przykładzie możesz wybrać Brak warunku , aby polityka dotyczyła wszystkich tabel.
W funkcji filtra wierszowego:
- 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ć swoją funkcję, rozszerzając funkcję testową i dostarczają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).
- Kliknij
W parametrach funkcji Map:
- Wybierz kolumny odpowiadające wybranym tagom.
- 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 |
| Frank | Młynarz | 789-012-3456 | 741 ul. Świerkowa, WA | 789-01-2345 |
| Jane | Smith | 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 ukryty 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.
W identyfikacji zasad:
- W polu Nazwa wprowadź
mask_ssn. - W polu Opis wprowadź opis zasad.
- W polu Nazwa wprowadź
W Typ zasad wybierz Maska kolumn.
W głównych podmiotach i zakresie:
- 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.
- Dla zakresu wybierz
abackatalog i Wszystkie schematy.
W trybie Warunek wybierz tabele w zakresie, do którego odnosi się zasada. W tym przykładzie możesz wybrać Brak warunku , aby polityka dotyczyła wszystkich tabel.
W warunkach kolumny:
- Wybierz kolumny odpowiadające wybranym tagom.
- Wyszukaj
pii. Wybierz opcjępii : ssn.
W funkcji maskowania:
- Kliknij
Wybierz funkcję.
- W menu Wybierz funkcję kliknij katalog
abac, schematcustomers, a następnie funkcję, którą utworzyłeś wcześniejmask_ssn. - 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
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 ***-**-****. Zwracane są tylko osoby spoza UE, ponieważ polityka filtrowania wierszy jest również włączona.
| First_Name | Nazwisko | Numer telefonu | Adres | numer ubezpieczenia społecznego (SSN) |
|---|---|---|---|---|
| Jane | Smith | 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 | ***-**-**** |
| Frank | Młynarz | 789-012-3456 | 741 ul. Świerkowa, WA | ***-**-**** |
| John | Łania | 123-456-7890 | Main St 123, NY | ***-**-**** |