Guardrail nelle politiche
Questa sezione spiega come definire Bedrock Guardrails nelle politiche. Bedrock Guardrails fornisce protezioni configurabili che possono essere eseguite sia sulle richieste che sulle risposte per proteggere le applicazioni AI. Attualmente è possibile definire nelle policy attacchi rapidi, filtri dei contenuti e protezioni relative alle informazioni sensibili. Ogni guardrail deve essere configurato con una categoria e una soglia comprese tra 0 e 1.
Quando un guardrail valuta il contesto, restituisce un punteggio di confidenza compreso tra 0 e 1, che indica il grado di confidenza che il contenuto valutato presenta la proprietà definita (ad es.). PROMPT_INJECTION
Disponibilità regionale di Guardrails
La tabella seguente mostra quali AWS regioni sostengono i guardrail nella loro politica:
| Stati Uniti orientali (Virginia settentrionale) | Stati Uniti orientali (Ohio) | Stati Uniti occidentali (Oregon) | Europa (Francoforte) | Europa (Irlanda) | Europa (Londra) | Europe (Paris) | Europa (Stoccolma) | Asia Pacifico (Mumbai) | Asia Pacifico (Singapore) | Asia Pacifico (Sydney) | Asia Pacifico (Tokyo) | Asia Pacifico (Seul) | Canada (Centrale) | Sud America (San Paolo) | AWS GovCloud (US-West) | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Supporto Guardrails |
✅ |
❌ |
❌ |
❌ |
❌ |
✅ |
❌ |
✅ |
❌ |
❌ |
✅ |
✅ |
❌ |
❌ |
❌ |
❌ |
Prima di iniziare
Prima di iniziare, devi configurare correttamente il tuo ruolo IAM.
Permissions
Il AgentCore Gateway Execution Role configurato sul gateway associato al tuo policy engine deve disporre delle autorizzazioni sia per le AgentCore operazioni Bedrock che per Bedrock Guardrails. L'bedrock:InvokeGuardrailChecksautorizzazione è richiesta perché il piano dati Policy utilizza le credenziali FAS (Forward Access Session) derivate dal ruolo di esecuzione del gateway per chiamare l'API Bedrock Guardrails per conto dell'utente.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "bedrock-agentcore:*", "Resource": "*" }, { "Effect": "Allow", "Action": "bedrock:InvokeGuardrailChecks", "Resource": "*" } ] }
Guardrail supportati
| Nome Safeguard | Tipo di entità | Categorie di salvaguardia |
|---|---|---|
|
Filtro dei contenuti |
|
|
|
Rilevamento tempestivo degli attacchi |
|
|
|
Informazioni sensibili |
|
|
Definizione dei limiti nelle politiche
Per definire i guardrail nelle politiche, è possibile scrivere una politica sotto forma di codice o descrivere la politica in linguaggio naturale. Analogamente a qualsiasi politica esistente che potresti aver già creato, devi specificare un effetto (ad esempiopermit) con una condizione (when guardrails). Nella condizione, è necessario fornire la protezione specifica del guardrail che si desidera abilitare, la categoria di protezione da utilizzare, il contesto che si desidera che venga valutato dal guardrail e la soglia del punteggio di confidenza.
Esempio di definizione del guardrail
suppressOutput (principal, action == AgentCore::Action::"<TARGET_NAME>_<METHOD>:<URI>", resource == AgentCore::Gateway::"<GATEWAY_ARN>") when guardrails { BedrockGuardrails::ContentFilter(["HATE"],[context.output.message])["HATE"] .confidenceScore .greaterThan(decimal("0.2")) };
Specificazione di un parapetto
Per scegliere un tipo di entità di salvaguardia specifico, usa il namespace: BedrockGuardrails
| Salvaguardia | Nome della funzione Guardrail |
|---|---|
|
Filtro dei contenuti |
|
|
Attacco rapido |
|
|
Informazioni sensibili |
|
Selezione di una categoria di protezione
Seleziona una categoria per la protezione specificata (vediGuardrail supportati).
ad esempio BedrockGuardrails::ContentFilter(["HATE"],[context.output.message])
Effetti per i guardrail
Per creare guardrail da utilizzare nelle richieste di autorizzazione, usa gli effetti and. permit forbid Questi continuano a regolare l'autorizzazione delle richieste.
forbid (principal, action == AgentCore::Action::"<TargetName>___POST:/invocations", resource) when guardrails { BedrockGuardrails::PromptAttack(["PROMPT_INJECTION"], [context.input.prompt])["PROMPT_INJECTION"].confidenceScore.greaterThan(decimal("0.6")) };
Per creare guardrail da utilizzare per sopprimere gli output di strumenti, agenti o modelli, utilizzate l'effetto. suppressOutput suppressOutputè un nuovo effetto che agisce sui dati restituiti da un'azione. Una volta completata un'azione autorizzata, valuta le uscite rispetto al guardrail e sopprime l'output quando il guardrail viene violato.
suppressOutput (principal, action == AgentCore::Action::"<TargetName>___POST:/invocations", resource) when guardrails { BedrockGuardrails::SensitiveInformation(["US_SOCIAL_SECURITY_NUMBER"], [context.output.text])["US_SOCIAL_SECURITY_NUMBER"] .confidenceScore .greaterThan(decimal("0.5")) };
Passare il contesto al guardrail
Quando si definiscono i guardrail nella policy, è necessario specificare percorsi di dati (ad esempiocontext.input.message) che identifichino i valori da estrarre dal payload dell'azione. Il guardrail valuta i valori estratti. Puoi specificare uno o più percorsi verso i dati in base alla tua richiesta o allo schema di risposta.
ad esempio [context.input.message, context.input.systemPrompt]
Soglie per i guardrail
Grazie ai filtri di contenuto e al rilevamento tempestivo degli attacchi, il guardrail restituisce un punteggio di confidenza, che è un valore numerico compreso nell'intervallo [0, 1], dove 0 è bassa confidenza e 1 è alta. Il punteggio indica la sicurezza con cui il guardrail ha rilevato una violazione. I punteggi attualmente possibili sono valori discreti {0, 0.2, 0.4, 0.6, 0.8 e 1.0}.
Per impostare una soglia, è necessario fornire il valore decimale all'operatore di confronto (ad es.). greaterThan(decimal("0.4"))
Operatori di confronto dei punteggi
È possibile applicare gli operatori di confronto seguenti a uno qualsiasi dei confidenceScoremaxConfidenceScore(), oppureminConfidenceScore():
| Operatore | Utilizzo |
|---|---|
|
|
Punteggio > soglia |
|
|
Punteggio ≥ soglia |
|
|
Punteggio < soglia |
|
|
Punteggio ≤ soglia |
Puoi utilizzare un'aggregazione nella tua politica per estrarre e confrontare i punteggi restituiti dai guardrail:
Aggregazioni
| Aggregazione | Description | Esempio |
|---|---|---|
|
|
Accedi al punteggio di confidenza per una categoria specifica (decimale |
|
|
|
Massima affidabilità in tutte le categorie scansionate (decimale) |
|
|
|
Confidenza minima in tutte le categorie scansionate (decimale) |
|
|
|
|
Come scegliere una soglia
Se non si specifica una soglia quando si richiede il servizio di creazione, AgentCore imposta un valore predefinito. Se si scrivono le politiche senza l'aiuto del servizio di creazione, è necessario fornire il valore di soglia.
Le seguenti impostazioni predefinite sono calibrate per fornire un'ampia copertura con una precisione accettabile per la maggior parte dei carichi di lavoro:
| Salvaguardare | Soglia predefinita |
|---|---|
|
Filtro dei contenuti |
0.2 |
|
Rilevamento tempestivo degli attacchi |
0.4 |
|
Informazioni sensibili |
0.2 |
Scelta di una soglia personalizzata
Se le soglie predefinite non soddisfano i tuoi requisiti, puoi determinare la soglia ottimale per il tuo carico di lavoro utilizzando uno dei seguenti approcci.
Opzione 1: valuta in base a un set di test aureo
Usa questo approccio quando disponi di una serie curata di input di test con risultati attesi chiari.
-
Crea le tue politiche e imposta la modalità del motore delle politiche su LOG_ONLY.
-
Esegui il set di test tramite il gateway a cui è collegato il tuo policy engine.
-
Esamina i log per ogni valutazione. Ogni voce di registro include il contenuto valutato e il punteggio di confidenza restituito dal guardrail.
-
Per ogni risultato, indica se il guardrail avrebbe dovuto contrassegnare il contenuto o non fare nulla (rispettivamente vero e falso).
-
Utilizzando queste etichette, combinate con i punteggi di confidenza disponibili nei registri, create una matrice di confusione con più valori di soglia. Confrontate la precisione e il richiamo a ciascuna soglia per selezionare il valore in linea con la vostra tolleranza per i falsi positivi rispetto ai rilevamenti mancati.
Opzione 2: valutazione in base al traffico di produzione
Utilizzate questo approccio quando non disponete di un set di test predefinito e desiderate eseguire la calibrazione utilizzando modelli di traffico reali.
-
Crea le tue politiche e imposta la modalità del motore delle politiche su LOG_ONLY.
-
Consenti al motore delle politiche di valutare il traffico di produzione. Ogni voce di registro include il contenuto valutato e il punteggio di confidenza restituito dal guardrail.
-
Usa an LLM-as-a-judge per etichettare ogni risultato registrato come vero (il guardrail avrebbe dovuto contrassegnare il contenuto) o false (il guardrail non avrebbe dovuto contrassegnare il contenuto).
-
Usando queste etichette, crea una matrice di confusione con più valori di soglia. Confrontate la precisione e il richiamo a ciascuna soglia per selezionare il valore in linea con la vostra tolleranza per i falsi positivi rispetto ai rilevamenti non rilevati.
Metti alla prova i guardrail nella politica
AgentCore fornisce diversi meccanismi per testare le politiche di guardrail prima di applicarle al traffico di produzione. È possibile controllare l'applicazione a livello di policy engine, a livello di policy individuale o entrambi, in modo da convalidare il comportamento del guardrail in modo incrementale. Per ulteriori informazioni, consulta Testare una policy.
Come funziona guardrails con la politica
Le policy di Guardrail possono essere applicate a qualsiasi target del gateway. I guardrail funzionano su: * obiettivi MCP — POST /mcp (JSON-RPC tools/call) * obiettivi di runtime HTTP — * obiettivi di inferenza HTTP — POST /<target>/invocations POST /inference
Quando una chiamata arriva al gateway, il Policy Evaluator esegue le seguenti operazioni:
-
Corrisponde all'ambito: identifica quali politiche di guardrail si applicano a questa richiesta
-
Estrae il contenuto: estrae il campo specificato da
dataPath(ad esempiocontext.input.message) dal corpo della richiesta -
Richiama l' InvokeGuardrailChecks API Bedrock: valuta il contenuto e inserisce i punteggi di confidenza restituiti nel contesto di valutazione delle politiche
-
Valuta la politica utilizzando i punteggi di guardrail: confronta i punteggi di confidenza restituiti con la soglia definita nella politica
-
Restituisce una decisione,
ALLOWoDENYcon annotazioni sulla politica, al gateway
Nota: i guardrail non sono deterministici. Lo stesso input può generare uscite diverse. Le politiche, tuttavia, sono deterministiche, lo stesso input produrrà sempre lo stesso risultato.
Limiti delle barriere politiche
-
Nessun supporto per regex o pattern matching: i guardrail usano il punteggio ML, non le espressioni regolari
-
Non è possibile combinare le politiche Cedar standard con i guardrail: sostituisce
when guardrails {…}when {…} -
In un blocco è necessario un guardrail: i
when guardrails {…}blocchi di guardrail devono avere almeno un guardrail definito all'interno