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
Rubriques
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 :
-
Création d'une identité
agent-aet d'une identité de charge de travailagent-b -
Créez un rôle IAM
AgentARoleavec une politique qui autorise l'accès uniquement au fournisseur X -
Créez un rôle IAM
AgentBRoleavec une politique qui autorise l'accès uniquement au fournisseur Y -
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 :
-
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. -
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>
-
-
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
-
Associer des politiques aux rôles : associez les politiques aux rôles IAM utilisés par vos agents ou applications
-
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
Resourcebloc 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
Denydes 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