View a markdown version of this page

Limite el acceso a los proveedores de credenciales según la identidad de la carga de trabajo - Amazon Bedrock AgentCore

Limite el acceso a los proveedores de credenciales según la identidad de la carga de trabajo

Puede utilizar las políticas de IAM para controlar qué identidades de carga de trabajo tienen acceso a proveedores de credenciales específicos. Esto permite un control de acceso detallado, lo que garantiza que solo los agentes autorizados puedan recuperar las credenciales de determinados servicios.

nota

La función de IAM que se asigna a un agente controla a qué proveedores de credenciales puede llamar el agente. El servicio no impone ningún enlace adicional entre las identidades de carga de trabajo y los proveedores de credenciales de la misma cuenta. Para seguir las prácticas de privilegios mínimos, limite sus Resource bloques de políticas de IAM a determinados ARN de proveedores de credenciales e identidades de carga de trabajo, en lugar de utilizarlos. *

Una llamada correcta a un proveedor de credenciales no significa que las credenciales se devuelvan automáticamente. Las credenciales que recupera una carga de trabajo dependen de la identidad del usuario en su token de acceso a la carga de trabajo. En el caso de los proveedores de OAuth2 (3LO), el usuario final debe haber completado la autorización antes de poder recuperar las credenciales correspondientes a esa combinación de usuario e identidad de carga de trabajo.

Mecanismos de control de acceso

  • Restricciones basadas en la identidad de la carga de trabajo: limite el acceso del proveedor de credenciales a identidades de carga de trabajo específicas

  • Resource-level permisos: controle el acceso a los proveedores de credenciales individuales mediante políticas ARN-based

  • Directory-level controles: administre el acceso a nivel del directorio de identidad de la carga de trabajo

  • Alcance del proveedor de credenciales: restrinja a qué proveedores de credenciales puede acceder una identidad de carga de trabajo incluyendo los ARN del proveedor de credenciales en el bloque de políticas Resource

Ejemplos de políticas de IAM

Los siguientes ejemplos muestran cómo crear políticas de IAM que restrinjan el acceso de los proveedores de credenciales en función de la identidad de la carga de trabajo y del proveedor de credenciales.

Restrinja el acceso a un proveedor de credenciales de clave de API específico

Esta política permite que la identidad de una carga de trabajo recupere las claves de API únicamente de un proveedor de credenciales específico. El ARN del proveedor de credenciales Resource del bloque restringe el acceso a ese proveedor.

{ "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>" ] } ] }

Restrinja el acceso a un proveedor de credenciales OAuth2 específico

Esta política permite que una identidad de carga de trabajo recupere los tokens de OAuth2 únicamente de un proveedor de credenciales de OAuth2 específico.

{ "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>" ] } ] }

Permita que varias identidades de carga de trabajo accedan a un proveedor de credenciales

Esta política permite que varias identidades de carga de trabajo recuperen las claves de API del mismo proveedor de credenciales.

{ "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>" ] } ] }

Denegue el acceso a un proveedor de credenciales específico

Puede denegar explícitamente el acceso a la identidad de una carga de trabajo a un proveedor de credenciales específico mediante una Deny declaración. Las sentencias Deny tienen prioridad sobre las sentencias Allow, lo que las hace útiles para crear barreras.

{ "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>" ] } ] }

Utilice identidades de carga de trabajo independientes para los distintos proveedores de credenciales

Si necesita distintos agentes para acceder a distintos proveedores de credenciales, cree identidades de carga de trabajo independientes con funciones de IAM independientes. Cada función de IAM está destinada únicamente a los proveedores de credenciales que el agente necesita.

Por ejemplo, si el agente A debe acceder solo al proveedor X y el agente B debe acceder solo al proveedor Y:

  1. Cree la identidad agent-a y la identidad de la carga de trabajo agent-b

  2. Cree un rol de IAM AgentARole con una política que permita el acceso únicamente al proveedor X

  3. Cree un rol de IAM AgentBRole con una política que permita el acceso únicamente al proveedor Y

  4. Asocie cada identidad de carga de trabajo a su función de IAM correspondiente

Política de IAM para el agente A (solo acceso al proveedor X)

{ "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" ] } ] }

Política de IAM para el agente B (solo acceso al proveedor Y)

{ "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" ] } ] }

Pasos para la implementación

Para implementar un control de acceso basado en la identidad de la carga de trabajo para los proveedores de credenciales:

  1. Identifique las identidades de las cargas de trabajo: utilícelas aws bedrock-agentcore-control list-workload-identities para enumerar todas las identidades de las cargas de trabajo de su cuenta. Para obtener información sobre cómo crear y administrar las identidades de las cargas de trabajo, consulte Administrar las identidades de las cargas de trabajo con AgentCore Identity.

  2. Determine los ARN de los proveedores de credenciales: identifique los proveedores de credenciales específicos a los que desea controlar el acceso. Los ARN de los proveedores de credenciales siguen estos formatos:

    • 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. Cree políticas de IAM: escriba políticas de IAM que especifiquen qué identidades de carga de trabajo pueden acceder a qué proveedores de credenciales

  4. Adjunte políticas a las funciones: adjunte las políticas a las funciones de IAM que utilizan sus agentes o aplicaciones

  5. Pruebe los controles de acceso: compruebe que solo las identidades de carga de trabajo autorizadas puedan acceder a los proveedores de credenciales especificados

Prácticas recomendadas

  • Utilice nombres descriptivos para las identidades de las cargas de trabajo a fin de facilitar la administración de políticas

  • Incluye los ARN de los proveedores de credenciales en el Resource bloque para limitar el acceso a proveedores específicos, en lugar de conceder el acceso a todos los proveedores de la cuenta

  • Utilice identidades de carga de trabajo y funciones de IAM independientes cuando distintos agentes necesiten acceder a distintos proveedores de credenciales

  • Utilice Deny declaraciones explícitas para crear barreras que impidan el acceso a proveedores de credenciales confidenciales, independientemente de otras políticas

  • Audite y revise periódicamente las políticas de acceso para asegurarse de que se ajusten a sus requisitos de seguridad

  • Considere la posibilidad de utilizar las condiciones de la política de IAM para establecer controles de acceso adicionales en función de la hora, la dirección IP u otros factores

  • Pruebe las políticas en un entorno de desarrollo antes de aplicarlas a las cargas de trabajo de producción