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) según 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 con lenguajes como Terraform para que puedas implementar los recursos 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.

Validar tu IaC te permite determinar si tus definiciones de recursos nuevos o modificados violan 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 con 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 corregir cualquier problema de seguridad en la configuración de IaC de los recursos o activos 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 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.

Si activas Security Command Center, se habilitan las APIs de securityposture.googleapis.com y securitycentermanagement.googleapis.com.

Configura los 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 colunn 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 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. 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.

    Para 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

    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.

    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.

    Define tus 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 se indican en Crea y, luego, implementa una postura.

    Crea tu código de Terraform

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

    Ten en cuenta lo siguiente:

    • Completa 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 políticas y tipos de recursos admitidos. Para obtener una lista de los tipos de activos y las políticas compatibles, consulta Tipos de activos y políticas admitidos para la validación de IaC.
    • Revisa las limitaciones de la validación de 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, se quitan los campos.

    Después de crear tu código de Terraform, puedes ejecutar el informe de validación de la IaC. Puedes usar la 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 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.json
      

      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 la IAC. Para obtener información sobre la operación, consulta Cómo ver información sobre una operación de implementación de postura.

    ¿Qué sigue?