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) con el políticas de la organización y 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.

La validación de la IaC te permite determinar si tu recurso nuevo o modificado definiciones infringen las políticas existentes que se aplican a 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. Validación de la IaC ayuda a los desarrolladores a identificar y solucionar problemas de seguridad en la IaC de los 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 Terraform plan usando Google Cloud CLI, o puedes integrar en tu desarrollador de Cloud Build, Jenkins o GitHub Actions en el flujo de trabajo.

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.

La activación de Security Command Center habilita el securityposture.googleapis.com y APIs de 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 tu políticas de la organización y Detectores de Security Health Analytics. Para definir estas políticas con una postura de seguridad, completa las tareas en Crea y, luego, 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 en los recursos de Google Cloud que quieres crear o modificar.

    Ten en cuenta lo siguiente:

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

    Después de crear el código de Terraform, puedes ejecutar el informe de validación de IaC. Tú puede usar gcloud CLI, Cloud Build, Jenkins o Acciones de GitHub.

    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 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 de Terraform plan.
      • 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: La organización de Google Cloud en para 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 contenga el plan de IaC que quieras 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 la validación de IAC . Para obtener información sobre la operación, consulta Consulta información sobre una operación de implementación de posturas.

    ¿Qué sigue?