Um die kontinuierliche BS-Konformität Ihrer Umgebung zu gewährleisten, vernetzen Sie als Compliance Officer Cloud Guardrails mit dem SaltStack-Idem-Plug-In.

Mit dem SaltStack-Idem-Plug-In können Sie sicherstellen, dass Ihre Umgebung den konsensbasierten Best Practices und Standards von CIS entspricht.

Das SaltStack-Idem-Plug-In macht statusbehaftete Programmierkonstrukte verfügbar, die Aufgaben vereinfachen, wie z. B. das Erzwingen des Zustands einer Anwendung. Durch die Vernetzung von Cloud Guardrails mit dem SaltStack-Idem-Plug-In können Sie in der SaltStack-Umgebung Folgendes erstellen, löschen und beschreiben:

  • Ein Ziel
  • Eine Richtlinie

Das SaltStack-Idem-Plug-In kann Richtlinieninformationen erfassen, die kontinuierliche Erzwingung in Ihrer Infrastruktur unterstützen und SLS-Dateien ausführen, die Standardisierungen erzwingen.

Tabelle 1. Funktionsweise des SaltStack-Idem-Plug-Ins
BS-Konformitätsaktionen Funktionsweise des SaltStack-Idem-Plug-Ins
Erfassen Sie Informationen aus SaltStack-Zielen und SaltStack-Richtlinien.

Erfasst Informationen über:

  • Ziele in der SaltStack-Umgebung.
  • Richtlinien in der SaltStack-Umgebung.
Führen Sie SLS-Dateien aus, die Standardisierungen von SaltStack SecOps erzwingen.
  • Erzwingen Sie die Standardisierung automatisch für einen Satz verschiedener Betriebssysteme (BS).
  • Erzwingen Sie eine Richtlinie bei Bedarf.

Das SaltStack-Idem-Plug-In kann mit allen verfügbaren Benchmarks und Prüfungen in SaltStack arbeiten.

Bei diesem Verfahren wird davon ausgegangen, dass Sie SaltStack Config und die Salt-Minions bereits konfiguriert haben und dass die Automatisierung für die Bereitstellung der Salt-Minions, einschließlich Public Cloud-Körnung, und deren Registrierung abgeschlossen ist.

Voraussetzungen

  • Sie sollten mit der SaltStack-Architektur vertraut sein. Weitere Informationen finden Sie in der Dokumentation zur SaltStack Config-Systemarchitektur.
  • Wenn Sie die lokale Version von SaltStack Config verwenden, vergewissern Sie sich, dass Ihre SaltStack Config-Umgebung mit den Minions mit Ihrer vRealize Automation-Instanz vernetzt ist, sodass Sie sie über Cloud Guardrails verwenden können. Weitere Informationen finden Sie in der Dokumentation zur lokalen SaltStack-Installation unter Installieren und Konfigurieren von SaltStack Config.
  • Wenn Sie die Cloud-Version von SaltStack Config verwenden, vergewissern Sie sich, dass Ihre SaltStack Config-Umgebung mit den Minions mit Ihrer vRealize Automation-Instanz vernetzt ist, sodass Sie sie über Cloud Guardrails verwenden können. Weitere Informationen finden Sie in der Dokumentation zur Cloud-Version der SaltStack Config-Installation unter Erstellen einer SaltStack Config-Integration in vRealize Automation Cloud.

Prozedur

  1. Greifen Sie über Ihre vRealize Automation Cloud-Instanz auf Cloud Guardrails zu.
  2. Erstellen Sie eine Sicherheitsvorlage für die SaltStack-Erzwingung.
    1. Klicken Sie auf der Registerkarte „Guardrails“ auf +Neu.
    2. Klicken Sie auf Von Grund auf.
    3. Geben Sie einen Namen und eine Beschreibung für die Vorlage ein.
    4. Wählen Sie die Kategorie Sicherheit aus.
      Wenn Sie eine Cloud Guradrails-Vorlage von Grund auf neu erstellen, müssen Sie eine Kategorie und ein Projekt auswählen.
    5. Wählen Sie ein Projekt aus und klicken Sie auf Weiter.
  3. Kopieren Sie den SaltStack-Sicherheitserzwingungscode in den Vorlagen-Editor.
    1. Kopieren Sie mithilfe des Erzwingungsrichtliniencodes in diesem Thema den Code in den Vorlagen-Editor.
    2. Klicken Sie auf Validieren.
      Cloud Guardrails zeigt eine Meldung an, dass die Vorlage gültig ist.
    3. Klicken Sie auf Erstellen.
      Nachdem Sie die Vorlage erstellt haben, können Sie den gewünschten Zustand für die Erzwingung der SaltStack-Richtlinie ausführen.
      Cloud Guardrails zeigt eine Meldung an, dass die Vorlage erstellt wurde, und zeigt die zugewiesene ID dafür an.
  4. Erstellen Sie einen gewünschten Zustand für die SaltStack-Erzwingung.
    1. Klicken Sie auf Gewünschten Zustand erstellen.
    2. Geben Sie einen Namen und eine Beschreibung für den gewünschten Zustand ein.
    3. Wählen Sie die Vorlage aus, die Sie erstellt haben. Wählen Sie beispielsweise SaltStack-Erzwingung erstellen aus.
    4. Wählen Sie ein Cloud-Konto und eine Cloud-Kontoregion aus und klicken Sie auf Erstellen.
  5. Überprüfen Sie, ob die gewünschten Zustände der SaltStack-Sicherheitserzwingung Ihren Anforderungen entsprechen, und aktualisieren Sie sie nach Bedarf.
    1. Klicken Sie auf Ziel erstellen.
    2. Überprüfen Sie die Werte der Eingabeparameter für Ziel, Zielname und Zieltyp.
    3. Wenn Änderungen erforderlich sind, aktualisieren Sie die Werte der Eingabeparameter.
      Zieltyp unterstützt beispielsweise Grain, List, Glob und Compound.
    4. Aktualisieren Sie den Code, um alle Änderungen widerzuspiegeln, die Sie am gewünschten Zustand Ziel erstellen vorgenommen haben.
    5. Klicken Sie auf Richtlinie für Ziel erstellen.
    6. Überprüfen Sie die Werte der Eingabeparameter für Zielname, Standardisieren und Richtlinienname.
    7. Wenn Änderungen erforderlich sind, aktualisieren Sie die Werte der Eingabeparameter.
      Beispielsweise können Sie Standardisieren auf Ja oder Nein festlegen.
    8. Aktualisieren Sie den Code, um alle Änderungen widerzuspiegeln, die Sie am gewünschten Zustand Richtlinie für Ziel erstellen vorgenommen haben.
  6. Um die Vorlage zu überprüfen und Ihre Änderungen zu speichern, klicken Sie auf Überprüfen und dann auf Speichern.
    Cloud Guardrails zeigt eine Meldung an, dass die Eingabeparameter gültig sind und die Vorlage erfolgreich gespeichert wurde.
  7. Führen Sie den gewünschten Zustand aus und überprüfen Sie die resultierende Erzwingung.
    1. Klicken Sie auf Gewünschten Zustand ausführen.
    2. Klicken Sie auf die Registerkarte Erzwingungen und überprüfen Sie, ob der gewünschte Zustand erfolgreich ausgeführt wurde.
      Wenn die Erzwingung fehlschlägt, korrigieren Sie alle Fehler und versuchen Sie, den gewünschten Zustand erneut auszuführen.

Ergebnisse

Sie haben das SaltStack-Idem-Plug-In verwendet, um die kontinuierliche BS-Konformität Ihrer Umgebung sicherzustellen.

Beispiel: Erstellen einer SaltStack-Erzwingung mithilfe dieser SLS-Vorlagen

Code für eine Erzwingungsrichtlinie:

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"

Code für eine Löschrichtlinie:

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

Code für eine Richtlinie zum Löschen eines Ziels:

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

Nächste Maßnahme

Stellen Sie weiterhin die BS-Konformität Ihrer SaltStack-Umgebung sicher, indem Sie die Vorlagen in Cloud Guardrails ausführen und die gewünschten Zustände überwachen.