Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Belangrijk
Deze functie bevindt zich in openbare preview-versie.
In deze zelfstudie leert u hoe u abac-beleid (op kenmerken gebaseerd toegangsbeheer) voor rijfilters en kolommaskers configureert in Unity Catalog.
In dit voorbeeld mag een analyseteam van de VS geen toegang krijgen tot eu-klantrecords of SSN's. Ze moeten echter toegang hebben tot andere klanten en klantgegevens in dezelfde tabel. Deze zelfstudie bevat de volgende stappen:
- Een beheerde tag maken
- Een Unity Catalog-catalogus, -schema en -tabel maken
- Beheerde tags toepassen op kolommen
- Een UDF maken voor het verbergen van de gegevens van het EU-lid
- Maak een beleid voor rijfilters
- Een UDF maken voor het verbergen van SSN's
- Beleid voor kolommasker maken
- Selecteer uw tabel volgens de richtlijnen
Zie Discover Attribute-Based Access Control (ABAC) met Unity Catalog voor een demo van het configureren van ABAC.
Rekenvereisten
- U moet rekenkracht gebruiken voor Databricks Runtime 16.4 of hoger.
- Serverloze berekening werkt altijd met ABAC.
Compute waarop oudere runtimes worden uitgevoerd, heeft geen toegang tot tabellen die zijn beveiligd door ABAC. Als tijdelijke tijdelijke oplossing kunt u ABAC configureren om alleen van toepassing te zijn op een specifieke groep. Voeg de gebruikers toe die u wilt beperken tot die groep. Gebruikers die zich niet in de groep bevinden, hebben nog steeds toegang tot de tabellen.
Stap 1: Een beheerde tag maken
Als u een beheerde tag wilt maken, moet u de machtiging CREATE voor de beheerde tag hebben op accountniveau. Account- en werkruimtebeheerders hebben standaard CREATE.
Klik in uw Azure Databricks-werkruimte op
Catalogus.
Klik op de knop Gecontroleerde tags >.
Klik op Beheerde tag maken.
Voer de tagsleutel
piiin.Voer een beschrijving in voor de beheerde tag.
Voer de toegestane waarden voor de tag in:
ssnenaddress. Alleen deze waarden kunnen worden toegewezen aan deze tagsleutel.
Klik op Create.
Waarschuwing
Taggegevens worden opgeslagen als tekst zonder opmaak en kunnen globaal worden gerepliceerd. Gebruik geen tagnamen, waarden of descriptors die de beveiliging van uw resources in gevaar kunnen krijgen. Gebruik bijvoorbeeld geen tagnamen, waarden of descriptors die persoonlijke of gevoelige informatie bevatten.
Stap 2: de tabel Klanten maken
Als u deze stappen wilt volgen, moet u over de CREATE CATALOG machtiging beschikken voor uw Unity Catalog-metastore. U kunt de tabel ook maken in een schema waarvoor u de CREATE TABLE machtiging hebt.
- Klik in de zijbalk op +Nieuw>notitieblok.
- Selecteer
SQLdeze optie als de taal van uw notitieblok. - Klik op Verbinden en koppel het notebook aan een rekenresource.
- Voeg de volgende opdrachten toe aan het notebook en voer ze uit:
-- 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');
Stap 3: beheerde tags toevoegen aan de PII-kolommen
- Voeg de volgende opdracht toe aan het notebook en voer deze uit:
-- 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');
Stap 4: een UDF maken om EU-adressen te vinden
- Voeg de volgende opdracht toe aan het notebook en voer deze uit:
-- 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
);
Deze UDF controleert of een bepaalde tekenreeks niet naar Europa of de EU verwijst. Als een van deze subtekenreeksen wordt gevonden, wordt ONWAAR geretourneerd (wat betekent dat het een EU-adres is). Als geen van de subtekenreeksen wordt gevonden, wordt TRUE geretourneerd (wat betekent dat het geen EU-adres is).
Stap 5: Een rijfilterbeleid maken
Als u een beleid voor een object wilt maken, moet u MANAGE op het object hebben of eigendom van het object zijn.
Als u een UDF wilt toevoegen aan een beleid, moet u over een UDF beschikken en moet deze in de Unity Catalog staan.
Klik op
Catalogus.
Klik op de
abaccatalogus die u eerder hebt gemaakt.Klik op het tabblad Beleid .
Klik op Nieuw beleid.
In het algemeen:
- Voer bij Naam de tekst
hide_eu_customersin. - Voer voor Beschrijving een beschrijving in voor uw beleid.
- Voor Toegepast op..., zoek en selecteer de principals waarop het beleid van toepassing is. In dit voorbeeld kunt u de groep Alle accountgebruikers gebruiken.
- Laat behalve... leeg.
- Kies voor Bereik de
abaccatalogus en alle schema's.
- Voer bij Naam de tekst
Kies Tabelrijen verbergen voor doel.
Klik in Voorwaarden op Bestaande selecteren. Klik vervolgens op
Selecteer de functie.
Klik in het menu Een functie selecteren op de
abaccatalogus, hetcustomersschema en vervolgens op deis_not_eu_addressfunctie die u eerder hebt gemaakt.Klik op Selecteren.
U kunt de maskeringsfunctie desgewenst testen door de functie Test uit te vouwen en een invoer op te geven. Als u bijvoorbeeld
78 Berliner Str., Berlin, Germany E.U.invoert en op Uitvoering van test klikt, wordtFALSE (Hide row)correct geretourneerd.
In functieparameters:
- Kies Kolom toewijzen aan parameter als het een specifieke tag heeft.
- Zoek naar
pii. Selecteerpii : address.
Klik op Create policy (Beleid maken).
Stap 6: Uw beleid testen
- Ga terug naar uw notebook en voer de volgende opdracht uit:
SELECT DISTINCT * FROM abac.customers.profiles
Alleen de niet-EU-inwonersrijen worden geretourneerd.
| Voornaam | Achternaam | Telefoonnummer | Adres | SSN |
|---|---|---|---|---|
| Gratie | Wilson | 890-123-4567 | 852 Elm St, NV | 890-12-3456 |
| Alice | Johnson | 345-678-9012 | 789 Pine St, TX | 345-67-8901 |
| Klimop | Taylor | 012-345-6789 | 159 Aspen St, AZ | 012-34-5678 |
| Frank | Molenaar | 0789-012-3456 | 741 Spruce St, WA | 789-01-2345 |
| Jane | Smit | 234-567-8901 | 456 Oak St, CA | 234-56-7890 |
| John | Voedster | 123-456-7890 | 123 Hoofdstraat, NY | 123-45-6789 |
| Charlie | Davis | 567-890-1234 | 654 Ceder St, IL | 567-89-0123 |
| Emily | Wit | 678-901-2345 | 987 Berk St, WA | 678-90-1234 |
| Hank | Moore | 901-234-5678 | 963 Walnoot St, CO | 901-23-4567 |
| Bob | Bruin | 456-789-0123 | 321 Maple St, FL | 456-78-9012 |
U kunt verdergaan met het maken van een beleid voor kolommaskers.
Stap 7: Een UDF maken om SSN's te maskeren
- Voeg de volgende opdracht toe aan het notebook en voer deze uit:
-- Masks any SSN input by returning a fully masked value
CREATE FUNCTION mask_SSN(ssn STRING)
RETURN '***-**-****' ;
Deze UDF retourneert een volledig gemaskeerde BSN-string ('***-**-****').
Stap 8: Een beleid voor kolommasker maken
Als u een beleid voor een object wilt maken, moet u MANAGE op het object hebben of eigendom van het object zijn.
Als u een UDF wilt toevoegen aan een beleid, moet u over een UDF beschikken en moet deze in de Unity Catalog staan.
Klik op
Catalogus.
Klik op de
abaccatalogus die u eerder hebt gemaakt.Klik op het tabblad Beleid .
Klik op Nieuw beleid.
In het algemeen:
- Voer bij Naam de tekst
mask_ssnin. - Voer voor Beschrijving een beschrijving in voor uw beleid.
- Voor Toegepast op..., zoek en selecteer de principals waarop het beleid van toepassing is. In dit voorbeeld kunt u de groep Alle accountgebruikers gebruiken.
- Laat behalve... leeg.
- Kies voor Bereik de
abaccatalogus en alle schema's.
- Voer bij Naam de tekst
Kies Voor doelkolomgegevens maskeren.
In voorwaarden:
- Kies Kolom Maskeren als deze een specifieke tag heeft. Zoek naar
piien selecteerpii : ssn. - Klik op Bestaande selecteren. Klik vervolgens op
Selecteer de functie.
- Klik in het menu Een functie selecteren op de
abaccatalogus, hetcustomersschema en vervolgens op demask_ssnfunctie die u eerder hebt gemaakt.
- Kies Kolom Maskeren als deze een specifieke tag heeft. Zoek naar
Klik op Selecteren.
U kunt de maskeringsfunctie desgewenst testen door de functie Test uit te vouwen en een invoer op te geven. Als u bijvoorbeeld
901-234-5678invoert en op Uitvoering van test klikt, wordt***-**-****correct geretourneerd.
Klik op Create policy (Beleid maken).
Stap 9: Uw beleid testen
- Ga terug naar uw notebook en voer de volgende opdracht uit:
SELECT * FROM abac.customers.profiles
De SSN's worden nu teruggegeven als ***-***-***. Alleen niet-EU-inwoners worden geretourneerd omdat het rijfiltermasker ook is ingeschakeld.
| Voornaam | Achternaam | Telefoonnummer | Adres | SSN |
|---|---|---|---|---|
| Jane | Smit | 234-567-8901 | 456 Oak St, CA | ***-**-**** |
| Alice | Johnson | 345-678-9012 | 789 Pine St, TX | ***-**-**** |
| Charlie | Davis | 567-890-1234 | 654 Ceder St, IL | ***-**-**** |
| Gratie | Wilson | 890-123-4567 | 852 Elm St, NV | ***-**-**** |
| Bob | Bruin | 456-789-0123 | 321 Maple St, FL | ***-**-**** |
| Hank | Moore | 901-234-5678 | 963 Walnoot St, CO | ***-**-**** |
| Klimop | Taylor | 012-345-6789 | 159 Aspen St, AZ | ***-**-**** |
| Emily | Wit | 678-901-2345 | 987 Berk St, WA | ***-**-**** |
| Frank | Molenaar | 0789-012-3456 | 741 Spruce St, WA | ***-**-**** |
| John | Voedster | 123-456-7890 | 123 Hoofdstraat, NY | ***-**-**** |