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
-
El lenguaje natural se convierte en una política de Cedar
-
Cada política generada se valida con el esquema de puerta de enlace
-
El análisis se ejecuta en cada política de forma individual
-
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 |
|---|---|---|---|
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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. |