Creación y actualización de políticas: validación por motor de políticas
Al crear o actualizar políticas directamente (no mediante la generación), la validación y el análisis tienen en cuenta la nueva política, así como sus interacciones con todas las políticas preexistentes en el motor de políticas.
Funcionamiento
-
La política se compara con el esquema de Cedar para todas las pasarelas asociadas al motor de políticas. Las comprobaciones de esquema siempre se ejecutan independientemente del modo de validación.
-
Si el modo de validación está configurado en
FAIL_ON_ANY_FINDINGS, la validación semántica se ejecuta en el contexto de todo el motor de políticas, comprobando si hay políticas demasiado permisivas, demasiado restrictivas e ineficaces. Si se comprueba el esquema o se obtienen resultados mediante la validación semántica, se rechaza la política. Para obtener más información sobre cada comprobación, consulte Descripción general de la validación y el análisis.
nota
ConIGNORE_ALL_FINDINGS, solo se ejecutan las comprobaciones de esquema. Las políticas se aceptan siempre que superen las comprobaciones del esquema. Para obtener más información, consulte Agregar políticas al motor de políticas.
Ejemplo: crear una política con validación
Cree una política con una validación estricta que rechace las políticas con cualquier resultado:
aws bedrock-agentcore-control create-policy \ --policy-engine-id MyEngine-abc123 \ --name RestrictRefunds \ --validation-mode FAIL_ON_ANY_FINDINGS \ --definition '{ "cedar": { "statement": "forbid(\n principal,\n action == Action::\"processRefund\",\n resource\n) when {\n context.amount > 1000\n};" } }'
La respuesta indica que la política se está creando:
{ "policyId": "RestrictRefunds-ghi789", "status": "CREATING" }
Compruebe el estado de la política para confirmar que se ha superado la validación:
aws bedrock-agentcore-control get-policy \ --policy-engine-id MyEngine-abc123 \ --policy-id RestrictRefunds-ghi789
Cuando se aprueba la validación, la política se activa:
{ "policyId": "RestrictRefunds-ghi789", "status": "ACTIVE", "statusReasons": [] }
Ejemplo: error de validación
Si una política hace referencia a una acción que no existe en el esquema de ninguna puerta de enlace asociada, la validación falla:
aws bedrock-agentcore-control create-policy \ --policy-engine-id MyEngine-abc123 \ --name InvalidPolicy \ --validation-mode FAIL_ON_ANY_FINDINGS \ --definition '{ "cedar": { "statement": "permit(\n principal,\n action == Action::\"nonExistentTool\",\n resource\n);" } }'
Al comprobar el estado de la política, la respuesta muestra el error de validación:
aws bedrock-agentcore-control get-policy \ --policy-engine-id MyEngine-abc123 \ --policy-id InvalidPolicy-jkl012
{ "policyId": "InvalidPolicy-jkl012", "status": "CREATE_FAILED", "statusReasons": [ "Validation failed: Action 'nonExistentTool' is not defined in the schema for any associated gateway" ] }