Comprendre les politiques de Cedar
Policy in AgentCore utilise les politiques de Cedar pour contrôler l'accès aux outils AgentCore Gateway. Cette section explique la structure des politiques de Cedar, la sémantique d'évaluation et les concepts clés.
Rubriques
Exemple de stratégie
Envisagez un outil de traitement des remboursements répondant aux exigences suivantes :
-
Seul l'utilisateur « John » peut traiter les remboursements
-
Les remboursements sont limités à 500$ ou moins
La politique de Cedar qui applique ces exigences :
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 };
Cette politique autorise le traitement des remboursements uniquement lorsque l'utilisateur est « John » et que le montant du remboursement est inférieur à 500$.
Structure d’une politique
Les politiques de Cedar se composent de trois éléments principaux :
-
Effet - Détermine s'il faut autoriser ou refuser l'accès (
permitouforbid) -
Champ d'application - Spécifie le principal, l'action et la ressource auxquels la politique s'applique
-
Condition : définit une logique supplémentaire qui doit être satisfaite (
whenouunless) et qui peut faire référence aux paramètres de l'outil (via le contexte) et au jeton OAuth (via les balises)
Effets des politiques
Les politiques de Cedar utilisent deux effets pour contrôler l'accès :
-
permit- Permet à l'action de se poursuivre -
forbid- Refuse l'action
Refus par défaut
Toutes les actions sont refusées par défaut. Si aucune politique ne correspond à une demande, Cedar renvoie DENY. Vous devez rédiger des politiques d'autorisation explicites pour autoriser les actions.
Évaluation de l'autorisation
Cedar utilise un modèle d'évaluation des dérogations interdites et des permis :
-
Cedar évalue toutes les politiques qui s'appliquent à la demande
-
Si une politique d'interdiction correspond, le résultat est DENY
-
Si au moins une politique d'autorisation correspond et qu'aucune politique d'interdiction ne correspond, le résultat est ALLOW
-
Si aucune politique ne correspond, le résultat est DENY (refus par défaut)
Indépendance des politiques
Chaque politique de Cedar est évaluée indépendamment. L'évaluation d'une politique dépend uniquement des éléments suivants :
-
Le champ d'application (principal, action, ressource)
-
Le contexte et les balises
Les politiques ne font pas référence à d'autres politiques et ne dépendent pas de celles-ci.
Algorithme d'évaluation des politiques
Lorsqu'une demande est évaluée, le moteur de politique détermine la décision d'autorisation à l'aide de l'algorithme suivant :
-
Si une
forbidpolitique correspond à la demande, la décision est DENY. -
Si aucune
forbidpolitique ne correspond à la demande et qu'au moins unepermitpolitique correspond, la décision est ALLOW. -
Si ni
permitles politiquesforbidni les politiques ne correspondent à la demande, la décision est REFUSÉE.
Ce modèle d'évaluation applique une posture de refus par défaut.
Une forbid politique ne peut jamais aboutir à une décision ALLOW. La unless clause d'une forbid politique précise les conditions dans lesquelles cette forbid politique ne s'applique pas ; elle n'accorde pas d'autorisation et ne remplace pas une permit politique correspondante.