Ambito della politica
L'ambito definisce a cosa si applica la politica. Ogni politica Cedar specifica tre componenti:
permit( principal is AgentCore::OAuthUser, // WHO is making the request action == AgentCore::Action::"...", // WHAT they want to do resource is AgentCore::Gateway::"..." // WHICH resource they want to access )
Entità e namespace
Cedar utilizza le entità per rappresentare i principi, le azioni e le risorse. Tutte le entità in AgentCore Gateway utilizzano lo spazio dei nomi AgentCore .
Formato dell'entità: Namespace::EntityType::"identifier"
Principale
Il principale identifica l'entità che effettua la richiesta di autorizzazione. Il tipo principale dipende da come il AgentCore gateway è configurato per l'autenticazione.
User Principal OAuth
Quando si utilizza l'autorizzazione OAuth, il principale è: AgentCore::OAuthUser
principal is AgentCore::OAuthUser
Componenti:
-
principal- L'entità che effettua la richiesta di autorizzazione -
AgentCore::OAuthUser- Tipo di entità che rappresenta OAuth-authenticated gli utenti -
is- Operatore di controllo del tipo (corrisponde a qualsiasi OAuthUser entità)
I principali sono OAuth-authenticated utenti. Ogni utente dispone di un ID univoco derivante dalla rivendicazione secondaria JWT.
Entità principale IAM
Quando si utilizza l'autorizzazione AWS_IAM, il principale è: AgentCore::IamEntity
principal is AgentCore::IamEntity
Componenti:
-
principal- L'entità che effettua la richiesta di autorizzazione -
AgentCore::IamEntity- Tipo di entità che rappresenta i IAM-authenticated chiamanti -
is- Operatore di controllo del tipo (corrisponde a qualsiasi IamEntity)
I principali IAM hanno un id attributo che contiene l'ARN IAM del chiamante. È possibile utilizzare il pattern matching su questo attributo per implementare il controllo degli accessi basato sull'account o sul ruolo.
Azione
L'azione specifica l'operazione richiesta:
action == AgentCore::Action::"RefundTool___process_refund"
Componenti:
-
action- L'operazione richiesta -
AgentCore::Action::"RefundTool___process_refund"- Entità d'azione specifica -
==- Operatore Exact Match (solo questa azione specifica)
Le azioni rappresentano le chiamate agli strumenti nell'MCP AgentCore Gateway. Ogni strumento ha un'entità di azione corrispondente.
Nomi delle azioni per tipo di destinazione
L'identificatore di azione nella politica dipende dal tipo di destinazione configurato sul gateway:
| Target type (Tipo di destinazione) | Formato dell'azione | Esempio |
|---|---|---|
|
MCP |
|
|
|
AgentCore Runtime |
|
|
|
Proxy (HTTP) |
|
|
Azioni multiple
Cedar non supporta le azioni con i jolly. Ogni azione deve essere referenziata esplicitamente utilizzando l'identificatore di azione esatto (). AgentCore::Action::"ToolName___operation" Per raggruppare più strumenti in un'unica regola, utilizza un Gateway Target (un Action Group) e scrivi politiche in base a quell'obiettivo.
Ad esempio, per consentire l'accesso solo agli strumenti il cui nome inizia con Read, puoi creare un Gateway Target chiamato ReadToolsTarget che include ciascuno di questi strumenti e quindi scrivere una policy come:
permit( principal, action in AgentCore::Action::"ReadToolsTarget", resource == AgentCore::Gateway::"<gateway-arn>" );
Ciò consentirà tutti gli strumenti inclusi in quell'obiettivo a seconda dell'effetto della politica.
Risorsa
La risorsa identifica l'obiettivo della richiesta:
resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/refund-gateway"
Componenti:
-
resource- L'obiettivo della richiesta -
AgentCore::Gateway- Tipo di entità che rappresenta le istanze del gateway -
==- Operatore Exact Match (corrisponde a questo AgentCore gateway specifico)
Il AgentCore Gateway è il server MCP che indirizza le chiamate agli strumenti.
Requisiti relativi alla specificità delle risorse
Quando si specificano una o più azioni specifiche, è necessario utilizzare ARN AgentCore gateway specifici:
// Required: Specific Gateway ARN for specific action(s) resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/refund-gateway"
Questo approccio si applica a:
-
Azione singola:
action == AgentCore::Action::"ToolName" -
Molteplici azioni specifiche:
action in [AgentCore::Action::"Tool1", AgentCore::Action::"Tool2"]
Usa i controlli di tipo solo quando abbini a qualsiasi azione:
// For policies covering any action (not specific tools) resource is AgentCore::Gateway
Esempi:
// Blocks all actions forbid(principal, action, resource); // Allow any CallTool action permit(principal, action in AgentCore::Action::"CallTool", resource is AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/refund-gateway");
Gli ARN AgentCore gateway specifici forniscono:
-
Isolamento di sicurezza tra istanze AgentCore Gateway
-
Separazione degli ambienti di produzione e sviluppo
-
Fine-grained controllo degli accessi per AgentCore gateway