규정 준수 담당자는 환경의 지속적인 OS 규정 준수를 보장하기 위해 Cloud Guardrails를 SaltStack Idem 플러그인과 통합합니다.
SaltStack Idem 플러그인을 사용하면 환경이 합의 기반 CIS 모범 사례 및 표준에 부합하는지 확인할 수 있습니다.
SaltStack Idem 플러그인은 애플리케이션 상태 적용과 같은 작업을 간소화하는 상태 저장 프로그래밍 구문을 노출합니다. Cloud Guardrails를 SaltStack Idem 플러그인과 통합하여 SaltStack 환경에서 다음을 생성, 삭제 및 설명할 수 있습니다.
- 대상
- 정책
SaltStack Idem 플러그인은 정책 정보를 수집하고 인프라에 대한 지속적인 적용을 지원하며 업데이트 적용을 시행하는 SLS 파일을 실행할 수 있습니다.
OS 규정 준수 작업 | SaltStack Idem 플러그인이 수행하는 작업 |
---|---|
SaltStack 대상 및 SaltStack 정책에서 정보를 수집합니다. | 다음 사항에 대한 정보를 수집합니다.
|
SaltStack SecOps에서 업데이트 적용을 시행하는 SLS 파일을 실행합니다. |
|
SaltStack Idem 플러그인은 SaltStack에서 사용 가능한 모든 벤치마크 및 검사와 함께 작동할 수 있습니다.
이 절차에서는 SaltStack Config 및 Salt 미니언을 이미 구성했으며 공용 클라우드 Grain을 포함한 Salt 미니언을 배포하고 등록하기 위한 자동화가 완료된 것으로 가정합니다.
사전 요구 사항
- SaltStack 아키텍처에 대해 잘 알고 있는지 확인합니다. SaltStack Config 시스템 아키텍처 설명서를 참조하십시오.
- 온-프레미스 버전의 SaltStack Config를 사용하는 경우에는 미니언이 있는 SaltStack Config 환경이 vRealize Automation 인스턴스와 통합되어 Cloud Guardrails에서 사용할 수 있는지 확인합니다. SaltStack Config 설치 및 구성에서 온-프레미스 SaltStack 설치 설명서를 참조하십시오.
- 클라우드 버전의 SaltStack Config를 사용하는 경우에는 미니언이 있는 SaltStack Config 환경이 vRealize Automation 인스턴스와 통합되어 Cloud Guardrails에서 사용할 수 있는지 확인합니다. vRealize Automation Cloud에서 SaltStack Config 통합 생성에서 클라우드 SaltStack Config 설치 설명서를 참조하십시오.
프로시저
결과
환경의 지속적인 OS 규정 준수를 보장하기 위해 SaltStack Idem 플러그인을 사용했습니다.
예: 이러한 SLS 템플릿을 사용하여 SaltStack 적용을 생성합니다.
적용 정책의 코드:
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"
삭제 정책의 코드:
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 }}
대상 삭제 정책의 코드:
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 }}
다음에 수행할 작업
Cloud Guardrails에서 템플릿을 실행하고 원하는 상태를 모니터링하여 SaltStack 환경의 OS 규정 준수를 계속 확인합니다.