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

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

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

La función de validación de IaC admite archivos de plan de Terraform. 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 a validar la IaC.

Activa el nivel Premium o Enterprise de Security Command Center

Verifica que el nivel Premium de Security Command Center o el nivel Enterprise esté activado al 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 las activaciones a nivel de la organización.

Configura Google Cloud CLI

Puedes usar las muestras de gcloud CLI en esta página desde cualquiera de los siguientes entornos de desarrollo:

  • Cloud Shell: Para usar una terminal en línea con la CLI de gcloud ya configurada, activa Cloud Shell.

    En la parte inferior de esta página, se inicia una sesión de Cloud Shell y se muestra una ventana de línea de comandos. La sesión puede tardar unos segundos en inicializarse.

  • Shell local: Para usar la CLI de gcloud en un entorno de desarrollo local, instala e inicializa la CLI de gcloud.

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 indican en Crea e implementa una postura.

Crea tu código de Terraform

Usa las herramientas y los flujos de trabajo de desarrollador 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 o recurso en la configuración de Terraform.
  • Modifica los recursos y las políticas por separado. La API no admite la validación de archivos de plan de Terraform que modifican los recursos y las políticas al mismo tiempo.
  • Usa solo las políticas y los tipos de recursos admitidos. Para obtener una lista de las políticas y los tipos de elementos admitidos, consulta Políticas y tipos de elementos admitidos para la validación de IaC.
  • Revisa las limitaciones de validación de la IaC.
  • No incluyas información sensible, como contraseñas o 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, los campos se quitan.

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

Usa 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 de plan de Terraform 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 de 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 creará 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 de acceso 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 Consulta la información sobre una operación de implementación de postura.

¿Qué sigue?