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

En este documento se describe cómo validar tu infraestructura como código (IaC) con las políticas de la organización y los detectores de Security Health Analytics que hayas definido en tu Google Cloud organización. La IaC te permite crear y gestionar tus recursos en la nube con lenguajes como Terraform para que puedas desplegar los recursos mediante 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.

Validar tu IaC te permite determinar si las definiciones de recursos nuevos o modificados infringen las políticas aplicadas a tusGoogle Cloud recursos (por ejemplo, clúster, contenedor o instancia). Puedes definir estas políticas mediante posturas de seguridad, pero la función de validación de IaC analiza el código y lo compara con las políticas vigentes definidas en las posturas que se hayan implementado en tu organización Google Cloud . 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 activos o recursos antes de que se apliquen a tuGoogle Cloud entorno.

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

Antes de empezar

Completa estas tareas para empezar a usar la validación de IaC.

Activar el nivel Premium o Enterprise de Security Command Center

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

Al activar Security Command Center, se habilitan las APIs securityposture.googleapis.com y securitycentermanagement.googleapis.com.

Configurar permisos

  1. Make sure that you have the following role or roles on the organization: Security Posture Shift-Left Validator

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the organization.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Ir a IAM
    2. Selecciona la organización.
    3. Haz clic en Conceder acceso.
    4. En el campo Nuevos principales, introduce tu identificador de usuario. Normalmente, se trata de la dirección de correo de una cuenta de Google.

    5. En la lista Selecciona un rol, elige un rol.
    6. Para conceder más roles, haz clic en Añadir otro rol y añade cada rol adicional.
    7. Haz clic en Guardar.

    Para obtener más información sobre los permisos de validación de IaC, consulta Gestión de identidades y accesos para activaciones a nivel de organización.

    Configurar Google Cloud CLI

    In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

    Para configurar gcloud CLI de forma que use la suplantación de identidad de la cuenta de servicio para autenticarse en las APIs de Google en lugar de usar 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 el artículo Suplantación de identidad de cuentas de servicio.

    Definir tus políticas

    Define las políticas de tu organización y los detectores de Security Health Analytics. Para definir estas políticas mediante una postura de seguridad, completa las tareas que se indican en Crear e implementar una postura.

    Crea tu código de Terraform

    Usa tus flujos de trabajo y herramientas para desarrolladores para crear un archivo de Terraform que incluya los Google Cloud recursos que quieras crear o modificar.

    Ten en cuenta lo siguiente:

    • Rellena el atributo superior (el proyecto, la carpeta o la organización) de cada recurso o activo de la configuración de Terraform.
    • Modificar los recursos y las políticas por separado. La API no admite la validación de archivos de plan de Terraform que modifican tanto recursos como políticas al mismo tiempo.
    • Utilice únicamente tipos de recursos y políticas admitidos. Para ver 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.
    • Consulta las limitaciones de la validación de IaC.
    • No incluyas información sensible, como contraseñas u otra información personal identificable, en tu archivo de plan de Terraform. Si la función de validación detecta campos marcados como sensibles en los cambios de recursos, se eliminan.

    Una vez que hayas creado el código de Terraform, puedes generar el informe de validación de IaC. Puedes usar gcloud CLI, Cloud Build, 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, sigue estos pasos:

    1. En gcloud CLI, ejecuta terraform init.

      Comprueba que estés usando la versión 5.5 o una 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
      

      Haz los cambios siguientes:

      • TF_PLAN_FILENAME: nombre del archivo de plan de Terraform.
      • TF_PLAN_JSON_FILENAME: 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.json
      

      Haz los cambios siguientes:

      • 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 al archivo JSON que contiene el plan de IaC que quieres 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 devuelve los detalles de la operación para crear el informe de validación de IAC. Para obtener información sobre la operación, consulta Ver información sobre una operación de despliegue de posturas.

    Siguientes pasos