Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Modelli politici comuni
Questi esempi dimostrano i modelli politici Cedar utilizzati frequentemente. I modelli funzionano sia con l'autenticazione OAuth che IAM: selezionate il tipo di principale appropriato per la configurazione del Gateway. AgentCore Per informazioni dettagliate sugli attributi principali, consulta Attributi principali. Attributi principali
Questi modelli si applicano indipendentemente dal tipo di autenticazione.
Arresto di emergenza
Disabilita tutte le chiamate agli strumenti sull'intero gateway:
forbid( principal, action, resource );
Caso d'uso: arresto di emergenza, modalità di manutenzione o risposta agli incidenti.
Effetto: sovrascrive tutte le politiche di autorizzazione a causa della semantica vietata la vittoria.
Disattiva uno strumento specifico
Disattiva uno strumento specifico mantenendone operativi gli altri:
forbid( principal, action == AgentCore::Action::"RefundTool___process_refund", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/refund-gateway" );
Caso d'uso: disattiva temporaneamente uno strumento problematico senza influire sulle altre funzionalità.
Blocca l'accesso degli utenti
Impedisci a utenti o account specifici di eseguire qualsiasi azione:
OAuth: blocca un utente specifico
Blocca un utente abbinando il tag del nome utente:
forbid( principal is AgentCore::OAuthUser, action, resource ) when { principal.hasTag("username") && principal.getTag("username") == "suspended-user" };
Caso d'uso: revoca immediata dell'accesso per un account utente compromesso o sospeso.
IAM: blocca un account specifico
Blocca i chiamanti da un AWS account specifico:
forbid( principal is AgentCore::IamEntity, action, resource ) when { principal.id like "*:444455556666:*" };
Caso d'uso: impedisce agli account di test o non autorizzati di accedere agli strumenti di produzione. Il modello
:444455556666:
corrisponde a qualsiasi formato ARN (ruolo presunto, utente IAM o ruolo IAM) contenente quell'ID di account.
Role-based controllo degli accessi
Limita l'accesso in base ai ruoli. OAuth utilizza i tag di ruolo; IAM utilizza i pattern ARN dei ruoli.
OAuth: utilizzo dei tag di ruolo
Consenti l'accesso solo agli utenti con ruoli specifici:
permit( principal is AgentCore::OAuthUser, action == AgentCore::Action::"AdminAPI___delete_resource", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/admin" ) when { principal.hasTag("role") && (principal.getTag("role") == "admin" || principal.getTag("role") == "manager") };
Caso d'uso: consenti le operazioni amministrative solo per gli utenti con ruoli di amministratore o manager.
IAM: utilizzo degli ARN dei ruoli IAM
Consenti l'accesso solo ai chiamanti che utilizzano ruoli IAM specifici. Puoi utilizzare la principal == corrispondenza esatta o la corrispondenza dei principal.id like modelli:
// Exact match (recommended for single-role policies) permit( principal == AgentCore::IamEntity::"arn:aws:sts::123456789012:assumed-role/AdminRole", action == AgentCore::Action::"AdminAPI___delete_resource", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/admin" );
Caso d'uso: consenti le operazioni amministrative solo per i chiamanti che assumono il AdminRole ruolo IAM. L'ID dell'entità Cedar per i ruoli assunti utilizza il formato. arn:aws:sts::<account>:assumed-role/<role-name>
Variazioni che utilizzano il pattern matching:
// Match a specific role from any account principal.id like "arn:aws:sts::*:assumed-role/AdminRole" // Match any role in a specific account principal.id like "arn:aws:sts::123456789012:assumed-role/*"
Operazioni sui tipi di dati
Cedar supporta vari tipi di dati in condizioni. Questi esempi utilizzano i principi OAuth (). AgentCore::OAuthUser Per i IAM-authenticated gateway, usa AgentCore::IamEntity invece: la logica di convalida dell'input rimane identica.
Numeri interi (lunghi)
// Check if passenger count is exactly 2 permit( principal is AgentCore::OAuthUser, action == AgentCore::Action::"TravelAPI___search_flights", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/travel" ) when { context.input.passengers == 2 };
Stringhe
// Check if payment method is credit card permit( principal is AgentCore::OAuthUser, action == AgentCore::Action::"PaymentAPI___process_payment", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/payment" ) when { context.input.paymentMethod == "credit-card" };
Elenchi (set)
// Check if country is in allowed list permit( principal is AgentCore::OAuthUser, action == AgentCore::Action::"ShippingAPI___calculate_rate", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/shipping" ) when { ["US", "CA", "MX"].contains(context.input.country) };
Verifica dei campi opzionali
// Require optional field to be present permit( principal is AgentCore::OAuthUser, action == AgentCore::Action::"OrderAPI___create_order", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/order" ) when { context.input has shippingAddress };