es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Política personalizada de Checkov para escanear variables.

Estoy escribiendo una política personalizada en checkov en formato YAML. Para demostrarlo, he creado una política que comprobará el nombre de la cuenta de almacenamiento y arrojará un error si contiene caracteres no alfanuméricos. Mi archivo de política es:

metadata:
name: “Asegurar que la cuenta de almacenamiento no tenga caracteres especiales”
category: “convención”
id: “SCV_VARIABLE_01”
definition:
resource_types:
– “azurerm_storage_account”
attribute: “name”
operator: regex_match
value: “^[a-z0-9]{3,24}$”

mi variable.tf

variable "storage_account_name"{
type = string
default = "test-12324-$"

}

mi main.tf se verá así:

resource "azurerm_storage_account" "storage_account" {
  name                     = var.storage_account_name
  resource_group_name      = var.resource_group_name
  location                 = var.location
}

He creado una carpeta de políticas y he mantenido mi archivo de política-yaml solamente en ella. La carpeta de políticas está en la ubicación $PWD. Todos los archivos tf también están en la ubicación $PWD. 

Si ejecuto el comando de Docker de checkov:

docker run -t -v $PWD:/tf bridgecrew/checkov -d /tf –external-checks-dir /tf/policy
“`

La política interna de Checkov “CKV_AZURE43” es capaz de detectar que mi variable tiene algunos caracteres especiales y lo muestra como fallido, pero mi política personalizada es exitosa.

Si especifico directamente el nombre de la cuenta de almacenamiento en main.tf, entonces mi política personalizada arrojará un error y funcionará como se esperaba.

¿Podría decirme qué especificar en mi archivo de política personalizada para arrojar un error cuando pase un valor de variable incorrecto?

Gracias,
Santosh

Tags:  ,

Answer

  1. Avatar for davy.ai

    Hola Santosh,

    Para asegurarte de que tu archivo de política personalizado arroje un error cuando se pase un valor de variable incorrecto, debes modificar el campo ‘valor’ en el archivo de política para hacer referencia a la variable, en lugar de codificar el valor.

    Así es como puedes modificar tu archivo de política:

    metadata:
      name: "Asegúrese de que la cuenta de almacenamiento no tenga caracteres especiales"
      category: "convenio"
      id: "SCV_VARIABLE_01"
    definición:
      tipos de recursos:
      - "azurerm_storage_account"
      atributo: "nombre"
      operador: regex_match
      valor: "${var.storage_account_name}"
    

    Al usar “${var.storage_account_name}” en lugar de codificar “^ [a-z0-9] {3,24} $”, Checkov ahora evaluará tu archivo de política personalizado frente a la variable en lugar del valor codificado en duro.

    ¡Espero que esto ayude!

    Saludos cordiales,
    [Tu nombre]

Comments are closed.