View a markdown version of this page

Configurar permisos para AgentCore Gateway - Amazon Bedrock AgentCore

Configurar permisos para AgentCore Gateway

Para utilizar Amazon Bedrock AgentCore Gateway y sus funciones, tendrá que tener en cuenta los siguientes permisos:

  1. builder/user Permisos de puerta de enlace: permisos que se proporcionan a un creador de puertas de enlace o a un usuario para que pueda crear, administrar o utilizar AgentCore puertas de enlace.

  2. Permisos de rol de servicio de puerta de enlace: permisos que se proporcionan a un rol de servicio que crearás para tu puerta de enlace. Estos permisos permiten al AgentCore servicio Amazon Bedrock realizar acciones en nombre de la identidad que invoca la puerta de enlace.

  3. Resource-based permisos: permisos adjuntos a los recursos para permitir que el rol del servicio de puerta de enlace acceda a ellos. Incluirá el nombre de recurso de Amazon (ARN) de la función de servicio de puerta de enlace como parte de la política Principal basada en recursos.

  4. Políticas basadas en los recursos de la puerta de enlace: políticas adjuntas directamente a los recursos de la puerta de enlace para controlar qué entidades principales pueden invocarlas. Para obtener más información, consulte Resource-based las políticas de Amazon Bedrock AgentCore.

nota

Si prefiere no configurar permisos personalizados, puede utilizar las siguientes opciones para facilitar la configuración: * Adjunte los permisos BedrockAgentCoreFullAccessa una identidad de IAM para que pueda crear, administrar e invocar pasarelas. * Utilice la consola AWS de administración o la AgentCore CLI para crear un rol de servicio de AgentCore puerta de enlace con los permisos adecuados y los destinos de puerta de enlace con las políticas basadas en recursos adecuadas para permitir que el rol de servicio acceda a ellos.

Elija un tema para obtener más información:

Generador de puertas de enlace y permisos de usuario

Para que una identidad pueda crear, administrar o usar pasarelas, debe adjuntar una política basada en identidades a la identidad de IAM para que pueda realizar acciones de Amazon Bedrock. AgentCore-related Para obtener permisos completos, puede utilizar la política gestionada. BedrockAgentCoreFullAccess

Para mayor seguridad y control, puede crear su propia política personalizada reduciendo los permisos de la política de acceso total. Por ejemplo, la siguiente política permite a una identidad realizar acciones relacionadas con AgentCore Gateway, pero no con otros AgentCore servicios, como AgentCore Runtime o AgentCore Browser:

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock-agentcore:*Gateway*", "bedrock-agentcore:*WorkloadIdentity", "bedrock-agentcore:*CredentialProvider", "bedrock-agentcore:*Token*", "bedrock-agentcore:*Access*" ], "Resource": "arn:aws:bedrock-agentcore:*:*:*gateway*" } ] }
La siguiente política personalizada es más restrictiva y solo permite el acceso de lectura a las puertas de enlace y a los destinos de las puertas de enlace
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock-agentcore:ListGateways", "bedrock-agentcore:GetGateway", "bedrock-agentcore:ListGatewayTargets", "bedrock-agentcore:GetGatewayTarget" ], "Resource": "arn:aws:bedrock-agentcore:*:*:*gateway*" } ] }

Permisos de acceso a la puerta de enlace (autorización entrante)

Además de los permisos relacionados con la puerta de enlace, también tendrás que configurar los permisos para que las identidades puedan acceder a la puerta de enlace durante la invocación. Configurará estos permisos cuando configure la autorización entrante.

AgentCore Permisos de rol del servicio Gateway

Al crear una puerta de enlace, necesita un rol de servicio que tenga permisos para asumir un rol de IAM y acceder a AWS los recursos y servicios externos en nombre del rol de IAM. Puede crear el rol de servicio de las siguientes maneras:

  • Si crea una puerta de enlace en la consola de AWS administración o mediante la AgentCore CLI, puede optar por permitir que AgentCore se le cree automáticamente un rol de servicio con los permisos necesarios. Si prefiere este método, puede omitir este requisito previo.

  • Si prefiere crear su propia función de servicio para una mayor personalización, tendrá que configurar la función con los permisos descritos en este tema. Para obtener información sobre cómo crear un rol de servicio y asignarle permisos, consulte Crear un rol para delegar permisos a un AWS servicio.

Los permisos necesarios para un rol de servicio se encuentran en los siguientes temas:

Permisos de confianza

Un rol de servicio debe tener una política de confianza adjunta que permita al AgentCore servicio asumir una identidad de IAM y llevar a cabo acciones en su nombre.

A continuación, se muestra un ejemplo de una política de confianza que puede utilizar.

{ "Version":"2012-10-17", "Statement": [ { "Sid": "GatewayAssumeRolePolicy", "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:gateway/gateway-name-*" } } } ] }
nota

Como no conocerá el ARN de la puerta de enlace antes de crearlo, puede omitir el Condition campo al crear el rol de servicio por primera vez. Tras crear la puerta de enlace, vuelva a añadir el Condition campo a la política como práctica de seguridad recomendada y haga lo siguiente: * Sustituya el valor de la clave de aws:SourceAccount condición por el ID de la cuenta a la que pertenece la puerta de enlace. * Sustituya la clave de aws:SourceArn condición por el ARN de la puerta de enlace.

Permisos de autorización saliente

Según el tipo de autorización de salida que utilice para los destinos de la puerta de enlace, tendrá que añadir permisos a la función de servicio para que pueda invocar el destino. Estos permisos permiten que la función de servicio de puerta de enlace recupere las credenciales de autorización para invocar el destino. Puede hacerlo durante el proceso de configuración de la autorización de salida.

Permisos de acceso AWS recursos

Según la configuración de la puerta de enlace o los destinos que decida agregar a la puerta de enlace, es posible que deba agregar permisos a la función de servicio de puerta de enlace para que pueda acceder a AWS los recursos. En los siguientes temas se abordan algunos recursos a los que su función de servicio de puerta de enlace podría necesitar acceder:

Si adjunta un destino Lambda a su puerta de enlace, debe añadir permisos para que la función de servicio de AgentCore puerta de enlace pueda invocar la función de la siguiente manera:

  • Adjunte una política basada en la identidad al rol del servicio AgentCore Gateway que permita la lambda:InvokeFunction acción en el recurso de la función Lambda.

  • (Si la función está en una cuenta diferente de la función de servicio de puerta de enlace) Adjunte una política basada en recursos a la función de Lambda que permita al director de la función de servicio de puerta de enlace realizar la acción en el recurso de la lambda:InvokeFunction función de Lambda.

Seleccione un tema para obtener información sobre cómo configurar los permisos:

Temas

    ===== Adjunte una política basada en la identidad a la función de servicio de puerta de enlace

    Para permitir que la función de servicio de puerta de enlace acceda a un destino Lambda, adjunte la siguiente política basada en la identidad a su función de servicio de AgentCore puerta de enlace; para ello, seleccione el tema Añadir y eliminar los permisos de identidad de IAM correspondientes a su caso de uso y siga los pasos que se indican a continuación.

    { "Version": "2012-10-17", "Statement": [{ "Sid": "AmazonBedrockAgentCoreGatewayLambdaProd", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:us-east-1:123456789012:function:FunctionName" ] }] }

    Sustituya el ARN del Resource campo por el ARN de su destino de puerta de enlace de funciones Lambda. Si la puerta de enlace tiene varios destinos Lambda, puede añadir el ARN de cada función a la lista. Resource

    ===== (Si la función está en otra cuenta) Adjunte una política basada en recursos a la función Lambda

    Si el destino de la función Lambda está en una cuenta diferente a la del rol de servicio de puerta de enlace, debe adjuntar una política basada en recursos para permitir que el rol de servicio de puerta de enlace acceda a él. El siguiente es un ejemplo de política que puede utilizar:

    { "Version":"2012-10-17", "Statement": [ { "Sid": "LambdaAllowGatewayServiceRoleMyFunction", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/MyGatewayExecutionRole" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction" } ] }

    Sustituya los valores de los siguientes campos:

    • AWS— Utilice el ARN de su rol de servicio de puerta de enlace.

    • Resource— Utilice el ARN de su función Lambda.

      Para obtener información sobre cómo adjuntar una política basada en recursos a la función Lambda que permita a su rol de servicio de puerta de enlace acceder a la función, seleccione uno de los siguientes métodos
    Console
    1. ====== Para adjuntar una política basada en recursos a la función Lambda en la consola de administración AWS

    2. Siga los pasos de la pestaña Consola en Visualización de las políticas de IAM basadas en recursos en Lambda.

    3. En la sección de declaraciones Resource-based de políticas, selecciona Añadir permisos.

    4. Selecciona la AWS cuenta y rellena los siguientes campos:

      • ID de declaración: un identificador único de la declaración que proporciona permisos para que la función de servicio de puerta de enlace acceda a la función.

      • Principal: especifique el ARN de su función de servicio de puerta de enlace.

      • Acción: seleccionelambda:InvokeFunction.

    CLI
    1. Para adjuntar una política basada en recursos a la función de Lambda mediante la AWS CLI, siga los pasos que se indican en Otorgar el acceso de la función Lambda a los AWS servicios y especifique su función de servicio de puerta de enlace como. principal

      Puede ejecutar el siguiente código en una terminal para añadir permisos a su función de servicio de puerta de enlace para acceder a la función en la que: us-east-1

      aws lambda add-permission \ --function-name "MyFunction" \ --statement-id "GatewayInvoke" \ --action "lambda:InvokeFunction" \ --principal "arn:aws:iam::123456789012:role/MyGatewayServiceRole" --region us-east-1
    ejemplo

    Si planea incluir una definición de herramienta de destino de puerta de enlace a partir de un URI de Amazon S3, tendrá que incluir los permisos para que la función de servicio de puerta de enlace acceda al bucket. La AmazonS3ReadOnlyAccesspolítica es un ejemplo de una política que puede adjuntar a la función de servicio. Puede ajustarlo Resource a la ubicación S3 para mayor seguridad.

    Si tiene pensado añadir un objetivo de Smithy, tendrá que añadir permisos para que la función de servicio de puerta de enlace pueda acceder a los AWS servicios a los que hacen referencia sus modelos de Smithy. Para determinar qué permisos se deben adjuntar a la función de servicio, consulte la documentación de ese servicio.

    Para añadir permisos a la función de servicio, selecciona el tema en Añadir y quitar permisos de identidad de IAM que corresponda a tu caso de uso y sigue los pasos que se indican a continuación.

    Por ejemplo, si el objetivo del modelo de Smithy accede a una tabla de DynamoDB, puede adjuntar la siguiente política para permitir que el rol de servicio realice operaciones de DynamoDB en la tabla:

    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem", "dynamodb:Query", "dynamodb:Scan" ], "Resource": "arn:aws:dynamodb:*:*:table/*" } ] }

    Prácticas recomendadas para los permisos de Gateway

    Siga el principio del privilegio mínimo
    • Otorgue solo los permisos necesarios para que su Gateway funcione

    • Siempre que sea posible, utilice ARN de recursos específicos en lugar de caracteres comodín

    • Revise y audite los permisos con regularidad

    Separe las funciones por función
    • Utilice diferentes roles para la administración y la ejecución

    • Cree roles separados para diferentes puertas de enlace con diferentes propósitos

    Almacenamiento seguro de credenciales
    • Almacene las claves de API y las credenciales de OAuth en Secrets Manager AWS

    • Cambiar las credenciales de forma periódica

    Monitoree y audite:
    • Habilite el CloudTrail registro para las operaciones de Gateway

    • Revise periódicamente los patrones de acceso y el uso de los permisos

    Condiciones de uso en las políticas
    • Agregue condiciones para limitar cuándo y cómo se pueden usar los permisos

    • Considere la posibilidad de utilizar restricciones de IP de origen para las operaciones de administración