Handledning: Modellera exklusiv åtkomst med RBAC

Använd rollbaserad åtkomstkontroll (RBAC) för att säkerställa att åtkomsten hålls åtskild för dataset som måste hållas separata från varandra. När varje dataset endast är tillgängligt genom sin tilldelade roll måste användare och AI-agenter anta den rollen för att få tillgång till den. För att få tillgång till en annan datamängd måste de byta roller, så en enda fråga kan inte kombinera data mellan användningsfall, projekt, kliniska prövningar eller klienter. Att kombinera dataset som måste förbli separata kallas ibland för en toxic join.

Scenario

En forskare arbetar med två kliniska prövningar i en och samma arbetsyta. De behöver tillgång till båda studierna, men när de arbetar med den ena studien får de inte använda data från den andra studien. Du konfigurerar en separat roll för varje försök, testar tillåtna och nekade sökfrågor och begränsar delning av workspace-tillgångar som skapas i någon av rollerna.

Forskaren förblir tilldelad arbetsytan och kan öppna arbetsytan som sig själva. För att kräva en roll för åtkomst till arbetsytan, se Självstudie: Kräv att användare antar en roll för åtkomst till arbetsytan.

Exemplet använder två typer av grupper. Dessa är förklarande etiketter, inte formella Azure Databricks terminologi:

  • Åtkomstroll: En tom grupp som har behörigheter för data i en studie. Du skapar role-study-1 och role-study-2. Håll dem tomma. Medlemmar ärver en grupps behörigheter, så en medlem kan läsa datan utan att anta en roll.
  • Medlemsgrupp: trial-researchers, vars medlemmar får anta båda åtkomstrollerna. Den har behörigheten Assume, inte behörigheter för testdata. En medlemsgrupp är valfri. Du kan också ge Assume-behörigheten direkt till enskilda användare eller tjänsthuvudnamn.

Forskaren kan byta mellan roller, men varje roll kan bara läsa sin egen studietabell:

Exempel på exklusiv åtkomst: Användare 1 kan anta gruppen Studie 1 eller gruppen Studie 2. När Användare 1 agerar som sin egen identitet kan användaren inte köra frågor mot data från någon av studierna. När Användare 1 agerar som gruppen Studie 1 kan användaren endast köra frågor mot data från Studie 1; när användaren agerar som gruppen Studie 2, endast mot data från Studie 2.

I diagrammet motsvarar Studie 1-gruppen role-study-1, och Studie 2-gruppen motsvarar role-study-2.

Prerequisites

  • En arbetsyta med Unity Catalog aktiverat och RBAC aktiverat. Se Aktivera RBAC.
  • Behörigheter för kontoadministratör eller arbetsytadministratör för att skapa roller, ge Assume-behörigheten och hantera arbetsytans tilldelningar. Se Vem kan hantera grupper?.
  • Behörigheter för arbetsytadministratörer för att konfigurera rättigheter, beräkningsåtkomst och delningsbegränsningar.
  • En befintlig testkatalog med hanterad lagring, tillgänglig från arbetsytan. Administratören som skapar datan måste äga katalogen. Denna handledning använder trials med nya scheman study_1 och study_2. Använd en katalog utan breda anslag som ger forskaren eller endera rollen tillgång till båda dataseten. Se: Skapa kataloger.
  • Ett SQL-lager med behörigheten Kan använda beviljad till katalogägaren som skapar testdatauppsättningarna. Personen som ger lageråtkomst behöver arbetsyteadministratörsbehörighet eller behörigheten Kan hantera på lagret.
  • En kontogrupp som innehåller forskarna, namngiven trial-researchers i detta exempel. En av dess medlemmar deltar i valideringen med sin egen inloggning. Denna forskare får inte vara administratör, katalogägare eller medlem i en grupp med bred dataåtkomst.
  • En arbetsytemapp för varje rolls testnotebook. Workspace-administratören konfigurerar åtkomst till dessa mappar i steg 3.
  • För steg 8 konfigureras en revisionsläsare enligt beskrivningen i Verifiera revisionsattribution.

Byt ut dina egna katalog-, grupp- och arbetsytenamn genomgående. Använd fiktiva testdata och nya scheman och roller så att rensningen inte påverkar andra arbetsbelastningar.

Steg 1: Skapa testdatauppsättningarna

Om något av de två schemana redan finns, välj ett nytt schemanamn istället för att ersätta befintliga objekt.

Som katalogägare, öppna SQL-editorn, välj test warehouse och kör:

CREATE SCHEMA trials.study_1;
CREATE SCHEMA trials.study_2;

CREATE TABLE trials.study_1.patient_info (
  participant_id STRING,
  outcome STRING
) USING DELTA;

CREATE TABLE trials.study_2.patient_info (
  participant_id STRING,
  outcome STRING
) USING DELTA;

INSERT INTO trials.study_1.patient_info VALUES ('study-1-a', 'improved');
INSERT INTO trials.study_2.patient_info VALUES ('study-2-a', 'unchanged');

Deltagarnas ID:n och resultat är fiktiva. Kör båda frågorna för att verifiera att tabellerna finns och att datavaruhuset kan läsa dem:

SELECT * FROM trials.study_1.patient_info LIMIT 100;
SELECT * FROM trials.study_2.patient_info LIMIT 100;

Varje databasfråga returnerar studiens enda rad.

Steg 2: Skapa åtkomstrollerna och ge behörigheten Assume

Den primära proceduren använder kontolokala grupper för åtkomstrollerna. Kontolokala grupper är användbara när det är enklare att skapa en grupp i Azure Databricks än att begära en ny grupp från Microsoft Entra ID. Medlemsgruppen kan vara kontolokal eller synkad från Microsoft Entra ID, som visas i detta diagram:

Kontolokal åtkomstroll: en kontolokal grupp fungerar som åtkomstroll, med en medlemsgrupp som har behörighet att överta rollen på den.

Skapa den första tomma rollen med någon av metoderna:

Kontokonsol

  1. Logga in på kontokonsolen som kontoadministratör.
  2. I sidofältet klickar du på Användarhantering.
  3. På fliken Grupper klickar du på Lägg till grupp.
  4. Ange role-study-1. Lägg inte till medlemmar.
  5. Klicka på Bekräfta.
  6. Tilldela gruppen till testarbetsytan med Workspace-åtkomst och Databricks SQL-åtkomst. Se Tilldela en grupp till en arbetsyta.

Administratörsinställningar för arbetsyta

  1. Som arbetsytadministratör, logga in på testarbetsytan.
  2. Klicka på ditt användarnamn i det övre fältet och välj Inställningar.
  3. Klicka på fliken Identitet och åtkomst .
  4. Bredvid Grupper klickar du på Hantera.
  5. Klicka på Lägg till grupp, sedan Lägg till ny.
  6. Ange role-study-1 och välj Workspace access och Databricks SQL-åtkomst. Steg 3 förklarar varför denna handledning använder båda.
  7. Klicka på Lägg till. Lägg inte till medlemmar.

Detta tilldelar också gruppen till arbetsytan och ger dig behörighet att hantera den.

Ge forskarna behörigheten Assume

Innan du tilldelar rollens dataprivilegier, ge forskarna tillåtelse att anta den:

Kontokonsol

  1. Som kontoadministratör, öppna Användarhantering> i kontokonsolen och välj role-study-1.
  2. Klicka på Behörigheter, sedan Bevilja åtkomst.
  3. Välj trial-researchers, välj Antag, och klicka på Spara.

Administratörsinställningar för arbetsyta

  1. Som administratör för arbetsytan med behörighet Hantera i rollen, öppna Inställningar>Identitet och åtkomst i testarbetsytan.
  2. Bredvid Grupper, klicka på Hantera, och välj sedan role-study-1.
  3. Klicka på Behörigheter, sedan Bevilja åtkomst.
  4. Välj trial-researchers, välj Antag, och klicka på Spara.

Upprepa stegen för att skapa rollen och ge Assume-behörigheten för role-study-2. Båda rollerna förblir tomma. Se Välj eller skapa en roll för namngivningsvägledning och API-baserad gruppskapande.

Steg 3: Konfigurera åtkomst till arbetsyta och beräkning

Du tilldelade båda rollerna till testarbetsplatsen i steg 2. Som administratör för arbetsytan, kontrollera att båda rollerna och trial-researchers har båda åtkomstbehörigheterna, inklusive grupper som redan tilldelades:

  • Åtkomst till arbetsyta: Ger åtkomst till kärnfunktioner för arbetsytor, till exempel notebook-filer, jobb, modeller och pipelines. Denna handledning använder notebooks för att verifiera delningsinställningar.
  • Databricks SQL-åtkomst: Ger åtkomst till Databricks SQL-funktioner, inklusive instrumentpaneler, frågor och SQL-lager. Denna handledning använder SQL-editorn för att verifiera dataåtkomst.

För alla åtkomsträttigheter och hur man hanterar dem, se åtkomsträttigheter.

Om inte trial-researchers är tilldelad, tilldela den till arbetsområdet. Se Tilldela en grupp till en arbetsyta.

Behåll forskarna tilldelade så att de kan logga in som sina användaridentiteter och byta tillbaka efter att ha använt en roll.

Ge varje grupp tillgång till SQL-lagret:

  1. I arbetsytans sidofält klickar du på SQL Warehouses.
  2. Öppna lagrets Behörigheter-dialogrutan.
  3. Lägg till varje grupp med Kan använda, och spara sedan.

Skapa en separat testmapp för varje roll på en plats i arbetsytan utan bred ärvd åtkomst. Bevilja role-study-1 Can Manage för sin mapp och role-study-2 Can Manage i den andra mappen. Rollerna använder dessa mappar för att skapa notebooks i Steg 7. Se Hantera arbetsytsobjekt och mapp-ACL:er.

Steg 4: Ge varje roll tillgång till dess studie

Som katalogägare kan du köra:

GRANT USE CATALOG ON CATALOG trials TO `role-study-1`;
GRANT USE SCHEMA ON SCHEMA trials.study_1 TO `role-study-1`;
GRANT SELECT ON TABLE trials.study_1.patient_info TO `role-study-1`;

GRANT USE CATALOG ON CATALOG trials TO `role-study-2`;
GRANT USE SCHEMA ON SCHEMA trials.study_2 TO `role-study-2`;
GRANT SELECT ON TABLE trials.study_2.patient_info TO `role-study-2`;

Ge inte testdataprivilegier till trial-researchers. Dess medlemmar får istället behörigheten Assume.

Gå igenom direkt och ärvd åtkomst innan testning:

  • Forskaren får inte ha någon annan behörighet eller gruppmedlemskap som ger rätt att läsa någon av tabellerna med sin användaridentitet.
  • Ingen föräldragrupp ger någon av rollerna tillgång till data i någon annan studie.
  • Kontrollera katalog- och schemabehörigheter samt tabellbehörigheter. En behörighet på katalognivå eller schemanivå SELECT gäller för nuvarande och framtida barnobjekt och kan göra båda tabellerna tillgängliga. Se Rättighetsarv.

Använd Catalog Explorers flik Behörigheter för att inspektera behörigheter i katalogen, båda schemana och båda tabellerna. Se avsnitt Hantera privilegier i Unity Catalog. Om delade behörigheter förhindrar denna konfiguration, använd en isolerad testkatalog eller arbetsyta. Att ta bort en delad behörighet kan störa orelaterade användare och roller.

Steg 5: Begränsa delning av rollägda arbetsytetillgångar

Utan delningsbegränsning kan en användare som agerar som en roll dela resurser på arbetsytan som rollen äger. Konfigurera begränsningen för båda rollerna:

  1. Som administratör för arbetsområdet, klicka på ditt användarnamn och välj Inställningar.
  2. Klicka på Avancerat.
  3. Hitta Begränsa delning för grupper och klicka på redigera-knappen.
  4. Lägg till role-study-1 och role-study-2. Behåll alla grupper som redan finns i listan.
  5. Klicka på Spara.

Denna begränsning gäller när man agerar i en begränsad roll. Den styr delning av tillgångar i arbetsytan som rollen äger. Den kontrollerar inte behörigheter på Unity Catalog-objekt, och den blockerar inte alla sätt att kopiera data. Se Kontroller för delning av arbetsytas tillgångar.

Steg 6: verifiera dataåtkomst för varje identitet

En av dina forskare genomför dessa kontroller med sin egen inloggning:

  1. Logga in på testarbetsytan och kontrollera att ditt användarnamn finns under arbetsytans namn.

  2. Öppna SQL-editorn och välj testlagret.

  3. Kör varje fråga separat:

    SELECT * FROM trials.study_1.patient_info LIMIT 100;
    SELECT * FROM trials.study_2.patient_info LIMIT 100;
    

    Båda förfrågningarna misslyckas med behörighetsfel.

  4. Klicka på arbetsytans namn i det övre fältet, håll muspekaren över det aktuella arbetsområdet och välj role-study-1 från rollväxlaren.

  5. Efter att arbetsytan laddats om, verifiera rollnamnet, öppna SQL-editorn, välj samma warehouse och upprepa båda SQL-frågorna. Endast Studie 1-frågan körs.

  6. Byt till role-study-2 och upprepa sökningarna. Endast Study 2-frågan körs utan fel.

  7. Byt tillbaka till ditt användarnamn och upprepa kontrollerna. Båda förfrågningarna nekas igen.

Aktiv identitet Sökfråga för studie 1 Fråga 2 i studien
Forskarens användaridentitet Behörighetsfel Behörighetsfel
role-study-1 Returnerar study-1-a Behörighetsfel
role-study-2 Behörighetsfel Returnerar study-2-a

En saknad tabell, ett otillgängligt datalager eller ett autentiseringsfel visar inte exklusiv åtkomst. Katalogägarens kontroller i steg 1 visar att båda tabellerna existerar. Om en oväntad sökfråga lyckas, granska behörigheterna och medlemskapen från steg 4 innan du går vidare.

För andra sätt att anta en roll, se Växla RBAC-roller. Att byta roller i denna webbläsare ändrar inte en separat autentiserad Databricks CLI-profil eller anslutning.

Steg 7: Kontrollera delning av resurser på arbetsytan

Samma forskare upprepar dessa kontroller för varje roll:

  1. Ta rollen med hjälp av rollväxlaren.
  2. I Workspace, högerklicka på rollens testmapp och välj Skapa>Anteckningsbok.
  3. Namnge anteckningsboken efter studien. Du behöver inte köra kod i den.
  4. Verifiera att rollen äger den nya anteckningsboken och försök sedan dela den. Delning är inte tillgängligt medan du agerar som den begränsade rollen, även med Can Manage på asseten.

Använd ett anteckningsblock som skapades när du hade rollen, inte ett som ägs av forskaren. Se Skapa ett anteckningsblock och Verifiera begränsningen.

Steg 8: Verifiera granskningsattribution

Som granskningsläsare, kör den här frågan. Ersätt <workspace-id> med testarbetsytans ID:

SELECT event_time, service_name, action_name,
       identity_metadata.run_by, identity_metadata.run_by_display_name,
       identity_metadata.run_as, identity_metadata.run_as_display_name
FROM system.access.audit
WHERE workspace_id = '<workspace-id>'
  AND identity_metadata.run_as_display_name IN ('role-study-1', 'role-study-2')
  AND event_date >= current_date() - INTERVAL 1 DAY
ORDER BY event_time DESC;

Hitta händelserna för forskarens testfrågor och skapande av notebook. identity_metadata.run_by identifierar forskaren som initierade varje händelse och run_as identifierar rollen som användes för auktorisation. Frågefiltret filtrerar på run_as_display_name, rollens människoläsbara namn. Granskningsdata uppdateras under dagen, så en nyligen inträffad händelse kanske inte dyker upp omedelbart. Se referens för identitetsmetadata.

Valfritt: Hantera åtkomstrollerna i Microsoft Entra ID

Använd detta alternativ när din organisation hanterar grupplivscykelhantering i Microsoft Entra ID. Synkronisera en tom access-role-grupp och en medlemsgrupp till Azure Databricks via System for Cross-domain Identity Management (SCIM)-provisionering. Se Synkronisera användare och grupper från Microsoft Entra-ID med SCIM.

Åtkomstroll synkad från yourIdP: en tom grupp fungerar som åtkomstroll, med en synkroniserad medlemsgrupp som ges Assume permission på den.

Lämna varje åtkomstroll tom i Microsoft Entra ID. Att lägga till medlemmar där synkar dessa medlemskap till Azure Databricks, där medlemmar ärver datarättigheter utan att anta rollen.

Börja med nya Microsoft Entra ID-grupper

För att använda nya Microsoft Entra ID-grupper istället för konto-lokala roller i steg 2, slutför följande steg:

  1. I Microsoft Entra ID, skapa en tom grupp för varje åtkomstroll.
  2. Identifiera eller skapa den medlemsgrupp som innehåller forskarna.
  3. Synka åtkomstrollerna och medlemsgrupp till ditt Azure Databricks-konto.
  4. Ge medlemsgruppen tillståndet Assume-behörighet för varje åtkomstroll med proceduren i steg 2.

Återanvänd en befintlig Microsoft Entra ID-grupp

Om en grupp synkroniserad från Microsoft Entra ID redan har önskade datarättigheter i Azure Databricks, kan du behålla dessa beviljanden genom att återanvända gruppen som en åtkomstroll:

  1. Skapa en ny medlemsgrupp i Microsoft Entra ID. Till exempel, om den befintliga gruppen är clinical-trial-1-ds, skapa clinical-trial-1-ds-members.
  2. Flytta varje medlem i den befintliga gruppen till den nya medlemsgruppen, och lämna den befintliga gruppen tom.
  3. Synkronisera båda grupperna till Azure Databricks och kontrollera att åtkomstrollen inte har några medlemmar.
  4. Ge den nya medlemsgruppen Assume-behörigheten för åtkomstrollen. Granska andra bidrag eller medlemskap som fortfarande kan ge forskare fortsatt tillgång till data.

Den befintliga gruppen behåller sina dataprivilegier och arbetsytbehörigheter. Du behöver inte återskapa dessa behörigheter, men kontrollera att de matchar den avsedda studiegränsen. Planera medlemskapsbytet med gruppens ägare eftersom användare förlorar ärvda rättigheter när de lämnar den ursprungliga gruppen.

Slutför konfigurationen av arbetsytan och kontrollerna

Tilldela både åtkomstrollerna och medlemsgruppen till arbetsytan och konfigurera behörigheter och beräkningsåtkomst enligt steg 3. För att istället kräva rollantagande för åtkomst till arbetsytan, se Tutorial: Kräv att användare antar en roll för åtkomst till arbetsytan.

För nya åtkomstroller, ge dataåtkomst som i steg 4 och åtkomst till arbetsyteresurser som i steg 3. För återanvända grupper, granska de befintliga beviljandena istället för att ersätta dem.

Verifiera att medlemsgruppen har behörigheten Assume för varje åtkomstroll. Alla dess medlemmar kan då ta den rollen.

Konfigurera delningsbegränsningar och upprepa data-, delnings- och revisionskontroller från steg 5 till 8 med Microsoft Entra ID-gruppnamn och datamängder.

Rensa

För ett tillfälligt test, ta bort endast de resurser och behörigheter som skapats för denna handledning:

  1. Som katalogägare, kontrollera att de två tabellerna endast innehåller tutorialens testdata och kör sedan:

    DROP TABLE trials.study_1.patient_info;
    DROP TABLE trials.study_2.patient_info;
    DROP SCHEMA trials.study_1 RESTRICT;
    DROP SCHEMA trials.study_2 RESTRICT;
    

    Borttagning av scheman misslyckas om andra objekt finns kvar. Ta inte bort en befintlig katalog eller ett schema som används av andra arbetsbelastningar.

  2. Som administratör för arbetsområdet, ta bort testnotebookar och mappar. Granska eventuella andra tillgångar som innehas av dessa roller innan du tar bort dem.

  3. Återkalla behörighetstilldelningarna för Assume-behörigheten och resursbehörigheterna som skapats för testet, inklusive katalog- och lagerbehörighetstilldelningarna. Ta bort testspecifika arbetsyte-tilldelningar och bevara forskarnas befintliga åtkomst.

  4. Ta bort testrollerna från Begränsa delning för grupper, och lämna andra poster intakta.

  5. Ta bort nyligen skapade tomma roller först efter att ha verifierat att ingen arbetsbelastning eller tillgång fortfarande använder dem. För synkroniserade grupper, gör livscykeländringar i Microsoft Entra ID så att synkroniseringen inte återskapar raderade grupper. Behåll befintliga medlemsgrupper och deras användare.

Om du återanvänder en befintlig grupp, planera en separat rollback som återställer dess ursprungliga medlemskap och tilldelningar. Använd inte testresursrensningen för att ta bort en befintlig åtkomstmodell.

Nästa steg

Resource Description
Hantera behörigheten Assume Hantera vem som kan anta en roll via UI:t eller API:et.
Byt RBAC-roller Använd rollväxlaren, dedikerade beräkningsresurser, Databricks CLI, API eller tredjeparts BI-verktyg.
Styr resursdelning i arbetsytan med RBAC Gå igenom hur kontrollerna för delning av arbetsyteresurser gäller för roller och nästlade grupper.
Mönster för kombinerad användning Applicera radfilter eller kolumnmasker inom de tabeller en roll kan komma åt.
Begränsningar för rollbaserad åtkomstkontroll (RBAC) Kontrollera funktionsstöd, kända problem och begränsningar för grupphanterings-API:et.