Geltungsbereich der Richtlinie
Der Geltungsbereich definiert, wofür die Richtlinie gilt. Jede Cedar-Richtlinie spezifiziert drei Komponenten:
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äten und Namespaces
Cedar verwendet Entitäten, um Prinzipien, Aktionen und Ressourcen darzustellen. Alle Entitäten in AgentCore Gateway verwenden den AgentCore Namespace.
Format der Entität: Namespace::EntityType::"identifier"
Auftraggeber
Der Principal identifiziert die Entität, die die Autorisierungsanfrage stellt. Der Prinzipaltyp hängt davon ab, wie Ihr AgentCore Gateway für die Authentifizierung konfiguriert ist.
OAuth-Benutzerprinzipal
Bei Verwendung der OAuth-Autorisierung ist der Principal ein: AgentCore::OAuthUser
principal is AgentCore::OAuthUser
Komponenten:
-
principal- Die Entität, die die Autorisierungsanfrage stellt -
AgentCore::OAuthUser- Entitätstyp, der OAuth-authenticated Benutzer repräsentiert -
is- Operator zur Typüberprüfung (entspricht einer beliebigen OAuthUser Entität)
Principals sind OAuth-authenticated Benutzer. Jeder Benutzer hat eine eindeutige ID aus dem JWT-Unteranspruch.
Prinzipal der IAM-Entität
Bei Verwendung der AWS_IAM-Autorisierung ist der Principal ein: AgentCore::IamEntity
principal is AgentCore::IamEntity
Komponenten:
-
principal- Die Entität, die die Autorisierungsanfrage stellt -
AgentCore::IamEntity- Entitätstyp, der IAM-authenticated Anrufer darstellt -
is- Geben Sie den Operator für die Typprüfung ein (entspricht einem beliebigen IamEntity)
IAM-Prinzipale haben ein id Attribut, das den IAM-ARN des Aufrufers enthält. Sie können den Musterabgleich für dieses Attribut verwenden, um eine konto- oder rollenbasierte Zugriffskontrolle zu implementieren.
Action
Die Aktion spezifiziert den Vorgang, der angefordert wird:
action == AgentCore::Action::"RefundTool___process_refund"
Komponenten:
-
action- Die angeforderte Operation -
AgentCore::Action::"RefundTool___process_refund"- Spezifische Aktionseinheit -
==- Exact-Match-Operator (nur diese spezielle Aktion)
Aktionen stellen Tool-Aufrufe im MCP AgentCore Gateway dar. Jedes Tool hat eine entsprechende Aktionsentität.
Aktionsnamen nach Zieltyp
Die Aktions-ID in Ihrer Richtlinie hängt vom Zieltyp ab, der auf Ihrem Gateway konfiguriert ist:
| Zieltyp | Format der Aktion | Beispiel |
|---|---|---|
|
MCP |
|
|
|
AgentCore Laufzeit |
|
|
|
Proxy (HTTP) |
|
|
Mehrere Aktionen
Cedar unterstützt keine Wildcard-Aktionen. Jede Aktion muss explizit mit der genauen Aktions-ID (AgentCore::Action::"ToolName___operation") referenziert werden. Um mehrere Tools unter einer einzigen Regel zu gruppieren, verwenden Sie ein Gateway-Ziel (eine Aktionsgruppe) und schreiben Sie Richtlinien für dieses Ziel.
Um beispielsweise nur Tools Zugriff zu gewähren, deren Namen mit Read beginnen, können Sie einen Gateway-Zielnamen erstellen ReadToolsTarget , der jedes dieser Tools enthält, und dann eine Richtlinie wie die folgende schreiben:
permit( principal, action in AgentCore::Action::"ReadToolsTarget", resource == AgentCore::Gateway::"<gateway-arn>" );
Dadurch werden je nach Wirkung der Richtlinie alle Tools zugelassen, die in diesem Ziel enthalten sind.
Ressource
Die Ressource identifiziert das Ziel der Anfrage:
resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/refund-gateway"
Komponenten:
-
resource- Das Ziel der Anfrage -
AgentCore::Gateway- Entitätstyp, der Gateway-Instanzen darstellt -
==- Exact-Match-Operator (entspricht diesem spezifischen AgentCore Gateway)
Das AgentCore Gateway ist der MCP-Server, der Tool-Aufrufe weiterleitet.
Anforderungen an die Spezifität von Ressourcen
Wenn Sie eine oder mehrere spezifische Aktionen angeben, müssen Sie bestimmte AgentCore Gateway-ARNs verwenden:
// Required: Specific Gateway ARN for specific action(s) resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/refund-gateway"
Dies gilt in folgenden Fällen:
-
Einzelne Aktion:
action == AgentCore::Action::"ToolName" -
Mehrere spezifische Aktionen:
action in [AgentCore::Action::"Tool1", AgentCore::Action::"Tool2"]
Verwenden Sie Typprüfungen nur, wenn eine Aktion zutrifft:
// For policies covering any action (not specific tools) resource is AgentCore::Gateway
Beispiele:
// 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");
Spezifische AgentCore Gateway-ARNs bieten:
-
Sicherheitsisolierung zwischen AgentCore Gateway-Instanzen
-
Trennung von Produktions- und Entwicklungsumgebungen
-
Fine-grained Zugriffskontrolle pro AgentCore Gateway