View a markdown version of this page

Resource-based políticas de Amazon Bedrock AgentCore - Base amazónica AgentCore

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Resource-based políticas de Amazon Bedrock AgentCore

Resource-based las políticas de Amazon Bedrock AgentCore le permiten controlar qué personas principales (AWS cuentas, usuarios de IAM o funciones de IAM) pueden invocar y administrar sus AgentCore recursos de Amazon Bedrock (actualmente compatibles con Runtime, Gateway y Memory). Puede adjuntar IAM-style políticas directamente a sus recursos para definir reglas sobre quién puede iniciar sesiones en tiempo de ejecución, invocar una puerta de enlace, acceder a la memoria o realizar otras acciones de administración e invocación.

Resource-based las políticas funcionan en conjunto con las políticas de IAM basadas en la identidad para proporcionar un control de acceso a sus recursos de Amazon Bedrock. AgentCore Si bien las políticas basadas en la identidad se adjuntan a las identidades de IAM y especifican las acciones que pueden realizar, las políticas basadas en los recursos se adjuntan directamente a los recursos y especifican quién puede acceder a ellos.

Recursos admitidos

Amazon Bedrock AgentCore admite políticas basadas en recursos para los siguientes recursos:

  • El tiempo de ejecución del agente y los puntos finales del agente: controle el acceso a las operaciones de invocación y administración de los agentes

  • Puerta de enlace: controle el acceso a las operaciones de invocación de la puerta de enlace

  • Memoria: controla el acceso a las operaciones de memoria

Cómo funcionan las políticas basadas en recursos

Identity-based frente a las políticas basadas en recursos

Aspecto Identity-Based Política Resource-Based Política

Archivo adjunto

Se adjunta a usuarios, roles o grupos de IAM

Se adjunta directamente a los recursos de Amazon Bedrock AgentCore

Administración

Administrado a través de IAM AWS

Administrado a través de las API de Amazon Bedrock AgentCore

Especifica

Acciones y recursos (el principal está implícito)

Principios, acciones y condiciones (el recurso está implícito)

Caso de uso

Defina lo que puede hacer una identidad

Defina quién puede acceder a un recurso

Evaluación de políticas

Cuando se hace una solicitud a un AgentCore recurso de Amazon Bedrock, AWS evalúa las políticas basadas en la identidad y en los recursos. La siguiente tabla muestra cómo las diferentes combinaciones de políticas afectan al acceso:

Política de IAM Política de recursos Resultado

Otorga el acceso

Silencio

Permitido

Concede acceso

Concede acceso

Permitido

Concede acceso

Acceso denegado

Denegado

Silencio

Silencio

Denegado

Silencio

Concede acceso

Permitido

Silencio

Acceso denegado

Denegado

Acceso denegado

Silencio

Denegado

Acceso denegado

Permite el acceso

Denegado

Acceso denegado

Acceso denegado

Denegado

Principios clave:

  • La denegación explícita siempre gana: si alguna política niega explícitamente la acción, se deniega el acceso independientemente de las demás políticas

  • Cualquiera de las políticas puede permitirla: si una política basada en la identidad o en los recursos permite la acción (y ninguna política la niega), se concede el acceso

  • Denegación predeterminada: si ninguna política permite explícitamente una acción, se deniega el acceso

Autorización jerárquica para el tiempo de ejecución y el punto final del agente

Los terminales de los agentes son puntos de acceso direccionables a versiones específicas del tiempo de ejecución de un agente. Cada punto final apunta a una versión determinada de la configuración del tiempo de ejecución, y un punto final PREDETERMINADO se dirige automáticamente a la versión más reciente. Al autorizar las operaciones de la API en tiempo de ejecución, como InvokeAgentRuntime yInvokeAgentRuntimeCommand, AWS evalúa las políticas basadas en la identidad y en los recursos, tanto para el tiempo de ejecución del agente como para el punto final del agente que se invoca.

Para que se autorice una solicitud, se deben cumplir las siguientes condiciones:

  • Las políticas basadas en la identidad asociadas al principal que realiza la llamada deben permitir la acción tanto en los recursos de tiempo de ejecución como en los de punto final del agente

  • La política basada en recursos sobre el tiempo de ejecución del agente debe permitir la acción (si existe una política)

  • La política basada en los recursos del punto final del agente debe permitir la acción (si existe una política)

importante

Para proporcionar acceso multicuenta a un principal, debe crear políticas basadas en los recursos que otorguen acceso tanto al tiempo de ejecución del agente como al punto final del agente. Si alguno de los recursos deniega el acceso o carece de una declaración de permiso explícita, se denegará la solicitud.

Ejemplo: La concesión del acceso entre cuentas requiere políticas en ambos recursos:

// Policy for Agent Runtime (attached to // arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID) { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/CrossAccountRole" }, "Action": "bedrock-agentcore:InvokeAgentRuntime", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID" } ] } // Policy for Agent Endpoint (attached to // arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID/endpoint/ENDPOINTID) { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/CrossAccountRole" }, "Action": "bedrock-agentcore:InvokeAgentRuntime", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID/endpoint/ENDPOINTID" } ] }

Consideraciones sobre el tipo de autenticación

La forma de escribir las políticas basadas en los recursos depende del tipo de autenticación configurado para el Agent Runtime o el Gateway:

Autenticación Sigv4

Utilice entidades AWS principales específicas (usuarios, funciones o cuentas de IAM) en el elemento. Principal Por ejemplo: "Principal": {"AWS": "arn:aws:iam::123456789012:role/MyRole"}. La política se evalúa junto con los permisos de IAM de la persona que llama. Para ver un ejemplo en el que se restringe un tiempo de ejecución para que solo lo invoque una AgentCore puerta de enlace, consulta Restringir la invocación entrante de IAM (SIGv4) a tu puerta de enlace.

Autenticación OAuth

Debe usar el comodín principal («Principal»: «*») en las declaraciones de política. AWS Identity Service valida los tokens de OAuth antes de la evaluación de la política. Solo los usuarios de OAuth autenticados con tokens JWT válidos del proveedor de identidad (IdP) registrado pueden invocar el recurso. Las solicitudes anónimas o no autenticadas se rechazan antes de la evaluación de la política. Use las claves de condición para restringir el acceso (p. ej.aws:SourceVpc,aws:SourceVpce).

importante

Un agente Runtime o una puerta de enlace solo se pueden configurar con la autenticación SIGv4 U OAuth en el momento de la creación, no ambas simultáneamente. Esto significa que una política única basada en recursos se aplica a un solo tipo de autenticación.

Estructura de la política

Una política basada en recursos es un documento JSON con la siguiente estructura:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "StatementId", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/role-name" }, "Action": "bedrock-agentcore:ActionName", "Resource": "arn:aws:bedrock-agentcore:region:account-id:resource-type/resource-id", "Condition": { "ConditionOperator": { "ConditionKey": "ConditionValue" } } } ] }
importante

El Resource campo del documento de política debe contener el ARN exacto del recurso al que se adjunta la política. Uso del «recurso»: no se admite «*» y provocará un error de validación.

Acciones admitidas

Acciones del agente en tiempo de ejecución

  • bedrock-agentcore:InvokeAgentRuntime- Invoca el tiempo de ejecución de un agente

  • bedrock-agentcore:InvokeAgentRuntimeForUser- Invoca un punto final de ejecución del agente con un encabezado X-Amzn-Bedrock-AgentCore-Runtime-User-Id

  • bedrock-agentcore:InvokeAgentRuntimeCommand- Ejecute un comando de shell en una sesión de ejecución activa

  • bedrock-agentcore:InvokeAgentRuntimeCommandShell- Abra una sesión de WebSocket shell interactiva en una sesión de ejecución activa

  • bedrock-agentcore:InvokeAgentRuntimeWithWebSocketStream- Invoca el tiempo de ejecución de un agente con stream WebSocket

  • bedrock-agentcore:InvokeAgentRuntimeWithWebSocketStreamForUser- Invoca el tiempo de ejecución de un agente con un WebSocket flujo con encabezado X-Amzn-Bedrock-AgentCore-Runtime-User-Id

  • bedrock-agentcore:StopRuntimeSession- Detener una sesión de tiempo de ejecución activa

  • bedrock-agentcore:GetAgentCard- Recuperar la información de la tarjeta del agente

Acciones de Gateway

  • bedrock-agentcore:InvokeGateway- Invocar una puerta de enlace

Acciones de memoria

  • bedrock-agentcore:GetMemory- Recuperar un recurso de memoria

  • bedrock-agentcore:UpdateMemory- Actualizar un recurso de memoria

  • bedrock-agentcore:DeleteMemory- Eliminar un recurso de memoria

  • bedrock-agentcore:CreateEvent- Crea un evento en un recurso de memoria

  • bedrock-agentcore:GetEvent- Recuperar un evento de un recurso de memoria

  • bedrock-agentcore:DeleteEvent- Eliminar un evento de un recurso de memoria

  • bedrock-agentcore:ListEvents- Listar los eventos de un recurso de memoria

  • bedrock-agentcore:ListActors- Enumera los actores de un recurso de memoria

  • bedrock-agentcore:ListSessions- Listar las sesiones de un recurso de memoria

  • bedrock-agentcore:GetMemoryRecord- Obtenga un registro de memoria de un recurso de memoria

  • bedrock-agentcore:ListMemoryRecords- Listar los registros de memoria de un recurso de memoria

  • bedrock-agentcore:RetrieveMemoryRecords- Busca registros de memoria de un recurso de memoria

  • bedrock-agentcore:DeleteMemoryRecord- Eliminar un registro de memoria de un recurso de memoria

  • bedrock-agentcore:BatchCreateMemoryRecords- Cree registros de memoria por lotes en un recurso de memoria

  • bedrock-agentcore:BatchUpdateMemoryRecords- Actualice por lotes los registros de memoria de un recurso de memoria

  • bedrock-agentcore:BatchDeleteMemoryRecords- Eliminar por lotes los registros de memoria de un recurso de memoria

  • bedrock-agentcore:StartMemoryExtractionJob- Inicie un trabajo de extracción dentro de un recurso de memoria

  • bedrock-agentcore:ListMemoryExtractionJobs- Enumere los trabajos de extracción dentro de un recurso de memoria

Claves de condición

Puedes usar las claves de condición para refinar aún más el control de acceso en tus políticas. Para obtener una lista completa de las claves de condición disponibles, consulta las claves de AgentCore estado de Bedrock y las claves de contexto de condiciones AWS globales.

Casos de uso y ejemplos comunes

En esta sección se proporcionan ejemplos prácticos de políticas basadas en recursos para escenarios comunes. El Resource campo de cada ejemplo debe contener el ARN exacto del recurso al que está asociada la política. Sustituya los ARN de ejemplo por los ARN de sus recursos reales.

Permite roles en otro AWS inscrita

Otorgue acceso a la API a funciones específicas en una AWS cuenta diferente:

// Policy attached to arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:role/DeveloperRole", "arn:aws:iam::123456789012:role/AdminRole" ] }, "Action": "bedrock-agentcore:InvokeAgentRuntime", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID" } ] }

Denegar el tráfico en función de la dirección IP de origen

Bloquee el tráfico entrante de rangos de direcciones IP específicos:

// Policy attached to arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/ApplicationRole" }, "Action": "bedrock-agentcore:InvokeAgentRuntime", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID" }, { "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::123456789012:role/ApplicationRole" }, "Action": "bedrock-agentcore:InvokeAgentRuntime", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID", "Condition": { "IpAddress": { "aws:SourceIp": [ "192.0.2.0/24", "198.51.100.0/24" ] } } } ] }

Permita el tráfico solo desde una VPC específica

Restrinja el acceso a las solicitudes de una VPC específica:

// Policy attached to arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/ApplicationRole" }, "Action": "bedrock-agentcore:InvokeAgentRuntime", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID" }, { "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::123456789012:role/ApplicationRole" }, "Action": "bedrock-agentcore:InvokeAgentRuntime", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID", "Condition": { "StringNotEquals": { "aws:SourceVpc": "vpc-1a2b3c4d" } } } ] }

Autenticación OAuth con restricción de VPC

Cuando su Agent Runtime o Gateway estén configurados con la autenticación OAuth, debe usar un principal comodín. En este ejemplo, se restringen las OAuth-authenticated solicitudes a una VPC específica:

// Policy attached to arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOAuthFromVPC", "Effect": "Allow", "Principal": "*", "Action": "bedrock-agentcore:InvokeAgentRuntime", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID", "Condition": { "StringEquals": { "aws:SourceVpc": "vpc-1a2b3c4d" } } } ] }
importante

El principal comodín («Principal»: «*») es necesario para la autenticación de OAuth. AWS Identity Service valida los tokens de OAuth antes de la evaluación de la política. Solo los usuarios con tokens JWT válidos de tu proveedor de identidad registrado pueden acceder al recurso. Las solicitudes anónimas o no autenticadas se rechazan antes de pasar a la evaluación de la política. Usa claves de condición (comoaws:SourceVpc,aws:SourceVpce) para restringir aún más el acceso

Administración de políticas de recursos

Selecciona uno de los siguientes métodos:

ejemplo
AWS CLI
  1. ====== Crear o actualizar una política de recursos

    Utilice el comando put-resource-policy:

    aws bedrock-agentcore-control put-resource-policy \ --resource-arn arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID \ --policy file://policy.json

    Obtenga una política de recursos

    Utilice el comando get-resource-policy:

    aws bedrock-agentcore-control get-resource-policy \ --resource-arn arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID

    Eliminar una política de recursos

    Utilice el comando delete-resource-policy:

    aws bedrock-agentcore-control delete-resource-policy \ --resource-arn arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID
Python (Boto3)
  1. Los siguientes ejemplos muestran cómo administrar las políticas de recursos mediante el SDK de AWS Python (Boto3):

    import boto3 import json client = boto3.client('bedrock-agentcore-control', region_name='us-west-2') # Define the resource ARN resource_arn = 'arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID' # Put resource policy # Note: The Resource field must match the resource ARN to which the policy is attached policy = { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::123456789012:role/MyRole"}, "Action": "bedrock-agentcore:InvokeAgentRuntime", "Resource": resource_arn } ] } response = client.put_resource_policy( resourceArn=resource_arn, policy=json.dumps(policy) ) # Get resource policy response = client.get_resource_policy( resourceArn='arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID' ) print(response['policy']) # Delete resource policy response = client.delete_resource_policy( resourceArn='arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID' )

Prácticas recomendadas de seguridad

Aplicar permisos de privilegios mínimos

Conceda solo los permisos mínimos necesarios para su caso de uso:

// Policy attached to arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ApplicationRole" }, "Action": "bedrock-agentcore:InvokeAgentRuntime", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID" } ] }

Evite que el diputado se confunda

Utilice siempre las claves de condición al conceder el acceso a AWS los servicios:

// Policy attached to arn:aws:bedrock-agentcore:us-west-2:111122223333:gateway/GATEWAYID { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "bedrock-agentcore:InvokeGateway", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:gateway/GATEWAYID", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnEquals": { "aws:SourceArn": "arn:aws:lambda:us-west-2:111122223333:function/SpecificFunction" } } } ] }

Usa la denegación explícita para los controles críticos

Utilice sentencias de denegación explícitas para las restricciones críticas para la seguridad:

// Policy attached to arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID { "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAllExceptVPC", "Effect": "Deny", "Principal": "*", "Action": "bedrock-agentcore:InvokeAgentRuntime", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID", "Condition": { "StringNotEquals": { "aws:SourceVpc": "vpc-12345678" }, "Bool": { "aws:ViaAWSService": "false" } } } ] }

Resolución de problemas

Errores de acceso denegado

Si recibes un error de «Acceso denegado»:

  • Compruebe ambas políticas: compruebe tanto las políticas basadas en la identidad como las basadas en los recursos

  • Busque las denegaciones explícitas: una denegación explícita en cualquier política anula todas las autorizaciones

  • Verifique el ARN principal: asegúrese de que el ARN principal de la política coincida con el de la persona que llama

  • Compruebe las condiciones: compruebe que todas las claves de condición se evalúen como verdaderas

  • Revise los SCP: las políticas de control de los servicios de la organización pueden anular las políticas de recursos

Errores de validación de políticas

Errores comunes de validación de políticas:

  • JSON no válido: asegúrese de que su política sea un JSON válido

  • Formato ARN no válido: verifica que todos los ARN sigan el formato correcto

  • Acciones no compatibles: compruebe que todas las acciones sean compatibles con el tipo de recurso

  • Faltan elementos obligatorios: asegúrese de que la versión, la declaración, el efecto, el principal y la acción estén presentes