Per garantire la conformità continua del sistema operativo dell'ambiente, è necessario integrare Cloud Guardrails con il plug-in SaltStack Idem.

Con il plug-in SaltStack Idem, è possibile garantire che l'ambiente sia allineato alle procedure consigliate e agli standard CIS basati sul consenso.

Il plug-in SaltStack Idem espone costrutti di programmazione con stato che semplificano attività come l'imposizione dello stato di un'applicazione. Integrando Cloud Guardrails con il plug-in SaltStack Idem, nell'ambiente SaltStack è possibile creare, eliminare e descrivere:

  • Una destinazione
  • Un criterio

Il plug-in SaltStack Idem può raccogliere informazioni sui criteri e supportare l'imposizione continua nell'infrastruttura ed eseguire file SLS che impongono correzioni.

Tabella 1. Funzioni del plug-in SaltStack Idem
Azioni di conformità del sistema operativo Funzioni del plug-in SaltStack Idem
Raccogliere informazioni dalle destinazioni di SaltStack e dai criteri di SaltStack.

Raccoglie informazioni su:

  • Destinazioni nell'ambiente SaltStack.
  • Criteri nell'ambiente SaltStack.
Eseguire i file SLS che impongono le correzioni da SaltStack SecOps.
  • Imporre automaticamente la correzione per un set di sistemi operativi diversi.
  • Applicare un criterio su richiesta.

Il plug-in SaltStack Idem può funzionare con tutti i benchmark e le verifiche disponibili in SaltStack.

Questa procedura presuppone che siano già stati configurati SaltStack Config e i minion Salt e che l'automazione per la distribuzione dei minion Salt, inclusa la grana cloud pubblico, e la registrazione siano stati completati.

Prerequisiti

Procedura

  1. Accedere a Cloud Guardrails dall'istanza di vRealize Automation Cloud.
  2. Creare un modello di sicurezza per l'imposizione di SaltStack.
    1. Nella scheda Guardrails, fare clic su +Nuovo.
    2. Fare clic su Da zero.
    3. Immettere un nome e una descrizione per il modello.
    4. Selezionare la categoria denominata Sicurezza.
      Quando si crea un modello Cloud Guradrails da zero, è necessario selezionare una categoria e un progetto.
    5. Selezionare un progetto, quindi fare clic su Continua.
  3. Copiare il codice di imposizione della sicurezza di SaltStack nell'editor di modelli.
    1. Utilizzando il codice del criterio di imposizione in questo argomento, copiare il codice nell'editor di modelli.
    2. Fare clic su Convalida.
      Cloud Guardrails mostra un messaggio che indica che il modello è valido.
    3. Fare clic su Crea.
      Dopo aver creato il modello, è possibile eseguire lo stato desiderato per l'applicazione dei criteri di SaltStack.
      Cloud Guardrails mostra un messaggio che indica che il modello è stato creato e l'ID assegnato.
  4. Creare lo stato desiderato per l'imposizione di SaltStack.
    1. Fare clic su Crea stato desiderato.
    2. Immettere un nome e una descrizione per lo stato desiderato.
    3. Selezionare il modello creato. Ad esempio, selezionare Crea imposizione di SaltStack.
    4. Selezionare un account cloud e una regione dell'account cloud, quindi fare clic su Crea.
  5. Verificare che gli stati desiderati per l'imposizione della sicurezza di SaltStack siano adatti alle proprie esigenze e aggiornarli se necessario.
    1. Fare clic su Crea destinazione.
    2. Verificare i valori dei parametri di input per Destinazione, Nome destinazione e Tipo di destinazione.
    3. Se sono necessarie modifiche, aggiornare i valori dei parametri di input.
      Ad esempio, Tipo di destinazione supporta Grain, List, Glob e Compound.
    4. Aggiornare il codice in modo che rifletta tutte le modifiche apportate allo stato desiderato per Crea destinazione.
    5. Fare clic su Crea criterio su destinazione.
    6. Verificare i valori dei parametri di input per Nome destinazione, Correggi e Nome criterio.
    7. Se sono necessarie modifiche, aggiornare i valori dei parametri di input.
      Ad esempio, è possibile impostare Correggi su o No.
    8. Aggiornare il codice in modo che rifletta tutte le modifiche apportate allo stato desiderato per Crea criterio su destinazione.
  6. Per convalidare il modello e salvare le modifiche, fare clic su Convalida e quindi su Salva.
    Cloud Guardrails mostra un messaggio che indica che i parametri di input sono validi e che il modello è stato salvato correttamente.
  7. Eseguire lo stato desiderato e rivedere l'imposizione risultante.
    1. Fare clic su Esegui stato desiderato.
    2. Fare clic sulla scheda Imposizioni e verificare che lo stato desiderato sia stato eseguito correttamente.
      Se l'imposizione non riesce, correggere gli eventuali errori e tentare di eseguire nuovamente lo stato desiderato.

risultati

È stato utilizzato il plug-in SaltStack Idem per garantire la conformità continua del sistema operativo dell'ambiente.

Esempio: Creare un'imposizione di SaltStack utilizzando questi modelli SLS

Codice per un criterio di imposizione:

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"

Codice per un criterio di eliminazione:

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 }}

Codice per un criterio di eliminazione della destinazione:

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 }}

Operazioni successive

L'utilizzo continui garantisce la conformità del sistema operativo dell'ambiente SaltStack eseguendo i modelli in Cloud Guardrails e monitorando gli stati desiderati.