View a markdown version of this page

Generación de políticas: validación por política - Amazon Bedrock AgentCore

Generación de políticas: validación por política

Cuando se utiliza el servicio de creación de políticas para generar políticas a partir del lenguaje natural, la validación y el análisis se realizan por política individual durante la generación.

Funcionamiento

  1. El lenguaje natural se convierte en una política de Cedar

  2. Cada política generada se valida con el esquema de puerta de enlace

  3. El análisis se ejecuta en cada política de forma individual

  4. Los resultados están disponibles en la respuesta de generación

Ejemplo: generar y validar una política

La recuperación de los resultados de la generación es un proceso de dos pasos: primero compruebe el estado de la generación y, a continuación, enumere los activos generados para ver las políticas y sus resultados de validación.

Inicie una generación de políticas:

aws bedrock-agentcore-control start-policy-generation \ --policy-engine-id MyEngine-abc123 \ --name RefundPolicy \ --content '{ "rawText": "Allow customer service agents to process refunds up to 500 dollars for orders placed within the last 30 days" }' \ --resource '{ "arn": "arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/MyGateway-xyz789" }'

La respuesta incluye un identificador y un estado de generación de políticas:

{ "policyGenerationId": "RefundPolicy-def456", "policyEngineId": "MyEngine-abc123", "status": "GENERATING" }

Compruebe el estado de la generación medianteget-policy-generation:

aws bedrock-agentcore-control get-policy-generation \ --policy-engine-id MyEngine-abc123 \ --policy-generation-id RefundPolicy-def456

La respuesta muestra el estado general de la generación:

{ "policyGenerationId": "RefundPolicy-def456", "status": "GENERATED", "statusReasons": [] }

Una vez obtenido el estadoGENERATED, enumere los activos generados para recuperar las políticas y sus resultados de validación por política:

aws bedrock-agentcore-control list-policy-generation-assets \ --policy-engine-id MyEngine-abc123 \ --policy-generation-id RefundPolicy-def456

La respuesta incluye cada política generada con su definición de Cedar y sus resultados de validación:

{ "policyGenerationAssets": [ { "policyGenerationAssetId": "asset-1", "definition": { "cedar": { "statement": "permit(\n principal is AgentCore::OAuthUser,\n action == AgentCore::Action::\"RefundTool___process_refund\",\n resource == AgentCore::Gateway::\"arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/MyGateway-xyz789\"\n) when {\n context.input.amount <= 500\n};" } }, "findings": [ { "type": "VALID" } ], "rawTextFragment": "Allow customer service agents to process refunds up to 500 dollars" }, { "policyGenerationAssetId": "asset-2", "definition": { "cedar": { "statement": "permit(\n principal,\n action == AgentCore::Action::\"RefundTool___view_order_history\",\n resource\n);" } }, "findings": [ { "type": "ALLOW_ALL", "description": "Overly Permissive: Policy Engine will allow every request for the specified principal (AgentCore::OAuthUser), action (RefundTool___view_order_history) and resource (gateway/*) combination if the policy is added or updated" } ], "rawTextFragment": "Allow customer service agents to view order history" } ] }

Hallazgos de validación por política

Cada activo de política generado incluye una findings serie de Finding objetos, cada uno con una type ydescription. Los siguientes ejemplos muestran diferentes tipos de búsqueda:

Una política que ha superado la validación y el análisis:

{ "findings": [ { "type": "VALID" } ] }

Una política señalada como demasiado permisiva:

{ "findings": [ { "type": "ALLOW_ALL", "description": "Overly Permissive: Policy Engine will allow every request for the specified principal (AgentCore::OAuthUser), action (RefundTool___view_order_history) and resource (gateway/*) combination if the policy is added or updated" } ] }

Una política que no se pudo generar a partir de la entrada del lenguaje natural:

{ "findings": [ { "type": "NOT_TRANSLATABLE", "description": "Unsupported Condition Error: The request includes conditions that rely on data or attributes currently not supported." } ] }

Hallazgos comunes sobre las políticas generadas

En la siguiente tabla se describen los tipos de resultados que se pueden devolver para las políticas generadas:

Tipo de resultado Gravedad Description (Descripción) Acción recomendada

VALID

Success

La política es válida en Cedar sin resultados. No se devuelve ninguna descripción para este tipo de hallazgo.

No hay que hacer nada. La política está lista para usarse.

INVALID

Error

La política de Cedar generada contiene errores de sintaxis o no cumple con el esquema de la puerta de enlace.

Revise la política generada para ver si hay infracciones del esquema o problemas de sintaxis. Reformule la entrada en lenguaje natural y vuelva a generarla.

NOT_TRANSLATABLE

Error

No se pudo convertir el lenguaje natural en un Cedar válido. La solicitud puede incluir condiciones que se basen en datos o atributos no compatibles.

Compruebe el recurso de puerta de enlace objetivo para ver la definición de las herramientas.

ALLOW_ALL

Advertencia

La política de permisos se aplica a todas las combinaciones de capital, acción y recurso.

Confirme que está previsto el acceso sin restricciones. En caso contrario, añada condiciones para restringir el alcance.

ALLOW_NONE

Advertencia

La política de permisos no es determinante porque no permite nada.

Revise las condiciones de la política. La política puede contener condiciones contradictorias o inalcanzables.

DENY_ALL

Advertencia

La política niega todas las acciones a todos los directores.

Confirme que se pretende denegar por completo. Esto anula todas las políticas de permisos debido a la semántica de prohibir la anulación de los permisos.

DENY_NONE

Advertencia

La política de prohibición no es determinante porque no niega nada.

Revise las condiciones de la política. La política de prohibiciones puede contener condiciones contradictorias o inalcanzables.