View a markdown version of this page

Limitez l'accès aux fournisseurs d'informations d'identification par identité de charge de travail - Amazon Bedrock AgentCore

Limitez l'accès aux fournisseurs d'informations d'identification par identité de charge de travail

Vous pouvez utiliser les politiques IAM pour contrôler quelles identités de charge de travail ont accès à des fournisseurs d'informations d'identification spécifiques. Cela permet un contrôle d'accès précis, garantissant que seuls les agents autorisés peuvent récupérer les informations d'identification pour des services particuliers.

Note

Le rôle IAM que vous attribuez à un agent contrôle les fournisseurs d'informations d'identification que l'agent peut appeler. Le service n'impose pas de liaison supplémentaire entre les identités de charge de travail et les fournisseurs d'informations d'identification d'un même compte. Pour suivre les pratiques du moindre privilège, étendez vos Resource blocs de politique IAM aux ARN spécifiques du fournisseur d'identité de charge de travail et d'informations d'identification au lieu de les utiliser. *

Un appel réussi à un fournisseur d'informations d'identification ne signifie pas que les informations d'identification sont automatiquement renvoyées. Les informations d'identification récupérées par une charge de travail sont limitées à l'identité de l'utilisateur dans son jeton d'accès à la charge de travail. Pour les fournisseurs OAuth2 (3LO), l'utilisateur final doit avoir terminé l'autorisation avant qu'il n'existe des informations d'identification permettant de récupérer l'identité de la charge de travail et la combinaison utilisateur correspondant à cette combinaison utilisateur.

Mécanismes de contrôle d'accès

  • Restrictions basées sur l'identité des charges de travail : limitez l'accès des fournisseurs d'informations d'identification à des identités de charge de travail spécifiques

  • Resource-level autorisations — Contrôlez l'accès aux fournisseurs d'informations d'identification individuels à l'aide de politiques ARN-based

  • Directory-level contrôles — Gérez l'accès au niveau du répertoire d'identité de la charge de travail

  • Définition du champ d'application des fournisseurs d'informations d'identification : limitez les fournisseurs d'informations d'identification auxquels une identité de charge de travail peut accéder en incluant les ARN des fournisseurs d'informations d'identification dans le bloc de politique Resource

Exemples de politique IAM

Les exemples suivants montrent comment créer des politiques IAM qui limitent l'accès du fournisseur d'informations d'identification en fonction de l'identité de la charge de travail et du fournisseur d'informations d'identification.

Restreindre l'accès à un fournisseur d'identifiants de clé d'API spécifique

Cette politique permet à une identité de charge de travail de récupérer des clés d'API uniquement auprès d'un fournisseur d'informations d'identification spécifique. L'ARN du fournisseur d'informations d'identification figurant dans le Resource bloc restreint l'accès à ce fournisseur.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetResourceApiKey", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceApiKey" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/<workload-identity-name>", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/api-key/<provider-name>" ] } ] }

Restreindre l'accès à un fournisseur d'informations d'identification OAuth2 spécifique

Cette politique permet à une identité de charge de travail de récupérer des jetons OAuth2 uniquement auprès d'un fournisseur d'informations d'identification OAuth2 spécifique.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetResourceOauth2Token", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceOauth2Token" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/<workload-identity-name>", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/oauth2-credential-provider/<provider-name>" ] } ] }

Permettre à plusieurs identités de charge de travail d'accéder à un fournisseur d'informations d'identification

Cette politique permet à plusieurs identités de charge de travail de récupérer des clés d'API auprès du même fournisseur d'informations d'identification.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetResourceApiKeyMultipleIdentities", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceApiKey" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/agent-1", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/agent-2", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/agent-3", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/api-key/<provider-name>" ] } ] }

Refuser l'accès à un fournisseur d'informations d'identification spécifique

Vous pouvez refuser explicitement l'accès à l'identité d'une charge de travail à un fournisseur d'informations d'identification spécifique à l'aide d'une Deny instruction. Les instructions Deny ont priorité sur les instructions Allow, ce qui les rend utiles pour créer des garde-fous.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAccessToSensitiveProvider", "Effect": "Deny", "Action": [ "bedrock-agentcore:GetResourceApiKey", "bedrock-agentcore:GetResourceOauth2Token" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/api-key/<sensitive-provider-name>", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/oauth2-credential-provider/<sensitive-provider-name>" ] } ] }

Utiliser des identités de charge de travail distinctes pour les différents fournisseurs d'informations d'identification

Si vous avez besoin de différents agents pour accéder à différents fournisseurs d'informations d'identification, créez des identités de charge de travail distinctes avec des rôles IAM distincts. Chaque rôle IAM est limité aux seuls fournisseurs d'informations d'identification dont l'agent a besoin.

Par exemple, si l'agent A doit accéder uniquement au fournisseur X et que l'agent B doit accéder uniquement au fournisseur Y :

  1. Création d'une identité agent-a et d'une identité de charge de travail agent-b

  2. Créez un rôle IAM AgentARole avec une politique qui autorise l'accès uniquement au fournisseur X

  3. Créez un rôle IAM AgentBRole avec une politique qui autorise l'accès uniquement au fournisseur Y

  4. Associez chaque identité de charge de travail au rôle IAM correspondant

Politique IAM pour l'agent A (accès au fournisseur X uniquement)

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentAAccessProviderX", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceApiKey" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/agent-a", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/api-key/provider-x" ] } ] }

Politique IAM pour l'agent B (accès au fournisseur Y uniquement)

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentBAccessProviderY", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceApiKey" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/agent-b", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/api-key/provider-y" ] } ] }

Étapes d’implémentation

Pour mettre en œuvre un contrôle d'accès basé sur l'identité de la charge de travail pour les fournisseurs d'informations d'identification :

  1. Identifiez les identités de vos charges de travail : aws bedrock-agentcore-control list-workload-identities à utiliser pour répertorier toutes les identités de charge de travail de votre compte. Pour plus d'informations sur la création et la gestion des identités de charge de travail, voir Gérer les identités de charge de travail avec AgentCore Identity.

  2. Déterminez les ARN des fournisseurs d'informations d'identification : identifiez les fournisseurs d'informations d'identification spécifiques auxquels vous souhaitez contrôler l'accès. Les ARN des fournisseurs d'informations d'identification suivent les formats suivants :

    • arn:aws:bedrock-agentcore:<region>:<account_id>:token-vault/default/api-key/<provider-name>

    • arn:aws:bedrock-agentcore:<region>:<account_id>:token-vault/default/oauth2-credential-provider/<provider-name>

  3. Création de politiques IAM : rédigez des politiques IAM qui spécifient quelles identités de charge de travail peuvent accéder à quels fournisseurs d'informations d'identification

  4. Associer des politiques aux rôles : associez les politiques aux rôles IAM utilisés par vos agents ou applications

  5. Tester les contrôles d'accès — Vérifiez que seules les identités de charge de travail autorisées peuvent accéder aux fournisseurs d'informations d'identification spécifiés

Bonnes pratiques

  • Utilisez des noms descriptifs pour les identités des charges de travail afin de faciliter la gestion des politiques

  • Incluez les ARN des fournisseurs d'informations d'identification dans le Resource bloc pour définir l'accès à des fournisseurs spécifiques, plutôt que d'accorder l'accès à tous les fournisseurs du compte

  • Utilisez des identités de charge de travail et des rôles IAM distincts lorsque différents agents ont besoin d'accéder à différents fournisseurs d'informations d'identification

  • Utilisez Deny des déclarations explicites pour créer des barrières de sécurité qui empêchent l'accès aux fournisseurs d'informations d'identification sensibles, indépendamment des autres politiques

  • Auditez et révisez régulièrement les politiques d'accès pour vous assurer qu'elles correspondent à vos exigences de sécurité

  • Envisagez d'utiliser les conditions de la politique IAM pour des contrôles d'accès supplémentaires basés sur l'heure, l'adresse IP ou d'autres facteurs

  • Testez les politiques dans un environnement de développement avant de les appliquer aux charges de travail de production