Como responsable de conformidad, para garantizar la conformidad continua del sistema operativo del entorno, debe integrar Cloud Guardrails con el complemento SaltStack Idem.

Con el complemento SaltStack Idem, puede asegurarse de que el entorno se alinee con las prácticas recomendadas y los estándares de CIS basados en consenso.

El complemento SaltStack Idem expone construcciones de programación con estado que simplifican las tareas, como la implementación del estado de una aplicación. Al integrar Cloud Guardrails con el complemento SaltStack Idem, en el entorno de SaltStack, puede crear, eliminar y describir lo siguiente:

  • Un destino
  • Una directiva

El complemento SaltStack Idem puede recopilar información de directivas, admitir la implementación continua en la infraestructura y ejecutar archivos SLS que apliquen correcciones.

Tabla 1. Qué hace el complemento SaltStack Idem
Acciones de conformidad del sistema operativo Qué hace el complemento SaltStack Idem
Recopile información de los destinos de SaltStack y las directivas de SaltStack.

Recopila información sobre:

  • Destinos en el entorno de SaltStack.
  • Directivas en el entorno de SaltStack.
Ejecute archivos SLS que apliquen correcciones desde SaltStack SecOps.
  • Aplique la corrección automáticamente para un conjunto de sistemas operativos diferentes.
  • Aplique una directiva a pedido.

El complemento SaltStack Idem puede funcionar con todos los bancos de pruebas y las comprobaciones disponibles en SaltStack.

En este procedimiento, se supone que ya configuró SaltStack Config y los minions de Salt, y que se completaron las tareas de automatización para implementar los minions de Salt, incluidos los Grains de nube pública, y su registro.

Requisitos previos

Procedimiento

  1. Acceda a Cloud Guardrails desde la instancia de vRealize Automation Cloud.
  2. Cree una plantilla de seguridad para la implementación de SaltStack.
    1. En la pestaña Guardrails, haga clic en +Nuevo.
    2. Haga clic en Desde cero.
    3. Introduzca un nombre y una descripción para la plantilla.
    4. Seleccione la categoría con el nombre Seguridad.
      Cuando se crea una plantilla de Cloud Guardrails desde cero, debe seleccionar una categoría y un proyecto.
    5. Seleccione un proyecto y haga clic en Continuar.
  3. Copie el código de implementación de seguridad de SaltStack en el editor de plantillas.
    1. Con el código de directiva de implementación de este tema, copie el código en el editor de plantillas.
    2. Haga clic en Validar.
      Cloud Guardrails muestra un mensaje que indica que la plantilla es válida.
    3. Haga clic en Crear.
      Después de crear la plantilla, puede ejecutar el estado deseado para la implementación de directivas de SaltStack.
      Cloud Guardrails muestra un mensaje que indica que la plantilla se creó, y se muestra el identificador asignado para esta.
  4. Cree un estado deseado para la implementación de SaltStack.
    1. Haga clic en Crear estado deseado.
    2. Introduzca un nombre y una descripción para el estado deseado.
    3. Seleccione la plantilla que creó. Por ejemplo: seleccione Crear implementación de SaltStack.
    4. Seleccione una cuenta de nube y una región de cuenta de nube, y haga clic en Crear.
  5. Compruebe si los estados deseados de implementación de seguridad de SaltStack son correctos para sus necesidades y actualícelos según sea necesario.
    1. Haga clic en Crear destino.
    2. Compruebe los valores de los parámetros de entrada de Destino, Nombre de destino y Tipo de destino.
    3. Si es necesario realizar cambios, actualice los valores de los parámetros de entrada.
      Por ejemplo, Tipo de destino admite Grain, List, Glob y Compound.
    4. Actualice el código para que refleje los cambios realizados en el estado deseado de Crear destino.
    5. Haga clic en Crear directiva en el destino.
    6. Compruebe los valores de los parámetros de entrada de Nombre de destino, Corregir y Nombre de directiva.
    7. Si es necesario realizar cambios, actualice los valores de los parámetros de entrada.
      Por ejemplo, puede establecer Corregir en o No.
    8. Actualice el código para que refleje los cambios realizados en el estado deseado de Crear directiva en el destino.
  6. Para validar la plantilla y guardar los cambios, haga clic en Validar y en Guardar.
    Cloud Guardrails muestra un mensaje que indica que los parámetros de entrada son válidos y que la plantilla se guardó correctamente.
  7. Ejecute el estado deseado y revise la aplicación resultante.
    1. Haga clic en Ejecutar estado deseado.
    2. Haga clic en la pestaña Implementaciones y compruebe si el estado deseado se ejecutó correctamente.
      Si se produce un error en la aplicación, corrija los errores e intente volver a ejecutar el estado deseado.

Resultados

Utilizó el complemento SaltStack Idem para garantizar la conformidad continua del sistema operativo del entorno.

Ejemplo: Crear una implementación de SaltStack mediante estas plantillas de SLS

Código para una directiva de aplicación:

META:
  name: Create Saltstack Enforcement
  provider: SALTSTACK
  category: SECURITY
  description: Create target in saltstack, create policy over this target, add CIS benchmark checks on the policy and run remediation

{% set tgt_name = params.get('tgt_name', 'CentOS_Target') %}
{% set policy_name = params.get('policy_name', 'CIS_Benchmark_policy') %}
{% set tgt_type = params.get('tgt_type', 'grain') %}
{% set tgt_value = params.get('tgt_value', 'os:CentOS') %}
{% set remediate = params.get('remediate', true) %}

{{ tgt_name }}-target:
  META:
    name: Create Target
    parameters:
      tgt_name:
        description: Name of the target
        name: Target Name
        uiElement: text
      tgt_type:
        description: Type of the target
        name: Target Type
        uiElement: select
        options:
        - name: Grain
          value: grain
        - name: List
          value: list
        - name: Glob
          value: glob
        - name: Compound
          value: compound
      tgt_value:
        description: Value of target type
        name: Target Value
        uiElement: text
  saltstack.target.present:
  - name: {{ tgt_name }}
  - desc: idem sls
  - tgt_type: {{ tgt_type }}
  - tgt: {{tgt_value}}

{{ policy_name }}-policy:
  META:
   name: Create Policy on target
   parameters:
     policy_name:
       description: Name of the policy
       name: Policy Name
       uiElement: text
     tgt_name:
       description: Name of the target
       name: Target Name
       uiElement: text
     remediate:
       description: Whether remediation has to run on policy
       name: Remediate
       uiElement: select
       options:
         - name: "Yes"
           value: true
         - name: "No"
           value: false
  saltstack.policy.present:
  - require:
    - saltstack.target: {{ tgt_name }}-target
  - name: {{ policy_name }}
  - tgt_name: {{ tgt_name }}
  - remediate: {{ remediate }}
  - benchmark_names:
    - "CIS_CentOS_Linux_7_Benchmark_v2.2.0_server_level1-1"
  - check_names:
    - "Ensure cron daemon is enabled"
    - "Ensure access to the su command is restricted"
    - "Ensure mounting of cramfs filesystems is not enabled"

Código para una directiva de eliminación:

META:
  name: Delete Saltstack policy 
  provider: SALTSTACK
  category: SECURITY
  description: Delete Saltstack policy 

{% set policy_name = params.get('policy_name', 'CIS_Benchmark_policy') %}

{{ policy_name }}-policy:
  saltstack.policy.absent:
    - name: {{ policy_name }}

Código para una directiva de destino de eliminación:

META:
  name: Delete Saltstack target
  provider: SALTSTACK
  category: SECURITY
  description: Delete Saltstack target

{% set tgt_name = params.get('tgt_name', 'all_minion_target') %}

{{ tgt_name }}-target:
  saltstack.target.absent:
    - name: {{ tgt_name }}

Qué hacer a continuación

Siga usando para garantizar la conformidad del sistema operativo del entorno de SaltStack mediante la ejecución de las plantillas en Cloud Guardrails y la supervisión de los estados deseados.