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
Temas
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:
-
Cree la identidad
agent-ay la identidad de la carga de trabajoagent-b -
Cree un rol de IAM
AgentARolecon una política que permita el acceso únicamente al proveedor X -
Cree un rol de IAM
AgentBRolecon una política que permita el acceso únicamente al proveedor Y -
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:
-
Identifique las identidades de las cargas de trabajo: utilícelas
aws bedrock-agentcore-control list-workload-identitiespara 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. -
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>
-
-
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
-
Adjunte políticas a las funciones: adjunte las políticas a las funciones de IAM que utilizan sus agentes o aplicaciones
-
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
Resourcebloque 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
Denydeclaraciones 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