Delen via


Zelfstudie: ABAC configureren

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:

  1. Een beheerde tag maken
  2. Een Unity Catalog-catalogus, -schema en -tabel maken
  3. Beheerde tags toepassen op kolommen
  4. Een UDF maken voor het verbergen van de gegevens van het EU-lid
  5. Maak een beleid voor rijfilters
  6. Een UDF maken voor het verbergen van SSN's
  7. Beleid voor kolommasker maken
  8. 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.

  1. Klik in uw Azure Databricks-werkruimte op het pictogram Gegevens.Catalogus.

  2. Klik op de knop Gecontroleerde tags >.

  3. Klik op Beheerde tag maken.

  4. Voer de tagsleutel pii in.

  5. Voer een beschrijving in voor de beheerde tag.

  6. Voer de toegestane waarden voor de tag in: ssn en address. Alleen deze waarden kunnen worden toegewezen aan deze tagsleutel.

    Zelfstudie: een tagbeleid maken.

  7. 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.

  1. Klik in de zijbalk op +Nieuw>notitieblok.
  2. Selecteer SQL deze optie als de taal van uw notitieblok.
  3. Klik op Verbinden en koppel het notebook aan een rekenresource.
  4. 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

  1. 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

  1. 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.

  1. Klik op het pictogram Gegevens.Catalogus.

  2. Klik op de abac catalogus die u eerder hebt gemaakt.

  3. Klik op het tabblad Beleid .

  4. Klik op Nieuw beleid.

  5. In het algemeen:

    • Voer bij Naam de tekst hide_eu_customers in.
    • 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 abac catalogus en alle schema's.

    Voorbeeld van ABAC-rijfilterbeleidsinstellingen voor de sectie Algemeen.

  6. Kies Tabelrijen verbergen voor doel.

  7. Klik in Voorwaarden op Bestaande selecteren. Klik vervolgens op functiepictogram.Selecteer de functie.

  8. Klik in het menu Een functie selecteren op de abac catalogus, het customers schema en vervolgens op de is_not_eu_address functie die u eerder hebt gemaakt.

  9. Klik op Selecteren.

    Voorbeeld van beleidsinstellingen voor ABAC-rijfilters voor de sectie Voorwaarden.

  10. 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, wordt FALSE (Hide row) correct geretourneerd.

    Voorbeeld ABAC-rijfiltermaskeringsfunctietest.

  11. In functieparameters:

    • Kies Kolom toewijzen aan parameter als het een specifieke tag heeft.
    • Zoek naar pii. Selecteer pii : address.

    Voorbeeld van beleidsinstellingen voor ABAC-rijfilters voor de sectie Functieparameters.

  12. Klik op Create policy (Beleid maken).

Stap 6: Uw beleid testen

  1. 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

  1. 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.

  1. Klik op het pictogram Gegevens.Catalogus.

  2. Klik op de abac catalogus die u eerder hebt gemaakt.

  3. Klik op het tabblad Beleid .

  4. Klik op Nieuw beleid.

  5. In het algemeen:

    • Voer bij Naam de tekst mask_ssn in.
    • 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 abac catalogus en alle schema's.

    Voorbeeld van beleidsinstellingen voor ABAC-kolommasker voor de sectie Algemeen.

  6. Kies Voor doelkolomgegevens maskeren.

  7. In voorwaarden:

    • Kies Kolom Maskeren als deze een specifieke tag heeft. Zoek naar pii en selecteer pii : ssn.
    • Klik op Bestaande selecteren. Klik vervolgens op functiepictogram.Selecteer de functie.
    • Klik in het menu Een functie selecteren op de abac catalogus, het customers schema en vervolgens op de mask_ssn functie die u eerder hebt gemaakt.
  8. Klik op Selecteren.

    Voorbeeld van beleidsinstellingen voor ABAC-kolommasker voor de sectie Voorwaarden.

  9. U kunt de maskeringsfunctie desgewenst testen door de functie Test uit te vouwen en een invoer op te geven. Als u bijvoorbeeld 901-234-5678 invoert en op Uitvoering van test klikt, wordt ***-**-**** correct geretourneerd.

    Functionele test van het ABAC-kolommasker.

  10. Klik op Create policy (Beleid maken).

Stap 9: Uw beleid testen

  1. 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 ***-**-****