Comprensione delle politiche Cedar
Policy in AgentCore utilizza le politiche Cedar per controllare l'accesso agli strumenti AgentCore Gateway. Questa sezione spiega la struttura delle politiche di Cedar, la semantica di valutazione e i concetti chiave.
Argomenti
Policy di esempio
Prendi in considerazione uno strumento di elaborazione dei rimborsi con questi requisiti:
-
Solo l'utente «John» può elaborare i rimborsi
-
I rimborsi sono limitati a 500$ o meno
La politica Cedar che impone questi requisiti:
permit( principal is AgentCore::OAuthUser, action == AgentCore::Action::"RefundTool___process_refund", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:your-region:your-account-id:gateway/refund-gateway" ) when { principal.hasTag("username") && principal.getTag("username") == "John" && context.input.amount < 500 };
Questa politica consente l'elaborazione dei rimborsi solo quando l'utente è «John» e l'importo del rimborso è inferiore a $500.
Struttura delle policy
Le politiche Cedar consistono in tre componenti principali:
-
Effetto: determina se consentire o negare l'accesso (
permito)forbid -
Ambito: specifica il principale, l'azione e la risorsa a cui si applica la politica
-
Condizione: definisce una logica aggiuntiva che deve essere soddisfatta (
whenounless) e può fare riferimento ai parametri dello strumento (tramite il contesto) e al token OAuth (tramite i tag)
Effetti politici
Le politiche Cedar utilizzano due effetti per controllare l'accesso:
-
permit- Consente all'azione di procedere -
forbid- Nega l'azione
Rifiuto per default
Tutte le azioni sono negate per impostazione predefinita. Se nessuna politica corrisponde a una richiesta, Cedar restituisce DENY. È necessario scrivere in modo esplicito politiche di autorizzazione per consentire le azioni.
Valutazione delle autorizzazioni
Cedar utilizza un modello di valutazione proibito-override-permessi:
-
Cedar valuta tutte le politiche che si applicano alla richiesta
-
Se una politica di divieto corrisponde, il risultato è NEGATO
-
Se almeno una politica di autorizzazione corrisponde e nessuna politica di divieto corrisponde, il risultato è ALLOW
-
Se nessuna politica corrisponde, il risultato è DENY (negazione predefinita)
Indipendenza delle politiche
Ogni politica Cedar viene valutata in modo indipendente. La valutazione di una politica dipende solo da:
-
L'ambito (principale, azione, risorsa)
-
Il contesto e i tag
Le politiche non fanno riferimento né dipendono da altre politiche.
Algoritmo di valutazione delle politiche
Quando viene valutata una richiesta, il motore delle politiche determina la decisione di autorizzazione utilizzando il seguente algoritmo:
-
Se una
forbidpolitica corrisponde alla richiesta, la decisione è NEGATA. -
Se nessuna
forbidpolitica corrisponde alla richiesta e almeno unapermitpolitica corrisponde, la decisione è ALLOW. -
Se
forbidnessuna delle duepermitpolitiche corrisponde alla richiesta, la decisione è NEGATA.
Questo modello di valutazione applica una posizione di negazione predefinita.
Una forbid politica non può mai portare a una decisione ALLOW. La unless clausola relativa a una forbid politica specifica le condizioni alle quali tale forbid politica non si applica; non concede l'autorizzazione e non sostituisce una politica corrispondente. permit