Valida tu IaC en función de las políticas de tu 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 Google Cloud organización. La IaC te permite crear y administrar tus recursos en la nube con lenguajes como Terraform para que puedas implementarlos con un flujo de trabajo de desarrollo. La función de validación de 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 nuevos o modificados infringen las políticas existentes que se aplican a tus Google Cloud recursos (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 el código y lo compara con las políticas efectivas definidas en las posturas que se implementan en tu Google Cloud organización. La validación de IaC ayuda a tus desarrolladores a identificar y corregir cualquier problema de seguridad en la configuración de IaC de los recursos o activos antes de que se apliquen a tu Google Cloud entorno.

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 integrar el proceso de validación en tu flujo de trabajo de desarrollador de Cloud Build, Jenkins o GitHub Actions.

Antes de comenzar

Completa estas tareas para comenzar a usar 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.

Configura los permisos

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

    Verifica los roles

    1. En la Google Cloud consola de, dirígete a la página IAM.

      Ir a IAM
    2. Selecciona la organización.
    3. En la columna Principal, busca todas las filas que te identifiquen a ti o a un grupo en el que se te incluya. Para saber en qué grupos estás incluido, comunícate con tu administrador.

    4. Para todas las filas en las que se te especifique o se te incluya, verifica la columna Rol para ver si la lista de roles incluye los roles necesarios.

    Otorga los roles

    1. En la Google Cloud consola de, dirígete 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 identificador de usuario. Esta suele ser la dirección de correo electrónico de una Cuenta de Google.

    5. Haz clic en Selecciona un rol y, luego, busca el rol.
    6. Para otorgar roles adicionales, haz clic en Agregar otro rol y agrega cada rol adicional.
    7. Haz clic en Guardar.

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

Configura Google Cloud CLI

En la Google Cloud consola de, activa Cloud Shell.

Activa Cloud Shell

En la parte inferior de la Google Cloud consola de 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 gcloud CLI 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 APIs de Security Posture y Security Center Management.

Roles necesarios para habilitar las APIs

Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el permiso serviceusage.services.enable. Obtén más información para otorgar roles.

Habilitar las API

Define las políticas

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

Crea tu código de Terraform

Usa tus flujos de trabajo y herramientas de desarrollador para crear un archivo de Terraform que incluya los Google Cloud recursos 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 activo 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 los tipos de recursos y las políticas admitidos. Para obtener una lista de los tipos de recursos y las políticas admitidos, consulta Tipos de recursos y políticas admitidos para la validación de IaC.
  • Revisa las limitaciones para la validación de IaC.
  • No incluyas información sensible, como contraseñas o cualquier otra información de identificación personal, en tu archivo de plan de Terraform. Si la función de validación encuentra campos marcados como sensibles en los cambios de recursos, se quitan los campos.

Después de crear tu código de Terraform, puedes ejecutar el informe de validación de IaC. Puedes usar gcloud CLI, Cloud Build, 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 ejecutes la versión v5.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: El nombre del archivo de plan de Terraform.
    • TF_PLAN_JSON_FILENAME: El nombre del archivo que contendrá el plan de Terraform en formato JSON.
  3. Crea el informe de validación de la IaC:

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

    Reemplaza lo siguiente:

    • PARENT: La Google Cloud organización 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: 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 Visualiza información sobre una operación de implementación de postura.

¿Qué sigue?