Zelfstudie: voeg servicebeleidsbeveiligingen toe aan een modelservice

Important

Beleidsregels voor services zijn in bèta. Unity AI Gateway is algemeen beschikbaar, maar de bètamogelijkheden zijn apart ingeschakeld. Een accountbeheerder moet de Unity AI Gateway bètafuncties inschakelen via de pagina Voorlezen van de accountconsole. Zie Azure Databricks previews beheren.

Deze tutorial begeleidt je bij het toevoegen van beveiligingen aan een Model Service, op twee elkaar aanvullende manieren. In Azure Databricks zijn guardrails servicebeleidsregels. Een modelservice kan fungeren als front-end voor een door Azure Databricks gehost model of een externe provider zoals OpenAI, Anthropic of Google, en u beheert beide op dezelfde manier:

  • Ingebouwde servicerichtlijnen (vangrails): beheerde, door Azure Databricks geleverde controles voor veelvoorkomende risico's zoals PII, onveilige inhoud, jailbreakpogingen en hallucinaties. U voegt er een bij door deze te selecteren in de gebruikersinterface, zonder code om te schrijven.
  • Aangepast servicebeleid: SQL-functies die u schrijft voor regels die specifiek zijn voor uw organisatie, zoals een vertrouwelijke projectcodenaam of een verboden antwoordpatroon.

Voor servicebeleidsconcepten, de ingebouwde kaders en de volledige ontwerpverwijzing, raadpleegt u Servicebeleid voor AI-beveiligbare producten, een servicebeleid maken en koppelen, en naslaginformatie over de servicebeleidsfunctie.

U koppelt beide op dezelfde manier, op het tabblad Beleid van een modelservice in de gebruikersinterface van Unity AI Gateway en u kunt deze combineren. Azure Databricks evalueert elk op twee punten:

  • De invoerfase (ON CALL) voordat het model wordt aangeroepen.
  • De uitvoerfase (ON RESULT) nadat het model reageert.

In de gebruikersinterface selecteert u de fase wanneer u het beleid koppelt. Een aangepast beleid kan zich ook tot één fase beperken door te vertakken op event:type.

Scenario: Uw team maakt een LLM beschikbaar via een modelservice (main.default.team_chat) die apps en agents aanroepen. Je wilt onveilige of schadelijke inhoud blokkeren met een beheerde vangrail, elke prompt blokkeren die een vertrouwelijk project noemt, en antwoorden blokkeren die een onveilige link bevatten, allemaal zonder de applicatiecode te wijzigen.

Aan het einde van deze zelfstudie hebt u het volgende:

  • Een ingebouwde beveiliging tegen onveilige inhoud in de dienst.
  • Een aangepast verzoekbeleid dat een vertrouwelijke codenaam blokkeert in de invoerfase (ON CALL).
  • Een aangepast responsbeleid dat onveilige verbindingen blokkeert in de uitvoerfase (ON RESULT).
  • Alle drie zijn gekoppeld en geverifieerd vanuit de speeltuin van de modelservice.

Prerequisites

  • Een werkruimte waarvoor Unity Catalog is ingeschakeld. Zie Aan de slag met Unity Catalog.
  • De Unity AI Gateway bètafuncties zijn ingeschakeld voor je account, waarmee servicebeleid en andere Unity AI Gateway Beta-functies worden ingeschakeld. Zie Azure Databricks previews beheren.
  • Een modelservice om te beheren, en EXECUTE erop zodat u kunt testen. Om er een te maken, zie Create and manage model APIs (model services). In deze zelfstudie wordt gebruikgemaakt van main.default.team_chat.
  • MANAGE in de Model Service, om beleidsregels te koppelen.
  • CREATE FUNCTION op het schema waarin u de aangepaste beleidsfuncties aanmaakt (main.governance in deze zelfstudie).
  • Voor het ingebouwde kader: het evaluatormodel waarmee de controle van het kader (de LLM-rechter) wordt uitgevoerd, is vooraf geselecteerd, dus er is geen installatie nodig. Als u een andere evaluator selecteert bij Geavanceerde opties, hebt u CAN_QUERY daarvoor nodig.

Stap 1: Een ingebouwde beveiliging toepassen

Ingebouwde beveiligingen zijn beheerde LLM-judge-controles. U selecteert er een in het menu Guardrailtype ; de evaluatiemodelservice die de controle uitvoert (de LLM-rechter) wordt vooraf voor u geselecteerd. De beschikbare vangrails zijn:

  • Onveilige inhoud (system.ai.block_unsafe_content): weigert onveilige of schadelijke inhoud.
  • Jailbreak (system.ai.block_jailbreak): weigert prompt-injectie en jailbreakpogingen (alleen aanvragen).
  • Hallucinatie (system.ai.block_hallucination): weigert hallucineerde reacties (alleen reacties).

Bevestig de veiligheidsrail voor onveilige inhoud aan je modelservice:

  1. Klik in de zijbalk van de werkruimte op AI Gateway.
  2. Selecteer op het tabblad Modellen de modelservice (main.default.team_chat).
  3. Open het tabblad Beleid en klik vervolgens op Nieuw beleid.
  4. Voer een naam in, zoals block-unsafe-content.
  5. Houd onder Toegepast opAlle accountgebruikers of beperk het beleid tot specifieke principals.
  6. Selecteer in het guardrailtypeOnveilige inhoud.
  7. Rang instellen op 1. Prioriteit bepaalt de evaluatievolgorde: de laagste prioriteit wordt als eerste uitgevoerd voor het verzoek en als laatste voor het antwoord.
  8. Selecteer onder Fase zowel invoerbeveiligingen (vóór het model) als uitvoerbeveiligingen (na het model), zodat de beveiliging wordt uitgevoerd voor verzoeken en antwoorden.
  9. Klik op Create policy (Beleid maken).

De vangrail maakt gebruik van een vooraf geselecteerde Evaluator-modelservice (de LLM-beoordelaar die de controle uitvoert). Als u een ander model wilt gebruiken, vouwt u Geavanceerde opties uit voordat u het beleid maakt; u nodig hebt CAN_QUERY voor het model dat u selecteert.

Note

Nadat u een beleid voor een modelservice hebt toegevoegd of gewijzigd, kunt u een korte tijd toestaan voordat de wijziging van kracht wordt voordat u gaat testen. Tijdens de bèta van servicebeleid kan het een paar minuten duren om het te verspreiden.

Stap 2: Een aangepast aanvraagbeleid toevoegen

Waarborgen dekken veelvoorkomende risico's. Schrijf een aangepast beleid voor een regel die specifiek is voor uw organisatie. Een aangepaste beleidsregel is een SQL UDF die (event VARIANT) als invoer neemt en een beslissing retourneert; lees de tekst van het bericht uit event:context.message, een API-onafhankelijke projectie van het laatste bericht van de gebruiker of assistent.

Dit beleid weigert elke aanvraag die een vertrouwelijke projectcodenaam vermeldt. De event:type::string = 'request' controle beperkt het tot de invoerfase (ON CALL):

CREATE OR REPLACE FUNCTION main.governance.block_confidential_codename(
  event VARIANT
)
RETURNS VARIANT
LANGUAGE SQL
RETURN
  CASE
    WHEN event:type::string = 'request'
      AND contains(lower(event:context.message::string), 'project aurora')
    THEN to_variant_object(named_struct('result', 'DENY', 'reason', 'Requests about confidential projects are not permitted.'))
    ELSE to_variant_object(named_struct('result', 'ALLOW', 'reason', ''))
  END;

contains en lower maken deel uit van de SQL-subset die wordt ondersteund in beleidsinstanties. Zie de naslaginformatie over de servicebeleidsfunctie voor de volledige lijst en de regels voor het schrijven van een beleidsfunctie.

Koppel de functie als een aangepast beleid, dat is afgestemd op de aanvraagfase:

  1. Klik op het tabblad Beleid van de modelservice op Nieuw beleid en voer een naam in, zoals block-codename.
  2. Selecteer Aangepast in kadertype.
  3. Klik op Aangepaste functie, selecteer de functie en selecteer main.governance.block_confidential_codename.
  4. Selecteer onder Fase alleen invoerbeveiligingen (vóór het model), omdat dit een aanvraagbeleid is.
  5. Stel Rang in op 10en klik vervolgens op Beleid maken.

Stap 3: Een aangepast antwoordbeleid toevoegen

Een model kan ook content genereren die u niet wilt doorlaten. Met dit beleid wordt een antwoord geweigerd dat een onveilige koppeling bevat (een http:// URL of een javascript: URI). De event:type::string = 'response' check beperkt het tot de uitvoerfase (ON RESULT), zodat een gebruiker die die schema's alleen in een prompt noemt, het niet activeert op weg naar binnen:

CREATE OR REPLACE FUNCTION main.governance.block_unsafe_links(
  event VARIANT
)
RETURNS VARIANT
LANGUAGE SQL
RETURN
  CASE
    WHEN event:type::string = 'response'
      AND (contains(lower(event:context.message::string), 'http://')
        OR contains(lower(event:context.message::string), 'javascript:'))
    THEN to_variant_object(named_struct('result', 'DENY', 'reason', 'Response contained an insecure link and was blocked by policy.'))
    ELSE to_variant_object(named_struct('result', 'ALLOW', 'reason', ''))
  END;

Koppel de functie als aangepast beleid, gericht op de reactiefase:

  1. Klik op het tabblad Beleid op Nieuw beleid en voer een naam in, zoals block-unsafe-links.
  2. Selecteer in Type guardrailAangepast en selecteer vervolgens main.governance.block_unsafe_links onder Aangepaste functie.
  3. Selecteer onder Fase alleen uitvoerbeveiligingen (na het model), omdat dit een antwoordbeleid is.
  4. Stel Rang in op 20en klik vervolgens op Beleid maken.

Stap 4: Verifiëren

Alle drie de beleidsregels verschijnen nu op het tabblad Beleidsregels van de service. Gebruik de playground om te controleren of ze allemaal worden geactiveerd:

  1. Op de pagina van de modelservice klikt u op Chat in playground.
  2. Stuur een prompt die onveilige of schadelijke inhoud vraagt. De beveiliging voor onveilige inhoud blokkeert dit, en de reactie meldt dat de inhoud door beleid is geblokkeerd.
  3. Verzend Tell me about Project Aurora. het aanvraagbeleid blokkeert het met de reden dat aanvragen over vertrouwelijke projecten niet zijn toegestaan.
  4. Verzend een prompt waarmee het model een http:// koppeling retourneert. Het responsbeleid blokkeert het in de uitvoerfase (ON RESULT) met de reden dat Response een onveilige link bevatte en door het beleid werd geblokkeerd.
  5. Een gewone prompt verzenden. Het retourneert een normale voltooiing.

Om de service vanuit uw eigen apps of scripts te testen, raadpleeg Model-API's opvragen (modelservices).

Schoonmaken

Wanneer u klaar bent, verwijdert u het beleid op het tabblad Beleid : open elk beleid dat u hebt gemaakt en verwijder het. Vervolgens kunt u desgewenst de aangepaste functies verwijderen:

DROP FUNCTION IF EXISTS main.governance.block_confidential_codename;
DROP FUNCTION IF EXISTS main.governance.block_unsafe_links;

Volgende stappen