컴플라이언스 스캔 입력 AWS OpsWorks for Chef Automate - AWS OpsWorks

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

컴플라이언스 스캔 입력 AWS OpsWorks for Chef Automate

중요

AWS OpsWorks for Chef Automate는 2024년 5월 5일에 수명이 종료되었으며 신규 고객과 기존 고객 모두 사용할 수 없게 되었습니다. 기존 고객은 Chef SaaS 또는 대체 솔루션으로 마이그레이션하는 것이 좋습니다. 질문이 있는 경우 AWS re:Post 또는 Premium AWS Support를 통해 AWS Support 팀에 문의할 수 있습니다.

규정 준수 검사를 사용하면 규칙이라고도 하는 사전 정의된 정책을 기반으로 인프라에서 관리형 노드의 규정 준수를 추적할 수 있습니다. 규정 준수 보기를 통해 애플리케이션의 취약성 및 규칙 미준수 구성을 정기적으로 감사할 수 있습니다. Chef는 규정 준수 검사에서 사용할 수 있는 100개 이상의 사전 정의된 규정 준수 프로필(특정 노드 구성에 적용되는 규칙 모음)을 제공합니다. Chef InSpec 언어를 사용하여 사용자 지정 프로필을 직접 만들 수도 있습니다.

서버가 Chef Automate 2.0을 아직 실행하지 않는 경우 Audit 쿡북을 설치하여 Chef Compliance를 수동으로 설정할 수 있습니다.

참고

AWS OpsWorks for Chef Automate 서버와 연결된 노드에서 지원되는 Chef Infra 클라이언트 에이전트 소프트웨어 (chef-client) 의 최소 버전은 13입니다. x. 가장 최신의 안정적인 chef-client 버전 또는 최소 14.10.9 버전을 실행하는 것이 좋습니다.

Chef Automate 2.0의 규정 준수

AWS OpsWorks for Chef Automate 서버에서 Chef Automate 2.0을 실행하는 경우 이 섹션의 절차를 사용하여 Chef 규정 준수를 설정하세요.

Chef Automate 2.0을 사용하여 규정 준수 검사 작업 실행

Chef Automate 2.0에는 이전에는 수동 설정 및 InSpec 쿡북 구성이 필요했던 Chef 규정 준수 스캔 기능이 포함되어 있습니다. Chef Automate 2.0을 실행하는 AWS OpsWorks for Chef Automate 서버에서 스캔 작업을 실행할 수 있습니다. 작업을 즉시(한 번) 실행하거나, 나중에 실행하도록 예약하거나, 매일 또는 두 시간에 한 번과 같은 지정된 간격으로 실행하도록 예약할 수 있습니다. 검사 작업의 결과는 규정 준수 보고에 전송됩니다. Chef Automate 대시보드에서 규정 준수 검사 결과를 보고 조치를 취할 수 있습니다. 규정 준수 탭을 열고 보고서를 보려면 Chef Automate 대시보드의 검사 작업 탭에서 관리형 노드 열의 오른쪽에 있는 보고서를 선택합니다.

관리형 노드에서 검사 작업을 실행하려면 다음이 있어야 합니다.

  • 네임스페이스에 설치된 최소 하나의 규정 준수 프로필.

  • 수동으로 추가된 최소 하나의 대상 노드, 또는 자동으로 추가된 EC2 인스턴스.

AWS OpsWorks for Chef Automate에서는 다음 대상에서 스캔 작업이 지원됩니다.

  • 수동으로 추가된 노드

  • aws-ec2 인스턴스

  • AWS 리전

검사 작업을 실행하는 방법에 대한 자세한 내용은 Chef 설명서의 Chef Automate 검사 작업을 참조하세요.

(선택 사항, Chef Automate 2.0) Audit 쿡북을 사용하여 규정 준수 설정

모든 AWS OpsWorks for Chef Automate 서버에서 규정 준수를 구성할 수 있습니다. AWS OpsWorks for Chef Automate 서버를 시작한 후, Chef Automate 대시보드에서 프로필을 설치하거나 Policyfile.rb 정책 파일에서 Audit 쿡북 속성에 원하는 프로필을 추가합니다. 미리 채워진 Policyfile.rb 파일이 스타터 키트에 포함되어 있습니다.

프로파일을 감사 쿡북의 속성으로 사용하여 Policyfile.rb을 편집한 후에는 chef push 명령을 실행하여 Policyfile.rb에 지정된 감사 쿡북 및 기타 쿡북을 Chef Automate 서버에 업로드합니다. 감사 쿡북을 설치하면 Chef에서 만든 오픈 소스 테스트 및 감사 InSpec프레임워크인 Gem용 Chef도 설치됩니다. Chef Automate 2.0의 경우 Audit 쿡북의 버전 7.1.0 이상을 선택합니다. InSpec 젬은 버전 2.2.102 이상이어야 합니다.

이 단원에서는 opsworks-audit 쿡북을 사용하는 방법을 설명합니다. 감사 쿡북은 Chef Automate 서버에서 지정된 프로필을 다운로드하고, DevSec SSH 기준 프로필을 기준으로 노드를 평가하고, 실행할 때마다 규정 준수 스캔 결과를 보고합니다. chef-client

규정 준수 프로필을 설치하려면
  1. 아직 시작하지 않은 경우 Chef Automate 웹 기반 대시보드에 로그인합니다. AWS OpsWorks for Chef Automate 서버를 생성하면서 스타터 키트를 다운로드할 때 받은 자격 증명을 사용합니다.

  2. Chef Automate 대시보드에서 자산 스토어 탭을 선택합니다.

    규정 준수 프로필
  3. 사용 가능 탭을 선택하여 사전 정의된 프로필을 봅니다.

  4. 프로필 목록을 찾아봅니다. 하나 이상의 관리형 노드의 운영 체제 및 구성과 일치하는 프로필을 선택합니다. 프로필의 대상 위반 및 기본 규칙 코드에 대한 설명을 포함하여 프로필에 대한 세부 정보를 보려면 프로필 항목의 오른쪽에 있는 [>]를 선택합니다. 여러 프로필을 선택할 수 있습니다. 스타터 키트에서 예제를 설정하는 경우 SSH 베이스라인을 선택하십시오. DevSec

    Chef Compliance 프로필 세부 정보 보기
  5. Chef Automate 서버에 선택한 프로필을 설치하려면 [가져오기]를 선택합니다.

  6. 프로필을 설치한 후에는 Chef Automate 대시보드의 프로필 탭에 프로필이 표시됩니다.

Policyfile.rb를 사용하여 쿡북을 설치하려면
  1. 스타터 키트에서 Policyfile.rb를 보고 Audit 쿡북에 대한 속성이 ['profiles']에서 ssh-baseline 프로필을 지정하는지 확인합니다.

    # Define audit cookbook attributes default["opsworks-demo"]["audit"]["reporter"] = "chef-server-automate" default["opsworks-demo"]["audit"]["profiles"] = [ { "name": "DevSec SSH Baseline", "compliance": "admin/ssh-baseline" } ]
  2. Policyfile.rb에 정의된 쿡북을 다운로드하고 설치합니다.

    chef install

    모든 쿡북은 쿡북의 metadata.rb 파일에 버전이 지정되어 있습니다. 쿡북을 변경할 때마다 쿡북의 metadata.rb에 있는 쿡북 버전을 올려야 합니다.

  3. Policyfile.rb에 정의된 opsworks-demo 정책을 서버에 푸시합니다.

    chef push opsworks-demo
  4. 정책 설치를 확인합니다. 다음 명령을 실행합니다.

    chef show-policy

    결과는 다음과 비슷해야 합니다.

    opsworks-demo-webserver ======================= * opsworks-demo: ec0fe46314
  5. 관리할 서버에 노드를 추가하지 않았으면 추가합니다. 첫 번째 노드를 AWS OpsWorks for Chef Automate 서버에 연결하려면 이 스타터 키트에 포함된 userdata.sh 스크립트를 사용하십시오. AWS OpsWorks AssociateNodeAPI를 사용하여 노드를 서버에 연결합니다.

    노드를 자동으로 추가합니다. AWS OpsWorks for Chef Automate의 단계를 수행하여 노드 연결을 자동화하거나, 노드를 개별적으로 추가의 단계를 수행하여 한 번에 한 개의 노드를 추가할 수 있습니다.

  6. 노드의 실행 목록을 업데이트하면 다음 실행 시 chef-client 에이전트가 지정된 레시피를 실행합니다. 이 작업은 기본적으로 1800초(30분)마다 수행됩니다. 실행 후 Chef Automate 대시보드의 규정 준수 탭에서 규정 준수 결과를 보고 조치를 취할 수 있습니다.

    Chef 규정 준수 검사 결과

규정 준수 검사 실행

노드 실행 목록을 구성한 후 발생하는 에이전트가 처음 실행된 직후 Chef Automate 대시보드에 규정 준수 검사 결과가 표시됩니다.

Chef Compliance 보고 페이지 보기

Chef Automate 대시보드에서 [규정 준수] 탭을 선택합니다. 왼쪽 탐색 창에서 [보고]를 선택합니다. [프로필] 탭을 선택하고 [결과 스캔]을 선택한 다음 스캔 장애가 있는 노드를 선택하여 노드가 실패한 규칙에 대해 자세히 알아봅니다.

실패한 결과의 규정 준수 목록

새 노드가 아직 DevSec SSH 베이스라인 프로필의 모든 규칙을 충족하지 않기 때문에 일반적으로 비준수 검사 결과가 표시됩니다. 커뮤니티 기반 프로젝트인 DevSec Hardening Framework는 SSH Baseline 프로필의 규칙을 위반하는 문제를 해결하기 위한 쿡북을 제공합니다. DevSec

(선택 사항) 규정 미준수 결과 해결

스타터 키트에는 SSH Baseline 프로필에 대한 실행으로 인한 비준수 결과를 ssh-hardening 수정하기 위해 실행할 수 있는 오픈 소스 쿡북이 포함되어 있습니다. DevSec

참고

ssh-hardening쿡북은 SSH 베이스라인 규칙을 준수하도록 노드를 변경합니다. DevSec 프로덕션 노드에서 이 쿡북을 실행하기 전에 Chef Automate 콘솔에서 DevSec SSH Baseline 프로필에 대한 세부 정보를 검토하여 쿡북이 대상으로 하는 규칙 위반을 이해하십시오. 오픈 소스 ssh-hardening 쿡북을 프로덕션 노드에서 실행하기 전에 쿡북에 대한 정보를 검토하세요.

ssh-hardening 쿡북을 실행하려면
  1. 텍스트 편집기에서 ssh-hardening 쿡북을 Policyfile.rb의 실행 목록에 추가합니다. Policyfile.rb 실행 목록은 다음과 일치해야 합니다.

    run_list 'chef-client', 'opsworks-webserver', 'audit', 'ssh-hardening'
  2. Policyfile.rb를 업데이트하고 AWS OpsWorks for Chef Automate 서버에 푸시합니다.

    chef update Policyfile.rb chef push opsworks-demo
  3. opsworks-demo 정책과 관련된 노드가 실행 목록을 자동으로 업데이트하고 다음 번 chef-client 실행 시 ssh-hardening 쿡북을 적용합니다.

    chef-client 쿡북을 사용하기 때문에 노드는 정기적으로(기본 30분 간격) 체크인됩니다. 다음 체크인 시 ssh-hardening 쿡북이 실행되며 DevSec SSH Baseline 프로필의 규칙을 충족하도록 노드 보안을 개선하는 데 도움이 됩니다.

  4. ssh-hardening 쿡북을 처음 실행한 후 규정 준수 검사가 다시 실행될 때까지 30분 정도 기다립니다. Chef Automate 대시보드에서 결과를 확인합니다. DevSec SSH 베이스라인 스캔의 초기 실행 시 발생한 비준수 결과를 해결해야 합니다.

Chef Automate 1.x의 규정 준수

AWS OpsWorks for Chef Automate 서버에서 Chef 오토메이트 1을 실행하는 경우 x, 이 섹션의 절차를 사용하여 Chef 규정 준수를 설정하십시오.

(선택 사항, Chef Automate 1.x) Chef Compliance 설정

모든 AWS OpsWorks for Chef Automate 서버에서 Chef 규정 준수를 구성할 수 있습니다. AWS OpsWorks for Chef Automate 서버를 시작한 후 Chef Automate 대시보드의 프로필에서 실행할 프로필을 선택합니다. 프로필을 설치한 후 berks 명령을 실행하여 Audit 쿡북을 Chef Automate 서버에 업로드합니다. 감사 쿡북을 설치하면 Chef에서 만든 오픈 소스 테스트 프레임워크인 gem for도 설치됩니다. gem for를 사용하면 자동화된 테스트를 배포 파이프라인의 모든 단계에 통합할 수 있습니다. InSpec Chef Automate 1.x의 경우 Audit 쿡북의 버전 5.0.1 이상을 선택합니다. InSpec gem은 버전 1.24.0 이상이어야 합니다.

AWS OpsWorks for Chef Automate 스타터 키트에는 적합한 버전의 Chef's Audit opsworks-audit 쿡북을 다운로드하고 설치하는 래퍼 쿡북이 포함되어 있습니다. 또한 opsworks-audit 쿡북은 이 주제 뒷부분에서 Chef의 규정 준수 콘솔에서 설치한 DevSecSSH 기준 프로필을 기준으로 노드를 평가하도록 chef-client 에이전트에 지시합니다. 쿡북을 사용하여 원하는 기본 설정으로 Compliance를 설정할 수 있습니다. 이 단원에서는 opsworks-audit 쿡북을 사용하는 방법을 설명합니다.

규정 준수 프로필을 설치하려면
  1. 아직 시작하지 않은 경우 Chef Automate 웹 기반 대시보드에 로그인합니다. 서버를 생성할 때 스타터 키트를 다운로드할 때 받은 자격 증명을 사용하십시오. AWS OpsWorks for Chef Automate

  2. Chef Automate 대시보드에서 [규정 준수] 탭을 선택합니다.

    Chef Compliance 프로필
  3. 왼쪽 탐색 모음에서 [프로필 스토어]를 선택한 다음 [사용 가능]을 선택하여 사전 정의된 프로필을 확인합니다.

  4. 프로필 목록을 찾아봅니다. 하나 이상의 관리형 노드의 운영 체제 및 구성과 일치하는 프로필을 선택합니다. 프로필의 대상 위반 및 기본 규칙 코드에 대한 설명을 포함하여 프로필에 대한 세부 정보를 보려면 프로필 항목의 오른쪽에 있는 [>]를 선택합니다. 여러 프로필을 선택할 수 있습니다.

    Chef Compliance 프로필 세부 정보 보기
  5. Chef Automate 서버에 선택한 프로필을 설치하려면 [가져오기]를 선택합니다.

  6. 다운로드가 완료되면 다음 절차로 이동합니다.

opsworks-audit 쿡북을 설치하고 설정하려면
  1. 이 단계는 선택 사항이지만, 6단계에서 노드 실행 목록에 레시피를 추가할 때 시간을 절약할 수 있습니다. AWS OpsWorks for Chef Automate 서버를 생성할 때 다운로드한 스타터 키트에 포함된 roles/opsworks-example-role.rb 파일을 편집합니다. 다음 행을 추가합니다. ssh-hardening 쿡북과 레시피를 추가하여 규정 준수 검사 실행 후 규정 미준수 노드를 해결하는 것은 선택 사항이기 때문에 마지막 행은 주석 처리되어 있습니다.

    run_list( "recipe[chef-client]", "recipe[apache2]", "recipe[opsworks-audit]" # "recipe[ssh-hardening]" )
  2. 텍스트 편집기를 사용하여 원하는 쿡북을 Berksfile에 지정합니다. 스타터 키트에는 샘플 Berksfile이 제공됩니다. 이 예제에서는 Chef Infra 클라이언트(chef-client) 쿡북, apache2 쿡북, opsworks-audit 쿡북을 설치합니다. Berksfile은 다음과 유사합니다.

    source 'https://supermarket.chef.io cookbook 'chef-client' cookbook 'apache2', '~> 5.0.1' cookbook 'opsworks-audit', path: 'cookbooks/opsworks-audit', '~> 1.0.0'

    모든 쿡북은 쿡북의 metadata.rb 파일에 버전이 지정되어 있습니다. 쿡북을 변경할 때마다 쿡북의 metadata.rb에 있는 쿡북 버전을 올려야 합니다.

  3. 다음 명령을 실행하여 쿡북을 로컬 컴퓨터나 작업 컴퓨터의 cookbooks 폴더로 다운로드하고 설치합니다.

    berks vendor cookbooks
  4. 다음 명령을 실행하여 벤더 쿡북을 AWS OpsWorks for Chef Automate 서버로 업로드합니다.

    knife upload .
  5. 다음 명령을 실행하여 서버에서 현재 사용 가능한 쿡북 목록을 조회함으로써 opsworks-audit 쿡북의 설치를 확인합니다.

    knife cookbook list
  6. 관리할 서버에 노드를 추가하지 않았으면 추가합니다. 노드를 자동으로 추가합니다. AWS OpsWorks for Chef Automate의 단계를 수행하여 노드 연결을 자동화하거나, 노드를 개별적으로 추가의 단계를 수행하여 한 번에 한 개의 노드를 추가할 수 있습니다. 노드의 실행 목록을 편집하여 1단계에서 지정한 opsworks-example-role 역할을 추가합니다. 이 예제에서는 RUN_LIST 스크립트에서 userdata 속성을 편집하여 노드 연결을 자동화합니다.

    RUN_LIST="role[opsworks-example-role]"

    1단계를 건너뛰고 역할을 설정하지 않은 경우 실행 목록에 개별 레시피 이름을 추가합니다. 변경 사항을 저장하고 3단계: 무인 연결 스크립트를 사용하여 인스턴스 생성의 단계를 따라 userdata 스크립트를 Amazon EC2 인스턴스에 적용합니다.

    RUN_LIST="recipe[chef-client],recipe[apache2],recipe[opworks-audit]"
  7. 노드의 실행 목록을 업데이트하면 다음 실행 시 chef-client 에이전트가 지정된 레시피를 실행합니다. 이 작업은 기본적으로 1800초(30분)마다 수행됩니다. 실행 후 Chef Automate 대시보드에 규정 준수 결과가 표시됩니다.

규정 준수 검사 실행

노드 실행 목록을 구성한 후 발생하는 에이전트 데몬이 처음 실행된 직후 Chef Automate 대시보드에서 규정 준수 검사 결과가 표시됩니다.

Chef Compliance 보고 페이지 보기

Chef Automate 대시보드에서 [규정 준수] 탭을 선택합니다. 왼쪽 탐색 창에서 [보고]를 선택합니다. [프로필] 탭을 선택하고 [스캔 결과]를 선택한 다음 스캔 장애가 있는 노드를 선택하여 노드가 실패한 규칙에 대해 자세히 알아봅니다.

실패한 결과의 Chef Compliance 목록

새 노드가 아직 DevSec SSH 베이스라인 프로필의 모든 규칙을 충족하지 않기 때문에 일반적으로 비준수 검사 결과가 표시됩니다. 커뮤니티 기반 프로젝트인 DevSec Hardening Framework는 SSH Baseline 프로필의 규칙을 위반하는 문제를 해결하기 위한 쿡북을 제공합니다. DevSec

(선택 사항) 규정 미준수 결과 해결

스타터 키트에는 SSH Baseline 프로필에 대한 실행으로 인한 비준수 결과를 ssh-hardening 수정하기 위해 실행할 수 있는 오픈 소스 쿡북이 포함되어 있습니다. DevSec

참고

ssh-hardening쿡북은 SSH 베이스라인 규칙을 준수하도록 노드를 변경합니다. DevSec 프로덕션 노드에서 이 쿡북을 실행하기 전에 Chef Automate 콘솔에서 DevSec SSH Baseline 프로필에 대한 세부 정보를 검토하여 쿡북이 대상으로 하는 규칙 위반을 이해하십시오. 오픈 소스 ssh-hardening 쿡북을 프로덕션 노드에서 실행하기 전에 쿡북에 대한 정보를 검토하세요.

ssh-hardening 쿡북을 실행하려면
  1. 텍스트 편집기에서 ssh-hardening 쿡북을 Berksfile에 추가합니다. Berksfile은 다음과 유사합니다.

    source 'https://supermarket.chef.io' cookbook 'chef-client' cookbook 'apache2', '~> 5.0.1' cookbook 'opsworks-audit', path: 'cookbooks/opsworks-audit', '~> 1.0.0' # optional cookbook 'ssh-hardening'
  2. 다음 명령을 실행하여 ssh-hardening 쿡북을 로컬 쿡북 폴더로 다운로드한 후 AWS OpsWorks for Chef Automate 서버에 업로드합니다.

    berks vendor cookbooks knife upload .
  3. ssh-hardening의 1단계와 6단계에서 설명한 대로 opsworks-audit 쿡북을 설치하고 설정하려면 레시피를 노드 실행 목록에 추가합니다.

    opsworks-example-role.rb 파일을 업데이트하는 경우 다음 명령을 실행하여 변경 사항을 서버에 업로드합니다.

    knife upload .

    실행 목록을 직접 업데이트하는 경우 다음 명령을 실행하여 변경 사항을 업로드합니다. 노드 이름은 일반적으로 인스턴스 ID입니다.

    knife node run_list add <node name> 'recipe[ssh-hardening]'
  4. chef-client 쿡북을 사용하기 때문에 노드는 정기적으로(기본 30분 간격) 체크인됩니다. 다음 체크인 시 ssh-hardening 쿡북이 실행되며 DevSec SSH Baseline 프로필의 규칙을 충족하도록 노드 보안을 개선하는 데 도움이 됩니다.

  5. ssh-hardening 쿡북을 처음 실행한 경우 규정 준수 검사 실행을 위해 30분 기다리십시오. Chef Automate 대시보드에서 결과를 확인합니다. DevSec SSH 베이스라인 스캔의 초기 실행 시 발생한 비준수 결과를 해결해야 합니다.

규정 준수에 대한 업데이트

AWS OpsWorks for Chef Automate 서버에서는 예정된 시스템 유지 관리 일정에 따라 규정 준수 기능이 자동으로 업데이트됩니다. Chef Automate, Chef Infra Server 및 Chef의 업데이트된 릴리스를 AWS OpsWorks for Chef Automate 서버에서 사용할 수 있게 InSpec 되면 서버에서 실행 중인 Audit 쿡북 및 Chef InSpec gem의 지원되는 버전을 확인하고 업데이트해야 할 수 있습니다. AWS OpsWorks for Chef Automate 서버에 이미 설치한 프로필은 유지 관리의 일환으로 업데이트되지 않습니다.

커뮤니티 및 사용자 지정 규정 준수 프로필

Chef에는 현재 100개 이상의 규정 준수 검사 프로필이 포함되어 있습니다. 커뮤니티 및 사용자 지정 프로필을 목록에 추가한 다음, 포함된 프로필과 마찬가지로 해당 프로필을 기반으로 규정 준수 검사를 다운로드하고 실행할 수 있습니다. 커뮤니티 기반 규정 준수 프로필은 Chef Supermarket에서 사용할 수 있습니다. 사용자 지정 프로필은 검사 규칙을 지정하는 컨트롤 폴더가 포함된 Ruby 기반 프로그램입니다.

참고