Valida la IaC con las políticas de tu organización de Google Cloud

En este documento, se describe cómo validar la infraestructura como código (IaC) con las políticas de la organización y los detectores de estadísticas del estado de seguridad que definiste en tu organización de Google Cloud. La IaC te permite crear y administrar tus recursos en la nube con lenguajes como Terraform para que puedas implementar los recursos mediante un flujo de trabajo de desarrollo. La función de validación de la IaC solo admite políticas de la organización y detectores de Security Health Analytics.

La validación de la IaC te permite determinar si las definiciones de recursos nuevas o modificadas infringen las políticas existentes que se aplican a los recursos de Google Cloud (por ejemplo, clúster, bucket o instancia). Puedes definir estas políticas con posturas de seguridad, pero la función de validación de IaC analiza tu código en comparación con todas las políticas de tu organización de Google Cloud. La validación de la IaC ayuda a los desarrolladores a identificar y solucionar cualquier problema de seguridad en la configuración de la IaC de los recursos o recursos antes de que se apliquen a tu entorno de Google Cloud.

La función de validación de la IaC admite archivos de Terraform plan. Puedes validar tu plan de Terraform con Google Cloud CLI, o puedes integrar el proceso de validación en tu flujo de trabajo de desarrollador de Jenkins o GitHub Actions.

Antes de comenzar

Completa estas tareas para comenzar con la validación de IaC.

Activa el nivel Premium o Enterprise de Security Command Center

Verifica que el nivel Premium o Enterprise de Security Command Center esté activado a nivel de la organización.

Configurar los permisos

  1. Asegúrate de tener los siguientes roles en la organización: Security Posture Shift-Left Validator

    Verifica los roles

    1. En la consola de Google Cloud, ve a la página IAM.

      Ir a IAM
    2. Selecciona la organización.
    3. En la columna Principal, busca la fila que tiene tu dirección de correo electrónico.

      Si tu dirección de correo electrónico no está en esa columna, no tienes ningún rol.

    4. En la columna Función de la fila con la dirección de correo electrónico, verifica si la lista de roles incluye los roles necesarios.

    Otorga los roles

    1. En la consola de Google Cloud, ve a la página IAM.

      Ir a IAM
    2. Selecciona la organización.
    3. Haz clic en Grant access.
    4. En el campo Principales nuevas, ingresa tu dirección de correo electrónico.
    5. En la lista Seleccionar un rol, elige un rol.
    6. Para otorgar funciones adicionales, haz clic en Agregar otro rol y agrega cada rol adicional.
    7. Haz clic en Guardar.

Si quieres obtener más información sobre los permisos de validación de IaC, consulta IAM para activaciones a nivel de la organización.

Configura Google Cloud CLI

En la consola de Google Cloud, activa Cloud Shell.

Activar Cloud Shell

En la parte inferior de la consola de Google Cloud, se inicia una sesión de Cloud Shell en la que se muestra una ventana de línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

A fin de configurar la CLI de gcloud para usar la identidad temporal como cuenta de servicio y autenticarse en las APIs de Google, en lugar de tus credenciales de usuario, ejecuta el siguiente comando:

gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL

Para obtener más información, consulta Identidad temporal como cuenta de servicio.

Habilita las APIs

Habilita las API de Security posture service and Security Command Center management.

Habilita las API

Define tus políticas

Define las políticas de la organización y los detectores de Security Health Analytics. Para definir estas políticas con una postura de seguridad, completa las tareas que se encuentran en Crea e implementa una postura.

Crea tu código de Terraform

Usa los flujos de trabajo y las herramientas de desarrollo para crear un archivo de Terraform que incluya los recursos de Google Cloud que deseas crear o modificar.

Ten en cuenta lo siguiente:

  • Propaga el atributo superior (el proyecto, la carpeta o la organización) de cada recurso en la configuración de Terraform.
  • Modifica los activos y las políticas por separado. La API no admite la validación de los archivos de Terraform plan que modifican los recursos y las políticas al mismo tiempo.
  • Usa solo políticas y tipos de elementos admitidos. Para obtener una lista de los tipos de elementos y políticas compatibles, consulta Políticas y tipos de elementos admitidos para la validación de la IaC.
  • Revisa las limitaciones para la validación de la IaC.
  • No incluyas información sensible, como contraseñas o cualquier otra información de identificación personal, en el archivo de plan de Terraform. Si la función de validación encuentra campos marcados como sensibles en los cambios de recursos, estos se quitan.

Después de crear el código de Terraform, puedes ejecutar el informe de validación de IaC. Puedes usar Google Cloud CLI, Jenkins o GitHub Actions.

Usar Google Cloud CLI para crear un informe de validación de IaC

Para crear un informe de validación de IaC, completa lo siguiente:

  1. En gcloud CLI, ejecuta terraform init.

    Verifica que estés ejecutando la versión 5.5 o posterior del proveedor de Terraform. Si es necesario, actualiza a la versión más reciente del proveedor de Google:

    terraform init -upgrade
    
  2. Convierte el archivo terraform plan al formato JSON:

    terraform plan -out TF_PLAN_FILENAME
    terraform show -json TF_PLAN_FILENAME > TF_PLAN_JSON_FILENAME.json
    

    Reemplaza lo siguiente:

    • TF_PLAN_FILENAME: Es el nombre del archivo del plan de Terraform.
    • TF_PLAN_JSON_FILENAME: Es el nombre del archivo que contendrá el plan de Terraform en formato JSON.
  3. Crea el informe de validación de IaC:

    gcloud scc iac-validation-reports create PARENT \
      --tf-plan-file=TF_PLAN_JSON_FILENAME
    

    Reemplaza lo siguiente:

    • PARENT: Es la organización de Google Cloud en la que se crea el informe de validación de IaC. El formato es organizations/ORGANIZATION_ID/locations/LOCATION. LOCATION es global.
    • TF_PLAN_JSON_FILENAME: Es la ruta al archivo JSON que contiene el plan de IaC que deseas validar.

    Por ejemplo, para crear un informe de validación de IaC en la organización organizations/3589215982/locations/global con un plan de IaC incluido en planFile.json, ejecuta el siguiente comando:

    gcloud scc iac-validation-reports create organizations/3589215982/locations/global --tf-plan-file=planFile.json
    

    Este comando muestra los detalles de la operación para crear el informe de validación de IAC. Para obtener información sobre la operación, consulta Visualiza información sobre una operación de implementación de postura.

¿Qué sigue?