Cortocircuito de lógica de política de Acceso verificado - AWS Acceso verificado

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.

Cortocircuito de lógica de política de Acceso verificado

Es posible que desee escribir una Acceso verificado de AWS política que evalúe los datos que pueden estar presentes o no en un contexto determinado. Si hace referencia a los datos en un contexto que no existe, Cedar generará un error y evaluará la política para denegarla, independientemente de su intención. Por ejemplo, esto daría lugar a una denegación, ya que fake_provider y bogus_key no existen en este contexto.

permit(principal, action, resource) when { context.fake_provider.bogus_key > 42 };

Para evitar esta situación, puede comprobar si hay una clave presente mediante el operador has. Si el operador has devuelve un valor falso, la evaluación de la declaración encadenada se detiene y Cedar no genera ningún error al intentar hacer referencia a un elemento que no existe.

permit(principal, action, resource) when { context.identity.user has "some_key" && context.identity.user.some_key > 42 };

Esto resulta especialmente útil cuando se especifica una política que hace referencia a dos proveedores de confianza diferentes.

permit(principal, action, resource) when { // user is in an allowed group context.aws_idc.groups has "c242c5b0-6081-1845-6fa8-6e0d9513c107" &&( ( // if CrowdStrike data is present, // permit if CrowdStrike's overall assessment is over 50 context has "crowdstrike" && context.crowdstrike.assessment.overall > 50 ) || ( // if Jamf data is present, // permit if Jamf's risk score is acceptable context has "jamf" && ["LOW", "NOT_APPLICABLE", "MEDIUM", "SECURE"].contains(context.jamf.risk) ) ) };