Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Resource-based politiques relatives à Amazon Bedrock AgentCore
Resource-based les politiques d'Amazon Bedrock vous AgentCore permettent de contrôler quels principaux (AWS comptes, utilisateurs IAM ou rôles IAM) peuvent invoquer et gérer vos AgentCore ressources Amazon Bedrock (actuellement prises en charge pour Runtime, Gateway et Memory). Vous pouvez associer des IAM-style politiques directement à vos ressources pour définir des règles permettant de démarrer des sessions d'exécution, d'appeler une passerelle, d'accéder à la mémoire ou d'effectuer d'autres actions de gestion et d'invocation.
Resource-based les politiques fonctionnent conjointement avec les politiques IAM basées sur l'identité pour fournir un contrôle d'accès à vos ressources Amazon Bedrock. AgentCore Alors que les politiques basées sur l'identité sont associées aux identités IAM et spécifient les actions qu'elles peuvent effectuer, les politiques basées sur les ressources sont directement associées aux ressources et spécifient qui peut y accéder.
Rubriques
Ressources prises en charge
Amazon Bedrock AgentCore prend en charge des politiques basées sur les ressources pour les ressources suivantes :
-
Exécution de l'agent et points de terminaison de l'agent : contrôlez l'accès à l'appel de l'agent et aux opérations de gestion
-
Passerelle - Contrôlez l'accès aux opérations d'invocation de la passerelle
-
Mémoire - Contrôlez l'accès aux opérations de mémoire
Comment fonctionnent les politiques fondées sur les ressources
Identity-based par rapport aux politiques basées sur les ressources
| Aspect | Identity-Based Politique | Resource-Based Politique |
|---|---|---|
|
Réseau de transit par passerelle |
Attaché à des utilisateurs, des rôles ou des groupes IAM |
Connecté directement aux ressources Amazon Bedrock AgentCore |
|
Gestion |
Géré via AWS IAM |
Géré via les API Amazon Bedrock AgentCore |
|
Spécifie |
Actions et ressources (le principal est implicite) |
Principes, actions et conditions (la ressource est implicite) |
|
Cas d’utilisation |
Définir ce que peut faire une identité |
Définissez qui peut accéder à une ressource |
Évaluation des politiques
Lorsqu'une demande est adressée à une AgentCore ressource Amazon Bedrock, AWS évalue à la fois les politiques basées sur l'identité et les ressources. Le tableau suivant montre comment les différentes combinaisons de politiques affectent l'accès :
| Stratégie IAM | Stratégie de ressources | Résultat |
|---|---|---|
|
Accès aux subventions |
Silencieux |
Autorisé |
|
Accès aux subventions |
Accès aux subventions |
Autorisé |
|
Accès aux subventions |
Refuse l'accès |
Refusé |
|
Silencieux |
Silencieux |
Refusé |
|
Silencieux |
Accès aux subventions |
Autorisé |
|
Silencieux |
Refuse l'accès |
Refusé |
|
Refuse l'accès |
Silencieux |
Refusé |
|
Refuse l'accès |
Permet l'accès |
Refusé |
|
Refuse l'accès |
Refuse l'accès |
Refusé |
Principes clés :
-
Le refus explicite gagne toujours : si une politique refuse explicitement l'action, l'accès est refusé indépendamment des autres politiques
-
L'une ou l'autre des politiques peut autoriser : si une stratégie basée sur l'identité ou sur les ressources autorise l'action (et qu'aucune politique ne la refuse), l'accès est accordé
-
Refus par défaut : si aucune politique n'autorise explicitement une action, l'accès est refusé
Autorisation hiérarchique pour l'exécution de l'agent et le terminal
Les points de terminaison des agents sont des points d'accès adressables à des versions spécifiques de l'environnement d'exécution d'un agent. Chaque point de terminaison pointe vers une version particulière de la configuration d'exécution, un point de terminaison DEFAULT acheminant automatiquement vers la dernière version. Lors de l'autorisation d'opérations d'API d'exécution telles que InvokeAgentRuntime etInvokeAgentRuntimeCommand, AWS évalue à la fois les politiques basées sur l'identité et les ressources pour l'exécution de l'agent et le point de terminaison de l'agent invoqué.
Pour qu'une demande soit autorisée, les conditions suivantes doivent être remplies :
-
Les politiques basées sur l'identité associées au principal appelant doivent autoriser l'action à la fois sur l'exécution de l'agent et sur les ressources de point de terminaison de l'agent
-
La politique basée sur les ressources sur l'environnement d'exécution de l'agent doit autoriser l'action (si une politique existe)
-
La politique basée sur les ressources sur le terminal de l'agent doit autoriser l'action (si une politique existe)
Important
Pour fournir un accès intercomptes à un principal, vous devez créer des politiques basées sur les ressources accordant l'accès à la fois au runtime de l'agent et au point de terminaison de l'agent. Si l'une des ressources refuse l'accès ou ne contient pas de déclaration d'autorisation explicite, la demande sera refusée.
Exemple : L'octroi d'un accès entre comptes nécessite des politiques relatives aux deux ressources :
// Policy for Agent Runtime (attached to // arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID) { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/CrossAccountRole" }, "Action": "bedrock-agentcore:InvokeAgentRuntime", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID" } ] } // Policy for Agent Endpoint (attached to // arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID/endpoint/ENDPOINTID) { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/CrossAccountRole" }, "Action": "bedrock-agentcore:InvokeAgentRuntime", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID/endpoint/ENDPOINTID" } ] }
Considérations relatives au type d'authentification
La façon dont vous rédigez des politiques basées sur les ressources dépend du type d'authentification configuré pour votre Agent Runtime ou Gateway :
- Authentification SIGv4
-
Utilisez des AWS principals spécifiques (utilisateurs, rôles ou comptes IAM) dans l'
Principalélément. Par exemple :"Principal": {"AWS": "arn:aws:iam::123456789012:role/MyRole"}. La politique est évaluée conjointement avec les autorisations IAM de l'appelant. Pour un exemple qui limite l'appel d'un environnement d'exécution uniquement par une AgentCore passerelle, consultez Restreindre l'invocation entrante IAM (Sigv4) vers votre passerelle. - Authentification OAuth
-
Doit utiliser un caractère générique principal (« Principal » : « * ») dans les déclarations de politique. Les jetons OAuth sont validés par AWS Identity Service avant l'évaluation de la politique. Seuls les utilisateurs OAuth authentifiés avec des jetons JWT valides provenant du fournisseur d'identité (IdP) enregistré peuvent invoquer la ressource. Les demandes anonymes ou non authentifiées sont rejetées avant l'évaluation de la politique. Utilisez les touches de condition pour restreindre l'accès (par exemple
aws:SourceVpc,aws:SourceVpce).
Important
Un environnement d'exécution ou une passerelle d'agent ne peuvent être configurés qu'avec l'authentification SIGv4 OU OAuth au moment de la création, et non les deux simultanément. Cela signifie qu'une seule politique basée sur les ressources s'applique à un seul type d'authentification.
Structure d’une politique
Une politique basée sur les ressources est un document JSON dont la structure est la suivante :
{ "Version": "2012-10-17", "Statement": [ { "Sid": "StatementId", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/role-name" }, "Action": "bedrock-agentcore:ActionName", "Resource": "arn:aws:bedrock-agentcore:region:account-id:resource-type/resource-id", "Condition": { "ConditionOperator": { "ConditionKey": "ConditionValue" } } } ] }
Important
Le Resource champ du document de politique doit contenir l'ARN exact de la ressource à laquelle la stratégie est attachée. Utiliser « Ressource » : « * » n'est pas pris en charge et entraînera une erreur de validation.
Actions prises en charge
Actions d'exécution de l'agent
-
bedrock-agentcore:InvokeAgentRuntime- Invoquer un moteur d'exécution d'un agent -
bedrock-agentcore:InvokeAgentRuntimeForUser- Invoque le point de terminaison d'exécution d'un agent avec X-Amzn-Bedrock-AgentCore-Runtime-User-Id un en-tête -
bedrock-agentcore:InvokeAgentRuntimeCommand- Exécute une commande shell dans une session d'exécution active -
bedrock-agentcore:InvokeAgentRuntimeCommandShell- Ouvrez une session WebSocket shell interactive dans une session d'exécution active -
bedrock-agentcore:InvokeAgentRuntimeWithWebSocketStream- Invoquer un environnement d'exécution d'un agent avec stream WebSocket -
bedrock-agentcore:InvokeAgentRuntimeWithWebSocketStreamForUser- Invoquer un environnement d'exécution d'un agent avec un WebSocket flux avec en-tête X-Amzn-Bedrock-AgentCore-Runtime-User-Id -
bedrock-agentcore:StopRuntimeSession- Arrête une session d'exécution active -
bedrock-agentcore:GetAgentCard- Récupérez les informations de la carte d'agent
Actions relatives à la passerelle
-
bedrock-agentcore:InvokeGateway- Invoquer une passerelle
Actions de mémoire
-
bedrock-agentcore:GetMemory- Récupérer une ressource mémoire -
bedrock-agentcore:UpdateMemory- Mettre à jour une ressource mémoire -
bedrock-agentcore:DeleteMemory- Supprimer une ressource mémoire -
bedrock-agentcore:CreateEvent- Créer un événement dans une ressource de mémoire -
bedrock-agentcore:GetEvent- Récupérer un événement à partir d'une ressource mémoire -
bedrock-agentcore:DeleteEvent- Supprimer un événement d'une ressource de mémoire -
bedrock-agentcore:ListEvents- Répertorier les événements à partir d'une ressource de mémoire -
bedrock-agentcore:ListActors- Répertorier les acteurs à partir d'une ressource de mémoire -
bedrock-agentcore:ListSessions- Répertorier les sessions à partir d'une ressource mémoire -
bedrock-agentcore:GetMemoryRecord- Obtenir un enregistrement mémoire à partir d'une ressource mémoire -
bedrock-agentcore:ListMemoryRecords- Répertorier les enregistrements de mémoire à partir d'une ressource mémoire -
bedrock-agentcore:RetrieveMemoryRecords- Rechercher des enregistrements de mémoire à partir d'une ressource de mémoire -
bedrock-agentcore:DeleteMemoryRecord- Supprimer un enregistrement mémoire d'une ressource mémoire -
bedrock-agentcore:BatchCreateMemoryRecords- Création par lots d'enregistrements de mémoire dans une ressource mémoire -
bedrock-agentcore:BatchUpdateMemoryRecords- Mise à jour par lots des enregistrements de mémoire dans une ressource mémoire -
bedrock-agentcore:BatchDeleteMemoryRecords- Suppression par lots d'enregistrements de mémoire dans une ressource mémoire -
bedrock-agentcore:StartMemoryExtractionJob- Lancer une tâche d'extraction dans une ressource mémoire -
bedrock-agentcore:ListMemoryExtractionJobs- Répertorier les tâches d'extraction dans une ressource mémoire
Clés de condition
Vous pouvez utiliser des clés de condition pour affiner le contrôle d'accès dans vos politiques. Pour une liste complète des clés de condition disponibles, consultez les sections Clés de AgentCore condition du socle et Clés contextuelles de la condition AWS globale.
Exemples et cas d'utilisation courants
Cette section fournit des exemples pratiques de politiques basées sur les ressources pour des scénarios courants. Le Resource champ de chaque exemple doit contenir l'ARN exact de la ressource à laquelle la politique est attachée. Remplacez les exemples d'ARN par les ARN de vos ressources réelles.
Autoriser les rôles dans un autre AWS compte
Accordez l'accès à l'API à des rôles spécifiques dans un autre AWS compte :
// Policy attached to arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:role/DeveloperRole", "arn:aws:iam::123456789012:role/AdminRole" ] }, "Action": "bedrock-agentcore:InvokeAgentRuntime", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID" } ] }
Refuser le trafic en fonction de l'adresse IP source
Bloquez le trafic entrant provenant de plages d'adresses IP spécifiques :
// Policy attached to arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/ApplicationRole" }, "Action": "bedrock-agentcore:InvokeAgentRuntime", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID" }, { "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::123456789012:role/ApplicationRole" }, "Action": "bedrock-agentcore:InvokeAgentRuntime", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID", "Condition": { "IpAddress": { "aws:SourceIp": [ "192.0.2.0/24", "198.51.100.0/24" ] } } } ] }
Autoriser le trafic provenant uniquement d'un VPC spécifique
Restreignez l'accès aux demandes provenant d'un VPC spécifique :
// Policy attached to arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/ApplicationRole" }, "Action": "bedrock-agentcore:InvokeAgentRuntime", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID" }, { "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::123456789012:role/ApplicationRole" }, "Action": "bedrock-agentcore:InvokeAgentRuntime", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID", "Condition": { "StringNotEquals": { "aws:SourceVpc": "vpc-1a2b3c4d" } } } ] }
Authentification OAuth avec restriction VPC
Lorsque votre Agent Runtime ou Gateway est configuré avec l'authentification OAuth, vous devez utiliser un principal joker. Cet exemple limite les OAuth-authenticated demandes à un VPC spécifique :
// Policy attached to arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOAuthFromVPC", "Effect": "Allow", "Principal": "*", "Action": "bedrock-agentcore:InvokeAgentRuntime", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID", "Condition": { "StringEquals": { "aws:SourceVpc": "vpc-1a2b3c4d" } } } ] }
Important
Le principal joker (« Principal » : « * ») est requis pour l'authentification OAuth. Les jetons OAuth sont validés par AWS Identity Service avant l'évaluation de la politique. Seuls les utilisateurs possédant des jetons JWT valides provenant de votre fournisseur d'identité enregistré peuvent accéder à la ressource. Les demandes anonymes ou non authentifiées sont rejetées avant l'évaluation de la politique. Utilisez les touches de condition (commeaws:SourceVpc,aws:SourceVpce) pour restreindre davantage l'accès
Gestion des politiques relatives aux ressources
Sélectionnez l'une des méthodes suivantes :
Exemple
Bonnes pratiques de sécurité
Accorder le moindre privilège
N'accordez que les autorisations minimales nécessaires à votre cas d'utilisation :
// Policy attached to arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ApplicationRole" }, "Action": "bedrock-agentcore:InvokeAgentRuntime", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID" } ] }
Prévenir la confusion chez les députés
Utilisez toujours les clés de condition pour autoriser l'accès aux AWS services :
// Policy attached to arn:aws:bedrock-agentcore:us-west-2:111122223333:gateway/GATEWAYID { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "bedrock-agentcore:InvokeGateway", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:gateway/GATEWAYID", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnEquals": { "aws:SourceArn": "arn:aws:lambda:us-west-2:111122223333:function/SpecificFunction" } } } ] }
Utiliser un refus explicite pour les contrôles critiques
Utilisez des instructions de refus explicites pour les restrictions critiques en matière de sécurité :
// Policy attached to arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID { "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAllExceptVPC", "Effect": "Deny", "Principal": "*", "Action": "bedrock-agentcore:InvokeAgentRuntime", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID", "Condition": { "StringNotEquals": { "aws:SourceVpc": "vpc-12345678" }, "Bool": { "aws:ViaAWSService": "false" } } } ] }
Résolution des problèmes
Erreurs d’accès refusé
Si le message d'erreur « Accès refusé » s'affiche :
-
Vérifiez les deux politiques : vérifiez à la fois les politiques basées sur l'identité et les politiques basées sur les ressources
-
Recherchez les refus explicites : un refus explicite dans n'importe quelle politique remplace toutes les autorisations
-
Vérifier l'ARN principal : assurez-vous que l'ARN principal de la politique correspond à l'appelant
-
Vérifiez les conditions : vérifiez que toutes les clés de condition sont considérées comme vraies
-
Révision des SCP : les politiques de contrôle des services de l'organisation peuvent remplacer les politiques relatives aux ressources
Erreurs de validation des politiques
Erreurs courantes de validation des politiques :
-
JSON non valide : assurez-vous que votre politique est un JSON valide
-
Format d'ARN non valide : vérifiez que tous les ARN suivent le bon format
-
Actions non prises en charge : vérifiez que toutes les actions sont prises en charge pour le type de ressource
-
Éléments obligatoires manquants : Assurez-vous que la version, la déclaration, l'effet, le principal et l'action sont présents